diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderImpl.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderImpl.java
index 948f5fc..3bdba36 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderImpl.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/extclients/vnfm/VnfmServiceProviderImpl.java
@@ -26,10 +26,13 @@
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse2001;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InstantiateVnfRequest;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.TerminateVnfRequest;
+import org.onap.so.adapters.vnfmadapter.jobmanagement.JobManager;
 import org.onap.so.adapters.vnfmadapter.rest.exceptions.VnfmRequestFailureException;
+import org.onap.so.rest.exceptions.RestProcessingException;
 import org.onap.so.rest.service.HttpRestServiceProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -115,6 +118,18 @@
         try {
             response = getHttpServiceProvider(vnfm).postHttpRequest(terminateVnfRequest, vnfSelfLink + "/terminate",
                     Void.class);
+        } catch (final RestProcessingException restProcessingException) {
+            if (restProcessingException.getStatusCode() == HttpStatus.CONFLICT.value()) {
+                InlineResponse201 vnf = getVnf(vnfm, vnfSelfLink).get();
+                if (vnf.getInstantiationState().equals(InstantiationStateEnum.NOT_INSTANTIATED)) {
+                    return JobManager.ALREADY_COMPLETED_OPERATION_ID;
+                } else {
+                    final String errorMessage =
+                            "Terminate request to " + vnfSelfLink + " resulted in exception" + terminateVnfRequest;
+                    logger.error(errorMessage, restProcessingException);
+                    throw new VnfmRequestFailureException(errorMessage, restProcessingException);
+                }
+            }
         } catch (final Exception exception) {
             final String errorMessage =
                     "Terminate request to " + vnfSelfLink + " resulted in exception" + terminateVnfRequest;
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/jobmanagement/JobManager.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/jobmanagement/JobManager.java
index 68fdb79..3de94eb 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/jobmanagement/JobManager.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/jobmanagement/JobManager.java
@@ -29,6 +29,7 @@
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.VnfmServiceProvider;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
 import org.onap.so.adapters.vnfmadapter.rest.exceptions.JobNotFoundException;
+import org.onap.so.rest.exceptions.HttpResouceNotFoundException;
 import org.onap.vnfmadapter.v1.model.OperationEnum;
 import org.onap.vnfmadapter.v1.model.OperationStateEnum;
 import org.onap.vnfmadapter.v1.model.OperationStatusRetrievalStatusEnum;
@@ -42,6 +43,7 @@
  */
 @Component
 public class JobManager {
+    public static final String ALREADY_COMPLETED_OPERATION_ID = "alreadyCompleted";
     private static final String SEPARATOR = "_";
     private static Logger logger = getLogger(JobManager.class);
     private final Map<String, VnfmOperation> mapOfJobIdToVnfmOperation = Maps.newConcurrentMap();
@@ -87,6 +89,11 @@
             throw new JobNotFoundException("No job found with ID: " + jobId);
         }
 
+        if (vnfmOperation.getOperationId().equals(ALREADY_COMPLETED_OPERATION_ID)) {
+            response.setOperationStatusRetrievalStatus(OperationStatusRetrievalStatusEnum.STATUS_FOUND);
+            return response.operationState(OperationStateEnum.COMPLETED);
+        }
+
         if (vnfmOperation.isVnfDeleted()) {
             response.setOperationStatusRetrievalStatus(OperationStatusRetrievalStatusEnum.STATUS_FOUND);
             return response.operationState(getOperationState(vnfmOperation, null));
@@ -116,7 +123,7 @@
             response.setVnfInstanceId(operation.getVnfInstanceId());
 
             return response;
-        } catch (final Exception exception) {
+        } catch (final HttpResouceNotFoundException exception) {
             logger.error("Exception encountered trying to get operation status for operation id "
                     + vnfmOperation.getOperationId(), exception);
             return response.operationStatusRetrievalStatus(OperationStatusRetrievalStatusEnum.WAITING_FOR_STATUS);
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/lifecycle/LifecycleManager.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/lifecycle/LifecycleManager.java
index 461c15a..a885721 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/lifecycle/LifecycleManager.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/lifecycle/LifecycleManager.java
@@ -24,6 +24,7 @@
 import java.util.Map;
 import org.onap.aai.domain.yang.EsrVnfm;
 import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.aai.domain.yang.Relationship;
 import org.onap.so.adapters.vnfmadapter.extclients.SdcPackageProvider;
 import org.onap.so.adapters.vnfmadapter.extclients.aai.AaiHelper;
 import org.onap.so.adapters.vnfmadapter.extclients.aai.AaiServiceProvider;
@@ -207,6 +208,10 @@
         final EsrVnfm vnfm = getAssignedVnfm(genericVnf);
 
         final String operationId = sendTerminateRequestToVnfm(vnfm, genericVnf);
+
+        if (operationId.equals(JobManager.ALREADY_COMPLETED_OPERATION_ID)) {
+            sendDeleteRequestToVnfm(genericVnf);
+        }
         final String jobId = jobManager.createJob(vnfm.getVnfmId(), operationId, true);
 
         return new DeleteVnfResponse().jobId(jobId);
@@ -234,4 +239,27 @@
         }
         return vnfm;
     }
+
+    private void sendDeleteRequestToVnfm(final GenericVnf genericVnf) {
+
+        vnfmServiceProvider.deleteVnf(aaiHelper.getAssignedVnfm(genericVnf), genericVnf.getSelflink());
+
+        final GenericVnf genericVnfPatch = new GenericVnf();
+        genericVnfPatch.setVnfId(genericVnf.getVnfId());
+        genericVnfPatch.setOrchestrationStatus("Assigned");
+        genericVnfPatch.setSelflink("");
+        aaiServiceProvider.invokePatchGenericVnf(genericVnfPatch);
+
+        for (final Relationship relationship : genericVnf.getRelationshipList().getRelationship()) {
+            if (relationship.getRelatedTo().equals("vserver")) {
+                aaiServiceProvider.invokeDeleteVserver(
+                        aaiHelper.getRelationshipData(relationship, "cloud-region.cloud-owner"),
+                        aaiHelper.getRelationshipData(relationship, "cloud-region.cloud-region-id"),
+                        aaiHelper.getRelationshipData(relationship, "tenant.tenant-id"),
+                        aaiHelper.getRelationshipData(relationship, "vserver.vserver-id"));
+            }
+        }
+
+
+    }
 }
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/notificationhandling/NotificationHandler.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/notificationhandling/NotificationHandler.java
index 7a6bbfe..63ec4cc 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/notificationhandling/NotificationHandler.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/main/java/org/onap/so/adapters/vnfmadapter/notificationhandling/NotificationHandler.java
@@ -145,31 +145,31 @@
     }
 
     private void handleVnfTerminateFailed() {
-        final GenericVnf genericVnf = aaiServiceProvider
-                .invokeQueryGenericVnf(vnfInstance.getLinks().getSelf().getHref()).getGenericVnf().get(0);
-        deleteVservers(vnfLcmOperationOccurrenceNotification, genericVnf);
-        jobManager.notificationProcessedForOperation(vnfLcmOperationOccurrenceNotification.getVnfLcmOpOccId(), false);
+        try {
+            final GenericVnf genericVnf = aaiServiceProvider
+                    .invokeQueryGenericVnf(vnfInstance.getLinks().getSelf().getHref()).getGenericVnf().get(0);
+            deleteVserversFromAai(vnfLcmOperationOccurrenceNotification, genericVnf);
+        } finally {
+            jobManager.notificationProcessedForOperation(vnfLcmOperationOccurrenceNotification.getVnfLcmOpOccId(),
+                    false);
+        }
     }
 
     private void handleVnfTerminateCompleted() {
-        final GenericVnf genericVnf = aaiServiceProvider
-                .invokeQueryGenericVnf(vnfInstance.getLinks().getSelf().getHref()).getGenericVnf().get(0);
-        deleteVservers(vnfLcmOperationOccurrenceNotification, genericVnf);
-
-        boolean deleteSuccessful = false;
+        GenericVnf genericVnf = null;
+        boolean vServersDeletedFromAai = false;
+        boolean identifierDeletedFromVnfm = false;
+        boolean genericVnfUpdated = false;
         try {
-            vnfmServiceProvider.deleteVnf(aaiHelper.getAssignedVnfm(genericVnf), genericVnf.getSelflink());
-            deleteSuccessful = true;
+            genericVnf = aaiServiceProvider.invokeQueryGenericVnf(vnfInstance.getLinks().getSelf().getHref())
+                    .getGenericVnf().get(0);
+            vServersDeletedFromAai = deleteVserversFromAai(vnfLcmOperationOccurrenceNotification, genericVnf);
+            identifierDeletedFromVnfm = deleteVnfIdentifierOnVnfm(genericVnf);
+            genericVnfUpdated = patchVnfInAai(genericVnf.getVnfId(), "Assigned", identifierDeletedFromVnfm ? "" : null);
         } finally {
             jobManager.notificationProcessedForOperation(vnfLcmOperationOccurrenceNotification.getVnfLcmOpOccId(),
-                    deleteSuccessful);
+                    vServersDeletedFromAai && identifierDeletedFromVnfm && genericVnfUpdated);
             jobManager.vnfDeleted(vnfLcmOperationOccurrenceNotification.getVnfLcmOpOccId());
-
-            final GenericVnf genericVnfPatch = new GenericVnf();
-            genericVnfPatch.setVnfId(genericVnf.getVnfId());
-            genericVnfPatch.setOrchestrationStatus("Assigned");
-            genericVnfPatch.setSelflink("");
-            aaiServiceProvider.invokePatchGenericVnf(genericVnfPatch);
         }
     }
 
@@ -194,19 +194,60 @@
         }
     }
 
-    private void deleteVservers(final VnfLcmOperationOccurrenceNotification notification, final GenericVnf vnf) {
-        for (final LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs vnfc : notification.getAffectedVnfcs()) {
-            if (ChangeTypeEnum.REMOVED.equals(vnfc.getChangeType())) {
+    private boolean deleteVserversFromAai(final VnfLcmOperationOccurrenceNotification notification,
+            final GenericVnf vnf) {
+        try {
+            for (final LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs vnfc : notification.getAffectedVnfcs()) {
+                if (ChangeTypeEnum.REMOVED.equals(vnfc.getChangeType())) {
 
-                final Relationship relationshipToVserver = aaiHelper.deleteRelationshipWithDataValue(vnf, "vserver",
-                        "vserver.vserver-id", vnfc.getComputeResource().getResourceId());
+                    final Relationship relationshipToVserver = aaiHelper.deleteRelationshipWithDataValue(vnf, "vserver",
+                            "vserver.vserver-id", vnfc.getComputeResource().getResourceId());
 
-                aaiServiceProvider.invokeDeleteVserver(
-                        aaiHelper.getRelationshipData(relationshipToVserver, "cloud-region.cloud-owner"),
-                        aaiHelper.getRelationshipData(relationshipToVserver, "cloud-region.cloud-region-id"),
-                        aaiHelper.getRelationshipData(relationshipToVserver, "tenant.tenant-id"),
-                        vnfc.getComputeResource().getResourceId());
+                    aaiServiceProvider.invokeDeleteVserver(
+                            aaiHelper.getRelationshipData(relationshipToVserver, "cloud-region.cloud-owner"),
+                            aaiHelper.getRelationshipData(relationshipToVserver, "cloud-region.cloud-region-id"),
+                            aaiHelper.getRelationshipData(relationshipToVserver, "tenant.tenant-id"),
+                            vnfc.getComputeResource().getResourceId());
+                }
             }
+            return true;
+        } catch (final Exception exception) {
+            logger.error(
+                    "Error encountered deleting vservers based on received notification, AAI may not be updated correctly "
+                            + vnfLcmOperationOccurrenceNotification,
+                    exception);
+            return false;
+        }
+    }
+
+    private boolean deleteVnfIdentifierOnVnfm(GenericVnf genericVnf) {
+        try {
+            vnfmServiceProvider.deleteVnf(aaiHelper.getAssignedVnfm(genericVnf), genericVnf.getSelflink());
+            return true;
+        } catch (Exception exception) {
+            logger.error("Exception deleting the identifier " + genericVnf.getSelflink()
+                    + " from the VNFM. The VNF has been terminated successfully but the identifier will remain on the VNFM.",
+                    exception);
+            return false;
+        }
+    }
+
+    private boolean patchVnfInAai(final String vnfId, final String orchestrationStatus, final String selfLink) {
+        try {
+            final GenericVnf genericVnfPatch = new GenericVnf();
+            genericVnfPatch.setVnfId(vnfId);
+            genericVnfPatch.setOrchestrationStatus(orchestrationStatus);
+            if (selfLink != null) {
+                genericVnfPatch.setSelflink(selfLink);
+            }
+            aaiServiceProvider.invokePatchGenericVnf(genericVnfPatch);
+            return true;
+        } catch (final Exception exception) {
+            logger.error(
+                    "Error encountered setting orchestration status and/or self link based on received notification, AAI may not be updated correctly "
+                            + vnfLcmOperationOccurrenceNotification,
+                    exception);
+            return false;
         }
     }
 
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003LcnControllerTest.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003LcnControllerTest.java
index f83e9c9..cd92d98 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003LcnControllerTest.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/Sol003LcnControllerTest.java
@@ -73,6 +73,7 @@
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo;
 import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.AAIVersion;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
index 297f744..e408a32 100644
--- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
+++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/VnfmAdapterControllerTest.java
@@ -57,10 +57,12 @@
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse2001;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
+import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201Links;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf;
 import org.onap.so.adapters.vnfmadapter.rest.exceptions.VnfmNotFoundException;
 import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.AAIVersion;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.onap.vnfmadapter.v1.model.CreateVnfRequest;
 import org.onap.vnfmadapter.v1.model.CreateVnfResponse;
@@ -322,6 +324,40 @@
     }
 
     @Test
+    public void deleteVnf_VnfAlreadyTerminated_Returns202AndJobId() throws Exception {
+        final TestRestTemplate restTemplate = new TestRestTemplate("test", "test");
+
+        final GenericVnf genericVnf = setUpGenericVnfInMockAai("vnfmType1");
+        addSelfLinkToGenericVnf(genericVnf);
+        addRelationshipFromGenericVnfToVnfm(genericVnf, "vnfm1");
+        setUpVnfmsInMockAai();
+
+        mockRestServer.expect(requestTo("http://vnfm:8080/vnfs/myTestVnfIdOnVnfm/terminate"))
+                .andRespond(withStatus(HttpStatus.CONFLICT).contentType(MediaType.APPLICATION_JSON));
+
+        final InlineResponse201 reponse = new InlineResponse201();
+        reponse.setInstantiationState(InstantiationStateEnum.NOT_INSTANTIATED);
+        mockRestServer.expect(requestTo(new URI("http://vnfm:8080/vnfs/myTestVnfIdOnVnfm")))
+                .andRespond(withSuccess(gson.toJson(reponse), MediaType.APPLICATION_JSON));
+
+        mockRestServer.expect(requestTo("http://vnfm:8080/vnfs/myTestVnfIdOnVnfm"))
+                .andRespond(withStatus(HttpStatus.NO_CONTENT).contentType(MediaType.APPLICATION_JSON));
+
+        final RequestEntity<Void> request = RequestEntity
+                .delete(new URI("http://localhost:" + port + "/so/vnfm-adapter/v1/vnfs/myTestVnfId"))
+                .accept(MediaType.APPLICATION_JSON).header("X-ONAP-RequestId", "myRequestId")
+                .header("X-ONAP-InvocationID", "myInvocationId").header("Content-Type", "application/json").build();
+        final ResponseEntity<DeleteVnfResponse> deleteVnfResponse =
+                restTemplate.exchange(request, DeleteVnfResponse.class);
+        assertEquals(202, deleteVnfResponse.getStatusCode().value());
+        assertNotNull(deleteVnfResponse.getBody().getJobId());
+
+        final ResponseEntity<QueryJobResponse> jobQueryResponse =
+                controller.jobQuery(deleteVnfResponse.getBody().getJobId(), "", "so", "1213");
+        assertEquals(OperationStateEnum.COMPLETED, jobQueryResponse.getBody().getOperationState());
+    }
+
+    @Test
     public void deleteVnf_GenericVnfNotFound_Returns404() throws Exception {
         final TestRestTemplate restTemplate = new TestRestTemplate("test", "test");
 
@@ -408,7 +444,8 @@
 
     private void addRelationshipFromGenericVnfToVnfm(final GenericVnf genericVnf, final String vnfmId) {
         final Relationship relationshipToVnfm = new Relationship();
-        relationshipToVnfm.setRelatedLink("/aai/v15/external-system/esr-vnfm-list/esr-vnfm/" + vnfmId);
+        relationshipToVnfm
+                .setRelatedLink("/aai/" + AAIVersion.LATEST + "/external-system/esr-vnfm-list/esr-vnfm/" + vnfmId);
         relationshipToVnfm.setRelatedTo("esr-vnfm");
         final RelationshipData relationshipData = new RelationshipData();
         relationshipData.setRelationshipKey("esr-vnfm.vnfm-id");
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCConfiguration.java b/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCConfiguration.java
index 7b526b5..3e5f82b 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCConfiguration.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCConfiguration.java
@@ -56,9 +56,11 @@
     public static final String TOSCA_CSAR = "TOSCA_CSAR";
     public static final String WORKFLOW = "WORKFLOW";
     public static final String VF_MODULES_METADATA = "VF_MODULES_METADATA";
+    public static final String CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT = "CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT";
 
     private static final String[] SUPPORTED_ARTIFACT_TYPES = {HEAT, HEAT_ARTIFACT, HEAT_ENV, HEAT_NESTED, HEAT_NET,
-            HEAT_VOL, OTHER, TOSCA_CSAR, VF_MODULES_METADATA, WORKFLOW};
+            HEAT_VOL, OTHER, TOSCA_CSAR, VF_MODULES_METADATA, WORKFLOW, CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT};
+
 
     public static final List<String> SUPPORTED_ARTIFACT_TYPES_LIST =
             Collections.unmodifiableList(Arrays.asList(SUPPORTED_ARTIFACT_TYPES));
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/installer/VfResourceStructure.java b/asdc-controller/src/main/java/org/onap/so/asdc/installer/VfResourceStructure.java
index 8c15982..f954fe0 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/installer/VfResourceStructure.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/installer/VfResourceStructure.java
@@ -117,6 +117,7 @@
             case ASDCConfiguration.HEAT_ARTIFACT:
             case ASDCConfiguration.HEAT_NET:
             case ASDCConfiguration.OTHER:
+            case ASDCConfiguration.CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT:
                 artifactsMapByUUID.put(artifactinfo.getArtifactUUID(), vfModuleArtifact);
                 break;
             case ASDCConfiguration.VF_MODULES_METADATA:
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
index b2dbcb4..8b3bccf 100644
--- a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
+++ b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
@@ -706,7 +706,9 @@
                 if (!"{}".equals(resourceInput)) {
                     allottedResource.setResourceInput(resourceInput);
                 }
-                service.getAllottedCustomizations().add(allottedResource);
+                if (!service.getAllottedCustomizations().contains(allottedResource)) {
+                    service.getAllottedCustomizations().add(allottedResource);
+                }
             }
         }
     }
@@ -1216,6 +1218,7 @@
                     break;
                 case ASDCConfiguration.HEAT_NET:
                 case ASDCConfiguration.OTHER:
+                case ASDCConfiguration.CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT:
                     logger.warn(LoggingAnchor.FOUR, MessageEnum.ASDC_ARTIFACT_TYPE_NOT_SUPPORT.toString(),
                             vfModuleArtifact.getArtifactInfo().getArtifactType() + "(Artifact Name:"
                                     + vfModuleArtifact.getArtifactInfo().getArtifactName() + ")",
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
index 7171fff..9294677 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
@@ -366,6 +366,30 @@
         assertEquals("PublicNS", service.get().getModelName());
     }
 
+    @Test
+    public void test_Vcperescust_Distribution() throws Exception {
+        wireMockServer.stubFor(post(urlPathMatching("/aai/.*"))
+                .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json")));
+
+        wireMockServer.stubFor(post(urlPathMatching("/v1.0/activity-spec"))
+                .willReturn(aResponse().withHeader("Content-Type", "application/json")
+                        .withStatus(org.springframework.http.HttpStatus.ACCEPTED.value())));
+
+        String resourceLocation = "src/test/resources/resource-examples/vcpe-rescust/";
+        ObjectMapper mapper = new ObjectMapper();
+        NotificationDataImpl request = mapper.readValue(
+                new File(resourceLocation + "demo-vcpe-rescust-notification.json"), NotificationDataImpl.class);
+        headers.add("resource-location", resourceLocation);
+        HttpEntity<NotificationDataImpl> entity = new HttpEntity<NotificationDataImpl>(request, headers);
+        ResponseEntity<String> response = restTemplate.exchange(createURLWithPort("test/treatNotification/v1"),
+                HttpMethod.POST, entity, String.class);
+        assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
+
+        Optional<Service> service = serviceRepo.findById("d3aac917-543d-4421-b6d7-ba2b65884eb7");
+        assertTrue(service.isPresent());
+        assertEquals("vCPEResCust 2019-10-01 _2364", service.get().getModelName());
+    }
+
     protected String createURLWithPort(String uri) {
         return "http://localhost:" + port + uri;
     }
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env
new file mode 100644
index 0000000..5cdbc9b
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env
@@ -0,0 +1,27 @@
+parameters:
+  cloud_env: "PUT THE CLOUD PROVIDED HERE (openstack or rackspace)"
+  cpe_public_net_cidr: "10.2.0.0/24"
+  cpe_public_net_id: "zdfw1cpe01_public"
+  cpe_public_subnet_id: "zdfw1cpe01_sub_public"
+  dcae_collector_ip: "10.0.4.1"
+  dcae_collector_port: "8081"
+  key_name: "vgw_key"
+  mux_gw_private_net_cidr: "10.5.0.0/24"
+  mux_gw_private_net_id: "zdfw1muxgw01_private"
+  mux_gw_private_subnet_id: "zdfw1muxgw01_sub_private"
+  mux_ip_addr: "10.5.0.20"
+  nexus_artifact_repo: "https://nexus.onap.org"
+  onap_private_net_cidr: "10.0.0.0/16"
+  onap_private_net_id: "PUT THE ONAP PRIVATE NETWORK NAME HERE"
+  onap_private_subnet_id: "PUT THE ONAP PRIVATE SUBNETWORK NAME HERE"
+  pub_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN"
+  public_net_id: "PUT THE PUBLIC NETWORK ID HERE"
+  script_version: "1.5.0-SNAPSHOT"
+  vcpe_flavor_name: "PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)"
+  vcpe_image_name: "PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)"
+  vf_module_id: "vCPE_Customer_GW"
+  vg_vgmux_tunnel_vni: 100
+  vgw_name_0: "zdcpe1cpe01gw01"
+  vgw_private_ip_0: "10.5.0.21"
+  vgw_private_ip_1: "10.0.101.30"
+  vnf_id: "vCPE_Infrastructure_GW_demo_app"
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml
new file mode 100644
index 0000000..74fa490
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml
@@ -0,0 +1,243 @@
+##########################################################################
+#
+#==================LICENSE_START==========================================
+#
+#
+# Copyright 2017 AT&T Intellectual Property. All rights reserved.
+#
+# 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============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#
+##########################################################################
+
+heat_template_version: 2013-05-23
+
+description: Heat template to deploy vCPE vGateway (vG)
+
+##############
+#            #
+# PARAMETERS #
+#            #
+##############
+
+parameters:
+  vcpe_image_name:
+    type: string
+    label: Image name or ID
+    description: Image to be used for compute instance
+  vcpe_flavor_name:
+    type: string
+    label: Flavor
+    description: Type of instance (flavor) to be used
+  public_net_id:
+    type: string
+    label: Public network name or ID
+    description: Public network that enables remote connection to VNF
+  mux_gw_private_net_id:
+    type: string
+    label: vGMUX private network name or ID
+    description: Private network that connects vGMUX to vGWs
+  mux_gw_private_subnet_id:
+    type: string
+    label: vGMUX private sub-network name or ID
+    description: vGMUX private sub-network name or ID
+  mux_gw_private_net_cidr:
+    type: string
+    label: vGMUX private network CIDR
+    description: The CIDR of the vGMUX private network
+  onap_private_net_id:
+    type: string
+    label: ONAP management network name or ID
+    description: Private network that connects ONAP components and the VNF
+  onap_private_subnet_id:
+    type: string
+    label: ONAP management sub-network name or ID
+    description: Private sub-network that connects ONAP components and the VNF
+  onap_private_net_cidr:
+    type: string
+    label: ONAP private network CIDR
+    description: The CIDR of the protected private network
+  cpe_public_net_id:
+    type: string
+    label: vCPE network that emulates internetmanagement name or ID
+    description: Private network that connects vGW to emulated internet
+  cpe_public_subnet_id:
+    type: string
+    label: vCPE Public subnet
+    description: vCPE Public subnet
+  cpe_public_net_cidr:
+    type: string
+    label: vCPE public network CIDR
+    description: The CIDR of the vCPE public
+  vgw_private_ip_0:
+    type: string
+    label: vGW private IP address towards the vGMUX
+    description: Private IP address that is assigned to the vGW to communicate with vGMUX
+  vgw_private_ip_1:
+    type: string
+    label: vGW private IP address towards the ONAP management network
+    description: Private IP address that is assigned to the vGW to communicate with ONAP components
+  ## VPP will use DHCP to get the vgw_private_ip_2 on the CPE_PUBLIC  subnet
+  #vgw_private_ip_2:
+  #  type: string
+  #  label: vGW private IP address towards the vCPE public network
+  #  description: Private IP address that is assigned to the vGW to communicate with vCPE public network
+  vgw_name_0:
+    type: string
+    label: vGW  name
+    description: Name of the vGW
+  vnf_id:
+    type: string
+    label: VNF ID
+    description: The VNF ID is provided by ONAP
+  vf_module_id:
+    type: string
+    label: vCPE module ID
+    description: The vCPE Module ID is provided by ONAP
+  dcae_collector_ip:
+    type: string
+    label: DCAE collector IP address
+    description: IP address of the DCAE collector
+  dcae_collector_port:
+    type: string
+    label: DCAE collector port
+    description: Port of the DCAE collector
+  key_name:
+    type: string
+    label: Key pair name
+    description: Public/Private key pair name
+  pub_key:
+    type: string
+    label: Public key
+    description: Public key to be installed on the compute instance
+  script_version:
+    type: string
+    label: Script version number
+    description: Version number of the scripts that install the vGW
+  nexus_artifact_repo:
+    type: string
+    description: Root URL for the Nexus repository for Maven artifacts.
+    default: "https://nexus.onap.org"
+  cloud_env:
+    type: string
+    label: Cloud environment
+    description: Cloud environment (e.g., openstack, rackspace)
+  mux_ip_addr:
+    type: string
+    label: vGMUX IP address
+    description: IP address of vGMUX
+  vg_vgmux_tunnel_vni:
+    type: number
+    label: vG-vGMUX tunnel vni
+    description: vni value of vG-vGMUX vxlan tunnel
+
+#############
+#           #
+# RESOURCES #
+#           #
+#############
+
+resources:
+
+  random-str:
+    type: OS::Heat::RandomString
+    properties:
+      length: 4
+
+  my_keypair:
+    type: OS::Nova::KeyPair
+    properties:
+      name:
+        str_replace:
+          template: base_rand
+          params:
+            base: { get_param: key_name }
+            rand: { get_resource: random-str }
+      public_key: { get_param: pub_key }
+      save_private_key: false
+
+  # Virtual GW Instantiation
+  vgw_private_0_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: mux_gw_private_net_id }
+      fixed_ips: [{"subnet": { get_param: mux_gw_private_subnet_id }, "ip_address": { get_param: vgw_private_ip_0 }}]
+
+  vgw_private_1_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: onap_private_net_id }
+      fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vgw_private_ip_1 }}]
+
+  vgw_private_2_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_param: cpe_public_net_id}
+      fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }}]
+      ##fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }, "ip_address": { get_param: vgw_private_ip_2 }}]
+
+  vgw_0:
+    type: OS::Nova::Server
+    properties:
+      image: { get_param: vcpe_image_name }
+      flavor: { get_param: vcpe_flavor_name }
+      name: { get_param: vgw_name_0 }
+      key_name: { get_resource: my_keypair }
+      networks:
+        - network: { get_param: public_net_id }
+        - port: { get_resource: vgw_private_0_port }
+        - port: { get_resource: vgw_private_1_port }
+        - port: { get_resource: vgw_private_2_port }
+      metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          params:
+            __mux_gw_private_net_ipaddr__ : { get_param: vgw_private_ip_0 }
+            __oam_ipaddr__ : { get_param: vgw_private_ip_1 }
+            __oam_cidr__ : { get_param: onap_private_net_cidr }
+            __cpe_public_net_cidr__ : { get_param: cpe_public_net_cidr }
+            __mux_gw_private_net_cidr__ : { get_param: mux_gw_private_net_cidr }
+            __script_version__ : { get_param: script_version }
+            __cloud_env__ : { get_param: cloud_env }
+            __mux_ip_addr__: { get_param: mux_ip_addr }
+            __vg_vgmux_tunnel_vni__: { get_param: vg_vgmux_tunnel_vni }
+            __nexus_artifact_repo__: { get_param: nexus_artifact_repo }
+          template: |
+            #!/bin/bash
+
+            # Create configuration files
+            mkdir /opt/config
+            echo "__oam_ipaddr__" > /opt/config/oam_ipaddr.txt
+            echo "__oam_cidr__" > /opt/config/oam_cidr.txt
+            echo "__cpe_public_net_cidr__" > /opt/config/cpe_public_net_cidr.txt
+            echo "__mux_gw_private_net_ipaddr__" > /opt/config/mux_gw_private_net_ipaddr.txt
+            echo "__mux_gw_private_net_cidr__" > /opt/config/mux_gw_private_net_cidr.txt
+            echo "__script_version__" > /opt/config/script_version.txt
+            echo "__cloud_env__" > /opt/config/cloud_env.txt
+            echo "__mux_ip_addr__" > /opt/config/mux_ip_addr.txt
+            echo "__vg_vgmux_tunnel_vni__" > /opt/config/vg_vgmux_tunnel_vni.txt
+            echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt
+
+            # Download and run install script
+            apt-get update
+            apt-get -y install unzip
+            if [[ "__script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi
+            curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=__script_version__" -o /opt/vcpe-scripts-__script_version__.zip
+            unzip -j /opt/vcpe-scripts-__script_version__.zip -d /opt v_gw_install.sh
+            cd /opt
+            chmod +x v_gw_install.sh
+            ./v_gw_install.sh
+
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json
new file mode 100644
index 0000000..f4f4fcc
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json
@@ -0,0 +1,108 @@
+{
+  "distributionID": "5ea97d50-9e1d-4b2c-aa47-2523e35e2120",
+  "serviceName": "vCPEResCust 2019-10-01 _2364",
+  "serviceVersion": "1.0",
+  "serviceUUID": "d3aac917-543d-4421-b6d7-ba2b65884eb7",
+  "serviceDescription": "catalog service description",
+  "serviceInvariantUUID": "d0568a10-a0e0-4efa-b698-ad3772f2e30f",
+  "resources": [{
+    "resourceInstanceName": "TunnelXConn_2019-10-01 03:23:27.409 0",
+    "resourceName": "TunnelXConn_2019-10-01 03:23:27.409",
+    "resourceVersion": "1.0",
+    "resoucreType": "VF",
+    "resourceUUID": "629f9662-55bb-430c-8f22-5204c37c9898",
+    "resourceInvariantUUID": "3a367ac8-5dff-4325-a0e7-9e0299d22152",
+    "resourceCustomizationUUID": "4e0249f0-5118-4323-b5e9-0783ad1123ba",
+    "category": "Allotted Resource",
+    "subcategory": "TunnelXConn",
+    "artifacts": []
+  }, {
+    "resourceInstanceName": "BRG_2019-10-01 03:23:27.409 0",
+    "resourceName": "BRG_2019-10-01 03:23:27.409",
+    "resourceVersion": "1.0",
+    "resoucreType": "VF",
+    "resourceUUID": "abafad1c-47fc-4d30-a079-be14871f0c6a",
+    "resourceInvariantUUID": "05a482b5-ec0d-45cb-ae95-397ce6765c9e",
+    "resourceCustomizationUUID": "aff592e4-cfc7-43ce-abea-f026b56995ab",
+    "category": "Allotted Resource",
+    "subcategory": "BRG",
+    "artifacts": []
+  }, {
+    "resourceInstanceName": "vCPE_vgw bf175ab0-4fa2 0",
+    "resourceName": "vCPE_vgw bf175ab0-4fa2",
+    "resourceVersion": "1.0",
+    "resoucreType": "VF",
+    "resourceUUID": "df1ce337-78b2-4e43-afb8-081d5ca175fc",
+    "resourceInvariantUUID": "1d2b0362-af54-43b9-9a5b-2dba408742b2",
+    "resourceCustomizationUUID": "6f2c39b3-d14f-4575-97b3-c93a7620591e",
+    "category": "Generic",
+    "subcategory": "Abstract",
+    "artifacts": [{
+      "artifactName": "vf-license-model.xml",
+      "artifactType": "VF_LICENSE",
+      "artifactURL": "/vf-license-model.xml",
+      "artifactChecksum": "YjBlNjhjNGU0ZjZkYzUwYjlhODg2NDMzZjk0MGNjMzM\u003d",
+      "artifactDescription": "VF license file",
+      "artifactTimeout": 120,
+      "artifactUUID": "2f362774-ac17-48a9-9c93-632b661ea689",
+      "artifactVersion": "1"
+    }, {
+      "artifactName": "vcpe_vgwbf175ab04fa20_modules.json",
+      "artifactType": "VF_MODULES_METADATA",
+      "artifactURL": "/vcpe_vgwbf175ab04fa20_modules.json",
+      "artifactChecksum": "NTg2NjQxOWNkNmNjY2EzY2M3ZGJjM2YyOTI2ZjlkNzU\u003d",
+      "artifactDescription": "Auto-generated VF Modules information artifact",
+      "artifactTimeout": 120,
+      "artifactUUID": "b02ab2a2-a657-44c4-ae88-578fe0caa30d",
+      "artifactVersion": "1"
+    }, {
+      "artifactName": "base_vcpe_vgw.yaml",
+      "artifactType": "HEAT",
+      "artifactURL": "/base_vcpe_vgw.yaml",
+      "artifactChecksum": "OTI1ODIwZTFhMjc3ZDVhYWU4ZjJjMTEzZGZiZTY4Zjg\u003d",
+      "artifactDescription": "created from csar",
+      "artifactTimeout": 120,
+      "artifactUUID": "e3a33b76-1f8a-44ba-808b-8a4c79e4b44a",
+      "artifactVersion": "2"
+    }, {
+      "artifactName": "vendor-license-model.xml",
+      "artifactType": "VENDOR_LICENSE",
+      "artifactURL": "/vendor-license-model.xml",
+      "artifactChecksum": "YThkMTY5ZWU5MDg5YmI5MWNiY2M5OTg1MTdjMzQzNWM\u003d",
+      "artifactDescription": " Vendor license file",
+      "artifactTimeout": 120,
+      "artifactUUID": "3eae4c31-394f-497b-83e9-110e87e40964",
+      "artifactVersion": "1"
+    }, {
+      "artifactName": "base_vcpe_vgw.env",
+      "artifactType": "HEAT_ENV",
+      "artifactURL": "/base_vcpe_vgw.env",
+      "artifactChecksum": "MTY4ZDUxYTUwNjExN2JhZjQzNGE5ZWQ3MGUxM2IyYWM\u003d",
+      "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+      "artifactTimeout": 120,
+      "artifactUUID": "9b73763b-0f60-47c3-8939-cf2f819bc75a",
+      "artifactVersion": "2",
+      "generatedFromUUID": "e3a33b76-1f8a-44ba-808b-8a4c79e4b44a"
+    }]
+  }],
+  "serviceArtifacts": [{
+    "artifactName": "service-Vcperescust201910012364-template.yml",
+    "artifactType": "TOSCA_TEMPLATE",
+    "artifactURL": "/service-Vcperescust201910012364-template.yml",
+    "artifactChecksum": "ZDRmZTZkNTkyNTBhMjM1Nzk1NzBiMjdkYmVjMWJiZjI\u003d",
+    "artifactDescription": "TOSCA representation of the asset",
+    "artifactTimeout": 0,
+    "artifactUUID": "50f4eed5-3330-46c3-89e8-a56d2de4354b",
+    "artifactVersion": "1"
+  }, {
+    "artifactName": "service-Vcperescust201910012364-csar.csar",
+    "artifactType": "TOSCA_CSAR",
+    "artifactURL": "/service-Vcperescust201910012364-csar.csar",
+    "artifactChecksum": "ZDlmMTMyYjVjZmMxNmQ1MDM2NmIyN2ZlYWUzNjM5ODU\u003d",
+    "artifactDescription": "TOSCA definition package of the asset",
+    "artifactTimeout": 0,
+    "artifactUUID": "2da4976c-1532-4b1e-b662-d80f487d1661",
+    "artifactVersion": "1"
+  }],
+  "workloadContext": "Production"
+}
\ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csar b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csar
new file mode 100644
index 0000000..29d2d72
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml
new file mode 100644
index 0000000..1fe6117
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml
@@ -0,0 +1,822 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+metadata:
+  invariantUUID: d0568a10-a0e0-4efa-b698-ad3772f2e30f
+  UUID: d3aac917-543d-4421-b6d7-ba2b65884eb7
+  name: vCPEResCust 2019-10-01 _2364
+  description: catalog service description
+  type: Service
+  category: Network L1-3
+  serviceType: ''
+  serviceRole: ''
+  instantiationType: A-la-carte
+  serviceEcompNaming: true
+  ecompGeneratedNaming: true
+  namingPolicy: ''
+  environmentContext: General_Revenue-Bearing
+imports:
+- nodes:
+    file: nodes.yml
+- datatypes:
+    file: data.yml
+- capabilities:
+    file: capabilities.yml
+- relationships:
+    file: relationships.yml
+- groups:
+    file: groups.yml
+- policies:
+    file: policies.yml
+- annotations:
+    file: annotations.yml
+- service-vCPEResCust 2019-10-01 _2364-interface:
+    file: service-Vcperescust201910012364-template-interface.yml
+- resource-TunnelXConn_2019-10-01 03:23:27.409:
+    file: resource-Tunnelxconn20191001032327409-template.yml
+- resource-TunnelXConn_2019-10-01 03:23:27.409-interface:
+    file: resource-Tunnelxconn20191001032327409-template-interface.yml
+- resource-BRG_2019-10-01 03:23:27.409:
+    file: resource-Brg20191001032327409-template.yml
+- resource-BRG_2019-10-01 03:23:27.409-interface:
+    file: resource-Brg20191001032327409-template-interface.yml
+- resource-vCPE_vgw bf175ab0-4fa2:
+    file: resource-VcpeVgwBf175ab04fa2-template.yml
+- resource-vCPE_vgw bf175ab0-4fa2-interface:
+    file: resource-VcpeVgwBf175ab04fa2-template-interface.yml
+topology_template:
+  node_templates:
+    vCPE_vgw bf175ab0-4fa2 0:
+      type: org.openecomp.resource.vf.VcpeVgwBf175ab04fa2
+      metadata:
+        invariantUUID: 1d2b0362-af54-43b9-9a5b-2dba408742b2
+        UUID: d9f21a73-33cb-49b5-9e5c-87c2c7dd93dc
+        customizationUUID: 6f2c39b3-d14f-4575-97b3-c93a7620591e
+        version: '1.0'
+        name: vCPE_vgw bf175ab0-4fa2
+        description: vendor software product
+        type: VF
+        category: Generic
+        subcategory: Abstract
+        resourceVendor: 6dccd115-ce6a-4b1a-88aa
+        resourceVendorRelease: '1.0'
+        resourceVendorModelNumber: ''
+      properties:
+        vf_module_id: vCPE_Customer_GW
+        vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+        skip_post_instantiation_configuration: true
+        vgw_name_0: zdcpe1cpe01gw01
+        public_net_id: PUT THE PUBLIC NETWORK ID HERE
+        onap_private_subnet_id: PUT THE ONAP PRIVATE SUBNETWORK NAME HERE
+        nexus_artifact_repo: https://nexus.onap.org
+        onap_private_net_cidr: 10.0.0.0/16
+        cpe_public_net_id: zdfw1cpe01_public
+        mux_ip_addr: 10.5.0.20
+        mux_gw_private_net_id: zdfw1muxgw01_private
+        dcae_collector_ip: 10.0.4.1
+        vnf_id: vCPE_Infrastructure_GW_demo_app
+        cpe_public_net_cidr: 10.2.0.0/24
+        vg_vgmux_tunnel_vni: 100.0
+        dcae_collector_port: '8081'
+        mux_gw_private_net_cidr: 10.5.0.0/24
+        mux_gw_private_subnet_id: zdfw1muxgw01_sub_private
+        nf_naming:
+          ecomp_generated_naming: true
+        multi_stage_design: 'false'
+        onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
+        availability_zone_max_count: 1
+        vgw_private_ip_0: 10.5.0.21
+        pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
+        vgw_private_ip_1: 10.0.101.30
+        key_name: vgw_key
+        vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+        script_version: 1.5.0-SNAPSHOT
+        cpe_public_subnet_id: zdfw1cpe01_sub_public
+        cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
+      capabilities:
+        abstract_vgw.network.incoming.packets_vgw_vgw_private_0_port:
+          properties:
+            unit: packet
+            description: Number of incoming packets
+            type: Cumulative
+            category: network
+        abstract_vgw.disk.read.bytes_vgw:
+          properties:
+            unit: B
+            description: Volume of reads
+            type: Cumulative
+            category: compute
+        abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_0_port:
+          properties:
+            unit: B/s
+            description: Average rate of incoming bytes
+            type: Gauge
+            category: network
+        abstract_vgw.disk.read.requests_vgw:
+          properties:
+            unit: request
+            description: Number of read requests
+            type: Cumulative
+            category: compute
+        abstract_vgw.disk.write.bytes_vgw:
+          properties:
+            unit: B
+            description: Volume of writes
+            type: Cumulative
+            category: compute
+        abstract_vgw.disk.capacity_vgw:
+          properties:
+            unit: B
+            description: The amount of disk that the instance can see
+            type: Gauge
+            category: disk
+        abstract_vgw.network.incoming.bytes_vgw_vgw_private_1_port:
+          properties:
+            unit: B
+            description: Number of incoming bytes
+            type: Cumulative
+            category: network
+        abstract_vgw.port_mirroring_vgw_vgw_private_2_port:
+          properties:
+            connection_point:
+              network_role:
+                get_input: port_vgw_private_2_port_network_role
+              nfc_naming_code: vgw
+        abstract_vgw.disk.write.requests_vgw:
+          properties:
+            unit: request
+            description: Number of write requests
+            type: Cumulative
+            category: compute
+        abstract_vgw.disk.device.read.requests.rate_vgw:
+          properties:
+            unit: request/s
+            description: Average rate of read requests
+            type: Gauge
+            category: disk
+        abstract_vgw.port_mirroring_vgw_vgw_private_1_port:
+          properties:
+            connection_point:
+              network_role:
+                get_input: port_vgw_private_1_port_network_role
+              nfc_naming_code: vgw
+        abstract_vgw.network.outpoing.packets_vgw_vgw_private_0_port:
+          properties:
+            unit: packet
+            description: Number of outgoing packets
+            type: Cumulative
+            category: network
+        abstract_vgw.memory.resident_vgw:
+          properties:
+            unit: MB
+            description: Volume of RAM used by the instance on the physical machine
+            type: Gauge
+            category: compute
+        abstract_vgw.disk.allocation_vgw:
+          properties:
+            unit: B
+            description: The amount of disk occupied by the instance on the host machine
+            type: Gauge
+            category: disk
+        abstract_vgw.network.incoming.bytes_vgw_vgw_private_0_port:
+          properties:
+            unit: B
+            description: Number of incoming bytes
+            type: Cumulative
+            category: network
+        abstract_vgw.cpu_vgw:
+          properties:
+            unit: ns
+            description: CPU time used
+            type: Cumulative
+            category: compute
+        abstract_vgw.network.incoming.bytes_vgw_vgw_private_2_port:
+          properties:
+            unit: B
+            description: Number of incoming bytes
+            type: Cumulative
+            category: network
+        abstract_vgw.network.outpoing.packets_vgw_vgw_private_1_port:
+          properties:
+            unit: packet
+            description: Number of outgoing packets
+            type: Cumulative
+            category: network
+        abstract_vgw.disk.device.read.bytes_vgw:
+          properties:
+            unit: B
+            description: Volume of reads
+            type: Cumulative
+            category: disk
+        abstract_vgw.disk.device.write.bytes.rate_vgw:
+          properties:
+            unit: B/s
+            description: Average rate of writes
+            type: Gauge
+            category: disk
+        abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_2_port:
+          properties:
+            unit: B/s
+            description: Average rate of incoming bytes
+            type: Gauge
+            category: network
+        abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_0_port:
+          properties:
+            unit: packet/s
+            description: Average rate of incoming packets
+            type: Gauge
+            category: network
+        abstract_vgw.disk.device.iops_vgw:
+          properties:
+            unit: count/s
+            description: Average disk iops per device
+            type: Gauge
+            category: disk
+        abstract_vgw.disk.latency_vgw:
+          properties:
+            unit: ms
+            description: Average disk latency
+            type: Gauge
+            category: disk
+        abstract_vgw.network.incoming.packets_vgw_vgw_private_2_port:
+          properties:
+            unit: packet
+            description: Number of incoming packets
+            type: Cumulative
+            category: network
+        abstract_vgw.disk.device.allocation_vgw:
+          properties:
+            unit: B
+            description: The amount of disk per device occupied by the instance on the host machine
+            type: Gauge
+            category: disk
+        abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_0_port:
+          properties:
+            unit: B/s
+            description: Average rate of outgoing bytes
+            type: Gauge
+            category: network
+        abstract_vgw.instance_vgw:
+          properties:
+            unit: instance
+            description: Existence of instance
+            type: Gauge
+            category: compute
+        abstract_vgw.memory_vgw:
+          properties:
+            unit: MB
+            description: Volume of RAM allocated to the instance
+            type: Gauge
+            category: compute
+        abstract_vgw.disk.device.write.requests_vgw:
+          properties:
+            unit: request
+            description: Number of write requests
+            type: Cumulative
+            category: disk
+        abstract_vgw.cpu.delta_vgw:
+          properties:
+            unit: ns
+            description: CPU time used since previous datapoint
+            type: Delta
+            category: compute
+        abstract_vgw.disk.device.latency_vgw:
+          properties:
+            unit: ms
+            description: Average disk latency per device
+            type: Gauge
+            category: disk
+        abstract_vgw.port_mirroring_vgw_vgw_private_0_port:
+          properties:
+            connection_point:
+              network_role:
+                get_input: port_vgw_private_0_port_network_role
+              nfc_naming_code: vgw
+        abstract_vgw.disk.iops_vgw:
+          properties:
+            unit: count/s
+            description: Average disk iops
+            type: Gauge
+            category: disk
+        abstract_vgw.cpu_util_vgw:
+          properties:
+            unit: '%'
+            description: Average CPU utilization
+            type: Gauge
+            category: compute
+        abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_2_port:
+          properties:
+            unit: B/s
+            description: Average rate of outgoing bytes
+            type: Gauge
+            category: network
+        abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_1_port:
+          properties:
+            unit: packet/s
+            description: Average rate of incoming packets
+            type: Gauge
+            category: network
+        abstract_vgw.network.outgoing.bytes_vgw_vgw_private_0_port:
+          properties:
+            unit: B
+            description: Number of outgoing bytes
+            type: Cumulative
+            category: network
+        abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_1_port:
+          properties:
+            unit: packet/s
+            description: Average rate of outgoing packets
+            type: Gauge
+            category: network
+        abstract_vgw.disk.usage_vgw:
+          properties:
+            unit: B
+            description: The physical size in bytes of the image container on the host
+            type: Gauge
+            category: disk
+        abstract_vgw.disk.write.requests.rate_vgw:
+          properties:
+            unit: request/s
+            description: Average rate of write requests
+            type: Gauge
+            category: compute
+        abstract_vgw.network.outgoing.bytes_vgw_vgw_private_1_port:
+          properties:
+            unit: B
+            description: Number of outgoing bytes
+            type: Cumulative
+            category: network
+        abstract_vgw.scalable_vgw:
+          properties:
+            max_instances: 1
+            min_instances: 1
+        abstract_vgw.disk.device.read.bytes.rate_vgw:
+          properties:
+            unit: B/s
+            description: Average rate of reads
+            type: Gauge
+            category: disk
+        abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_0_port:
+          properties:
+            unit: packet/s
+            description: Average rate of outgoing packets
+            type: Gauge
+            category: network
+        abstract_vgw.disk.device.read.requests_vgw:
+          properties:
+            unit: request
+            description: Number of read requests
+            type: Cumulative
+            category: disk
+        abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_1_port:
+          properties:
+            unit: B/s
+            description: Average rate of outgoing bytes
+            type: Gauge
+            category: network
+        abstract_vgw.disk.device.write.requests.rate_vgw:
+          properties:
+            unit: request/s
+            description: Average rate of write requests
+            type: Gauge
+            category: disk
+        abstract_vgw.disk.device.usage_vgw:
+          properties:
+            unit: B
+            description: The physical size in bytes of the image container on the host per device
+            type: Gauge
+            category: disk
+        abstract_vgw.disk.write.bytes.rate_vgw:
+          properties:
+            unit: B/s
+            description: Average rate of writes
+            type: Gauge
+            category: compute
+        abstract_vgw.disk.device.write.bytes_vgw:
+          properties:
+            unit: B
+            description: Volume of writes
+            type: Cumulative
+            category: disk
+        abstract_vgw.memory.usage_vgw:
+          properties:
+            unit: MB
+            description: Volume of RAM used by the instance from the amount of its allocated memory
+            type: Gauge
+            category: compute
+        abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_2_port:
+          properties:
+            unit: packet/s
+            description: Average rate of outgoing packets
+            type: Gauge
+            category: network
+        abstract_vgw.disk.root.size_vgw:
+          properties:
+            unit: GB
+            description: Size of root disk
+            type: Gauge
+            category: compute
+        abstract_vgw.disk.ephemeral.size_vgw:
+          properties:
+            unit: GB
+            description: Size of ephemeral disk
+            type: Gauge
+            category: compute
+        abstract_vgw.disk.device.capacity_vgw:
+          properties:
+            unit: B
+            description: The amount of disk per device that the instance can see
+            type: Gauge
+            category: disk
+        abstract_vgw.disk.read.bytes.rate_vgw:
+          properties:
+            unit: B/s
+            description: Average rate of reads
+            type: Gauge
+            category: compute
+        abstract_vgw.endpoint_vgw:
+          properties:
+            secure: true
+        abstract_vgw.network.outpoing.packets_vgw_vgw_private_2_port:
+          properties:
+            unit: packet
+            description: Number of outgoing packets
+            type: Cumulative
+            category: network
+        abstract_vgw.vcpus_vgw:
+          properties:
+            unit: vcpu
+            description: Number of virtual CPUs allocated to the instance
+            type: Gauge
+            category: compute
+        abstract_vgw.network.outgoing.bytes_vgw_vgw_private_2_port:
+          properties:
+            unit: B
+            description: Number of outgoing bytes
+            type: Cumulative
+            category: network
+        abstract_vgw.network.incoming.packets_vgw_vgw_private_1_port:
+          properties:
+            unit: packet
+            description: Number of incoming packets
+            type: Cumulative
+            category: network
+        abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_2_port:
+          properties:
+            unit: packet/s
+            description: Average rate of incoming packets
+            type: Gauge
+            category: network
+        abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_1_port:
+          properties:
+            unit: B/s
+            description: Average rate of incoming bytes
+            type: Gauge
+            category: network
+    BRG_2019-10-01 03:23:27.409 0:
+      type: org.openecomp.resource.vf.Brg2019100103:23:27409
+      metadata:
+        invariantUUID: 05a482b5-ec0d-45cb-ae95-397ce6765c9e
+        UUID: 12519dd0-46ca-46da-9dcc-c6155b2a6d15
+        customizationUUID: aff592e4-cfc7-43ce-abea-f026b56995ab
+        version: '1.0'
+        name: BRG_2019-10-01 03:23:27.409
+        description: Alloted Resource BRG
+        type: VF
+        category: Allotted Resource
+        subcategory: BRG
+        resourceVendor: ONAP
+        resourceVendorRelease: '1.0'
+        resourceVendorModelNumber: ''
+      properties:
+        nf_naming:
+          ecomp_generated_naming: true
+        skip_post_instantiation_configuration: true
+        multi_stage_design: 'false'
+        availability_zone_max_count: 1
+        nf_role: BRG
+        nf_type: BRG
+    TunnelXConn_2019-10-01 03:23:27.409 0:
+      type: org.openecomp.resource.vf.Tunnelxconn2019100103:23:27409
+      metadata:
+        invariantUUID: 3a367ac8-5dff-4325-a0e7-9e0299d22152
+        UUID: 93d3e01d-4f8c-4a60-99f2-26b64c69bc11
+        customizationUUID: 4e0249f0-5118-4323-b5e9-0783ad1123ba
+        version: '1.0'
+        name: TunnelXConn_2019-10-01 03:23:27.409
+        description: Alloted Resource TunnelXConn
+        type: VF
+        category: Allotted Resource
+        subcategory: TunnelXConn
+        resourceVendor: ONAP
+        resourceVendorRelease: '1.0'
+        resourceVendorModelNumber: ''
+      properties:
+        nf_naming:
+          ecomp_generated_naming: true
+        skip_post_instantiation_configuration: true
+        multi_stage_design: 'false'
+        availability_zone_max_count: 1
+        nf_role: TunnelXConn
+        nf_type: TunnelXConn
+  groups:
+    vcpe_vgwbf175ab04fa20..VcpeVgwBf175ab04fa2..base_vcpe_vgw..module-0:
+      type: org.openecomp.groups.VfModule
+      metadata:
+        vfModuleModelName: VcpeVgwBf175ab04fa2..base_vcpe_vgw..module-0
+        vfModuleModelInvariantUUID: 7caf746f-46c6-4e47-bbfc-9374b1c17ba1
+        vfModuleModelUUID: a4654496-9862-47e4-9640-d84708ea8bfb
+        vfModuleModelVersion: '1'
+        vfModuleModelCustomizationUUID: ddd095d2-c2ba-48fe-90f4-e3f6fc806d7e
+      properties:
+        min_vf_module_instances: 1
+        vf_module_label: base_vcpe_vgw
+        max_vf_module_instances: 1
+        vf_module_type: Base
+        isBase: true
+        initial_count: 1
+        volume_group: false
+  substitution_mappings:
+    node_type: org.openecomp.service.Vcperescust201910012364
+    capabilities:
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.bytes_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.packets_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.feature_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.requests.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.write.requests.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.iops_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.iops_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.requests.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.read.requests.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.attachment_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.attachment_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.requests_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.write.requests_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.endpoint_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.endpoint_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.bytes_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.latency_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.latency_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.bytes_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.bytes_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.write.bytes_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.memory_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.memory_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.requests.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.write.requests.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.read.bytes.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.read.bytes.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outpoing.packets_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outpoing.packets_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.feature_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.port_mirroring_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.port_mirroring_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.binding_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.attachment_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.attachment_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.iops_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.iops_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.forwarder_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.forwarder_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.bytes_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.ephemeral.size_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.ephemeral.size_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.port_mirroring_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.port_mirroring_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.packets_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.host_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.host_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.memory.usage_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.memory.usage_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outpoing.packets_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outpoing.packets_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.bytes.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.write.bytes.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.attachment_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.attachment_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.binding_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.read.bytes_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.read.bytes_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.usage_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.usage_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.bytes_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.cpu_util_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.cpu_util_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.memory.resident_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.memory.resident_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.read.requests_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.read.requests_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.binding_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.usage_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.usage_vgw
+      brg_2019100103:23:274090.brg.feature:
+      - BRG_2019-10-01 03:23:27.409 0
+      - brg.feature
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.latency_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.latency_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.cpu_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.cpu_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.instance_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.instance_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.allocation_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.allocation_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.bytes.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.write.bytes.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.capacity_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.capacity_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.forwarder_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.forwarder_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.requests_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.read.requests_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.allocation_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.allocation_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.root.size_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.root.size_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.packets_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.feature_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outpoing.packets_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outpoing.packets_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.requests_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.write.requests_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.binding_vgw_vgw_private_2_port
+      tunnelxconn_2019100103:23:274090.tunnelxconn.feature:
+      - TunnelXConn_2019-10-01 03:23:27.409 0
+      - tunnelxconn.feature
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.bytes_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.read.bytes_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.network.outgoing.bytes_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.scalable_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.scalable_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.bytes_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.write.bytes_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.bytes.rate_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.device.read.bytes.rate_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.feature_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.os_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.os_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.vcpus_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.vcpus_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.forwarder_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.forwarder_vgw_vgw_private_0_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.port_mirroring_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.port_mirroring_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.cpu.delta_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.cpu.delta_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.disk.capacity_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.disk.capacity_vgw
+    requirements:
+      vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.dependency_vgw_vgw_private_1_port
+      tunnelxconn_2019100103:23:274090.tunnelxconn.service_dependency:
+      - TunnelXConn_2019-10-01 03:23:27.409 0
+      - tunnelxconn.service_dependency
+      vcpe_vgwbf175ab04fa20.abstract_vgw.local_storage_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.local_storage_vgw
+      vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.dependency_vgw
+      brg_2019100103:23:274090.brg.service_dependency:
+      - BRG_2019-10-01 03:23:27.409 0
+      - brg.service_dependency
+      vcpe_vgwbf175ab04fa20.abstract_vgw.link_vgw_vgw_private_1_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.link_vgw_vgw_private_1_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.dependency_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.link_vgw_vgw_private_2_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.link_vgw_vgw_private_2_port
+      vcpe_vgwbf175ab04fa20.abstract_vgw.link_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.link_vgw_vgw_private_0_port
+      tunnelxconn_2019100103:23:274090.tunnelxconn.dependency:
+      - TunnelXConn_2019-10-01 03:23:27.409 0
+      - tunnelxconn.dependency
+      brg_2019100103:23:274090.brg.dependency:
+      - BRG_2019-10-01 03:23:27.409 0
+      - brg.dependency
+      vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw_vgw_private_0_port:
+      - vCPE_vgw bf175ab0-4fa2 0
+      - abstract_vgw.dependency_vgw_vgw_private_0_port
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json
new file mode 100644
index 0000000..e74c3c0
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json
@@ -0,0 +1,25 @@
+[
+  {
+    "vfModuleModelName": "VcpeVgwBf175ab04fa2..base_vcpe_vgw..module-0",
+    "vfModuleModelInvariantUUID": "7caf746f-46c6-4e47-bbfc-9374b1c17ba1",
+    "vfModuleModelVersion": "1",
+    "vfModuleModelUUID": "a4654496-9862-47e4-9640-d84708ea8bfb",
+    "vfModuleModelCustomizationUUID": "ddd095d2-c2ba-48fe-90f4-e3f6fc806d7e",
+    "isBase": true,
+    "artifacts": [
+      "e3a33b76-1f8a-44ba-808b-8a4c79e4b44a",
+      "9b73763b-0f60-47c3-8939-cf2f819bc75a"
+    ],
+    "properties": {
+      "min_vf_module_instances": "1",
+      "vf_module_label": "base_vcpe_vgw",
+      "max_vf_module_instances": "1",
+      "vfc_list": "",
+      "vf_module_description": "",
+      "vf_module_type": "Base",
+      "availability_zone_count": "",
+      "volume_group": "false",
+      "initial_count": "1"
+    }
+  }
+]
\ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml
new file mode 100644
index 0000000..67bbea4
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml
@@ -0,0 +1 @@
+<vendor-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>6dccd115-ce6a-4b1a-88aa</vendor-name><entitlement-pool-list><entitlement-pool><entitlement-pool-invariant-uuid>40d4819966b04a28aac2db35f2d84755</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86EFCDA3995C4232B96C833E97804D4F</entitlement-pool-uuid><version>1.0</version><name>ce52c558-b095-4a8f-84f3</name><description>vendor entitlement pool</description><increments/><manufacturer-reference-number>111111</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><version>1.0</version><name>c712eb11-eddd-459f-a383</name><description>vendor license key group</description><type>Universal</type><increments/><manufacturerReferenceNumber>11111</manufacturerReferenceNumber><license-key-group-invariant-uuid>fc8a672de0d041ecb7637b1ae5446e99</license-key-group-invariant-uuid><license-key-group-uuid>DF4EA9695A4943ABB8437F244FC6623B</license-key-group-uuid><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></license-key-group></license-key-group-list></vendor-license-model>
\ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml
new file mode 100644
index 0000000..fb15c3a
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml
@@ -0,0 +1 @@
+<vf-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>6dccd115-ce6a-4b1a-88aa</vendor-name><vf-id>8228aa3775634529bb6f86e77b0e40d7</vf-id><feature-group-list><feature-group><entitlement-pool-list><entitlement-pool><name>ce52c558-b095-4a8f-84f3</name><description>vendor entitlement pool</description><increments/><entitlement-pool-invariant-uuid>40d4819966b04a28aac2db35f2d84755</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86EFCDA3995C4232B96C833E97804D4F</entitlement-pool-uuid><manufacturer-reference-number>111111</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><name>c712eb11-eddd-459f-a383</name><description>vendor license key group</description><type>Universal</type><increments/><license-key-group-invariant-uuid>fc8a672de0d041ecb7637b1ae5446e99</license-key-group-invariant-uuid><license-key-group-uuid>DF4EA9695A4943ABB8437F244FC6623B</license-key-group-uuid><manufacturer-reference-number>11111</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></license-key-group></license-key-group-list><name>ec13e8a7-f181-4d96-b821</name><part-number>123abc456</part-number><feature-group-uuid>7b85e31faa0541afa21a60b85907aa40</feature-group-uuid><description>vendor feature group</description></feature-group></feature-group-list></vf-license-model>
\ No newline at end of file
diff --git a/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/bpmn/infrastructure/process/CreateVcpeResCustServiceSimplifiedTest.java b/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/bpmn/infrastructure/process/CreateVcpeResCustServiceSimplifiedTest.java
index 5b095a9..1cd8295 100644
--- a/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/bpmn/infrastructure/process/CreateVcpeResCustServiceSimplifiedTest.java
+++ b/bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/bpmn/infrastructure/process/CreateVcpeResCustServiceSimplifiedTest.java
@@ -43,6 +43,7 @@
 import org.onap.so.BaseBPMNTest;
 import org.onap.so.GrpcNettyServer;
 import org.onap.so.bpmn.mock.FileUtil;
+import org.onap.so.client.aai.AAIVersion;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,7 +61,7 @@
     private static final int DMAAP_DELAY_TIME_MS = 2000;
 
     private static final String TEST_PROCESSINSTANCE_KEY = "CreateVcpeResCustService_simplified";
-
+    private static final AAIVersion VERSION = AAIVersion.LATEST;
     private String testBusinessKey;
     private String requestObject;
     private String responseObject;
@@ -230,7 +231,8 @@
 
         String aaiResponse = "{\n" + "  \"results\": [\n" + "    {\n"
                 + "      \"resource-type\": \"service-instance\",\n"
-                + "      \"resource-link\": \"https://localhost:8443/aai/v15/business/customers/customer/ADemoCustomerInCiti/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/key3\"\n"
+                + "      \"resource-link\": \"https://localhost:8443/aai/" + VERSION
+                + "/business/customers/customer/ADemoCustomerInCiti/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/key3\"\n"
                 + "    }\n" + "  ]\n" + "}";
 
         String aaiPnfEntry = "{  \n" + "   \"pnf-name\":\"PNFDemo\",\n" + "   \"pnf-id\":\"testtest\",\n"
@@ -240,52 +242,55 @@
         /**
          * Get the AAI entry for globalCustomerId as specified in the request file.
          */
-        wireMockServer.stubFor(
-                get(urlPathMatching("/aai/v15/business/customers/customer/ADemoCustomerInCiti.*")).willReturn(ok()));
+        wireMockServer
+                .stubFor(get(urlPathMatching("/aai/" + VERSION + "/business/customers/customer/ADemoCustomerInCiti.*"))
+                        .willReturn(ok()));
 
         /**
          * PUT the service to AAI with globalCustomerId, service type as specified in the request file. Service instance
          * id is generated during runtime, REGEX is used to represent the information.
          */
-        wireMockServer.stubFor(put(urlPathMatching(
-                "/aai/v15/business/customers/customer/ADemoCustomerInCiti/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/.*")));
+        wireMockServer.stubFor(put(urlPathMatching("/aai/" + VERSION
+                + "/business/customers/customer/ADemoCustomerInCiti/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/.*")));
 
-        wireMockServer.stubFor(get(urlPathMatching(
-                "/aai/v15/business/customers/customer/ADemoCustomerInCiti/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/.*"))
+        wireMockServer.stubFor(get(urlPathMatching("/aai/" + VERSION
+                + "/business/customers/customer/ADemoCustomerInCiti/service-subscriptions/service-subscription/vCPE/service-instances/service-instance/.*"))
                         .willReturn(okJson(aaiResponse)));
 
         /**
          * Get the service from AAI
          */
-        wireMockServer.stubFor(get(urlPathMatching("/aai/v15/nodes/service-instances/service-instance/.*"))
+        wireMockServer.stubFor(get(urlPathMatching("/aai/" + VERSION + "/nodes/service-instances/service-instance/.*"))
                 .willReturn(okJson(aaiResponse)));
 
         /**
          * Put the project as specified in the request file to AAI.
          */
-        wireMockServer.stubFor(put(urlEqualTo("/aai/v15/business/projects/project/Project-Demonstration")));
+        wireMockServer.stubFor(put(urlEqualTo("/aai/" + VERSION + "/business/projects/project/Project-Demonstration")));
 
         /**
          * GET the project as specified in the request file to AAI.
          */
-        wireMockServer.stubFor(
-                get(urlPathMatching("/aai/v15/business/projects/project/Project-Demonstration")).willReturn(ok()));
+        wireMockServer
+                .stubFor(get(urlPathMatching("/aai/" + VERSION + "/business/projects/project/Project-Demonstration"))
+                        .willReturn(ok()));
 
         /**
          * PUT the PNF correlation ID to AAI.
          */
-        wireMockServer.stubFor(put(urlEqualTo("/aai/v15/network/pnfs/pnf/PNFDemo")));
+        wireMockServer.stubFor(put(urlEqualTo("/aai/" + VERSION + "/network/pnfs/pnf/PNFDemo")));
 
         /**
          * Get the PNF entry from AAI.
          */
-        wireMockServer.stubFor(get(urlEqualTo("/aai/v15/network/pnfs/pnf/PNFDemo")).willReturn(okJson(aaiPnfEntry)));
+        wireMockServer.stubFor(
+                get(urlEqualTo("/aai/" + VERSION + "/network/pnfs/pnf/PNFDemo")).willReturn(okJson(aaiPnfEntry)));
 
         /**
          * Put the PNF relationship
          */
-        wireMockServer.stubFor(put(
-                urlEqualTo("/aai/v15/business/projects/project/Project-Demonstration/relationship-list/relationship")));
+        wireMockServer.stubFor(put(urlEqualTo("/aai/" + VERSION
+                + "/business/projects/project/Project-Demonstration/relationship-list/relationship")));
     }
 
     /**
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImpl.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImpl.java
index 32516c1..41649dc 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImpl.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImpl.java
@@ -20,7 +20,9 @@
 
 package org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks;
 
+import com.google.common.base.Optional;
 import org.onap.so.rest.exceptions.InvalidRestRequestException;
+import org.onap.so.rest.exceptions.HttpResouceNotFoundException;
 import org.onap.so.rest.exceptions.RestProcessingException;
 import org.onap.so.rest.service.HttpRestServiceProvider;
 import org.onap.vnfmadapter.v1.model.CreateVnfRequest;
@@ -33,7 +35,6 @@
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
-import com.google.common.base.Optional;
 
 /**
  * @author waqas.ikram@est.tech
@@ -82,7 +83,8 @@
             }
 
             return Optional.of(createVnfResponse);
-        } catch (final RestProcessingException | InvalidRestRequestException httpInvocationException) {
+        } catch (final RestProcessingException | InvalidRestRequestException
+                | HttpResouceNotFoundException httpInvocationException) {
             LOGGER.error("Unexpected error while processing create and instantiation request", httpInvocationException);
             return Optional.absent();
         }
@@ -144,7 +146,8 @@
                 return Optional.absent();
             }
             return Optional.of(response.getBody());
-        } catch (final RestProcessingException | InvalidRestRequestException httpInvocationException) {
+        } catch (final RestProcessingException | InvalidRestRequestException
+                | HttpResouceNotFoundException httpInvocationException) {
             LOGGER.error("Unexpected error while processing job request", httpInvocationException);
             throw httpInvocationException;
         }
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java
index 6ddb292..a41c79b 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapper.java
@@ -96,6 +96,10 @@
             genericResourceApiSvcAction = GenericResourceApiSvcActionEnumeration.UNASSIGN;
             requestAction = GenericResourceApiRequestActionEnumeration.DELETEVFMODULEINSTANCE;
             includeModelInformation = false;
+        } else if (svcAction.equals(SDNCSvcAction.CHANGE_ASSIGN)) {
+            genericResourceApiSvcAction = GenericResourceApiSvcActionEnumeration.CHANGEASSIGN;
+            requestAction = GenericResourceApiRequestActionEnumeration.CREATEVFMODULEINSTANCE;
+            includeModelInformation = true;
         }
 
         String sdncReqId = UUID.randomUUID().toString();
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksIT.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksIT.java
index 8328e0e..21b472b 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksIT.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasksIT.java
@@ -40,6 +40,7 @@
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestParameters;
+import org.onap.so.client.aai.AAIVersion;
 import org.onap.so.db.catalog.beans.ControllerSelectionReference;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -68,21 +69,22 @@
         final String aaiVnfJson =
                 new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiGenericVnfWithVservers.json")));
         wireMockServer.stubFor(
-                get(urlEqualTo("/aai/v15/network/generic-vnfs/generic-vnf/testVnfId1?depth=all")).willReturn(aResponse()
-                        .withHeader("Content-Type", "application/json").withBody(aaiVnfJson).withStatus(200)));
+                get(urlEqualTo("/aai/" + AAIVersion.LATEST + "/network/generic-vnfs/generic-vnf/testVnfId1?depth=all"))
+                        .willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(aaiVnfJson)
+                                .withStatus(200)));
 
         final String aaiVserverJson =
                 new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiVserverFullQueryResponse.json")));
-        wireMockServer.stubFor(get(urlEqualTo(
-                "/aai/v15/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/mtn23a/tenants/tenant/e6beab145f6b49098277ac163ac1b4f3/vservers/vserver/48bd7f11-408f-417c-b834-b41c1b98f7d7"))
+        wireMockServer.stubFor(get(urlEqualTo("/aai/" + AAIVersion.LATEST
+                + "/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/mtn23a/tenants/tenant/e6beab145f6b49098277ac163ac1b4f3/vservers/vserver/48bd7f11-408f-417c-b834-b41c1b98f7d7"))
                         .willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(aaiVserverJson)
                                 .withStatus(200)));
-        wireMockServer.stubFor(get(urlEqualTo(
-                "/aai/v15/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/mtn23a/tenants/tenant/e6beab145f6b49098277ac163ac1b4f3/vservers/vserver/1b3f44e5-d96d-4aac-bd9a-310e8cfb0af5"))
+        wireMockServer.stubFor(get(urlEqualTo("/aai/" + AAIVersion.LATEST
+                + "/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/mtn23a/tenants/tenant/e6beab145f6b49098277ac163ac1b4f3/vservers/vserver/1b3f44e5-d96d-4aac-bd9a-310e8cfb0af5"))
                         .willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(aaiVserverJson)
                                 .withStatus(200)));
-        wireMockServer.stubFor(get(urlEqualTo(
-                "/aai/v15/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/mtn23a/tenants/tenant/e6beab145f6b49098277ac163ac1b4f3/vservers/vserver/14551849-1e70-45cd-bc5d-a256d49548a2"))
+        wireMockServer.stubFor(get(urlEqualTo("/aai/" + AAIVersion.LATEST
+                + "/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/mtn23a/tenants/tenant/e6beab145f6b49098277ac163ac1b4f3/vservers/vserver/14551849-1e70-45cd-bc5d-a256d49548a2"))
                         .willReturn(aResponse().withHeader("Content-Type", "application/json").withBody(aaiVserverJson)
                                 .withStatus(200)));
 
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java
index b71ddba..2fd684e 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/sdnc/mapper/VfModuleTopologyOperationRequestMapperTest.java
@@ -334,4 +334,69 @@
                 serviceInstance, customer, cloudRegion, requestContext, null, new URI("http://localhost:8080"));
     }
 
+    @Test
+    public void reqMapperChangeAssignTest() throws Exception {
+
+        // prepare and set service instance
+        ServiceInstance serviceInstance = new ServiceInstance();
+        serviceInstance.setServiceInstanceId("serviceInstanceId");
+        ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
+        modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
+        modelInfoServiceInstance.setModelName("serviceModelName");
+        modelInfoServiceInstance.setModelUuid("serviceModelUuid");
+        modelInfoServiceInstance.setModelVersion("serviceModelVersion");
+
+        serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
+        // prepare Customer object
+        Customer customer = new Customer();
+        customer.setGlobalCustomerId("globalCustomerId");
+        customer.setServiceSubscription(new ServiceSubscription());
+        // set Customer on service instance
+        customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
+        //
+        RequestContext requestContext = new RequestContext();
+        RequestParameters requestParameters = new RequestParameters();
+        HashMap<String, Object> userParams1 = new HashMap<>();
+        userParams1.put("key1", "value1");
+        List<Map<String, Object>> userParams = new ArrayList<>();
+        userParams.add(userParams1);
+
+        requestParameters.setUserParams(userParams);
+        requestContext.setRequestParameters(requestParameters);
+        requestContext.setProductFamilyId("productFamilyId");
+
+        GenericVnf vnf = new GenericVnf();
+        vnf.setVnfId("testVnfId");
+        vnf.setVnfType("testVnfType");
+        ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
+        modelInfoGenericVnf.setModelInvariantUuid("vnfModelInvariantUuid");
+        modelInfoGenericVnf.setModelName("vnfModelName");
+        modelInfoGenericVnf.setModelVersion("vnfModelVersion");
+        modelInfoGenericVnf.setModelUuid("vnfModelUuid");
+        modelInfoGenericVnf.setModelCustomizationUuid("vnfModelCustomizationUuid");
+        vnf.setModelInfoGenericVnf(modelInfoGenericVnf);
+
+        VfModule vfModule = new VfModule();
+        vfModule.setVfModuleId("testVfModuleId");
+        vfModule.setVfModuleName("testVfModuleName");
+        ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
+        modelInfoVfModule.setModelInvariantUUID("vfModuleModelInvariantUuid");
+        modelInfoVfModule.setModelName("vfModuleModelName");
+        modelInfoVfModule.setModelVersion("vfModuleModelVersion");
+        modelInfoVfModule.setModelUUID("vfModuleModelUuid");
+        modelInfoVfModule.setModelCustomizationUUID("vfModuleModelCustomizationUuid");
+        vfModule.setModelInfoVfModule(modelInfoVfModule);
+
+        CloudRegion cloudRegion = new CloudRegion();
+
+        GenericResourceApiVfModuleOperationInformation vfModuleSDNCrequest = mapper.reqMapper(
+                SDNCSvcOperation.VF_MODULE_TOPOLOGY_OPERATION, SDNCSvcAction.CHANGE_ASSIGN, vfModule, null, vnf,
+                serviceInstance, customer, cloudRegion, requestContext, null, new URI("http://localhost:8080"));
+
+        assertEquals("vnfModelCustomizationUuid",
+                vfModuleSDNCrequest.getVnfInformation().getOnapModelInformation().getModelCustomizationUuid());
+        assertEquals("vfModuleModelCustomizationUuid",
+                vfModuleSDNCrequest.getVfModuleInformation().getOnapModelInformation().getModelCustomizationUuid());
+    }
+
 }
diff --git a/common/pom.xml b/common/pom.xml
index 1f7f044..cd6f016 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -58,7 +58,7 @@
     <dependency>
       <groupId>org.onap.aai.schema-service</groupId>
       <artifactId>aai-schema</artifactId>
-      <version>1.0.0</version>
+      <version>1.0.5</version>
     </dependency>
     <dependency>
       <groupId>org.modelmapper</groupId>
diff --git a/common/src/main/java/org/onap/so/client/aai/AAIVersion.java b/common/src/main/java/org/onap/so/client/aai/AAIVersion.java
index 91030d8..3a59b2b3 100644
--- a/common/src/main/java/org/onap/so/client/aai/AAIVersion.java
+++ b/common/src/main/java/org/onap/so/client/aai/AAIVersion.java
@@ -23,7 +23,7 @@
 import org.onap.so.client.graphinventory.GraphInventoryVersion;
 
 public enum AAIVersion implements GraphInventoryVersion {
-    V13("v13"), V14("v14"), V15("v15");
+    V13("v13"), V14("v14"), V15("v15"), V16("v16"), V17("v17");
 
     public static final AAIVersion LATEST = AAIVersion.values()[AAIVersion.values().length - 1];
     private final String value;
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java b/common/src/main/java/org/onap/so/rest/exceptions/HttpResouceNotFoundException.java
similarity index 70%
rename from vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java
rename to common/src/main/java/org/onap/so/rest/exceptions/HttpResouceNotFoundException.java
index 43c2017..e7b7b72 100644
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfOperationRepository.java
+++ b/common/src/main/java/org/onap/so/rest/exceptions/HttpResouceNotFoundException.java
@@ -18,16 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.svnfm.simulator.repository;
+package org.onap.so.rest.exceptions;
 
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.springframework.data.repository.CrudRepository;
 
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-public interface VnfOperationRepository extends CrudRepository<VnfOperation, String> {
+public class HttpResouceNotFoundException extends RuntimeException {
 
+    private static final long serialVersionUID = 9007892558312387355L;
+
+    public HttpResouceNotFoundException(final String message) {
+        super(message);
+    }
 }
diff --git a/common/src/main/java/org/onap/so/rest/exceptions/RestProcessingException.java b/common/src/main/java/org/onap/so/rest/exceptions/RestProcessingException.java
index e8ce00c..5d62d84 100644
--- a/common/src/main/java/org/onap/so/rest/exceptions/RestProcessingException.java
+++ b/common/src/main/java/org/onap/so/rest/exceptions/RestProcessingException.java
@@ -26,12 +26,28 @@
 public class RestProcessingException extends RuntimeException {
 
     private static final long serialVersionUID = 16862313537198441L;
+    private final int statusCode;
 
     public RestProcessingException(final String message) {
         super(message);
+        statusCode = 0;
     }
 
     public RestProcessingException(final String message, final Throwable cause) {
+        this(message, cause, 0);
+    }
+
+    public RestProcessingException(final String message, final Throwable cause, final int statusCode) {
         super(message, cause);
+        this.statusCode = statusCode;
+    }
+
+    /**
+     * Get the status code from the response to the rest request, if available
+     * 
+     * @return the status code, or 0 if not available
+     */
+    public int getStatusCode() {
+        return statusCode;
     }
 }
diff --git a/common/src/main/java/org/onap/so/rest/service/HttpRestServiceProviderImpl.java b/common/src/main/java/org/onap/so/rest/service/HttpRestServiceProviderImpl.java
index a627e82..b82d73b 100644
--- a/common/src/main/java/org/onap/so/rest/service/HttpRestServiceProviderImpl.java
+++ b/common/src/main/java/org/onap/so/rest/service/HttpRestServiceProviderImpl.java
@@ -23,6 +23,7 @@
 import com.google.common.base.Optional;
 import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
 import org.onap.so.configuration.rest.HttpHeadersProvider;
+import org.onap.so.rest.exceptions.HttpResouceNotFoundException;
 import org.onap.so.rest.exceptions.InvalidRestRequestException;
 import org.onap.so.rest.exceptions.RestProcessingException;
 import org.slf4j.Logger;
@@ -32,7 +33,7 @@
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestClientException;
 import org.springframework.web.client.RestTemplate;
 
@@ -116,15 +117,18 @@
         try {
             return restTemplate.exchange(url, httpMethod, request, clazz);
 
-        } catch (final HttpClientErrorException httpClientErrorException) {
+        } catch (final HttpStatusCodeException httpStatusCodeException) {
             final String message = "Unable to invoke HTTP " + httpMethod + " using url: " + url + ", Response: "
-                    + httpClientErrorException.getRawStatusCode();
-            LOGGER.error(message, httpClientErrorException);
-            final int rawStatusCode = httpClientErrorException.getRawStatusCode();
-            if (rawStatusCode == HttpStatus.BAD_REQUEST.value() || rawStatusCode == HttpStatus.NOT_FOUND.value()) {
+                    + httpStatusCodeException.getRawStatusCode();
+            LOGGER.error(message, httpStatusCodeException);
+            final int rawStatusCode = httpStatusCodeException.getRawStatusCode();
+            if (rawStatusCode == HttpStatus.BAD_REQUEST.value()) {
                 throw new InvalidRestRequestException("No result found for given url: " + url);
+            } else if (rawStatusCode == HttpStatus.NOT_FOUND.value()) {
+                throw new HttpResouceNotFoundException("No result found for given url: " + url);
             }
-            throw new RestProcessingException("Unable to invoke HTTP " + httpMethod + " using URL: " + url);
+            throw new RestProcessingException("Unable to invoke HTTP " + httpMethod + " using URL: " + url,
+                    httpStatusCodeException, rawStatusCode);
 
         } catch (final RestClientException restClientException) {
             LOGGER.error("Unable to invoke HTTP POST using url: {}", url, restClientException);
diff --git a/common/src/test/java/org/onap/so/rest/service/HttpRestServiceProviderImplTest.java b/common/src/test/java/org/onap/so/rest/service/HttpRestServiceProviderImplTest.java
index 978c016..72bacdf 100644
--- a/common/src/test/java/org/onap/so/rest/service/HttpRestServiceProviderImplTest.java
+++ b/common/src/test/java/org/onap/so/rest/service/HttpRestServiceProviderImplTest.java
@@ -33,6 +33,7 @@
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.rest.exceptions.InvalidRestRequestException;
+import org.onap.so.rest.exceptions.HttpResouceNotFoundException;
 import org.onap.so.rest.exceptions.RestProcessingException;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpMethod;
@@ -116,7 +117,7 @@
 
     }
 
-    @Test(expected = InvalidRestRequestException.class)
+    @Test(expected = HttpResouceNotFoundException.class)
     public void test_get_ThrowsInvalidRestRequestExceptionifHttpClientErrorExceptionWithHttpStatusNotFoundHttpStatus() {
         assertGetErrorScenario(HttpStatus.NOT_FOUND);
     }
@@ -239,7 +240,7 @@
 
     }
 
-    @Test(expected = InvalidRestRequestException.class)
+    @Test(expected = HttpResouceNotFoundException.class)
     public void test_post_ThrowsInvalidRestRequestExceptionifHttpClientErrorExceptionWithHttpStatusNotFoundHttpStatus() {
         assertPostErrorScenario(HttpStatus.NOT_FOUND);
     }
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
index e60ef97..8754673 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
@@ -65,7 +65,6 @@
 import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
-import org.onap.so.logger.LogConstants;
 import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -767,7 +766,8 @@
     }
 
     public List<CloudSite> getCloudSites() {
-        return this.getMultipleResources(cloudSiteClient, UriBuilder.fromUri(endpoint + CLOUD_SITE).build());
+        return this.getMultipleResources(cloudSiteClient,
+                UriBuilder.fromUri(endpoint + CLOUD_SITE).queryParam("size", "1000").build());
     }
 
 
diff --git a/packages/docker/pom.xml b/packages/docker/pom.xml
index 611e2d2..3f03357 100644
--- a/packages/docker/pom.xml
+++ b/packages/docker/pom.xml
@@ -331,31 +331,6 @@
 								</assembly>
 							</build>
 						</image>
-						<image>
-							<name>${docker.image.prefix}/vnfm-simulator</name>
-							<build>
-								<cleanup>try</cleanup>
-								<dockerFileDir>docker-files</dockerFileDir>
-								<dockerFile>Dockerfile.so-app</dockerFile>
-								<tags>
-									<tag>${project.version}</tag>
-									<tag>${project.version}-${maven.build.timestamp}</tag>
-									<tag>${project.docker.latesttag.version}</tag>
-								</tags>
-								<assembly>
-									<inline>
-										<dependencySets>
-											<dependencySet>
-												<includes>
-													<include>org.onap.so.vnfm:vnfm-service</include>
-												</includes>
-												<outputFileNameMapping>app.jar</outputFileNameMapping>
-											</dependencySet>
-										</dependencySets>
-									</inline>
-								</assembly>
-							</build>
-						</image>
 					</images>
 				</configuration>
 
@@ -387,7 +362,7 @@
 							<goal>push</goal>
 						</goals>
 						<configuration>
-							<image>${docker.image.prefix}/catalog-db-adapter,${docker.image.prefix}/request-db-adapter,${docker.image.prefix}/sdnc-adapter,${docker.image.prefix}/openstack-adapter,${docker.image.prefix}/vfc-adapter,${docker.image.prefix}/sdc-controller,${docker.image.prefix}/bpmn-infra,${docker.image.prefix}/api-handler-infra,${docker.image.prefix}/so-monitoring,${docker.image.prefix}/vnfm-simulator</image>
+							<image>${docker.image.prefix}/catalog-db-adapter,${docker.image.prefix}/request-db-adapter,${docker.image.prefix}/sdnc-adapter,${docker.image.prefix}/openstack-adapter,${docker.image.prefix}/vfc-adapter,${docker.image.prefix}/sdc-controller,${docker.image.prefix}/bpmn-infra,${docker.image.prefix}/api-handler-infra,${docker.image.prefix}/so-monitoring</image>
 						</configuration>
 					</execution>
 				</executions>
@@ -455,10 +430,5 @@
 			<artifactId>so-monitoring-service</artifactId>
 			<version>${project.version}</version>
 		</dependency>
-		<dependency>
-			<groupId>org.onap.so.vnfm</groupId>
-			<artifactId>vnfm-service</artifactId>
-			<version>${project.version}</version>
-		</dependency>
 	</dependencies>
 </project>
diff --git a/packages/docker/src/main/docker/docker-files/scripts/start-app.sh b/packages/docker/src/main/docker/docker-files/scripts/start-app.sh
index cb2f35b..cb5586d 100644
--- a/packages/docker/src/main/docker/docker-files/scripts/start-app.sh
+++ b/packages/docker/src/main/docker/docker-files/scripts/start-app.sh
@@ -52,10 +52,6 @@
 	ln -s ${LOG_PATH} MONITORING
 fi
 
-if [ ${APP} = "vnfm-simulator" ]; then
-	ln -s ${LOG_PATH} SIMULATOR
-fi
-
 if [ ${APP} = "openstack-adapter" ]; then
 	export DISABLE_SNI="-Djsse.enableSNIExtension=false"
 fi
diff --git a/pom.xml b/pom.xml
index ac9126b..9d4707b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,6 @@
     <module>cloudify-client</module>
     <module>cxf-logging</module>
     <module>so-monitoring</module>
-    <module>vnfm-simulator</module>
     <module>packages</module>
   </modules>
   <properties>
@@ -638,17 +637,17 @@
     <dependency>
       <groupId>org.onap.logging-analytics</groupId>
       <artifactId>logging-slf4j</artifactId>
-      <version>1.5.0</version>
+      <version>1.5.1</version>
     </dependency>
     <dependency>
       <groupId>org.onap.logging-analytics</groupId>
       <artifactId>logging-filter-base</artifactId>
-      <version>1.5.0</version>
+      <version>1.5.1</version>
     </dependency>
     <dependency>
       <groupId>org.onap.logging-analytics</groupId>
       <artifactId>logging-filter-spring</artifactId>
-      <version>1.5.0</version>
+      <version>1.5.1</version>
     </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
diff --git a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java
index d48d18d..1e5f878 100644
--- a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java
+++ b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java
@@ -19,6 +19,7 @@
  */
 package org.onap.so.monitoring.rest.api;
 
+import com.google.common.base.Optional;
 import java.util.List;
 import java.util.Map;
 import javax.ws.rs.GET;
@@ -39,12 +40,12 @@
 import org.onap.so.monitoring.model.SoInfraRequest;
 import org.onap.so.monitoring.rest.service.CamundaProcessDataServiceProvider;
 import org.onap.so.rest.exceptions.InvalidRestRequestException;
+import org.onap.so.rest.exceptions.HttpResouceNotFoundException;
 import org.onap.so.rest.exceptions.RestProcessingException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import com.google.common.base.Optional;
 
 /**
  * @author waqas.ikram@ericsson.com
@@ -85,7 +86,7 @@
             LOGGER.error("Unable to find process instance id for : " + requestId);
             return Response.status(Status.NO_CONTENT).build();
 
-        } catch (final InvalidRestRequestException extensions) {
+        } catch (final InvalidRestRequestException | HttpResouceNotFoundException extensions) {
             final String message = "Unable to find process instance id for : " + requestId;
             LOGGER.error(message);
             return Response.status(Status.BAD_REQUEST).entity(message).build();
@@ -114,7 +115,7 @@
             LOGGER.error("Unable to find process instance id for : " + processInstanceId);
             return Response.status(Status.NO_CONTENT).build();
 
-        } catch (final InvalidRestRequestException extensions) {
+        } catch (final InvalidRestRequestException | HttpResouceNotFoundException extensions) {
             final String message = "Unable to find process instance id for : " + processInstanceId;
             LOGGER.error(message);
             return Response.status(Status.BAD_REQUEST).entity(message).build();
@@ -143,7 +144,7 @@
             LOGGER.error("Unable to find process definition xml for processDefinitionId: " + processDefinitionId);
             return Response.status(Status.NO_CONTENT).build();
 
-        } catch (final InvalidRestRequestException extensions) {
+        } catch (final InvalidRestRequestException | HttpResouceNotFoundException extensions) {
             final String message =
                     "Unable to find process definition xml for processDefinitionId: {}" + processDefinitionId;
             return Response.status(Status.BAD_REQUEST).entity(message).build();
@@ -166,7 +167,7 @@
             final List<ActivityInstanceDetail> activityInstanceDetails =
                     camundaProcessDataServiceProvider.getActivityInstance(processInstanceId);
             return Response.status(Status.OK).entity(activityInstanceDetails).build();
-        } catch (final InvalidRestRequestException extensions) {
+        } catch (final InvalidRestRequestException | HttpResouceNotFoundException extensions) {
             final String message = "Unable to find activity instance for processInstanceId: " + processInstanceId;
             LOGGER.error(message);
             return Response.status(Status.BAD_REQUEST).entity(message).build();
@@ -189,7 +190,7 @@
             final List<ProcessInstanceVariableDetail> processInstanceVariable =
                     camundaProcessDataServiceProvider.getProcessInstanceVariable(processInstanceId);
             return Response.status(Status.OK).entity(processInstanceVariable).build();
-        } catch (final InvalidRestRequestException extensions) {
+        } catch (final InvalidRestRequestException | HttpResouceNotFoundException extensions) {
             final String message =
                     "Unable to find process instance variables for processInstanceId: " + processInstanceId;
             LOGGER.error(message);
@@ -217,7 +218,7 @@
             LOGGER.info("result size: " + requests.size());
             return Response.status(Status.OK).entity(requests).build();
 
-        } catch (final InvalidRestRequestException extensions) {
+        } catch (final InvalidRestRequestException | HttpResouceNotFoundException extensions) {
             final String message = "Unable to search request for filters: " + filters + ", from: " + startTime
                     + ", to: " + endTime + ", maxResult: " + maxResult;
             LOGGER.error(message);
diff --git a/vnfm-simulator/README.md b/vnfm-simulator/README.md
deleted file mode 100644
index f03fc12..0000000
--- a/vnfm-simulator/README.md
+++ /dev/null
@@ -1 +0,0 @@
-check
diff --git a/vnfm-simulator/packages/docker/pom.xml b/vnfm-simulator/packages/docker/pom.xml
deleted file mode 100644
index 5d67d57..0000000
--- a/vnfm-simulator/packages/docker/pom.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-<!-- ============LICENSE_START======================================================= 
-	Copyright (C) 2019 Nordix Foundation. ================================================================================ 
-	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. SPDX-License-Identifier: 
-	Apache-2.0 ============LICENSE_END========================================================= -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>org.onap.svnfm</groupId>
-		<artifactId>packages</artifactId>
-		<version>1.0.0-SNAPSHOT</version>
-	</parent>
-
-	<packaging>pom</packaging>
-	<artifactId>docker</artifactId>
-	<name>Docker Images</name>
-	<description>Docker Images</description>
-
-	<properties>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-		<svnfm.project.version>${project.version}</svnfm.project.version>
-		<docker.skip>false</docker.skip>
-		<docker.skip.build>false</docker.skip.build>
-		<docker.skip.push>false</docker.skip.push>
-		<docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
-		<docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
-		<maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
-	</properties>
-
-	<build>
-		<finalName>${project.artifactId}-${project.version}</finalName>
-		<plugins>
-			<plugin>
-				<groupId>org.codehaus.groovy.maven</groupId>
-				<artifactId>gmaven-plugin</artifactId>
-				<version>1.0</version>
-				<executions>
-					<execution>
-						<phase>validate</phase>
-						<goals>
-							<goal>execute</goal>
-						</goals>
-						<configuration>
-							<source>
-								println 'Project version: ' +
-								project.properties['svnfm.project.version'];
-								def versionArray;
-								if
-								(
-								project.properties['svnfm.project.version'] != null ) {
-								versionArray =
-								project.properties['svnfm.project.version'].split('-');
-								}
-
-								if (
-								project.properties['svnfm.project.version'].endsWith("-SNAPSHOT")
-								)
-								{
-								project.properties['project.docker.latesttag.version']=versionArray[0]
-								+ "-SNAPSHOT-latest";
-								} else {
-								project.properties['project.docker.latesttag.version']=versionArray[0]
-								+ "-STAGING-latest";
-								}
-
-								println 'New tag for docker: ' +
-								project.properties['project.docker.latesttag.version'];
-							</source>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-			<plugin>
-				<groupId>io.fabric8</groupId>
-				<artifactId>docker-maven-plugin</artifactId>
-				<version>0.19.1</version>
-
-				<configuration>
-					<verbose>true</verbose>
-					<apiVersion>1.23</apiVersion>
-					<pullRegistry>${docker.pull.registry}</pullRegistry>
-					<pushRegistry>${docker.push.registry}</pushRegistry>
-
-					<images>
-						<image>
-							<name>onap/svnfm/simulator</name>
-							<build>
-								<cleanup>try</cleanup>
-								<dockerFile>Dockerfile</dockerFile>
-								<tags>
-									<tag>${project.version}</tag>
-									<tag>${project.version}-${maven.build.timestamp}</tag>
-									<tag>${project.docker.latesttag.version}</tag>
-								</tags>
-								<assembly>
-									<inline>
-										<dependencySets>
-											<dependencySet>
-												<includes>
-													<include>org.onap.svnfm:simulator</include>
-												</includes>
-												<outputFileNameMapping>app.jar</outputFileNameMapping>
-											</dependencySet>
-										</dependencySets>
-									</inline>
-								</assembly>
-							</build>
-						</image>
-					</images>
-				</configuration>
-
-				<executions>
-					<execution>
-						<id>clean-images</id>
-						<phase>pre-clean</phase>
-						<goals>
-							<goal>remove</goal>
-						</goals>
-						<configuration>
-							<removeAll>true</removeAll>
-						</configuration>
-					</execution>
-
-					<execution>
-						<id>generate-images</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>build</goal>
-						</goals>
-					</execution>
-
-					<execution>
-						<id>push-images</id>
-						<phase>deploy</phase>
-						<goals>
-							<goal>build</goal>
-							<goal>push</goal>
-						</goals>
-						<configuration>
-							<image>onap/svnfm/simulator</image>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-deploy-plugin</artifactId>
-				<version>2.8</version>
-				<configuration>
-					<skip>true</skip>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
diff --git a/vnfm-simulator/packages/docker/src/main/docker/Dockerfile b/vnfm-simulator/packages/docker/src/main/docker/Dockerfile
deleted file mode 100644
index 2ccc803..0000000
--- a/vnfm-simulator/packages/docker/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-FROM openjdk:8-jdk-alpine
-
-ARG http_proxy
-ENV HTTP_PROXY=$http_proxy
-ENV http_proxy=$HTTP_PROXY
-ARG https_proxy
-ENV HTTPS_PROXY=$https_proxy
-ENV https_proxy=$HTTPS_PROXY
-
-RUN apk add --no-cache --update busybox-extras bash zip unzip curl wget openssh maven openjdk8 jq httpie py-pip
-
-RUN mkdir /app && mkdir /app/config && mkdir /app/certificates && mkdir /app/logs  && mkdir /app/ca-certificates
-
-COPY maven/app.jar /app
-#COPY configs/logging/logback-spring.xml /app
-COPY start-app.sh /app
-#COPY ca-certificates/onap-ca.crt /app/ca-certificates/onap-ca.crt
-
-RUN chown -R svnfm:svnfm /app && chmod 700 /app/*.sh
-
-# Springboot configuration (required)
-VOLUME /app/config
-
-#  Root certificates (optional)
-VOLUME /app/ca-certificates
-
-WORKDIR /app
-CMD ["/app/start-app.sh"]
\ No newline at end of file
diff --git a/vnfm-simulator/packages/docker/src/main/docker/start-app.sh b/vnfm-simulator/packages/docker/src/main/docker/start-app.sh
deleted file mode 100644
index 36657f2..0000000
--- a/vnfm-simulator/packages/docker/src/main/docker/start-app.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-#
-# ============LICENSE_START=======================================================
-#  Copyright (C) 2019 Nordix Foundation.
-# ================================================================================
-# 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk/
-SVNFM_HOME=/opt/app/svnfm
-
-if [ "$#" -eq 1 ]; then
-    CONFIG_FILE=$1
-else
-    CONFIG_FILE=${CONFIG_FILE}
-fi
-
-if [ -z "$CONFIG_FILE" ]
-  then
-    CONFIG_FILE="/etc/defaultConfig.json"
-fi
-
-echo "SVNFM Config File path: $CONFIG_FILE"
-
-$JAVA_HOME/bin/java -cp "$SVNFM_HOME/etc:$SVNFM_HOME/lib/*" 
-#-Djavax.net.ssl.keyStore="$KEYSTORE" -Djavax.net.ssl.keyStorePassword="$KEYSTORE_PASSWD" -Djavax.net.ssl.trustStore="$TRUSTSTORE" 
diff --git a/vnfm-simulator/packages/pom.xml b/vnfm-simulator/packages/pom.xml
deleted file mode 100644
index a5ca8b2..0000000
--- a/vnfm-simulator/packages/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<!-- ============LICENSE_START======================================================= 
-	Copyright (C) 2019 Nordix Foundation. ================================================================================ 
-	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. SPDX-License-Identifier: 
-	Apache-2.0 ============LICENSE_END========================================================= -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.onap.svnfm</groupId>
-		<artifactId>simulator</artifactId>
-		<version>1.0.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>packages</artifactId>
-	<packaging>pom</packaging>
-	<name>SVNFM Simulator Packages</name>
-
-
-	<profiles>
-		<!-- DO NOT CHANGE THE *ORDER* IN WHICH THESE PROFILES ARE DEFINED! -->
-
-		<profile>
-			<id>default</id>
-			<activation>
-				<activeByDefault>true</activeByDefault>
-			</activation>
-		</profile>
-
-		<!-- Those profile are exclusive, choose docker or with-integration-tests -->
-		<profile>
-			<id>docker</id>
-			<modules>
-				<module>docker</module>
-			</modules>
-			<properties>
-				<!-- For this profile we probably don't want to skip the docker push 
-					(if deploy goal is specified) -->
-				<docker.skip.push>false</docker.skip.push>
-			</properties>
-		</profile>
-	</profiles>
-</project>
\ No newline at end of file
diff --git a/vnfm-simulator/pom.xml b/vnfm-simulator/pom.xml
deleted file mode 100644
index 2f9f0cd..0000000
--- a/vnfm-simulator/pom.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.onap.so</groupId>
-    <artifactId>so</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-  </parent>
-
-  <groupId>org.onap.so.vnfm</groupId>
-  <artifactId>vnfm-simulator</artifactId>
-  <version>1.4.0-SNAPSHOT</version>
-  <packaging>pom</packaging>
-  <name>${project.artifactId}</name>
-
-  <properties>
-    <springboot.version>2.0.5.RELEASE</springboot.version>
-    <version.java.compiler>1.8</version.java.compiler>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-maven-plugin</artifactId>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <source>${version.java.compiler}</source>
-          <target>${version.java.compiler}</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-  <modules>
-    <module>vnfm-api</module>
-    <module>vnfm-service</module>
-  </modules>
-</project>
\ No newline at end of file
diff --git a/vnfm-simulator/vnfm-api/pom.xml b/vnfm-simulator/vnfm-api/pom.xml
deleted file mode 100644
index ee5ef03..0000000
--- a/vnfm-simulator/vnfm-api/pom.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.onap.so.vnfm</groupId>
-    <artifactId>vnfm-simulator</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>vnfm-api</artifactId>
-  <name>${project.artifactId}</name>
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <maven.compiler.source>1.8</maven.compiler.source>
-    <maven.compiler.target>1.8</maven.compiler.target>
-    <gson-fire-version>1.8.2</gson-fire-version>
-    <retrofit-version>2.3.0</retrofit-version>
-    <threetenbp-version>1.3.5</threetenbp-version>
-    <rxjava-version>2.0.0-RC1</rxjava-version>
-    <oltu-version>1.0.1</oltu-version>
-    <swagger-core-version>1.5.15</swagger-core-version>
-    <gson-version>2.8.5</gson-version>
-  </properties>
-  <description>VNFM Simulator adapter API</description>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>io.swagger</groupId>
-        <artifactId>swagger-codegen-maven-plugin</artifactId>
-        <version>2.3.1</version>
-        <executions>
-          <execution>
-            <id>vnfmsimulator</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <inputSpec>${basedir}/src/main/resources/vnfm-sim-swagger.yaml</inputSpec>
-              <language>java</language>
-              <library>retrofit2</library>
-              <output>${project.build.directory}/generated-sources/vnfmsimulator</output>
-              <apiPackage>org.onap.vnfm.v1.api</apiPackage>
-              <modelPackage>org.onap.vnfm.v1.model</modelPackage>
-              <configOptions>
-                <jackson>true</jackson>
-                <sourceFolder>src/gen/java/main</sourceFolder>
-                <withXml>true</withXml>
-                <useRxJava2>true</useRxJava2>
-              </configOptions>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-annotations</artifactId>
-      <version>${swagger-core-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.retrofit2</groupId>
-      <artifactId>converter-gson</artifactId>
-      <version>${retrofit-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.retrofit2</groupId>
-      <artifactId>retrofit</artifactId>
-      <version>${retrofit-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.retrofit2</groupId>
-      <artifactId>converter-scalars</artifactId>
-      <version>${retrofit-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.oltu.oauth2</groupId>
-      <artifactId>org.apache.oltu.oauth2.client</artifactId>
-      <version>${oltu-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>io.gsonfire</groupId>
-      <artifactId>gson-fire</artifactId>
-      <version>${gson-fire-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.threeten</groupId>
-      <artifactId>threetenbp</artifactId>
-      <version>${threetenbp-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>io.reactivex.rxjava2</groupId>
-      <artifactId>rxjava</artifactId>
-      <version>${rxjava-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.retrofit2</groupId>
-      <artifactId>adapter-rxjava2</artifactId>
-      <version>${retrofit-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-      <version>${gson-version}</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.json b/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.json
deleted file mode 100644
index 2bc25a2..0000000
--- a/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.json
+++ /dev/null
@@ -1,8143 +0,0 @@
-{
-	"swagger": "2.0",
-	"info": {
-		"version": "1.1.1",
-		"title": "SOL003 - VNF Lifecycle Management interface",
-		"description": "SOL003 - VNF Lifecycle Management interface definition\n\nIMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.\n\nIn clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based filtering mechanism is defined. This mechanism is currently not included in the corresponding OpenAPI design for this GS version. Changes to the attribute-based filtering mechanism are being considered in v2.5.1 of this GS for inclusion in the corresponding future ETSI NFV OpenAPI design.\nPlease report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=\n",
-		"license": {
-			"name": "ETSI Forge copyright notice",
-			"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
-		}
-	},
-	"externalDocs": {
-		"description": "ETSI GS NFV-SOL 003 V2.4.1",
-		"url": "http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf"
-	},
-	"basePath": "/vnflcm/v1",
-	"schemes": ["https"],
-	"consumes": ["application/json"],
-	"produces": ["application/json"],
-	"paths": {
-		"/vnf_instances": {
-			"post": {
-				"description": "Create VNF Identifier\n\nThe POST method creates a new VNF instance resource.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "createVnfRequest",
-						"description": "The VNF creation parameters",
-						"in": "body",
-						"required": true,
-						"schema": {
-							"type": "object",
-							"required": ["vnfdId"],
-							"properties": {
-								"vnfdId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfInstanceName": {
-									"description": "Human-readable name of the VNF instance to be created.\n",
-									"type": "string"
-								},
-								"vnfInstanceDescription": {
-									"description": "Human-readable description of the VNF instance to be created.\n",
-									"type": "string"
-								}
-							}
-						}
-					}, {
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}, {
-						"name": "Content-Type",
-						"description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"201": {
-						"description": "A VNF Instance identifier was created successfully",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"Location": {
-								"description": "The resource URI of the created VNF instance",
-								"type": "string",
-								"format": "url"
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a VNF instance.\n",
-							"type": "object",
-							"required": ["id", "vnfdId", "vnfProvider", "vnfProductName", "vnfSoftwareVersion", "vnfdVersion", "vnfPkgId", "instantiationState"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfInstanceName": {
-									"description": "Name of the VNF instance. This attribute can be modified with the PATCH method.\n",
-									"type": "string"
-								},
-								"vnfInstanceDescription": {
-									"description": "Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.\n",
-									"type": "string"
-								},
-								"vnfdId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfProvider": {
-									"description": "Provider of the VNF and the VNFD. The value is copied from the VNFD.\n",
-									"type": "string"
-								},
-								"vnfProductName": {
-									"description": "Name to identify the VNF Product. The value is copied from the VNFD.\n",
-									"type": "string"
-								},
-								"vnfSoftwareVersion": {
-									"description": "A Version.\n",
-									"type": "string"
-								},
-								"vnfdVersion": {
-									"description": "A Version.\n",
-									"type": "string"
-								},
-								"vnfPkgId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfConfigurableProperties": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"vimConnectionInfo": {
-									"description": "Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.\n",
-									"type": "array",
-									"items": {
-										"description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
-										"type": "object",
-										"required": ["id", "vimType"],
-										"properties": {
-											"id": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimId": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimType": {
-												"description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
-												"type": "string"
-											},
-											"interfaceInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"accessInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"extra": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											}
-										}
-									}
-								},
-								"instantiationState": {
-									"description": "The instantiation state of the VNF.\n",
-									"type": "string",
-									"enum": ["NOT_INSTANTIATED", "INSTANTIATED"]
-								},
-								"instantiatedVnfInfo": {
-									"description": "Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.\n",
-									"type": "object",
-									"required": ["flavourId", "vnfState"],
-									"properties": {
-										"flavourId": {
-											"description": "An identifier that is unique within a VNF descriptor.\n",
-											"type": "string"
-										},
-										"vnfState": {
-											"type": "string",
-											"enum": ["STARTED", "STOPPED"]
-										},
-										"scaleStatus": {
-											"description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect.\n",
-											"type": "array",
-											"items": {
-												"required": ["aspectId", "scaleLevel"],
-												"type": "object",
-												"properties": {
-													"aspectId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"scaleLevel": {
-														"description": "Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.\n",
-														"type": "integer"
-													}
-												}
-											}
-										},
-										"extCpInfo": {
-											"description": "Information about the external CPs exposed by the VNF instance.\n",
-											"type": "array",
-											"minItems": 1,
-											"items": {
-												"type": "object",
-												"required": ["id", "cpdId"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"cpdId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"cpProtocolInfo": {
-														"description": "Network protocol information for this CP.\n",
-														"type": "array",
-														"items": {
-															"description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
-															"required": ["layerProtocol"],
-															"properties": {
-																"layerProtocol": {
-																	"description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																	"type": "string",
-																	"enum": ["IP_OVER_ETHERNET"]
-																},
-																"ipOverEthernet": {
-																	"description": "This type represents information about a network address that has been assigned.\n",
-																	"type": "object",
-																	"required": ["macAddress"],
-																	"properties": {
-																		"macAddress": {
-																			"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																			"type": "string",
-																			"format": "MAC"
-																		},
-																		"ipAddresses": {
-																			"description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
-																			"type": "array",
-																			"items": {
-																				"type": "object",
-																				"required": ["type"],
-																				"properties": {
-																					"type": {
-																						"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																						"type": "string",
-																						"enum": ["IPV4", "IPV6"]
-																					},
-																					"addresses": {
-																						"description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
-																						"type": "array",
-																						"items": {
-																							"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																							"type": "string",
-																							"format": "IP"
-																						}
-																					},
-																					"isDynamic": {
-																						"description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
-																						"type": "boolean"
-																					},
-																					"addressRange": {
-																						"description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
-																						"type": "object",
-																						"required": ["minAddress", "maxAddress"],
-																						"properties": {
-																							"minAddress": {
-																								"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																								"type": "string",
-																								"format": "IP"
-																							},
-																							"maxAddress": {
-																								"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																								"type": "string",
-																								"format": "IP"
-																							}
-																						}
-																					},
-																					"subnetId": {
-																						"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																						"type": "string",
-																						"format": "IP"
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													},
-													"extLinkPortId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"extVirtualLinkInfo": {
-											"description": "Information about the external VLs the VNF instance is connected to.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "resourceHandle"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"resourceHandle": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"extLinkPorts": {
-														"description": "Link ports of this VL.\n",
-														"type": "array",
-														"items": {
-															"description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier with the intention of being globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										},
-										"extManagedVirtualLinkInfo": {
-											"description": "External virtual links the VNF instance is connected to.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "vnfVirtualLinkDescId"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfVirtualLinkDescId": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"vnfLinkPorts": {
-														"description": "Link ports of this VL.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										},
-										"monitoringParameters": {
-											"description": "Active monitoring parameters.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "value", "timeStamp"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"name": {
-														"description": "Human readable name of the monitoring parameter, as defined in the VNFD.\n",
-														"type": "string"
-													},
-													"value": {
-														"description": "Value of the monitoring parameter known to the VNFM (e.g. obtained for autoscaling purposes). The type of the \"value\" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification.\n",
-														"type": "object"
-													},
-													"timeStamp": {
-														"description": "Represents the point in time when the measurement has been performed, as known to the VNFM. Should be formatted according to ETF RFC 3339.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"localizationLanguage": {
-											"description": "Information about localization language of the VNF (includes e.g. strings in the VNFD). The localization languages supported by a VNF can be declared in the VNFD, and localization language selection can take place at instantiation time. The value shall comply with the format defined in IETF RFC 5646.\n",
-											"type": "string"
-										},
-										"vnfcResourceInfo": {
-											"description": "Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "vduId", "computeResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vduId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"computeResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"storageResourceIds": {
-														"description": "References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.\n",
-														"type": "array",
-														"items": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfcCpInfo": {
-														"description": "CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "cpdId"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"cpdId": {
-																	"description": "An identifier that is unique within a VNF descriptor.\n",
-																	"type": "string"
-																},
-																"vnfExtCpId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"cpProtocolInfo": {
-																	"description": "Network protocol information for this CP.\n",
-																	"type": "array",
-																	"items": {
-																		"description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
-																		"required": ["layerProtocol"],
-																		"properties": {
-																			"layerProtocol": {
-																				"description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																				"type": "string",
-																				"enum": ["IP_OVER_ETHERNET"]
-																			},
-																			"ipOverEthernet": {
-																				"description": "This type represents information about a network address that has been assigned.\n",
-																				"type": "object",
-																				"required": ["macAddress"],
-																				"properties": {
-																					"macAddress": {
-																						"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																						"type": "string",
-																						"format": "MAC"
-																					},
-																					"ipAddresses": {
-																						"description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
-																						"type": "array",
-																						"items": {
-																							"type": "object",
-																							"required": ["type"],
-																							"properties": {
-																								"type": {
-																									"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																									"type": "string",
-																									"enum": ["IPV4", "IPV6"]
-																								},
-																								"addresses": {
-																									"description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
-																									"type": "array",
-																									"items": {
-																										"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																										"type": "string",
-																										"format": "IP"
-																									}
-																								},
-																								"isDynamic": {
-																									"description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
-																									"type": "boolean"
-																								},
-																								"addressRange": {
-																									"description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
-																									"type": "object",
-																									"required": ["minAddress", "maxAddress"],
-																									"properties": {
-																										"minAddress": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										},
-																										"maxAddress": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										}
-																									}
-																								},
-																								"subnetId": {
-																									"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																									"type": "string",
-																									"format": "IP"
-																								}
-																							}
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																},
-																"vnfLinkPortId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"virtualLinkResourceInfo": {
-											"description": "Information about the virtualised network resources used by the VLs of the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "vnfVirtualLinkDescId", "networkResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vnfVirtualLinkDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfLinkPorts": {
-														"description": "Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"virtualStorageResourceInfo": {
-											"description": "Information on the virtualised storage resource(s) used as storage for the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "virtualStorageDescId", "storageResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"virtualStorageDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"storageResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										}
-									}
-								},
-								"metadata": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"extensions": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"indicators": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"instantiate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"terminate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"scale": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"scaleToLevel": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"changeFlavour": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"heal": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"operate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"changeExtConn": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"409": {
-						"description": "Conflict\nAnother request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"416": {
-						"description": "Requested Range Not Satisfiable\nThis code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"422": {
-						"description": "Unprocessable Entity\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem. NOTE 2: This error response code is only applicable for methods that have a request body.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		},
-		"/vnf_instances/{vnfInstanceId}": {
-			"parameters": [{
-					"name": "vnfInstanceId",
-					"description": "Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n",
-					"in": "path",
-					"type": "string",
-					"required": true
-				}
-			],
-			"get": {
-				"description": "Query VNF\n\nThe GET method retrieves information about a VNF instance by reading an individual VNF instance resource.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}, {
-						"name": "Content-Type",
-						"description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"200": {
-						"description": "OK\nInformation about zero or more VNF instances was queried successfully. The response body shall contain representations of zero or more VNF instances.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a VNF instance.\n",
-							"type": "object",
-							"required": ["id", "vnfdId", "vnfProvider", "vnfProductName", "vnfSoftwareVersion", "vnfdVersion", "vnfPkgId", "instantiationState"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfInstanceName": {
-									"description": "Name of the VNF instance. This attribute can be modified with the PATCH method.\n",
-									"type": "string"
-								},
-								"vnfInstanceDescription": {
-									"description": "Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.\n",
-									"type": "string"
-								},
-								"vnfdId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfProvider": {
-									"description": "Provider of the VNF and the VNFD. The value is copied from the VNFD.\n",
-									"type": "string"
-								},
-								"vnfProductName": {
-									"description": "Name to identify the VNF Product. The value is copied from the VNFD.\n",
-									"type": "string"
-								},
-								"vnfSoftwareVersion": {
-									"description": "A Version.\n",
-									"type": "string"
-								},
-								"vnfdVersion": {
-									"description": "A Version.\n",
-									"type": "string"
-								},
-								"vnfPkgId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfConfigurableProperties": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"vimConnectionInfo": {
-									"description": "Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.\n",
-									"type": "array",
-									"items": {
-										"description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
-										"type": "object",
-										"required": ["id", "vimType"],
-										"properties": {
-											"id": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimId": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimType": {
-												"description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
-												"type": "string"
-											},
-											"interfaceInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"accessInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"extra": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											}
-										}
-									}
-								},
-								"instantiationState": {
-									"description": "The instantiation state of the VNF.\n",
-									"type": "string",
-									"enum": ["NOT_INSTANTIATED", "INSTANTIATED"]
-								},
-								"instantiatedVnfInfo": {
-									"description": "Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.\n",
-									"type": "object",
-									"required": ["flavourId", "vnfState"],
-									"properties": {
-										"flavourId": {
-											"description": "An identifier that is unique within a VNF descriptor.\n",
-											"type": "string"
-										},
-										"vnfState": {
-											"type": "string",
-											"enum": ["STARTED", "STOPPED"]
-										},
-										"scaleStatus": {
-											"description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect.\n",
-											"type": "array",
-											"items": {
-												"required": ["aspectId", "scaleLevel"],
-												"type": "object",
-												"properties": {
-													"aspectId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"scaleLevel": {
-														"description": "Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.\n",
-														"type": "integer"
-													}
-												}
-											}
-										},
-										"extCpInfo": {
-											"description": "Information about the external CPs exposed by the VNF instance.\n",
-											"type": "array",
-											"minItems": 1,
-											"items": {
-												"type": "object",
-												"required": ["id", "cpdId"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"cpdId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"cpProtocolInfo": {
-														"description": "Network protocol information for this CP.\n",
-														"type": "array",
-														"items": {
-															"description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
-															"required": ["layerProtocol"],
-															"properties": {
-																"layerProtocol": {
-																	"description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																	"type": "string",
-																	"enum": ["IP_OVER_ETHERNET"]
-																},
-																"ipOverEthernet": {
-																	"description": "This type represents information about a network address that has been assigned.\n",
-																	"type": "object",
-																	"required": ["macAddress"],
-																	"properties": {
-																		"macAddress": {
-																			"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																			"type": "string",
-																			"format": "MAC"
-																		},
-																		"ipAddresses": {
-																			"description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
-																			"type": "array",
-																			"items": {
-																				"type": "object",
-																				"required": ["type"],
-																				"properties": {
-																					"type": {
-																						"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																						"type": "string",
-																						"enum": ["IPV4", "IPV6"]
-																					},
-																					"addresses": {
-																						"description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
-																						"type": "array",
-																						"items": {
-																							"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																							"type": "string",
-																							"format": "IP"
-																						}
-																					},
-																					"isDynamic": {
-																						"description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
-																						"type": "boolean"
-																					},
-																					"addressRange": {
-																						"description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
-																						"type": "object",
-																						"required": ["minAddress", "maxAddress"],
-																						"properties": {
-																							"minAddress": {
-																								"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																								"type": "string",
-																								"format": "IP"
-																							},
-																							"maxAddress": {
-																								"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																								"type": "string",
-																								"format": "IP"
-																							}
-																						}
-																					},
-																					"subnetId": {
-																						"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																						"type": "string",
-																						"format": "IP"
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													},
-													"extLinkPortId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"extVirtualLinkInfo": {
-											"description": "Information about the external VLs the VNF instance is connected to.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "resourceHandle"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"resourceHandle": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"extLinkPorts": {
-														"description": "Link ports of this VL.\n",
-														"type": "array",
-														"items": {
-															"description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier with the intention of being globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										},
-										"extManagedVirtualLinkInfo": {
-											"description": "External virtual links the VNF instance is connected to.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "vnfVirtualLinkDescId"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfVirtualLinkDescId": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"vnfLinkPorts": {
-														"description": "Link ports of this VL.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										},
-										"monitoringParameters": {
-											"description": "Active monitoring parameters.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "value", "timeStamp"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"name": {
-														"description": "Human readable name of the monitoring parameter, as defined in the VNFD.\n",
-														"type": "string"
-													},
-													"value": {
-														"description": "Value of the monitoring parameter known to the VNFM (e.g. obtained for autoscaling purposes). The type of the \"value\" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification.\n",
-														"type": "object"
-													},
-													"timeStamp": {
-														"description": "Represents the point in time when the measurement has been performed, as known to the VNFM. Should be formatted according to ETF RFC 3339.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"localizationLanguage": {
-											"description": "Information about localization language of the VNF (includes e.g. strings in the VNFD). The localization languages supported by a VNF can be declared in the VNFD, and localization language selection can take place at instantiation time. The value shall comply with the format defined in IETF RFC 5646.\n",
-											"type": "string"
-										},
-										"vnfcResourceInfo": {
-											"description": "Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "vduId", "computeResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vduId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"computeResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"storageResourceIds": {
-														"description": "References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.\n",
-														"type": "array",
-														"items": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfcCpInfo": {
-														"description": "CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "cpdId"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"cpdId": {
-																	"description": "An identifier that is unique within a VNF descriptor.\n",
-																	"type": "string"
-																},
-																"vnfExtCpId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"cpProtocolInfo": {
-																	"description": "Network protocol information for this CP.\n",
-																	"type": "array",
-																	"items": {
-																		"description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
-																		"required": ["layerProtocol"],
-																		"properties": {
-																			"layerProtocol": {
-																				"description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																				"type": "string",
-																				"enum": ["IP_OVER_ETHERNET"]
-																			},
-																			"ipOverEthernet": {
-																				"description": "This type represents information about a network address that has been assigned.\n",
-																				"type": "object",
-																				"required": ["macAddress"],
-																				"properties": {
-																					"macAddress": {
-																						"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																						"type": "string",
-																						"format": "MAC"
-																					},
-																					"ipAddresses": {
-																						"description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
-																						"type": "array",
-																						"items": {
-																							"type": "object",
-																							"required": ["type"],
-																							"properties": {
-																								"type": {
-																									"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																									"type": "string",
-																									"enum": ["IPV4", "IPV6"]
-																								},
-																								"addresses": {
-																									"description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
-																									"type": "array",
-																									"items": {
-																										"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																										"type": "string",
-																										"format": "IP"
-																									}
-																								},
-																								"isDynamic": {
-																									"description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
-																									"type": "boolean"
-																								},
-																								"addressRange": {
-																									"description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
-																									"type": "object",
-																									"required": ["minAddress", "maxAddress"],
-																									"properties": {
-																										"minAddress": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										},
-																										"maxAddress": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										}
-																									}
-																								},
-																								"subnetId": {
-																									"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																									"type": "string",
-																									"format": "IP"
-																								}
-																							}
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																},
-																"vnfLinkPortId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"virtualLinkResourceInfo": {
-											"description": "Information about the virtualised network resources used by the VLs of the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "vnfVirtualLinkDescId", "networkResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vnfVirtualLinkDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfLinkPorts": {
-														"description": "Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"virtualStorageResourceInfo": {
-											"description": "Information on the virtualised storage resource(s) used as storage for the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "virtualStorageDescId", "storageResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"virtualStorageDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"storageResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										}
-									}
-								},
-								"metadata": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"extensions": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"indicators": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"instantiate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"terminate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"scale": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"scaleToLevel": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"changeFlavour": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"heal": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"operate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"changeExtConn": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"409": {
-						"description": "Conflict\nAnother request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"416": {
-						"description": "Requested Range Not Satisfiable\nThis code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			},
-			"delete": {
-				"description": "Delete VNF Identifier\n\nThis method deletes an individual VNF instance resource.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"204": {
-						"description": "No Content\nThe VNF instance resource and the associated VNF identifier were deleted successfully. The response body shall be empty.\n",
-						"headers": {
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIt fhe request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem. If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"409": {
-						"description": "Conflict\nThe operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"412": {
-						"description": "Precondition Failed\nA precondition given in an HTTP request header is not fulfilled. Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. The response body should contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		},
-		"/vnf_instances/{vnfInstanceId}/instantiate": {
-			"parameters": [{
-					"name": "vnfInstanceId",
-					"description": "Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n",
-					"in": "path",
-					"type": "string",
-					"required": true
-				}
-			],
-			"post": {
-				"description": "Instantiate VNF\n\nThe POST method instantiates a VNF instance.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "InstantiateVnfRequest",
-						"description": "Parameters for the VNF instantiation.",
-						"in": "body",
-						"required": true,
-						"schema": {
-							"type": "object",
-							"required": ["flavourId"],
-							"properties": {
-								"flavourId": {
-									"description": "An identifier that is unique within a VNF descriptor.\n",
-									"type": "string"
-								},
-								"extVirtualLinks": {
-									"description": "Information about external VLs to connect the VNF to.\n",
-									"type": "array",
-									"items": {
-										"description": "This type represents an external VL.\n",
-										"type": "object",
-										"required": ["id", "resourceId", "extCps"],
-										"properties": {
-											"id": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimConnectionId": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"resourceId": {
-												"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-												"type": "string"
-											},
-											"extCps": {
-												"description": "External CPs of the VNF to be connected to this external VL.\n",
-												"type": "array",
-												"items": {
-													"description": "This type represents configuration information for external CPs created from a CPD.\n",
-													"type": "object",
-													"required": ["cpdId"],
-													"properties": {
-														"cpdId": {
-															"description": "An identifier that is unique within a VNF descriptor.\n",
-															"type": "string"
-														},
-														"cpConfig": {
-															"description": "List of instance data that need to be configured on the CP instances created from the respective CPD.\n",
-															"type": "array",
-															"items": {
-																"description": "This type represents an externally provided link port or network address information per instance of an external connection point. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the external VL. In a link port is not provided, the VNFM shall create a link port on the external VL, and use that link port to connect the external CP to the external VL.\n",
-																"type": "object",
-																"properties": {
-																	"cpInstanceId": {
-																		"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																		"type": "string"
-																	},
-																	"linkPortId": {
-																		"description": "An identifier with the intention of being globally unique.\n",
-																		"type": "string"
-																	},
-																	"cpProtocolData": {
-																		"description": "Parameters for configuring the network protocols on the link port that connects the CP to a VL.  The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\":  * The \"linkPortId\" and \"cpProtocolData\" attributes shall both be  absent for the deletion of an existing external CP instance\n  addressed by cpInstanceId. \n* At least one of these attributes shall be present for a  to-be-created external CP instance or an existing external\n  CP instance.\n* If the \"linkPortId\" attribute is absent, the VNFM shall create a  link port.\n* If the \"cpProtocolData\" attribute is absent, the \"linkPortId\"  attribute shall be provided referencing a pre-created link port,\n  and the VNFM can use means outside the scope of the present\n  document to obtain the pre-configured address information for the\n  connection point from the resource representing the link port.\n* If both \"cpProtocolData\" and \"linkportId\" are provided, the API  consumer shall ensure that the cpProtocolData can be used with the\n  pre-created link port referenced by \"linkPortId\".\n",
-																		"type": "array",
-																		"items": {
-																			"description": "This type represents network protocol data.\n",
-																			"type": "object",
-																			"required": ["layerProtocol"],
-																			"properties": {
-																				"layerProtocol": {
-																					"description": "Identifier of layer(s) and protocol(s). This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																					"type": "string",
-																					"enum": ["IP_OVER_ETHERNET"]
-																				},
-																				"ipOverEthernet": {
-																					"description": "This type represents network address data for IP over Ethernet.\n",
-																					"type": "object",
-																					"properties": {
-																						"macAddress": {
-																							"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																							"type": "string",
-																							"format": "MAC"
-																						},
-																						"ipAddresses": {
-																							"description": "List of IP addresses to assign to the CP instance. Each entry represents IP address data for fixed or dynamic IP address assignment per subnet. If this attribute is not present, no IP address shall be assigned.\n",
-																							"type": "array",
-																							"items": {
-																								"type": "object",
-																								"required": ["type"],
-																								"properties": {
-																									"type": {
-																										"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																										"type": "string",
-																										"enum": ["IPV4", "IPV6"]
-																									},
-																									"fixedAddresses": {
-																										"description": "Fixed addresses to assign (from the subnet defined by \"subnetId\" if provided). Exactly one of \"fixedAddresses\", \"numDynamicAddresses\" or \"ipAddressRange\" shall be present.\n",
-																										"type": "array",
-																										"items": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										}
-																									},
-																									"numDynamicAddresses": {
-																										"description": "Number of dynamic addresses to assign (from the subnet defined by \"subnetId\" if provided). Exactly one of \"fixedAddresses\", \"numDynamicAddresses\" or \"ipAddressRange\" shall be present.\n",
-																										"type": "integer"
-																									},
-																									"addressRange": {
-																										"description": "An IP address range to be used, e.g. in case of egress connections. In case this attribute is present, IP addresses from the range will be used.\n",
-																										"type": "object",
-																										"required": ["minAddress", "maxAddress"],
-																										"properties": {
-																											"minAddress": {
-																												"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																												"type": "string",
-																												"format": "IP"
-																											},
-																											"maxAddress": {
-																												"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																												"type": "string",
-																												"format": "IP"
-																											}
-																										}
-																									},
-																									"subnetId": {
-																										"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																										"type": "string"
-																									}
-																								}
-																							}
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													}
-												}
-											},
-											"extLinkPorts": {
-												"description": "Externally provided link ports to be used to connect external connection points to this external VL. If this attribute is not present, the VNFM shall create the link ports on the external VL.\n",
-												"type": "array",
-												"items": {
-													"description": "This type represents an externally provided link port to be used to connect an external connection point to an external VL.\n",
-													"type": "object",
-													"required": ["id", "resourceHandle"],
-													"properties": {
-														"id": {
-															"description": "An identifier with the intention of being globally unique.\n",
-															"type": "string"
-														},
-														"resourceHandle": {
-															"required": ["vimConnectionId", "resourceId"],
-															"type": "object",
-															"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-															"properties": {
-																"vimConnectionId": {
-																	"description": "An identifier with the intention of being globally unique.\n",
-																	"type": "string"
-																},
-																"resourceId": {
-																	"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																	"type": "string"
-																},
-																"vimLevelResourceType": {
-																	"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										}
-									}
-								},
-								"vimConnectionInfo": {
-									"description": "Information about VIM connections to be used for managing the resources for the VNF instance, or refer to external / externally-managed virtual links. This attribute shall only be supported and may be present if VNF-related resource management in direct mode is applicable.\n",
-									"type": "array",
-									"items": {
-										"description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
-										"type": "object",
-										"required": ["id", "vimType"],
-										"properties": {
-											"id": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimId": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimType": {
-												"description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
-												"type": "string"
-											},
-											"interfaceInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"accessInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											}
-										}
-									}
-								},
-								"additionalParams": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								}
-							}
-						}
-					}, {
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}, {
-						"name": "Content-Type",
-						"description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"202": {
-						"description": "Accepted\nThe request was accepted for processing, but the  processing has not been completed. The response body shall be empty. The HTTP response shall include a \"Location\" HTTP header that contains the URI of the newly-created \"VNF LCM operation occurrence\" resource corresponding to the operation.\n",
-						"headers": {
-							"Location": {
-								"description": "The resource URI of the created VNF instance",
-								"type": "string",
-								"format": "url"
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"409": {
-						"description": "Conflict\nThe operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"416": {
-						"description": "Requested Range Not Satisfiable\nThis code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		},
-		"/vnf_instances/{vnfInstanceId}/terminate": {
-			"parameters": [{
-					"name": "vnfInstanceId",
-					"description": "The identifier of the VNF instance to be terminated. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n",
-					"in": "path",
-					"type": "string",
-					"required": true
-				}
-			],
-			"post": {
-				"description": "Terminate VNF\n\nThe POST method terminates a VNF instance.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "TerminateVnfRequest",
-						"description": "Parameters for the VNF termination.",
-						"in": "body",
-						"required": true,
-						"schema": {
-							"type": "object",
-							"required": ["terminationType"],
-							"properties": {
-								"terminationType": {
-									"description": "Indicates whether forceful or graceful termination is requested. VNFM Adapter will only support FORCEFUL in Dublin.\n",
-									"type": "string",
-									"enum": ["FORCEFUL", "GRACEFUL"]
-								}
-							}
-						}
-					}, {
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}, {
-						"name": "Content-Type",
-						"description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"202": {
-						"description": "Accepted\nThe request was accepted for processing, but the processing has not been completed. On success, the HTTP response shall include a \"Location\" HTTP header that contains the URI of the newly-created \"VNF LCM operation occurrence\" resource corresponding to the operation.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"Location": {
-								"description": "The resource URI of the created VNF instance",
-								"type": "string",
-								"format": "url"
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a VNF instance.\n",
-							"type": "object",
-							"required": ["id", "vnfdId", "vnfProvider", "vnfProductName", "vnfSoftwareVersion", "vnfdVersion", "vnfPkgId", "instantiationState"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfInstanceName": {
-									"description": "Name of the VNF instance. This attribute can be modified with the PATCH method.\n",
-									"type": "string"
-								},
-								"vnfInstanceDescription": {
-									"description": "Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.\n",
-									"type": "string"
-								},
-								"vnfdId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfProvider": {
-									"description": "Provider of the VNF and the VNFD. The value is copied from the VNFD.\n",
-									"type": "string"
-								},
-								"vnfProductName": {
-									"description": "Name to identify the VNF Product. The value is copied from the VNFD.\n",
-									"type": "string"
-								},
-								"vnfSoftwareVersion": {
-									"description": "A Version.\n",
-									"type": "string"
-								},
-								"vnfdVersion": {
-									"description": "A Version.\n",
-									"type": "string"
-								},
-								"vnfPkgId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"vnfConfigurableProperties": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"vimConnectionInfo": {
-									"description": "Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.\n",
-									"type": "array",
-									"items": {
-										"description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
-										"type": "object",
-										"required": ["id", "vimType"],
-										"properties": {
-											"id": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimId": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"vimType": {
-												"description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
-												"type": "string"
-											},
-											"interfaceInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"accessInfo": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											},
-											"extra": {
-												"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-												"type": "object"
-											}
-										}
-									}
-								},
-								"instantiationState": {
-									"description": "The instantiation state of the VNF.\n",
-									"type": "string",
-									"enum": ["NOT_INSTANTIATED", "INSTANTIATED"]
-								},
-								"instantiatedVnfInfo": {
-									"description": "Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.\n",
-									"type": "object",
-									"required": ["flavourId", "vnfState"],
-									"properties": {
-										"flavourId": {
-											"description": "An identifier that is unique within a VNF descriptor.\n",
-											"type": "string"
-										},
-										"vnfState": {
-											"type": "string",
-											"enum": ["STARTED", "STOPPED"]
-										},
-										"scaleStatus": {
-											"description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect.\n",
-											"type": "array",
-											"items": {
-												"required": ["aspectId", "scaleLevel"],
-												"type": "object",
-												"properties": {
-													"aspectId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"scaleLevel": {
-														"description": "Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.\n",
-														"type": "integer"
-													}
-												}
-											}
-										},
-										"extCpInfo": {
-											"description": "Information about the external CPs exposed by the VNF instance.\n",
-											"type": "array",
-											"minItems": 1,
-											"items": {
-												"type": "object",
-												"required": ["id", "cpdId"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"cpdId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"cpProtocolInfo": {
-														"description": "Network protocol information for this CP.\n",
-														"type": "array",
-														"items": {
-															"description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
-															"required": ["layerProtocol"],
-															"properties": {
-																"layerProtocol": {
-																	"description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																	"type": "string",
-																	"enum": ["IP_OVER_ETHERNET"]
-																},
-																"ipOverEthernet": {
-																	"description": "This type represents information about a network address that has been assigned.\n",
-																	"type": "object",
-																	"required": ["macAddress"],
-																	"properties": {
-																		"macAddress": {
-																			"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																			"type": "string",
-																			"format": "MAC"
-																		},
-																		"ipAddresses": {
-																			"description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
-																			"type": "array",
-																			"items": {
-																				"type": "object",
-																				"required": ["type"],
-																				"properties": {
-																					"type": {
-																						"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																						"type": "string",
-																						"enum": ["IPV4", "IPV6"]
-																					},
-																					"addresses": {
-																						"description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
-																						"type": "array",
-																						"items": {
-																							"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																							"type": "string",
-																							"format": "IP"
-																						}
-																					},
-																					"isDynamic": {
-																						"description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
-																						"type": "boolean"
-																					},
-																					"addressRange": {
-																						"description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
-																						"type": "object",
-																						"required": ["minAddress", "maxAddress"],
-																						"properties": {
-																							"minAddress": {
-																								"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																								"type": "string",
-																								"format": "IP"
-																							},
-																							"maxAddress": {
-																								"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																								"type": "string",
-																								"format": "IP"
-																							}
-																						}
-																					},
-																					"subnetId": {
-																						"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																						"type": "string",
-																						"format": "IP"
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													},
-													"extLinkPortId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"extVirtualLinkInfo": {
-											"description": "Information about the external VLs the VNF instance is connected to.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "resourceHandle"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"resourceHandle": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"extLinkPorts": {
-														"description": "Link ports of this VL.\n",
-														"type": "array",
-														"items": {
-															"description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier with the intention of being globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										},
-										"extManagedVirtualLinkInfo": {
-											"description": "External virtual links the VNF instance is connected to.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "vnfVirtualLinkDescId"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfVirtualLinkDescId": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"vnfLinkPorts": {
-														"description": "Link ports of this VL.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													}
-												}
-											}
-										},
-										"monitoringParameters": {
-											"description": "Active monitoring parameters.\n",
-											"type": "array",
-											"items": {
-												"type": "object",
-												"required": ["id", "value", "timeStamp"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"name": {
-														"description": "Human readable name of the monitoring parameter, as defined in the VNFD.\n",
-														"type": "string"
-													},
-													"value": {
-														"description": "Value of the monitoring parameter known to the VNFM (e.g. obtained for autoscaling purposes). The type of the \"value\" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification.\n",
-														"type": "object"
-													},
-													"timeStamp": {
-														"description": "Represents the point in time when the measurement has been performed, as known to the VNFM. Should be formatted according to ETF RFC 3339.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"localizationLanguage": {
-											"description": "Information about localization language of the VNF (includes e.g. strings in the VNFD). The localization languages supported by a VNF can be declared in the VNFD, and localization language selection can take place at instantiation time. The value shall comply with the format defined in IETF RFC 5646.\n",
-											"type": "string"
-										},
-										"vnfcResourceInfo": {
-											"description": "Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "vduId", "computeResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vduId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"computeResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"storageResourceIds": {
-														"description": "References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.\n",
-														"type": "array",
-														"items": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfcCpInfo": {
-														"description": "CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "cpdId"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"cpdId": {
-																	"description": "An identifier that is unique within a VNF descriptor.\n",
-																	"type": "string"
-																},
-																"vnfExtCpId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"cpProtocolInfo": {
-																	"description": "Network protocol information for this CP.\n",
-																	"type": "array",
-																	"items": {
-																		"description": "This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.\n",
-																		"required": ["layerProtocol"],
-																		"properties": {
-																			"layerProtocol": {
-																				"description": "The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.\n",
-																				"type": "string",
-																				"enum": ["IP_OVER_ETHERNET"]
-																			},
-																			"ipOverEthernet": {
-																				"description": "This type represents information about a network address that has been assigned.\n",
-																				"type": "object",
-																				"required": ["macAddress"],
-																				"properties": {
-																					"macAddress": {
-																						"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
-																						"type": "string",
-																						"format": "MAC"
-																					},
-																					"ipAddresses": {
-																						"description": "Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.\n",
-																						"type": "array",
-																						"items": {
-																							"type": "object",
-																							"required": ["type"],
-																							"properties": {
-																								"type": {
-																									"description": "The type of the IP addresses. Permitted values: IPV4, IPV6.\n",
-																									"type": "string",
-																									"enum": ["IPV4", "IPV6"]
-																								},
-																								"addresses": {
-																									"description": "Fixed addresses assigned (from the subnet defined by \"subnetId\" if provided).\n",
-																									"type": "array",
-																									"items": {
-																										"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																										"type": "string",
-																										"format": "IP"
-																									}
-																								},
-																								"isDynamic": {
-																									"description": "Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if \"addresses\" is present and shall be absent otherwise.\n",
-																									"type": "boolean"
-																								},
-																								"addressRange": {
-																									"description": "An IP address range used, e.g., in case of egress connections. Exactly one of \"addresses\" or \"addressRange\" shall be present.\n",
-																									"type": "object",
-																									"required": ["minAddress", "maxAddress"],
-																									"properties": {
-																										"minAddress": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										},
-																										"maxAddress": {
-																											"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																											"type": "string",
-																											"format": "IP"
-																										}
-																									}
-																								},
-																								"subnetId": {
-																									"description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.\n",
-																									"type": "string",
-																									"format": "IP"
-																								}
-																							}
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																},
-																"vnfLinkPortId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"virtualLinkResourceInfo": {
-											"description": "Information about the virtualised network resources used by the VLs of the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "vnfVirtualLinkDescId", "networkResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vnfVirtualLinkDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vnfLinkPorts": {
-														"description": "Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.\n",
-														"type": "array",
-														"items": {
-															"type": "object",
-															"required": ["id", "resourceHandle"],
-															"properties": {
-																"id": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																},
-																"resourceHandle": {
-																	"required": ["vimConnectionId", "resourceId"],
-																	"type": "object",
-																	"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-																	"properties": {
-																		"vimConnectionId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceProviderId": {
-																			"description": "An identifier with the intention of being globally unique.\n",
-																			"type": "string"
-																		},
-																		"resourceId": {
-																			"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																			"type": "string"
-																		},
-																		"vimLevelResourceType": {
-																			"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																			"type": "string"
-																		}
-																	}
-																},
-																"cpInstanceId": {
-																	"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-																	"type": "string"
-																}
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"virtualStorageResourceInfo": {
-											"description": "Information on the virtualised storage resource(s) used as storage for the VNF instance.\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.\n",
-												"type": "object",
-												"required": ["id", "virtualStorageDescId", "storageResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"virtualStorageDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"storageResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"reservationId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										}
-									}
-								},
-								"metadata": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"extensions": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"indicators": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"instantiate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"terminate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"scale": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"scaleToLevel": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"changeFlavour": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"heal": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"operate": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"changeExtConn": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"409": {
-						"description": "Conflict\nThe operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		},
-		"/vnf_lcm_op_occs/{vnfLcmOpOccId}": {
-			"parameters": [{
-					"name": "vnfLcmOpOccId",
-					"description": "Identifier of a VNF lifecycle management operation occurrence. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the \"vnfLcmOpOccId\" attribute in the VnfLcmOperationOccurrenceNotification.\n",
-					"in": "path",
-					"required": true,
-					"type": "string"
-				}
-			],
-			"get": {
-				"description": "Get Operation Status\n\nThe client can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an individual \"VNF LCM operation occurrence\" resource.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"200": {
-						"description": "OK\nInformation about an individual VNF instance was queried successfully. The response body shall contain status information about a VNF lifecycle management operation occurrence.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a VNF lifecycle management operation occurrence.\n",
-							"type": "object",
-							"required": ["id", "operationState", "stateEnteredTime", "startTime", "vnfInstanceId", "operation", "isAutomaticInvocation", "operationParams", "isCancelPending"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"operationState": {
-									"description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n",
-									"type": "string",
-									"enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
-								},
-								"stateEnteredTime": {
-									"description": "Date-time when the current state was entered.\n",
-									"type": "string",
-									"format": "date-time"
-								},
-								"startTime": {
-									"description": "Date-time of the start of the operation.\n",
-									"type": "string",
-									"format": "date-time"
-								},
-								"vnfInstanceId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"grantId": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"operation": {
-									"description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation.    SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
-									"type": "string",
-									"enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
-								},
-								"isAutomaticInvocation": {
-									"description": "Set to true if this VNF LCM operation occurrence has been triggered by an automated procedure inside the VNFM (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf triggered by auto-heal). Set to false otherwise.\n",
-									"type": "boolean"
-								},
-								"operationParams": {
-									"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-									"type": "object"
-								},
-								"isCancelPending": {
-									"description": "If the VNF LCM operation occurrence is in \"STARTING\", \"PROCESSING\" or \"ROLLING_BACK\" state and the operation is being cancelled, this attribute shall be set to true. Otherwise, it shall be set to false.\n",
-									"type": "boolean"
-								},
-								"cancelMode": {
-									"description": "Cancellation mode. GRACEFUL: If the VNF LCM operation occurrence is in \"PROCESSING\" or \"ROLLING_BACK\" state, the VNFM shall not start any new resource management operation and shall wait for the ongoing resource management operations in the underlying system, typically the VIM, to finish execution or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state. If the VNF LCM operation occurrence is in \"STARTING\" state, the VNFM shall not start any resource management operation and shall wait for the granting request to finish execution or time out. After that, the VNFM shall put the operation occurrence into the ROLLED_BACK state.  FORCEFUL: If the VNF LCM operation occurrence is in \"PROCESSING\" or \"ROLLING_BACK\" state, the VNFM shall not start any new resource management operation, shall cancel the ongoing resource management operations in the underlying system, typically the VIM, and shall wait for the cancellation to finish or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state.  If the VNF LCM operation occurrence is in \"STARTING\" state, the VNFM shall not start any resource management operation and put the operation occurrence into the ROLLED_BACK state.\n",
-									"type": "string",
-									"enum": ["GRACEFUL", "FORCEFUL"]
-								},
-								"error": {
-									"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-									"type": "object",
-									"required": ["status", "detail"],
-									"properties": {
-										"type": {
-											"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-											"type": "string",
-											"format": "URI"
-										},
-										"title": {
-											"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-											"type": "string"
-										},
-										"status": {
-											"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-											"type": "integer"
-										},
-										"detail": {
-											"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-											"type": "string"
-										},
-										"instance": {
-											"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-											"type": "string",
-											"format": "URI"
-										}
-									}
-								},
-								"resourceChanges": {
-									"description": "This attribute contains information about the cumulative changes to virtualised resources that were performed so far by the LCM operation since its start, if applicable.\n",
-									"type": "object",
-									"properties": {
-										"affectedVnfcs": {
-											"description": "Information about VNFC instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
-											"type": "array",
-											"items": {
-												"description": "This type provides information about added, deleted, modified and temporary VNFCs.\n",
-												"type": "object",
-												"required": ["id", "vduId", "changeType", "computeResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"vduId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"changeType": {
-														"description": "Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVnfc structure exists as long as the temporary resource exists.\n",
-														"type": "string",
-														"enum": ["ADDED", "REMOVED", "MODIFIED", "TEMPORARY"]
-													},
-													"computeResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													},
-													"affectedVnfcCpIds": {
-														"description": "Identifiers of CP(s) of the VNFC instance that were affected by the change.  Shall be present for those affected CPs of the VNFC instance that are associated to an external CP of the VNF instance. May be present for further affected CPs of the VNFC instance.\n",
-														"type": "array",
-														"items": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													},
-													"addedStorageResourceIds": {
-														"description": "References to VirtualStorage resources that have been added. Each value refers to a VirtualStorageResourceInfo item in the VnfInstance that was added to the VNFC. It shall be provided if at least one storage resource was added to the VNFC.\n",
-														"type": "array",
-														"items": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													},
-													"removedStorageResourceIds": {
-														"description": "References to VirtualStorage resources that have been removed. The value contains the identifier of a VirtualStorageResourceInfo item that has been removed from the VNFC, and might no longer exist in the VnfInstance. It shall be provided if at least one storage resource was removed from the VNFC.\n",
-														"type": "array",
-														"items": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													}
-												}
-											}
-										},
-										"affectedVirtualLinks": {
-											"description": "Information about VL instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
-											"type": "array",
-											"items": {
-												"description": "This type provides information about added, deleted, modified and temporary VLs.\n",
-												"type": "object",
-												"required": ["id", "virtualLinkDescId", "changeType", "networkResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"virtualLinkDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"changeType": {
-														"description": "Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY * LINK_PORT_ADDED * LINK_PORT_REMOVED For a temporary resource, an AffectedVirtualLink structure exists as long as the temporary resource exists.\n",
-														"type": "string",
-														"enum": ["ADDED", "REMOVED", "MODIFIED", "TEMPORARY", "LINK_PORT_ADDED", "LINK_PORT_REMOVED"]
-													},
-													"networkResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"affectedVirtualStorages": {
-											"description": "Information about virtualised storage instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
-											"type": "array",
-											"items": {
-												"description": "This type provides information about added, deleted, modified and temporary virtual storage resources.\n",
-												"type": "object",
-												"required": ["id", "virtualStorageDescId", "changeType", "storageResource"],
-												"properties": {
-													"id": {
-														"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-														"type": "string"
-													},
-													"virtualStorageDescId": {
-														"description": "An identifier that is unique within a VNF descriptor.\n",
-														"type": "string"
-													},
-													"changeType": {
-														"description": "Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVirtualStorage structure exists as long as the temporary resource exists.\n",
-														"type": "string",
-														"enum": ["ADDED", "REMOVED", "MODIFIED", "TEMPORARY"]
-													},
-													"storageResource": {
-														"required": ["vimConnectionId", "resourceId"],
-														"type": "object",
-														"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-														"properties": {
-															"vimConnectionId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceProviderId": {
-																"description": "An identifier with the intention of being globally unique.\n",
-																"type": "string"
-															},
-															"resourceId": {
-																"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																"type": "string"
-															},
-															"vimLevelResourceType": {
-																"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																"type": "string"
-															}
-														}
-													},
-													"metadata": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										}
-									}
-								},
-								"changedInfo": {
-									"description": "This type represents attribute modifications that were performed on an \"Individual VNF instance\" resource. The attributes that can be included consist of those requested to be modified explicitly in the \"VnfInfoModificationRequest\" data structure, and additional attributes of the \"VnfInstance\" data structure that were modified implicitly e.g. when modifying the referenced VNF package.\n",
-									"type": "object",
-									"properties": {
-										"vnfInstanceName": {
-											"description": "If present, this attribute signals modifications of the \"vnfInstanceName\" attribute in \"VnfInstance\".\n",
-											"type": "string"
-										},
-										"vnfInstanceDescription": {
-											"description": "If present, this attribute signals modifications of the \"vnfInstanceDescription\" attribute in \"VnfInstance\".\n",
-											"type": "string"
-										},
-										"vnfConfigurableProperties": {
-											"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-											"type": "object"
-										},
-										"metadata": {
-											"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-											"type": "object"
-										},
-										"extensions": {
-											"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-											"type": "object"
-										},
-										"vimConnectionInfo": {
-											"description": "If present, this attribute signals modifications of certain entries in the \"vimConnectionInfo\" attribute array in \"VnfInstance\".\n",
-											"type": "array",
-											"items": {
-												"description": "This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.\n",
-												"type": "object",
-												"required": ["id", "vimType"],
-												"properties": {
-													"id": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vimId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"vimType": {
-														"description": "Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the \"interfaceInfo\" and \"accessInfo\" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.\n",
-														"type": "string"
-													},
-													"interfaceInfo": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													},
-													"accessInfo": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													},
-													"extra": {
-														"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.\n",
-														"type": "object"
-													}
-												}
-											}
-										},
-										"vnfPkgId": {
-											"description": "An identifier with the intention of being globally unique.\n",
-											"type": "string"
-										},
-										"vnfdId": {
-											"description": "An identifier with the intention of being globally unique.\n",
-											"type": "string"
-										},
-										"vnfProvider": {
-											"description": "If present, this attribute signals modifications of the \"vnfProvider\" attribute in \"VnfInstance\". If present, this attribute (which depends on the value of the \"vnfPkgId\" attribute) was modified implicitly following a request to modify the \"vnfPkgId\" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the \"vnfPkgId” attribute.\n",
-											"type": "string"
-										},
-										"vnfProductName": {
-											"description": "If present, this attribute signals modifications of the \"vnfProductName\" attribute in \"VnfInstance\". If present, this attribute (which depends on the value of the \"vnfPkgId\" attribute) was modified implicitly following a request to modify the \"vnfPkgId\" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the \"vnfPkgId” attribute.\n",
-											"type": "string"
-										},
-										"vnfSoftwareVersion": {
-											"description": "A Version.\n",
-											"type": "string"
-										},
-										"vnfdVersion": {
-											"description": "A Version.\n",
-											"type": "string"
-										}
-									}
-								},
-								"changedExtConnectivity": {
-									"description": "Information about changed external connectivity, if applicable. This allows the NFVO to obtain the information contained in the latest \"result\" notification if it has not received it due to an error or a wrongly configured subscription filter.\n",
-									"type": "array",
-									"items": {
-										"type": "object",
-										"required": ["id", "resourceHandle"],
-										"properties": {
-											"id": {
-												"description": "An identifier with the intention of being globally unique.\n",
-												"type": "string"
-											},
-											"resourceHandle": {
-												"required": ["vimConnectionId", "resourceId"],
-												"type": "object",
-												"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-												"properties": {
-													"vimConnectionId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"resourceProviderId": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													},
-													"resourceId": {
-														"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-														"type": "string"
-													},
-													"vimLevelResourceType": {
-														"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-														"type": "string"
-													}
-												}
-											},
-											"extLinkPorts": {
-												"description": "Link ports of this VL.\n",
-												"type": "array",
-												"items": {
-													"description": "This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.\n",
-													"type": "object",
-													"required": ["id", "resourceHandle"],
-													"properties": {
-														"id": {
-															"description": "An identifier with the intention of being globally unique.\n",
-															"type": "string"
-														},
-														"resourceHandle": {
-															"required": ["vimConnectionId", "resourceId"],
-															"type": "object",
-															"description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n",
-															"properties": {
-																"vimConnectionId": {
-																	"description": "An identifier with the intention of being globally unique.\n",
-																	"type": "string"
-																},
-																"resourceProviderId": {
-																	"description": "An identifier with the intention of being globally unique.\n",
-																	"type": "string"
-																},
-																"resourceId": {
-																	"description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n",
-																	"type": "string"
-																},
-																"vimLevelResourceType": {
-																	"description": "Type of the resource in the scope of the VIM or the resource provider.\n",
-																	"type": "string"
-																}
-															}
-														},
-														"cpInstanceId": {
-															"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
-															"type": "string"
-														}
-													}
-												}
-											}
-										}
-									}
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self", "vnfInstance"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"vnfInstance": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"grant": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"cancel": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"retry": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"rollback": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										},
-										"fail": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"409": {
-						"description": "Conflict\nAnother request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		},
-		"/subscriptions": {
-			"post": {
-				"description": "Subscribe\n\nThe POST method creates a new subscription. Creation of two subscription resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating a subscription resource if another subscription resource with the same filter and callbackUri already exists (in which case it shall return the “201 Created” response code), or may decide to not create a duplicate subscription resource (in which case it shall return a “303 See Other” response code referencing the existing subscription resource with the same filter and callbackUri).\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "LccnSubscriptionRequest",
-						"description": "Details of the subscription to be created.\n",
-						"in": "body",
-						"required": true,
-						"schema": {
-							"description": "This type represents a subscription request related to notifications about VNF lifecycle changes.\n",
-							"type": "object",
-							"required": ["callbackUri"],
-							"properties": {
-								"filter": {
-									"description": "This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",
-									"type": "object",
-									"properties": {
-										"vnfInstanceSubscriptionFilter": {
-											"description": "This type represents subscription filter criteria to match VNF instances.\n",
-											"type": "object",
-											"properties": {
-												"vnfInstanceIds": {
-													"description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												}
-											}
-										},
-										"notificationTypes": {
-											"description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
-											"type": "array",
-											"items": {
-												"type": "string",
-												"enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
-											}
-										},
-										"operationTypes": {
-											"description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation.    SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
-												"type": "string",
-												"enum": ["INSTANTIATE", "TERMINATE"]
-											}
-										},
-										"operationStates": {
-											"description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n",
-												"type": "string",
-												"enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
-											}
-										}
-									}
-								},
-								"callbackUri": {
-									"description": "String formatted according to IETF RFC 3986.\n",
-									"type": "string"
-								},
-								"authentication": {
-									"type": "object",
-									"required": ["authType"],
-									"properties": {
-										"authType": {
-											"description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use  HTTP Basic authentication with the client credentials. \n* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the  notification endpoint, use an OAuth 2.0 Bearer token, obtained\n  using the client credentials grant type.\n* TLS_CERT: Every HTTP request to the notification endpoint is sent  over a mutually authenticated TLS session, i.e. not only the\n  server is authenticated, but also the client is authenticated\n  during the TLS tunnel setup.\n",
-											"type": "array",
-											"items": {
-												"type": "string",
-												"enum": ["BASIC", "OAUTH2_CLIENT_CREDENTIALS", "TLS_CERT"]
-											}
-										},
-										"paramsBasic": {
-											"description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n",
-											"type": "object",
-											"properties": {
-												"userName": {
-													"description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n",
-													"type": "string"
-												},
-												"password": {
-													"description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n",
-													"type": "string"
-												}
-											}
-										},
-										"paramsOauth2ClientCredentials": {
-											"description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n",
-											"type": "object",
-											"properties": {
-												"clientId": {
-													"description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n",
-													"type": "string"
-												},
-												"clientPassword": {
-													"description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n",
-													"type": "string"
-												},
-												"tokenEndpoint": {
-													"description": "String formatted according to IETF RFC 3986.\n",
-													"type": "string"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					}, {
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}, {
-						"name": "Content-Type",
-						"description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"201": {
-						"description": "Created\nThe subscription was created successfully. The response body shall contain a representation of the created subscription resource. The HTTP response shall include a \"Location\" HTTP header that points to the created subscription resource.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"Location": {
-								"description": "The resource URI of the created VNF instance",
-								"type": "string",
-								"format": "url"
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
-							"type": "object",
-							"required": ["id", "callbackUri", "_links"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"filter": {
-									"description": "This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",
-									"type": "object",
-									"properties": {
-										"vnfInstanceSubscriptionFilter": {
-											"description": "This type represents subscription filter criteria to match VNF instances.\n",
-											"type": "object",
-											"properties": {
-												"vnfdIds": {
-													"description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												},
-												"vnfProductsFromProviders": {
-													"description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"type": "object",
-														"required": ["vnfProvider"],
-														"properties": {
-															"vnfProvider": {
-																"description": "Name of the VNF provider to match.\n",
-																"type": "string"
-															},
-															"vnfProducts": {
-																"description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
-																"type": "array",
-																"items": {
-																	"type": "object",
-																	"required": ["vnfProductName"],
-																	"properties": {
-																		"vnfProductName": {
-																			"description": "Name of the VNF product to match.\n",
-																			"type": "string"
-																		},
-																		"versions": {
-																			"description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n",
-																			"type": "array",
-																			"items": {
-																				"type": "object",
-																				"required": ["vnfSoftwareVersion"],
-																				"properties": {
-																					"vnfSoftwareVersion": {
-																						"description": "A version.\n",
-																						"type": "string"
-																					},
-																					"vnfdVersions": {
-																						"description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n",
-																						"type": "array",
-																						"items": {
-																							"description": "A version.\n",
-																							"type": "string"
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													}
-												},
-												"vnfInstanceIds": {
-													"description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												},
-												"vnfInstanceNames": {
-													"description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"type": "string"
-													}
-												}
-											}
-										},
-										"notificationTypes": {
-											"description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
-											"type": "array",
-											"items": {
-												"type": "string",
-												"enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
-											}
-										},
-										"operationTypes": {
-											"description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation.    SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
-												"type": "string",
-												"enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
-											}
-										},
-										"operationStates": {
-											"description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n",
-												"type": "string",
-												"enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
-											}
-										}
-									}
-								},
-								"callbackUri": {
-									"description": "String formatted according to IETF RFC 3986.\n",
-									"type": "string"
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"303": {
-						"description": "See Other\nA subscription with the same callbackURI and the same filter already exists and the policy of the VNFM is to not create redundant subscriptions. The HTTP response shall include a \"Location\" HTTP header that contains the resource URI of the existing subscription resource. The response body shall be empty.\n",
-						"headers": {
-							"Location": {
-								"description": "The resource URI of the created VNF instance",
-								"type": "string",
-								"format": "url"
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			},
-			"get": {
-				"description": "Query Subscription Information\n\nThe GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"200": {
-						"description": "OK\nThe list of subscriptions was queried successfully. The response body shall contain the representations of all active subscriptions of the functional block that invokes the method.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
-							"type": "object",
-							"required": ["id", "callbackUri", "_links"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"filter": {
-									"description": "This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",
-									"type": "object",
-									"properties": {
-										"vnfInstanceSubscriptionFilter": {
-											"description": "This type represents subscription filter criteria to match VNF instances.\n",
-											"type": "object",
-											"properties": {
-												"vnfdIds": {
-													"description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												},
-												"vnfProductsFromProviders": {
-													"description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"type": "object",
-														"required": ["vnfProvider"],
-														"properties": {
-															"vnfProvider": {
-																"description": "Name of the VNF provider to match.\n",
-																"type": "string"
-															},
-															"vnfProducts": {
-																"description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
-																"type": "array",
-																"items": {
-																	"type": "object",
-																	"required": ["vnfProductName"],
-																	"properties": {
-																		"vnfProductName": {
-																			"description": "Name of the VNF product to match.\n",
-																			"type": "string"
-																		},
-																		"versions": {
-																			"description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n",
-																			"type": "array",
-																			"items": {
-																				"type": "object",
-																				"required": ["vnfSoftwareVersion"],
-																				"properties": {
-																					"vnfSoftwareVersion": {
-																						"description": "A version.\n",
-																						"type": "string"
-																					},
-																					"vnfdVersions": {
-																						"description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n",
-																						"type": "array",
-																						"items": {
-																							"description": "A version.\n",
-																							"type": "string"
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													}
-												},
-												"vnfInstanceIds": {
-													"description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												},
-												"vnfInstanceNames": {
-													"description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"type": "string"
-													}
-												}
-											}
-										},
-										"notificationTypes": {
-											"description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
-											"type": "array",
-											"items": {
-												"type": "string",
-												"enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
-											}
-										},
-										"operationTypes": {
-											"description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation.    SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
-												"type": "string",
-												"enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
-											}
-										},
-										"operationStates": {
-											"description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n",
-												"type": "string",
-												"enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
-											}
-										}
-									}
-								},
-								"callbackUri": {
-									"description": "String formatted according to IETF RFC 3986.\n",
-									"type": "string"
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nInvalid attribute-based filtering parameters. The response body shall contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		},
-		"/subscriptions/{subscriptionId}": {
-			"parameters": [{
-					"name": "subscriptionId",
-					"description": "Identifier of this subscription. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n",
-					"in": "path",
-					"type": "string",
-					"required": true
-				}
-			],
-			"get": {
-				"description": "Query Subscription Information\n\nThe GET method retrieves information about a subscription by reading an individual subscription resource.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "Accept",
-						"description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231\n",
-						"in": "header",
-						"required": true,
-						"type": "string"
-					}, {
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"200": {
-						"description": "OK\nThe operation has completed successfully. The response body shall contain a representation of the subscription resource.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
-							"type": "object",
-							"required": ["id", "callbackUri", "_links"],
-							"properties": {
-								"id": {
-									"description": "An identifier with the intention of being globally unique.\n",
-									"type": "string"
-								},
-								"filter": {
-									"description": "This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",
-									"type": "object",
-									"properties": {
-										"vnfInstanceSubscriptionFilter": {
-											"description": "This type represents subscription filter criteria to match VNF instances.\n",
-											"type": "object",
-											"properties": {
-												"vnfdIds": {
-													"description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												},
-												"vnfProductsFromProviders": {
-													"description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"type": "object",
-														"required": ["vnfProvider"],
-														"properties": {
-															"vnfProvider": {
-																"description": "Name of the VNF provider to match.\n",
-																"type": "string"
-															},
-															"vnfProducts": {
-																"description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
-																"type": "array",
-																"items": {
-																	"type": "object",
-																	"required": ["vnfProductName"],
-																	"properties": {
-																		"vnfProductName": {
-																			"description": "Name of the VNF product to match.\n",
-																			"type": "string"
-																		},
-																		"versions": {
-																			"description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n",
-																			"type": "array",
-																			"items": {
-																				"type": "object",
-																				"required": ["vnfSoftwareVersion"],
-																				"properties": {
-																					"vnfSoftwareVersion": {
-																						"description": "A version.\n",
-																						"type": "string"
-																					},
-																					"vnfdVersions": {
-																						"description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n",
-																						"type": "array",
-																						"items": {
-																							"description": "A version.\n",
-																							"type": "string"
-																						}
-																					}
-																				}
-																			}
-																		}
-																	}
-																}
-															}
-														}
-													}
-												},
-												"vnfInstanceIds": {
-													"description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"description": "An identifier with the intention of being globally unique.\n",
-														"type": "string"
-													}
-												},
-												"vnfInstanceNames": {
-													"description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
-													"type": "array",
-													"items": {
-														"type": "string"
-													}
-												}
-											}
-										},
-										"notificationTypes": {
-											"description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
-											"type": "array",
-											"items": {
-												"type": "string",
-												"enum": ["VnfLcmOperationOccurrenceNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification"]
-											}
-										},
-										"operationTypes": {
-											"description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation.    SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation.\n",
-												"type": "string",
-												"enum": ["INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO"]
-											}
-										},
-										"operationStates": {
-											"description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
-											"type": "array",
-											"items": {
-												"description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n",
-												"type": "string",
-												"enum": ["STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", "ROLLING_BACK", "ROLLED_BACK"]
-											}
-										}
-									}
-								},
-								"callbackUri": {
-									"description": "String formatted according to IETF RFC 3986.\n",
-									"type": "string"
-								},
-								"_links": {
-									"description": "Links to resources related to this resource.\n",
-									"type": "object",
-									"required": ["self"],
-									"properties": {
-										"self": {
-											"description": "This type represents a link to a resource.\n",
-											"type": "object",
-											"required": ["href"],
-											"properties": {
-												"href": {
-													"description": "URI of the referenced resource.\n",
-													"type": "string",
-													"format": "url"
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			},
-			"delete": {
-				"description": "Terminate Subscription\n\nThe DELETE method terminates an individual subscription.\n",
-				"tags": ["Sol003VnfLcm"],
-				"parameters": [{
-						"name": "Authorization",
-						"description": "The authorization token for the request. Reference: IETF RFC 7235\n",
-						"in": "header",
-						"required": false,
-						"type": "string"
-					}
-				],
-				"responses": {
-					"204": {
-						"description": "No Content\nThe subscription resource was deleted successfully. The response body shall be empty.\n",
-						"headers": {
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						}
-					},
-					"400": {
-						"description": "Bad Request\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\n ---\n\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n ---\n\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code.The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"401": {
-						"description": "Unauthorized\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							},
-							"WWW-Authenticate": {
-								"description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 0
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"403": {
-						"description": "Forbidden\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided.  It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"404": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"405": {
-						"description": "Not Found\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"406": {
-						"description": "Not Acceptable\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted in that case.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"500": {
-						"description": "Internal Server Error\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond withthis response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					},
-					"503": {
-						"description": "Service Unavailable\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n",
-						"headers": {
-							"Content-Type": {
-								"description": "The MIME type of the body of the response.",
-								"type": "string",
-								"maximum": 1,
-								"minimum": 1
-							}
-						},
-						"schema": {
-							"description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n",
-							"type": "object",
-							"required": ["status", "detail"],
-							"properties": {
-								"type": {
-									"description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n",
-									"type": "string",
-									"format": "URI"
-								},
-								"title": {
-									"description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n",
-									"type": "string"
-								},
-								"status": {
-									"description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n",
-									"type": "integer"
-								},
-								"detail": {
-									"description": "A human-readable explanation specific to this occurrence of the problem.\n",
-									"type": "string"
-								},
-								"instance": {
-									"description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n",
-									"type": "string",
-									"format": "URI"
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-}
diff --git a/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.yaml b/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.yaml
deleted file mode 100644
index 71b7163..0000000
--- a/vnfm-simulator/vnfm-api/src/main/resources/vnfm-sim-swagger.yaml
+++ /dev/null
@@ -1,8404 +0,0 @@
-swagger: '2.0'
-info:
-  version: 1.1.1
-  title: SOL003 - VNF Lifecycle Management interface
-  description: |
-    SOL003 - VNF Lifecycle Management interface definition
-
-    IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.
-
-    In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based filtering mechanism is defined. This mechanism is currently not included in the corresponding OpenAPI design for this GS version. Changes to the attribute-based filtering mechanism are being considered in v2.5.1 of this GS for inclusion in the corresponding future ETSI NFV OpenAPI design.
-    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
-  license:
-    name: ETSI Forge copyright notice
-    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
-externalDocs:
-  description: ETSI GS NFV-SOL 003 V2.4.1
-  url: 'http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf'
-basePath: /vnflcm/v1
-schemes:
-  - https
-consumes:
-  - application/json
-produces:
-  - application/json
-paths:
-  /vnf_instances:
-    post:
-      description: |
-        Create VNF Identifier
-
-        The POST method creates a new VNF instance resource.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: createVnfRequest
-          description: The VNF creation parameters
-          in: body
-          required: true
-          schema:
-            type: object
-            required:
-              - vnfdId
-            properties:
-              vnfdId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfInstanceName:
-                description: |
-                  Human-readable name of the VNF instance to be created.
-                type: string
-              vnfInstanceDescription:
-                description: |
-                  Human-readable description of the VNF instance to be created.
-                type: string
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Content-Type
-          description: |
-            The MIME type of the body of the request. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-      responses:
-        '201':
-          description: A VNF Instance identifier was created successfully
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            Location:
-              description: The resource URI of the created VNF instance
-              type: string
-              format: url
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a VNF instance.
-            type: object
-            required:
-              - id
-              - vnfdId
-              - vnfProvider
-              - vnfProductName
-              - vnfSoftwareVersion
-              - vnfdVersion
-              - vnfPkgId
-              - instantiationState
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfInstanceName:
-                description: |
-                  Name of the VNF instance. This attribute can be modified with the PATCH method.
-                type: string
-              vnfInstanceDescription:
-                description: |
-                  Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.
-                type: string
-              vnfdId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfProvider:
-                description: |
-                  Provider of the VNF and the VNFD. The value is copied from the VNFD.
-                type: string
-              vnfProductName:
-                description: |
-                  Name to identify the VNF Product. The value is copied from the VNFD.
-                type: string
-              vnfSoftwareVersion:
-                description: |
-                  A Version.
-                type: string
-              vnfdVersion:
-                description: |
-                  A Version.
-                type: string
-              vnfPkgId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfConfigurableProperties:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              vimConnectionInfo:
-                description: |
-                  Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
-                type: array
-                items:
-                  description: |
-                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
-                  type: object
-                  required:
-                    - id
-                    - vimType
-                  properties:
-                    id:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimId:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimType:
-                      description: |
-                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
-                      type: string
-                    interfaceInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    accessInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    extra:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-              instantiationState:
-                description: |
-                  The instantiation state of the VNF.
-                type: string
-                enum:
-                  - NOT_INSTANTIATED
-                  - INSTANTIATED
-              instantiatedVnfInfo:
-                description: |
-                  Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.
-                type: object
-                required:
-                  - flavourId
-                  - vnfState
-                properties:
-                  flavourId:
-                    description: |
-                      An identifier that is unique within a VNF descriptor.
-                    type: string
-                  vnfState:
-                    type: string
-                    enum:
-                      - STARTED
-                      - STOPPED
-                  scaleStatus:
-                    description: |
-                      Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
-                    type: array
-                    items:
-                      required:
-                        - aspectId
-                        - scaleLevel
-                      type: object
-                      properties:
-                        aspectId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        scaleLevel:
-                          description: |
-                            Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.
-                          type: integer
-                  extCpInfo:
-                    description: |
-                      Information about the external CPs exposed by the VNF instance.
-                    type: array
-                    minItems: 1
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - cpdId
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        cpdId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        cpProtocolInfo:
-                          description: |
-                            Network protocol information for this CP.
-                          type: array
-                          items:
-                            description: |
-                              This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
-                            required:
-                              - layerProtocol
-                            properties:
-                              layerProtocol:
-                                description: |
-                                  The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                type: string
-                                enum:
-                                  - IP_OVER_ETHERNET
-                              ipOverEthernet:
-                                description: |
-                                  This type represents information about a network address that has been assigned.
-                                type: object
-                                required:
-                                  - macAddress
-                                properties:
-                                  macAddress:
-                                    description: |
-                                      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                    type: string
-                                    format: MAC
-                                  ipAddresses:
-                                    description: |
-                                      Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
-                                    type: array
-                                    items:
-                                      type: object
-                                      required:
-                                        - type
-                                      properties:
-                                        type:
-                                          description: |
-                                            The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                          type: string
-                                          enum:
-                                            - IPV4
-                                            - IPV6
-                                        addresses:
-                                          description: |
-                                            Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
-                                          type: array
-                                          items:
-                                            description: |
-                                              An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                            type: string
-                                            format: IP
-                                        isDynamic:
-                                          description: |
-                                            Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
-                                          type: boolean
-                                        addressRange:
-                                          description: |
-                                            An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
-                                          type: object
-                                          required:
-                                            - minAddress
-                                            - maxAddress
-                                          properties:
-                                            minAddress:
-                                              description: |
-                                                An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                              type: string
-                                              format: IP
-                                            maxAddress:
-                                              description: |
-                                                An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                              type: string
-                                              format: IP
-                                        subnetId:
-                                          description: |
-                                            An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                          type: string
-                                          format: IP
-                        extLinkPortId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                  extVirtualLinkInfo:
-                    description: |
-                      Information about the external VLs the VNF instance is connected to.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - resourceHandle
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        resourceHandle:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        extLinkPorts:
-                          description: |
-                            Link ports of this VL.
-                          type: array
-                          items:
-                            description: |
-                              This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier with the intention of being globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                  extManagedVirtualLinkInfo:
-                    description: |
-                      External virtual links the VNF instance is connected to.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - vnfVirtualLinkDescId
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfVirtualLinkDescId:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        vnfLinkPorts:
-                          description: |
-                            Link ports of this VL.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                  monitoringParameters:
-                    description: |
-                      Active monitoring parameters.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - value
-                        - timeStamp
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        name:
-                          description: |
-                            Human readable name of the monitoring parameter, as defined in the VNFD.
-                          type: string
-                        value:
-                          description: |
-                            Value of the monitoring parameter known to the VNFM (e.g. obtained for autoscaling purposes). The type of the "value" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification.
-                          type: object
-                        timeStamp:
-                          description: |
-                            Represents the point in time when the measurement has been performed, as known to the VNFM. Should be formatted according to ETF RFC 3339.
-                          type: string
-                  localizationLanguage:
-                    description: |
-                      Information about localization language of the VNF (includes e.g. strings in the VNFD). The localization languages supported by a VNF can be declared in the VNFD, and localization language selection can take place at instantiation time. The value shall comply with the format defined in IETF RFC 5646.
-                    type: string
-                  vnfcResourceInfo:
-                    description: |
-                      Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - vduId
-                        - computeResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vduId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        computeResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        storageResourceIds:
-                          description: |
-                            References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
-                          type: array
-                          items:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfcCpInfo:
-                          description: |
-                            CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - cpdId
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              cpdId:
-                                description: |
-                                  An identifier that is unique within a VNF descriptor.
-                                type: string
-                              vnfExtCpId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              cpProtocolInfo:
-                                description: |
-                                  Network protocol information for this CP.
-                                type: array
-                                items:
-                                  description: |
-                                    This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
-                                  required:
-                                    - layerProtocol
-                                  properties:
-                                    layerProtocol:
-                                      description: |
-                                        The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                      type: string
-                                      enum:
-                                        - IP_OVER_ETHERNET
-                                    ipOverEthernet:
-                                      description: |
-                                        This type represents information about a network address that has been assigned.
-                                      type: object
-                                      required:
-                                        - macAddress
-                                      properties:
-                                        macAddress:
-                                          description: |
-                                            A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                          type: string
-                                          format: MAC
-                                        ipAddresses:
-                                          description: |
-                                            Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
-                                          type: array
-                                          items:
-                                            type: object
-                                            required:
-                                              - type
-                                            properties:
-                                              type:
-                                                description: |
-                                                  The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                                type: string
-                                                enum:
-                                                  - IPV4
-                                                  - IPV6
-                                              addresses:
-                                                description: |
-                                                  Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
-                                                type: array
-                                                items:
-                                                  description: |
-                                                    An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                  type: string
-                                                  format: IP
-                                              isDynamic:
-                                                description: |
-                                                  Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
-                                                type: boolean
-                                              addressRange:
-                                                description: |
-                                                  An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
-                                                type: object
-                                                required:
-                                                  - minAddress
-                                                  - maxAddress
-                                                properties:
-                                                  minAddress:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                                  maxAddress:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                              subnetId:
-                                                description: |
-                                                  An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                type: string
-                                                format: IP
-                              vnfLinkPortId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  virtualLinkResourceInfo:
-                    description: |
-                      Information about the virtualised network resources used by the VLs of the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - vnfVirtualLinkDescId
-                        - networkResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vnfVirtualLinkDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfLinkPorts:
-                          description: |
-                            Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  virtualStorageResourceInfo:
-                    description: |
-                      Information on the virtualised storage resource(s) used as storage for the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - virtualStorageDescId
-                        - storageResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        virtualStorageDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        storageResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-              metadata:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              extensions:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  indicators:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  instantiate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  terminate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  scale:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  scaleToLevel:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  changeFlavour:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  heal:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  operate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  changeExtConn:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '409':
-          description: |
-            Conflict
-            Another request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '416':
-          description: |
-            Requested Range Not Satisfiable
-            This code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '422':
-          description: |
-            Unprocessable Entity
-            If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem. NOTE 2: This error response code is only applicable for methods that have a request body.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-  '/vnf_instances/{vnfInstanceId}':
-    parameters:
-      - name: vnfInstanceId
-        description: |
-          Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body of that response.
-        in: path
-        type: string
-        required: true
-    get:
-      description: |
-        Query VNF
-
-        The GET method retrieves information about a VNF instance by reading an individual VNF instance resource.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Content-Type
-          description: |
-            The MIME type of the body of the request. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-      responses:
-        '200':
-          description: |
-            OK
-            Information about zero or more VNF instances was queried successfully. The response body shall contain representations of zero or more VNF instances.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a VNF instance.
-            type: object
-            required:
-              - id
-              - vnfdId
-              - vnfProvider
-              - vnfProductName
-              - vnfSoftwareVersion
-              - vnfdVersion
-              - vnfPkgId
-              - instantiationState
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfInstanceName:
-                description: |
-                  Name of the VNF instance. This attribute can be modified with the PATCH method.
-                type: string
-              vnfInstanceDescription:
-                description: |
-                  Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.
-                type: string
-              vnfdId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfProvider:
-                description: |
-                  Provider of the VNF and the VNFD. The value is copied from the VNFD.
-                type: string
-              vnfProductName:
-                description: |
-                  Name to identify the VNF Product. The value is copied from the VNFD.
-                type: string
-              vnfSoftwareVersion:
-                description: |
-                  A Version.
-                type: string
-              vnfdVersion:
-                description: |
-                  A Version.
-                type: string
-              vnfPkgId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfConfigurableProperties:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              vimConnectionInfo:
-                description: |
-                  Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
-                type: array
-                items:
-                  description: |
-                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
-                  type: object
-                  required:
-                    - id
-                    - vimType
-                  properties:
-                    id:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimId:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimType:
-                      description: |
-                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
-                      type: string
-                    interfaceInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    accessInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    extra:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-              instantiationState:
-                description: |
-                  The instantiation state of the VNF.
-                type: string
-                enum:
-                  - NOT_INSTANTIATED
-                  - INSTANTIATED
-              instantiatedVnfInfo:
-                description: |
-                  Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.
-                type: object
-                required:
-                  - flavourId
-                  - vnfState
-                properties:
-                  flavourId:
-                    description: |
-                      An identifier that is unique within a VNF descriptor.
-                    type: string
-                  vnfState:
-                    type: string
-                    enum:
-                      - STARTED
-                      - STOPPED
-                  scaleStatus:
-                    description: |
-                      Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
-                    type: array
-                    items:
-                      required:
-                        - aspectId
-                        - scaleLevel
-                      type: object
-                      properties:
-                        aspectId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        scaleLevel:
-                          description: |
-                            Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.
-                          type: integer
-                  extCpInfo:
-                    description: |
-                      Information about the external CPs exposed by the VNF instance.
-                    type: array
-                    minItems: 1
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - cpdId
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        cpdId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        cpProtocolInfo:
-                          description: |
-                            Network protocol information for this CP.
-                          type: array
-                          items:
-                            description: |
-                              This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
-                            required:
-                              - layerProtocol
-                            properties:
-                              layerProtocol:
-                                description: |
-                                  The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                type: string
-                                enum:
-                                  - IP_OVER_ETHERNET
-                              ipOverEthernet:
-                                description: |
-                                  This type represents information about a network address that has been assigned.
-                                type: object
-                                required:
-                                  - macAddress
-                                properties:
-                                  macAddress:
-                                    description: |
-                                      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                    type: string
-                                    format: MAC
-                                  ipAddresses:
-                                    description: |
-                                      Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
-                                    type: array
-                                    items:
-                                      type: object
-                                      required:
-                                        - type
-                                      properties:
-                                        type:
-                                          description: |
-                                            The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                          type: string
-                                          enum:
-                                            - IPV4
-                                            - IPV6
-                                        addresses:
-                                          description: |
-                                            Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
-                                          type: array
-                                          items:
-                                            description: |
-                                              An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                            type: string
-                                            format: IP
-                                        isDynamic:
-                                          description: |
-                                            Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
-                                          type: boolean
-                                        addressRange:
-                                          description: |
-                                            An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
-                                          type: object
-                                          required:
-                                            - minAddress
-                                            - maxAddress
-                                          properties:
-                                            minAddress:
-                                              description: |
-                                                An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                              type: string
-                                              format: IP
-                                            maxAddress:
-                                              description: |
-                                                An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                              type: string
-                                              format: IP
-                                        subnetId:
-                                          description: |
-                                            An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                          type: string
-                                          format: IP
-                        extLinkPortId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                  extVirtualLinkInfo:
-                    description: |
-                      Information about the external VLs the VNF instance is connected to.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - resourceHandle
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        resourceHandle:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        extLinkPorts:
-                          description: |
-                            Link ports of this VL.
-                          type: array
-                          items:
-                            description: |
-                              This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier with the intention of being globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                  extManagedVirtualLinkInfo:
-                    description: |
-                      External virtual links the VNF instance is connected to.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - vnfVirtualLinkDescId
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfVirtualLinkDescId:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        vnfLinkPorts:
-                          description: |
-                            Link ports of this VL.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                  monitoringParameters:
-                    description: |
-                      Active monitoring parameters.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - value
-                        - timeStamp
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        name:
-                          description: |
-                            Human readable name of the monitoring parameter, as defined in the VNFD.
-                          type: string
-                        value:
-                          description: |
-                            Value of the monitoring parameter known to the VNFM (e.g. obtained for autoscaling purposes). The type of the "value" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification.
-                          type: object
-                        timeStamp:
-                          description: |
-                            Represents the point in time when the measurement has been performed, as known to the VNFM. Should be formatted according to ETF RFC 3339.
-                          type: string
-                  localizationLanguage:
-                    description: |
-                      Information about localization language of the VNF (includes e.g. strings in the VNFD). The localization languages supported by a VNF can be declared in the VNFD, and localization language selection can take place at instantiation time. The value shall comply with the format defined in IETF RFC 5646.
-                    type: string
-                  vnfcResourceInfo:
-                    description: |
-                      Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - vduId
-                        - computeResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vduId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        computeResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        storageResourceIds:
-                          description: |
-                            References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
-                          type: array
-                          items:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfcCpInfo:
-                          description: |
-                            CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - cpdId
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              cpdId:
-                                description: |
-                                  An identifier that is unique within a VNF descriptor.
-                                type: string
-                              vnfExtCpId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              cpProtocolInfo:
-                                description: |
-                                  Network protocol information for this CP.
-                                type: array
-                                items:
-                                  description: |
-                                    This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
-                                  required:
-                                    - layerProtocol
-                                  properties:
-                                    layerProtocol:
-                                      description: |
-                                        The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                      type: string
-                                      enum:
-                                        - IP_OVER_ETHERNET
-                                    ipOverEthernet:
-                                      description: |
-                                        This type represents information about a network address that has been assigned.
-                                      type: object
-                                      required:
-                                        - macAddress
-                                      properties:
-                                        macAddress:
-                                          description: |
-                                            A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                          type: string
-                                          format: MAC
-                                        ipAddresses:
-                                          description: |
-                                            Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
-                                          type: array
-                                          items:
-                                            type: object
-                                            required:
-                                              - type
-                                            properties:
-                                              type:
-                                                description: |
-                                                  The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                                type: string
-                                                enum:
-                                                  - IPV4
-                                                  - IPV6
-                                              addresses:
-                                                description: |
-                                                  Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
-                                                type: array
-                                                items:
-                                                  description: |
-                                                    An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                  type: string
-                                                  format: IP
-                                              isDynamic:
-                                                description: |
-                                                  Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
-                                                type: boolean
-                                              addressRange:
-                                                description: |
-                                                  An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
-                                                type: object
-                                                required:
-                                                  - minAddress
-                                                  - maxAddress
-                                                properties:
-                                                  minAddress:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                                  maxAddress:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                              subnetId:
-                                                description: |
-                                                  An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                type: string
-                                                format: IP
-                              vnfLinkPortId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  virtualLinkResourceInfo:
-                    description: |
-                      Information about the virtualised network resources used by the VLs of the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - vnfVirtualLinkDescId
-                        - networkResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vnfVirtualLinkDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfLinkPorts:
-                          description: |
-                            Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  virtualStorageResourceInfo:
-                    description: |
-                      Information on the virtualised storage resource(s) used as storage for the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - virtualStorageDescId
-                        - storageResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        virtualStorageDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        storageResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-              metadata:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              extensions:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  indicators:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  instantiate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  terminate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  scale:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  scaleToLevel:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  changeFlavour:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  heal:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  operate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  changeExtConn:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '409':
-          description: |
-            Conflict
-            Another request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '416':
-          description: |
-            Requested Range Not Satisfiable
-            This code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-    delete:
-      description: |
-        Delete VNF Identifier
-
-        This method deletes an individual VNF instance resource.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-      responses:
-        '204':
-          description: |
-            No Content
-            The VNF instance resource and the associated VNF identifier were deleted successfully. The response body shall be empty.
-          headers:
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-        '400':
-          description: |
-            Bad Request
-            It fhe request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem. If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '409':
-          description: |
-            Conflict
-            The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '412':
-          description: |
-            Precondition Failed
-            A precondition given in an HTTP request header is not fulfilled. Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. The response body should contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-  '/vnf_instances/{vnfInstanceId}/instantiate':
-    parameters:
-      - name: vnfInstanceId
-        description: |
-          Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body of that response.
-        in: path
-        type: string
-        required: true
-    post:
-      description: |
-        Instantiate VNF
-
-        The POST method instantiates a VNF instance.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: InstantiateVnfRequest
-          description: Parameters for the VNF instantiation.
-          in: body
-          required: true
-          schema:
-            type: object
-            required:
-              - flavourId
-            properties:
-              flavourId:
-                description: |
-                  An identifier that is unique within a VNF descriptor.
-                type: string
-              extVirtualLinks:
-                description: |
-                  Information about external VLs to connect the VNF to.
-                type: array
-                items:
-                  description: |
-                    This type represents an external VL.
-                  type: object
-                  required:
-                    - id
-                    - resourceId
-                    - extCps
-                  properties:
-                    id:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimConnectionId:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    resourceId:
-                      description: |
-                        An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                      type: string
-                    extCps:
-                      description: |
-                        External CPs of the VNF to be connected to this external VL.
-                      type: array
-                      items:
-                        description: |
-                          This type represents configuration information for external CPs created from a CPD.
-                        type: object
-                        required:
-                          - cpdId
-                        properties:
-                          cpdId:
-                            description: |
-                              An identifier that is unique within a VNF descriptor.
-                            type: string
-                          cpConfig:
-                            description: |
-                              List of instance data that need to be configured on the CP instances created from the respective CPD.
-                            type: array
-                            items:
-                              description: |
-                                This type represents an externally provided link port or network address information per instance of an external connection point. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the external VL. In a link port is not provided, the VNFM shall create a link port on the external VL, and use that link port to connect the external CP to the external VL.
-                              type: object
-                              properties:
-                                cpInstanceId:
-                                  description: |
-                                    An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                  type: string
-                                linkPortId:
-                                  description: |
-                                    An identifier with the intention of being globally unique.
-                                  type: string
-                                cpProtocolData:
-                                  description: |
-                                    Parameters for configuring the network protocols on the link port that connects the CP to a VL.  The following conditions apply to the attributes "linkPortId" and "cpProtocolData":  * The "linkPortId" and "cpProtocolData" attributes shall both be  absent for the deletion of an existing external CP instance
-                                      addressed by cpInstanceId. 
-                                    * At least one of these attributes shall be present for a  to-be-created external CP instance or an existing external
-                                      CP instance.
-                                    * If the "linkPortId" attribute is absent, the VNFM shall create a  link port.
-                                    * If the "cpProtocolData" attribute is absent, the "linkPortId"  attribute shall be provided referencing a pre-created link port,
-                                      and the VNFM can use means outside the scope of the present
-                                      document to obtain the pre-configured address information for the
-                                      connection point from the resource representing the link port.
-                                    * If both "cpProtocolData" and "linkportId" are provided, the API  consumer shall ensure that the cpProtocolData can be used with the
-                                      pre-created link port referenced by "linkPortId".
-                                  type: array
-                                  items:
-                                    description: |
-                                      This type represents network protocol data.
-                                    type: object
-                                    required:
-                                      - layerProtocol
-                                    properties:
-                                      layerProtocol:
-                                        description: |
-                                          Identifier of layer(s) and protocol(s). This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                        type: string
-                                        enum:
-                                          - IP_OVER_ETHERNET
-                                      ipOverEthernet:
-                                        description: |
-                                          This type represents network address data for IP over Ethernet.
-                                        type: object
-                                        properties:
-                                          macAddress:
-                                            description: |
-                                              A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                            type: string
-                                            format: MAC
-                                          ipAddresses:
-                                            description: |
-                                              List of IP addresses to assign to the CP instance. Each entry represents IP address data for fixed or dynamic IP address assignment per subnet. If this attribute is not present, no IP address shall be assigned.
-                                            type: array
-                                            items:
-                                              type: object
-                                              required:
-                                                - type
-                                              properties:
-                                                type:
-                                                  description: |
-                                                    The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                                  type: string
-                                                  enum:
-                                                    - IPV4
-                                                    - IPV6
-                                                fixedAddresses:
-                                                  description: |
-                                                    Fixed addresses to assign (from the subnet defined by "subnetId" if provided). Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
-                                                  type: array
-                                                  items:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                                numDynamicAddresses:
-                                                  description: |
-                                                    Number of dynamic addresses to assign (from the subnet defined by "subnetId" if provided). Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
-                                                  type: integer
-                                                addressRange:
-                                                  description: |
-                                                    An IP address range to be used, e.g. in case of egress connections. In case this attribute is present, IP addresses from the range will be used.
-                                                  type: object
-                                                  required:
-                                                    - minAddress
-                                                    - maxAddress
-                                                  properties:
-                                                    minAddress:
-                                                      description: |
-                                                        An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                      type: string
-                                                      format: IP
-                                                    maxAddress:
-                                                      description: |
-                                                        An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                      type: string
-                                                      format: IP
-                                                subnetId:
-                                                  description: |
-                                                    An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                                  type: string
-                    extLinkPorts:
-                      description: |
-                        Externally provided link ports to be used to connect external connection points to this external VL. If this attribute is not present, the VNFM shall create the link ports on the external VL.
-                      type: array
-                      items:
-                        description: |
-                          This type represents an externally provided link port to be used to connect an external connection point to an external VL.
-                        type: object
-                        required:
-                          - id
-                          - resourceHandle
-                        properties:
-                          id:
-                            description: |
-                              An identifier with the intention of being globally unique.
-                            type: string
-                          resourceHandle:
-                            required:
-                              - vimConnectionId
-                              - resourceId
-                            type: object
-                            description: |
-                              This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                            properties:
-                              vimConnectionId:
-                                description: |
-                                  An identifier with the intention of being globally unique.
-                                type: string
-                              resourceId:
-                                description: |
-                                  An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                type: string
-                              vimLevelResourceType:
-                                description: |
-                                  Type of the resource in the scope of the VIM or the resource provider.
-                                type: string
-              vimConnectionInfo:
-                description: |
-                  Information about VIM connections to be used for managing the resources for the VNF instance, or refer to external / externally-managed virtual links. This attribute shall only be supported and may be present if VNF-related resource management in direct mode is applicable.
-                type: array
-                items:
-                  description: |
-                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
-                  type: object
-                  required:
-                    - id
-                    - vimType
-                  properties:
-                    id:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimId:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimType:
-                      description: |
-                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
-                      type: string
-                    interfaceInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    accessInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-              additionalParams:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Content-Type
-          description: |
-            The MIME type of the body of the request. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-      responses:
-        '202':
-          description: |
-            Accepted
-            The request was accepted for processing, but the  processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
-          headers:
-            Location:
-              description: The resource URI of the created VNF instance
-              type: string
-              format: url
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '409':
-          description: |
-            Conflict
-            The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is in INSTANTIATED state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '416':
-          description: |
-            Requested Range Not Satisfiable
-            This code is returned if the requested byte range in the Range HTTP header is not present in the requested resource.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-  '/vnf_instances/{vnfInstanceId}/terminate':
-    parameters:
-      - name: vnfInstanceId
-        description: |
-          The identifier of the VNF instance to be terminated. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body of that response.
-        in: path
-        type: string
-        required: true
-    post:
-      description: |
-        Terminate VNF
-
-        The POST method terminates a VNF instance.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: TerminateVnfRequest
-          description: Parameters for the VNF termination.
-          in: body
-          required: true
-          schema:
-            type: object
-            required:
-              - terminationType
-            properties:
-              terminationType:
-                description: |
-                  Indicates whether forceful or graceful termination is requested. VNFM Adapter will only support FORCEFUL in Dublin.
-                type: string
-                enum:
-                  - FORCEFUL
-                  - GRACEFUL
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Content-Type
-          description: |
-            The MIME type of the body of the request. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-      responses:
-        '202':
-          description: |
-            Accepted
-            The request was accepted for processing, but the processing has not been completed. On success, the HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            Location:
-              description: The resource URI of the created VNF instance
-              type: string
-              format: url
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a VNF instance.
-            type: object
-            required:
-              - id
-              - vnfdId
-              - vnfProvider
-              - vnfProductName
-              - vnfSoftwareVersion
-              - vnfdVersion
-              - vnfPkgId
-              - instantiationState
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfInstanceName:
-                description: |
-                  Name of the VNF instance. This attribute can be modified with the PATCH method.
-                type: string
-              vnfInstanceDescription:
-                description: |
-                  Human-readable description of the VNF instance. This attribute can be modified with the PATCH method.
-                type: string
-              vnfdId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfProvider:
-                description: |
-                  Provider of the VNF and the VNFD. The value is copied from the VNFD.
-                type: string
-              vnfProductName:
-                description: |
-                  Name to identify the VNF Product. The value is copied from the VNFD.
-                type: string
-              vnfSoftwareVersion:
-                description: |
-                  A Version.
-                type: string
-              vnfdVersion:
-                description: |
-                  A Version.
-                type: string
-              vnfPkgId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              vnfConfigurableProperties:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              vimConnectionInfo:
-                description: |
-                  Information about VIM connections to be used for managing the resources for the VNF instance. This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable. This attribute can be modified with the PATCH method.
-                type: array
-                items:
-                  description: |
-                    This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
-                  type: object
-                  required:
-                    - id
-                    - vimType
-                  properties:
-                    id:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimId:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    vimType:
-                      description: |
-                        Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
-                      type: string
-                    interfaceInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    accessInfo:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-                    extra:
-                      description: |
-                        This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                      type: object
-              instantiationState:
-                description: |
-                  The instantiation state of the VNF.
-                type: string
-                enum:
-                  - NOT_INSTANTIATED
-                  - INSTANTIATED
-              instantiatedVnfInfo:
-                description: |
-                  Information specific to an instantiated VNF instance. This attribute shall be present if the instantiateState attribute value is INSTANTIATED.
-                type: object
-                required:
-                  - flavourId
-                  - vnfState
-                properties:
-                  flavourId:
-                    description: |
-                      An identifier that is unique within a VNF descriptor.
-                    type: string
-                  vnfState:
-                    type: string
-                    enum:
-                      - STARTED
-                      - STOPPED
-                  scaleStatus:
-                    description: |
-                      Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
-                    type: array
-                    items:
-                      required:
-                        - aspectId
-                        - scaleLevel
-                      type: object
-                      properties:
-                        aspectId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        scaleLevel:
-                          description: |
-                            Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD.
-                          type: integer
-                  extCpInfo:
-                    description: |
-                      Information about the external CPs exposed by the VNF instance.
-                    type: array
-                    minItems: 1
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - cpdId
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        cpdId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        cpProtocolInfo:
-                          description: |
-                            Network protocol information for this CP.
-                          type: array
-                          items:
-                            description: |
-                              This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
-                            required:
-                              - layerProtocol
-                            properties:
-                              layerProtocol:
-                                description: |
-                                  The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                type: string
-                                enum:
-                                  - IP_OVER_ETHERNET
-                              ipOverEthernet:
-                                description: |
-                                  This type represents information about a network address that has been assigned.
-                                type: object
-                                required:
-                                  - macAddress
-                                properties:
-                                  macAddress:
-                                    description: |
-                                      A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                    type: string
-                                    format: MAC
-                                  ipAddresses:
-                                    description: |
-                                      Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
-                                    type: array
-                                    items:
-                                      type: object
-                                      required:
-                                        - type
-                                      properties:
-                                        type:
-                                          description: |
-                                            The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                          type: string
-                                          enum:
-                                            - IPV4
-                                            - IPV6
-                                        addresses:
-                                          description: |
-                                            Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
-                                          type: array
-                                          items:
-                                            description: |
-                                              An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                            type: string
-                                            format: IP
-                                        isDynamic:
-                                          description: |
-                                            Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
-                                          type: boolean
-                                        addressRange:
-                                          description: |
-                                            An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
-                                          type: object
-                                          required:
-                                            - minAddress
-                                            - maxAddress
-                                          properties:
-                                            minAddress:
-                                              description: |
-                                                An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                              type: string
-                                              format: IP
-                                            maxAddress:
-                                              description: |
-                                                An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                              type: string
-                                              format: IP
-                                        subnetId:
-                                          description: |
-                                            An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                          type: string
-                                          format: IP
-                        extLinkPortId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                  extVirtualLinkInfo:
-                    description: |
-                      Information about the external VLs the VNF instance is connected to.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - resourceHandle
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        resourceHandle:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        extLinkPorts:
-                          description: |
-                            Link ports of this VL.
-                          type: array
-                          items:
-                            description: |
-                              This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier with the intention of being globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                  extManagedVirtualLinkInfo:
-                    description: |
-                      External virtual links the VNF instance is connected to.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - vnfVirtualLinkDescId
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfVirtualLinkDescId:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        vnfLinkPorts:
-                          description: |
-                            Link ports of this VL.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                  monitoringParameters:
-                    description: |
-                      Active monitoring parameters.
-                    type: array
-                    items:
-                      type: object
-                      required:
-                        - id
-                        - value
-                        - timeStamp
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        name:
-                          description: |
-                            Human readable name of the monitoring parameter, as defined in the VNFD.
-                          type: string
-                        value:
-                          description: |
-                            Value of the monitoring parameter known to the VNFM (e.g. obtained for autoscaling purposes). The type of the "value" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification.
-                          type: object
-                        timeStamp:
-                          description: |
-                            Represents the point in time when the measurement has been performed, as known to the VNFM. Should be formatted according to ETF RFC 3339.
-                          type: string
-                  localizationLanguage:
-                    description: |
-                      Information about localization language of the VNF (includes e.g. strings in the VNFD). The localization languages supported by a VNF can be declared in the VNFD, and localization language selection can take place at instantiation time. The value shall comply with the format defined in IETF RFC 5646.
-                    type: string
-                  vnfcResourceInfo:
-                    description: |
-                      Information about the virtualised compute and storage resources used by the VNFCs of the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - vduId
-                        - computeResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vduId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        computeResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        storageResourceIds:
-                          description: |
-                            References to the VirtualStorage resources. The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
-                          type: array
-                          items:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfcCpInfo:
-                          description: |
-                            CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - cpdId
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              cpdId:
-                                description: |
-                                  An identifier that is unique within a VNF descriptor.
-                                type: string
-                              vnfExtCpId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              cpProtocolInfo:
-                                description: |
-                                  Network protocol information for this CP.
-                                type: array
-                                items:
-                                  description: |
-                                    This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
-                                  required:
-                                    - layerProtocol
-                                  properties:
-                                    layerProtocol:
-                                      description: |
-                                        The identifier of layer(s) and protocol(s) associated to the network address information.  Permitted values: IP_OVER_ETHERNET This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported.
-                                      type: string
-                                      enum:
-                                        - IP_OVER_ETHERNET
-                                    ipOverEthernet:
-                                      description: |
-                                        This type represents information about a network address that has been assigned.
-                                      type: object
-                                      required:
-                                        - macAddress
-                                      properties:
-                                        macAddress:
-                                          description: |
-                                            A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
-                                          type: string
-                                          format: MAC
-                                        ipAddresses:
-                                          description: |
-                                            Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or dynamic IP address assignment per subnet.
-                                          type: array
-                                          items:
-                                            type: object
-                                            required:
-                                              - type
-                                            properties:
-                                              type:
-                                                description: |
-                                                  The type of the IP addresses. Permitted values: IPV4, IPV6.
-                                                type: string
-                                                enum:
-                                                  - IPV4
-                                                  - IPV6
-                                              addresses:
-                                                description: |
-                                                  Fixed addresses assigned (from the subnet defined by "subnetId" if provided).
-                                                type: array
-                                                items:
-                                                  description: |
-                                                    An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                  type: string
-                                                  format: IP
-                                              isDynamic:
-                                                description: |
-                                                  Indicates whether this set of addresses was assigned dynamically (true) or based on address information provided as input from the API consumer (false). Shall be present if "addresses" is present and shall be absent otherwise.
-                                                type: boolean
-                                              addressRange:
-                                                description: |
-                                                  An IP address range used, e.g., in case of egress connections. Exactly one of "addresses" or "addressRange" shall be present.
-                                                type: object
-                                                required:
-                                                  - minAddress
-                                                  - maxAddress
-                                                properties:
-                                                  minAddress:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                                  maxAddress:
-                                                    description: |
-                                                      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                    type: string
-                                                    format: IP
-                                              subnetId:
-                                                description: |
-                                                  An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that  consists of groups of zero to four hexadecimal digits, separated by colons.
-                                                type: string
-                                                format: IP
-                              vnfLinkPortId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  virtualLinkResourceInfo:
-                    description: |
-                      Information about the virtualised network resources used by the VLs of the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by an internal VL instance in a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - vnfVirtualLinkDescId
-                        - networkResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vnfVirtualLinkDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vnfLinkPorts:
-                          description: |
-                            Links ports of this VL. Shall be present when the linkPort is used for external connectivity by the VNF (refer to VnfLinkPortInfo). May be present otherwise.
-                          type: array
-                          items:
-                            type: object
-                            required:
-                              - id
-                              - resourceHandle
-                            properties:
-                              id:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                              resourceHandle:
-                                required:
-                                  - vimConnectionId
-                                  - resourceId
-                                type: object
-                                description: |
-                                  This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                                properties:
-                                  vimConnectionId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceProviderId:
-                                    description: |
-                                      An identifier with the intention of being globally unique.
-                                    type: string
-                                  resourceId:
-                                    description: |
-                                      An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                    type: string
-                                  vimLevelResourceType:
-                                    description: |
-                                      Type of the resource in the scope of the VIM or the resource provider.
-                                    type: string
-                              cpInstanceId:
-                                description: |
-                                  An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                                type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  virtualStorageResourceInfo:
-                    description: |
-                      Information on the virtualised storage resource(s) used as storage for the VNF instance.
-                    type: array
-                    items:
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.
-                      type: object
-                      required:
-                        - id
-                        - virtualStorageDescId
-                        - storageResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        virtualStorageDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        storageResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        reservationId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-              metadata:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              extensions:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  indicators:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  instantiate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  terminate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  scale:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  scaleToLevel:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  changeFlavour:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  heal:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  operate:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  changeExtConn:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '409':
-          description: |
-            Conflict
-            The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state, or that another lifecycle management operation is ongoing. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-  '/vnf_lcm_op_occs/{vnfLcmOpOccId}':
-    parameters:
-      - name: vnfLcmOpOccId
-        description: |
-          Identifier of a VNF lifecycle management operation occurrence. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a PATCH or POST request triggering a VNF LCM operation. It can also be retrieved from the "vnfLcmOpOccId" attribute in the VnfLcmOperationOccurrenceNotification.
-        in: path
-        required: true
-        type: string
-    get:
-      description: |
-        Get Operation Status
-
-        The client can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an individual "VNF LCM operation occurrence" resource.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-      responses:
-        '200':
-          description: |
-            OK
-            Information about an individual VNF instance was queried successfully. The response body shall contain status information about a VNF lifecycle management operation occurrence.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a VNF lifecycle management operation occurrence.
-            type: object
-            required:
-              - id
-              - operationState
-              - stateEnteredTime
-              - startTime
-              - vnfInstanceId
-              - operation
-              - isAutomaticInvocation
-              - operationParams
-              - isCancelPending
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              operationState:
-                description: |
-                  Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
-                type: string
-                enum:
-                  - STARTING
-                  - PROCESSING
-                  - COMPLETED
-                  - FAILED_TEMP
-                  - FAILED
-                  - ROLLING_BACK
-                  - ROLLED_BACK
-              stateEnteredTime:
-                description: |
-                  Date-time when the current state was entered.
-                type: string
-                format: date-time
-              startTime:
-                description: |
-                  Date-time of the start of the operation.
-                type: string
-                format: date-time
-              vnfInstanceId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              grantId:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              operation:
-                description: |
-                  Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation.    SCALE | Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. TERMINATE | Represents the "Terminate VNF" LCM operation. HEAL | Represents the "Heal VNF" LCM operation. OPERATE | Represents the "Operate VNF" LCM operation. CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
-                type: string
-                enum:
-                  - INSTANTIATE
-                  - SCALE
-                  - SCALE_TO_LEVEL
-                  - CHANGE_FLAVOUR
-                  - TERMINATE
-                  - HEAL
-                  - OPERATE
-                  - CHANGE_EXT_CONN
-                  - MODIFY_INFO
-              isAutomaticInvocation:
-                description: |
-                  Set to true if this VNF LCM operation occurrence has been triggered by an automated procedure inside the VNFM (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf triggered by auto-heal). Set to false otherwise.
-                type: boolean
-              operationParams:
-                description: |
-                  This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                type: object
-              isCancelPending:
-                description: |
-                  If the VNF LCM operation occurrence is in "STARTING", "PROCESSING" or "ROLLING_BACK" state and the operation is being cancelled, this attribute shall be set to true. Otherwise, it shall be set to false.
-                type: boolean
-              cancelMode:
-                description: |
-                  Cancellation mode. GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or "ROLLING_BACK" state, the VNFM shall not start any new resource management operation and shall wait for the ongoing resource management operations in the underlying system, typically the VIM, to finish execution or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state. If the VNF LCM operation occurrence is in "STARTING" state, the VNFM shall not start any resource management operation and shall wait for the granting request to finish execution or time out. After that, the VNFM shall put the operation occurrence into the ROLLED_BACK state.  FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or "ROLLING_BACK" state, the VNFM shall not start any new resource management operation, shall cancel the ongoing resource management operations in the underlying system, typically the VIM, and shall wait for the cancellation to finish or to time out. After that, the VNFM shall put the operation occurrence into the FAILED_TEMP state.  If the VNF LCM operation occurrence is in "STARTING" state, the VNFM shall not start any resource management operation and put the operation occurrence into the ROLLED_BACK state.
-                type: string
-                enum:
-                  - GRACEFUL
-                  - FORCEFUL
-              error:
-                description: |
-                  The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-                type: object
-                required:
-                  - status
-                  - detail
-                properties:
-                  type:
-                    description: |
-                      A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                    type: string
-                    format: URI
-                  title:
-                    description: |
-                      A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                    type: string
-                  status:
-                    description: |
-                      The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                    type: integer
-                  detail:
-                    description: |
-                      A human-readable explanation specific to this occurrence of the problem.
-                    type: string
-                  instance:
-                    description: |
-                      A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                    type: string
-                    format: URI
-              resourceChanges:
-                description: |
-                  This attribute contains information about the cumulative changes to virtualised resources that were performed so far by the LCM operation since its start, if applicable.
-                type: object
-                properties:
-                  affectedVnfcs:
-                    description: |
-                      Information about VNFC instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
-                    type: array
-                    items:
-                      description: |
-                        This type provides information about added, deleted, modified and temporary VNFCs.
-                      type: object
-                      required:
-                        - id
-                        - vduId
-                        - changeType
-                        - computeResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        vduId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        changeType:
-                          description: |
-                            Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVnfc structure exists as long as the temporary resource exists.
-                          type: string
-                          enum:
-                            - ADDED
-                            - REMOVED
-                            - MODIFIED
-                            - TEMPORARY
-                        computeResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                        affectedVnfcCpIds:
-                          description: |
-                            Identifiers of CP(s) of the VNFC instance that were affected by the change.  Shall be present for those affected CPs of the VNFC instance that are associated to an external CP of the VNF instance. May be present for further affected CPs of the VNFC instance.
-                          type: array
-                          items:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-                        addedStorageResourceIds:
-                          description: |
-                            References to VirtualStorage resources that have been added. Each value refers to a VirtualStorageResourceInfo item in the VnfInstance that was added to the VNFC. It shall be provided if at least one storage resource was added to the VNFC.
-                          type: array
-                          items:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-                        removedStorageResourceIds:
-                          description: |
-                            References to VirtualStorage resources that have been removed. The value contains the identifier of a VirtualStorageResourceInfo item that has been removed from the VNFC, and might no longer exist in the VnfInstance. It shall be provided if at least one storage resource was removed from the VNFC.
-                          type: array
-                          items:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-                  affectedVirtualLinks:
-                    description: |
-                      Information about VL instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
-                    type: array
-                    items:
-                      description: |
-                        This type provides information about added, deleted, modified and temporary VLs.
-                      type: object
-                      required:
-                        - id
-                        - virtualLinkDescId
-                        - changeType
-                        - networkResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        virtualLinkDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        changeType:
-                          description: |
-                            Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY * LINK_PORT_ADDED * LINK_PORT_REMOVED For a temporary resource, an AffectedVirtualLink structure exists as long as the temporary resource exists.
-                          type: string
-                          enum:
-                            - ADDED
-                            - REMOVED
-                            - MODIFIED
-                            - TEMPORARY
-                            - LINK_PORT_ADDED
-                            - LINK_PORT_REMOVED
-                        networkResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  affectedVirtualStorages:
-                    description: |
-                      Information about virtualised storage instances that were affected during the lifecycle operation. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
-                    type: array
-                    items:
-                      description: |
-                        This type provides information about added, deleted, modified and temporary virtual storage resources.
-                      type: object
-                      required:
-                        - id
-                        - virtualStorageDescId
-                        - changeType
-                        - storageResource
-                      properties:
-                        id:
-                          description: |
-                            An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                          type: string
-                        virtualStorageDescId:
-                          description: |
-                            An identifier that is unique within a VNF descriptor.
-                          type: string
-                        changeType:
-                          description: |
-                            Signals the type of change. Permitted values: * ADDED * REMOVED * MODIFIED * TEMPORARY For a temporary resource, an AffectedVirtualStorage structure exists as long as the temporary resource exists.
-                          type: string
-                          enum:
-                            - ADDED
-                            - REMOVED
-                            - MODIFIED
-                            - TEMPORARY
-                        storageResource:
-                          required:
-                            - vimConnectionId
-                            - resourceId
-                          type: object
-                          description: |
-                            This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                          properties:
-                            vimConnectionId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceProviderId:
-                              description: |
-                                An identifier with the intention of being globally unique.
-                              type: string
-                            resourceId:
-                              description: |
-                                An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                              type: string
-                            vimLevelResourceType:
-                              description: |
-                                Type of the resource in the scope of the VIM or the resource provider.
-                              type: string
-                        metadata:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-              changedInfo:
-                description: |
-                  This type represents attribute modifications that were performed on an "Individual VNF instance" resource. The attributes that can be included consist of those requested to be modified explicitly in the "VnfInfoModificationRequest" data structure, and additional attributes of the "VnfInstance" data structure that were modified implicitly e.g. when modifying the referenced VNF package.
-                type: object
-                properties:
-                  vnfInstanceName:
-                    description: |
-                      If present, this attribute signals modifications of the "vnfInstanceName" attribute in "VnfInstance".
-                    type: string
-                  vnfInstanceDescription:
-                    description: |
-                      If present, this attribute signals modifications of the "vnfInstanceDescription" attribute in "VnfInstance".
-                    type: string
-                  vnfConfigurableProperties:
-                    description: |
-                      This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                    type: object
-                  metadata:
-                    description: |
-                      This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                    type: object
-                  extensions:
-                    description: |
-                      This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                    type: object
-                  vimConnectionInfo:
-                    description: |
-                      If present, this attribute signals modifications of certain entries in the "vimConnectionInfo" attribute array in "VnfInstance".
-                    type: array
-                    items:
-                      description: |
-                        This type represents parameters to connect to a VIM for managing the resources of a VNF instance. This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters for a VIM may be configured into the VNFM by means outside the scope of the present document, and bound to the identifier of that VIM.
-                      type: object
-                      required:
-                        - id
-                        - vimType
-                      properties:
-                        id:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vimId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        vimType:
-                          description: |
-                            Discriminator for the different types of the VIM information. The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo" attributes, based on the type of the VIM. The set of permitted values is expected to change over time as new types or versions of VIMs become available. The ETSI NFV registry of VIM-related information provides access to information about VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in Annex C of SOL003.
-                          type: string
-                        interfaceInfo:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                        accessInfo:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                        extra:
-                          description: |
-                            This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions  defined in clause 4 of IETF RFC 7159.
-                          type: object
-                  vnfPkgId:
-                    description: |
-                      An identifier with the intention of being globally unique.
-                    type: string
-                  vnfdId:
-                    description: |
-                      An identifier with the intention of being globally unique.
-                    type: string
-                  vnfProvider:
-                    description: |
-                      If present, this attribute signals modifications of the "vnfProvider" attribute in "VnfInstance". If present, this attribute (which depends on the value of the "vnfPkgId" attribute) was modified implicitly following a request to modify the "vnfPkgId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfPkgId” attribute.
-                    type: string
-                  vnfProductName:
-                    description: |
-                      If present, this attribute signals modifications of the "vnfProductName" attribute in "VnfInstance". If present, this attribute (which depends on the value of the "vnfPkgId" attribute) was modified implicitly following a request to modify the "vnfPkgId" attribute, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfPkgId” attribute.
-                    type: string
-                  vnfSoftwareVersion:
-                    description: |
-                      A Version.
-                    type: string
-                  vnfdVersion:
-                    description: |
-                      A Version.
-                    type: string
-              changedExtConnectivity:
-                description: |
-                  Information about changed external connectivity, if applicable. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
-                type: array
-                items:
-                  type: object
-                  required:
-                    - id
-                    - resourceHandle
-                  properties:
-                    id:
-                      description: |
-                        An identifier with the intention of being globally unique.
-                      type: string
-                    resourceHandle:
-                      required:
-                        - vimConnectionId
-                        - resourceId
-                      type: object
-                      description: |
-                        This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                      properties:
-                        vimConnectionId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        resourceProviderId:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                        resourceId:
-                          description: |
-                            An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                          type: string
-                        vimLevelResourceType:
-                          description: |
-                            Type of the resource in the scope of the VIM or the resource provider.
-                          type: string
-                    extLinkPorts:
-                      description: |
-                        Link ports of this VL.
-                      type: array
-                      items:
-                        description: |
-                          This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL.
-                        type: object
-                        required:
-                          - id
-                          - resourceHandle
-                        properties:
-                          id:
-                            description: |
-                              An identifier with the intention of being globally unique.
-                            type: string
-                          resourceHandle:
-                            required:
-                              - vimConnectionId
-                              - resourceId
-                            type: object
-                            description: |
-                              This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.
-                            properties:
-                              vimConnectionId:
-                                description: |
-                                  An identifier with the intention of being globally unique.
-                                type: string
-                              resourceProviderId:
-                                description: |
-                                  An identifier with the intention of being globally unique.
-                                type: string
-                              resourceId:
-                                description: |
-                                  An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.
-                                type: string
-                              vimLevelResourceType:
-                                description: |
-                                  Type of the resource in the scope of the VIM or the resource provider.
-                                type: string
-                          cpInstanceId:
-                            description: |
-                              An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.
-                            type: string
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                  - vnfInstance
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  vnfInstance:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  grant:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  cancel:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  retry:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  rollback:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-                  fail:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '409':
-          description: |
-            Conflict
-            Another request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent with the request.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-  /subscriptions:
-    post:
-      description: |
-        Subscribe
-
-        The POST method creates a new subscription. Creation of two subscription resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating a subscription resource if another subscription resource with the same filter and callbackUri already exists (in which case it shall return the “201 Created” response code), or may decide to not create a duplicate subscription resource (in which case it shall return a “303 See Other” response code referencing the existing subscription resource with the same filter and callbackUri).
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: LccnSubscriptionRequest
-          description: |
-            Details of the subscription to be created.
-          in: body
-          required: true
-          schema:
-            description: |
-              This type represents a subscription request related to notifications about VNF lifecycle changes.
-            type: object
-            required:
-              - callbackUri
-            properties:
-              filter:
-                description: |
-                  This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical "and" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical "or" between the values of one filter attribute).
-                type: object
-                properties:
-                  vnfInstanceSubscriptionFilter:
-                    description: |
-                      This type represents subscription filter criteria to match VNF instances.
-                    type: object
-                    properties:
-                      vnfInstanceIds:
-                        description: |
-                          If present, match VNF instances with an instance identifier listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                  notificationTypes:
-                    description: |
-                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
-                    type: array
-                    items:
-                      type: string
-                      enum:
-                        - VnfLcmOperationOccurrenceNotification
-                        - VnfIdentifierCreationNotification
-                        - VnfIdentifierDeletionNotification
-                  operationTypes:
-                    description: |
-                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation.    SCALE | Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. TERMINATE | Represents the "Terminate VNF" LCM operation. HEAL | Represents the "Heal VNF" LCM operation. OPERATE | Represents the "Operate VNF" LCM operation. CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
-                      type: string
-                      enum:
-                        - INSTANTIATE
-                        - TERMINATE
-                  operationStates:
-                    description: |
-                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
-                      type: string
-                      enum:
-                        - STARTING
-                        - PROCESSING
-                        - COMPLETED
-                        - FAILED_TEMP
-                        - FAILED
-                        - ROLLING_BACK
-                        - ROLLED_BACK
-              callbackUri:
-                description: |
-                  String formatted according to IETF RFC 3986.
-                type: string
-              authentication:
-                type: object
-                required:
-                  - authType
-                properties:
-                  authType:
-                    description: |
-                      Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use  HTTP Basic authentication with the client credentials. 
-                      * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the  notification endpoint, use an OAuth 2.0 Bearer token, obtained
-                        using the client credentials grant type.
-                      * TLS_CERT: Every HTTP request to the notification endpoint is sent  over a mutually authenticated TLS session, i.e. not only the
-                        server is authenticated, but also the client is authenticated
-                        during the TLS tunnel setup.
-                    type: array
-                    items:
-                      type: string
-                      enum:
-                        - BASIC
-                        - OAUTH2_CLIENT_CREDENTIALS
-                        - TLS_CERT
-                  paramsBasic:
-                    description: |
-                      Parameters for authentication/authorization using BASIC. Shall be present if authType is "BASIC" and the contained information has not been provisioned out of band. Shall be absent otherwise.
-                    type: object
-                    properties:
-                      userName:
-                        description: |
-                          Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.
-                        type: string
-                      password:
-                        description: |
-                          Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.
-                        type: string
-                  paramsOauth2ClientCredentials:
-                    description: |
-                      Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the contained information has not been provisioned out of band. Shall be absent otherwise.
-                    type: object
-                    properties:
-                      clientId:
-                        description: |
-                          Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.
-                        type: string
-                      clientPassword:
-                        description: |
-                          Client password to be used in the access token request of the OAuth 2.0 client credentials grant type.  Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.
-                        type: string
-                      tokenEndpoint:
-                        description: |
-                          String formatted according to IETF RFC 3986.
-                        type: string
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-        - name: Content-Type
-          description: |
-            The MIME type of the body of the request. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-      responses:
-        '201':
-          description: |
-            Created
-            The subscription was created successfully. The response body shall contain a representation of the created subscription resource. The HTTP response shall include a "Location" HTTP header that points to the created subscription resource.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            Location:
-              description: The resource URI of the created VNF instance
-              type: string
-              format: url
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a subscription related to notifications about VNF lifecycle changes.
-            type: object
-            required:
-              - id
-              - callbackUri
-              - _links
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              filter:
-                description: |
-                  This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical "and" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical "or" between the values of one filter attribute).
-                type: object
-                properties:
-                  vnfInstanceSubscriptionFilter:
-                    description: |
-                      This type represents subscription filter criteria to match VNF instances.
-                    type: object
-                    properties:
-                      vnfdIds:
-                        description: |
-                          If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                      vnfProductsFromProviders:
-                        description: |
-                          If present, match VNF instances that belong to VNF products from certain providers. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          type: object
-                          required:
-                            - vnfProvider
-                          properties:
-                            vnfProvider:
-                              description: |
-                                Name of the VNF provider to match.
-                              type: string
-                            vnfProducts:
-                              description: |
-                                If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.
-                              type: array
-                              items:
-                                type: object
-                                required:
-                                  - vnfProductName
-                                properties:
-                                  vnfProductName:
-                                    description: |
-                                      Name of the VNF product to match.
-                                    type: string
-                                  versions:
-                                    description: |
-                                      If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.
-                                    type: array
-                                    items:
-                                      type: object
-                                      required:
-                                        - vnfSoftwareVersion
-                                      properties:
-                                        vnfSoftwareVersion:
-                                          description: |
-                                            A version.
-                                          type: string
-                                        vnfdVersions:
-                                          description: |
-                                            If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.
-                                          type: array
-                                          items:
-                                            description: |
-                                              A version.
-                                            type: string
-                      vnfInstanceIds:
-                        description: |
-                          If present, match VNF instances with an instance identifier listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                      vnfInstanceNames:
-                        description: |
-                          If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          type: string
-                  notificationTypes:
-                    description: |
-                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
-                    type: array
-                    items:
-                      type: string
-                      enum:
-                        - VnfLcmOperationOccurrenceNotification
-                        - VnfIdentifierCreationNotification
-                        - VnfIdentifierDeletionNotification
-                  operationTypes:
-                    description: |
-                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation.    SCALE | Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. TERMINATE | Represents the "Terminate VNF" LCM operation. HEAL | Represents the "Heal VNF" LCM operation. OPERATE | Represents the "Operate VNF" LCM operation. CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
-                      type: string
-                      enum:
-                        - INSTANTIATE
-                        - SCALE
-                        - SCALE_TO_LEVEL
-                        - CHANGE_FLAVOUR
-                        - TERMINATE
-                        - HEAL
-                        - OPERATE
-                        - CHANGE_EXT_CONN
-                        - MODIFY_INFO
-                  operationStates:
-                    description: |
-                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
-                      type: string
-                      enum:
-                        - STARTING
-                        - PROCESSING
-                        - COMPLETED
-                        - FAILED_TEMP
-                        - FAILED
-                        - ROLLING_BACK
-                        - ROLLED_BACK
-              callbackUri:
-                description: |
-                  String formatted according to IETF RFC 3986.
-                type: string
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '303':
-          description: |
-            See Other
-            A subscription with the same callbackURI and the same filter already exists and the policy of the VNFM is to not create redundant subscriptions. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing subscription resource. The response body shall be empty.
-          headers:
-            Location:
-              description: The resource URI of the created VNF instance
-              type: string
-              format: url
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-    get:
-      description: |
-        Query Subscription Information
-
-        The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-      responses:
-        '200':
-          description: |
-            OK
-            The list of subscriptions was queried successfully. The response body shall contain the representations of all active subscriptions of the functional block that invokes the method.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a subscription related to notifications about VNF lifecycle changes.
-            type: object
-            required:
-              - id
-              - callbackUri
-              - _links
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              filter:
-                description: |
-                  This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical "and" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical "or" between the values of one filter attribute).
-                type: object
-                properties:
-                  vnfInstanceSubscriptionFilter:
-                    description: |
-                      This type represents subscription filter criteria to match VNF instances.
-                    type: object
-                    properties:
-                      vnfdIds:
-                        description: |
-                          If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                      vnfProductsFromProviders:
-                        description: |
-                          If present, match VNF instances that belong to VNF products from certain providers. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          type: object
-                          required:
-                            - vnfProvider
-                          properties:
-                            vnfProvider:
-                              description: |
-                                Name of the VNF provider to match.
-                              type: string
-                            vnfProducts:
-                              description: |
-                                If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.
-                              type: array
-                              items:
-                                type: object
-                                required:
-                                  - vnfProductName
-                                properties:
-                                  vnfProductName:
-                                    description: |
-                                      Name of the VNF product to match.
-                                    type: string
-                                  versions:
-                                    description: |
-                                      If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.
-                                    type: array
-                                    items:
-                                      type: object
-                                      required:
-                                        - vnfSoftwareVersion
-                                      properties:
-                                        vnfSoftwareVersion:
-                                          description: |
-                                            A version.
-                                          type: string
-                                        vnfdVersions:
-                                          description: |
-                                            If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.
-                                          type: array
-                                          items:
-                                            description: |
-                                              A version.
-                                            type: string
-                      vnfInstanceIds:
-                        description: |
-                          If present, match VNF instances with an instance identifier listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                      vnfInstanceNames:
-                        description: |
-                          If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          type: string
-                  notificationTypes:
-                    description: |
-                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
-                    type: array
-                    items:
-                      type: string
-                      enum:
-                        - VnfLcmOperationOccurrenceNotification
-                        - VnfIdentifierCreationNotification
-                        - VnfIdentifierDeletionNotification
-                  operationTypes:
-                    description: |
-                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation.    SCALE | Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. TERMINATE | Represents the "Terminate VNF" LCM operation. HEAL | Represents the "Heal VNF" LCM operation. OPERATE | Represents the "Operate VNF" LCM operation. CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
-                      type: string
-                      enum:
-                        - INSTANTIATE
-                        - SCALE
-                        - SCALE_TO_LEVEL
-                        - CHANGE_FLAVOUR
-                        - TERMINATE
-                        - HEAL
-                        - OPERATE
-                        - CHANGE_EXT_CONN
-                        - MODIFY_INFO
-                  operationStates:
-                    description: |
-                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
-                      type: string
-                      enum:
-                        - STARTING
-                        - PROCESSING
-                        - COMPLETED
-                        - FAILED_TEMP
-                        - FAILED
-                        - ROLLING_BACK
-                        - ROLLED_BACK
-              callbackUri:
-                description: |
-                  String formatted according to IETF RFC 3986.
-                type: string
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '400':
-          description: |
-            Bad Request
-            Invalid attribute-based filtering parameters. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-  '/subscriptions/{subscriptionId}':
-    parameters:
-      - name: subscriptionId
-        description: |
-          Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the payload body of that response.
-        in: path
-        type: string
-        required: true
-    get:
-      description: |
-        Query Subscription Information
-
-        The GET method retrieves information about a subscription by reading an individual subscription resource.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: Accept
-          description: |
-            Content-Types that are acceptable for the response. Reference: IETF RFC 7231
-          in: header
-          required: true
-          type: string
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-      responses:
-        '200':
-          description: |
-            OK
-            The operation has completed successfully. The response body shall contain a representation of the subscription resource.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              This type represents a subscription related to notifications about VNF lifecycle changes.
-            type: object
-            required:
-              - id
-              - callbackUri
-              - _links
-            properties:
-              id:
-                description: |
-                  An identifier with the intention of being globally unique.
-                type: string
-              filter:
-                description: |
-                  This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical "and" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical "or" between the values of one filter attribute).
-                type: object
-                properties:
-                  vnfInstanceSubscriptionFilter:
-                    description: |
-                      This type represents subscription filter criteria to match VNF instances.
-                    type: object
-                    properties:
-                      vnfdIds:
-                        description: |
-                          If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                      vnfProductsFromProviders:
-                        description: |
-                          If present, match VNF instances that belong to VNF products from certain providers. The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          type: object
-                          required:
-                            - vnfProvider
-                          properties:
-                            vnfProvider:
-                              description: |
-                                Name of the VNF provider to match.
-                              type: string
-                            vnfProducts:
-                              description: |
-                                If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.
-                              type: array
-                              items:
-                                type: object
-                                required:
-                                  - vnfProductName
-                                properties:
-                                  vnfProductName:
-                                    description: |
-                                      Name of the VNF product to match.
-                                    type: string
-                                  versions:
-                                    description: |
-                                      If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.
-                                    type: array
-                                    items:
-                                      type: object
-                                      required:
-                                        - vnfSoftwareVersion
-                                      properties:
-                                        vnfSoftwareVersion:
-                                          description: |
-                                            A version.
-                                          type: string
-                                        vnfdVersions:
-                                          description: |
-                                            If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.
-                                          type: array
-                                          items:
-                                            description: |
-                                              A version.
-                                            type: string
-                      vnfInstanceIds:
-                        description: |
-                          If present, match VNF instances with an instance identifier listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          description: |
-                            An identifier with the intention of being globally unique.
-                          type: string
-                      vnfInstanceNames:
-                        description: |
-                          If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.
-                        type: array
-                        items:
-                          type: string
-                  notificationTypes:
-                    description: |
-                      Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.
-                    type: array
-                    items:
-                      type: string
-                      enum:
-                        - VnfLcmOperationOccurrenceNotification
-                        - VnfIdentifierCreationNotification
-                        - VnfIdentifierDeletionNotification
-                  operationTypes:
-                    description: |
-                      Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation.    SCALE | Represents the "Scale VNF" LCM operation. SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. TERMINATE | Represents the "Terminate VNF" LCM operation. HEAL | Represents the "Heal VNF" LCM operation. OPERATE | Represents the "Operate VNF" LCM operation. CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
-                      type: string
-                      enum:
-                        - INSTANTIATE
-                        - SCALE
-                        - SCALE_TO_LEVEL
-                        - CHANGE_FLAVOUR
-                        - TERMINATE
-                        - HEAL
-                        - OPERATE
-                        - CHANGE_EXT_CONN
-                        - MODIFY_INFO
-                  operationStates:
-                    description: |
-                      Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the "notificationTypes" attribute contains the value "VnfLcmOperationOccurrenceNotification", and shall be absent otherwise.
-                    type: array
-                    items:
-                      description: |
-                        Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
-                      type: string
-                      enum:
-                        - STARTING
-                        - PROCESSING
-                        - COMPLETED
-                        - FAILED_TEMP
-                        - FAILED
-                        - ROLLING_BACK
-                        - ROLLED_BACK
-              callbackUri:
-                description: |
-                  String formatted according to IETF RFC 3986.
-                type: string
-              _links:
-                description: |
-                  Links to resources related to this resource.
-                type: object
-                required:
-                  - self
-                properties:
-                  self:
-                    description: |
-                      This type represents a link to a resource.
-                    type: object
-                    required:
-                      - href
-                    properties:
-                      href:
-                        description: |
-                          URI of the referenced resource.
-                        type: string
-                        format: url
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-    delete:
-      description: |
-        Terminate Subscription
-
-        The DELETE method terminates an individual subscription.
-      tags:
-        - Sol003VnfLcm
-      parameters:
-        - name: Authorization
-          description: |
-            The authorization token for the request. Reference: IETF RFC 7235
-          in: header
-          required: false
-          type: string
-      responses:
-        '204':
-          description: |
-            No Content
-            The subscription resource was deleted successfully. The response body shall be empty.
-          headers:
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-        '400':
-          description: |
-            Bad Request
-            If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or a syntactically incorrect payload body), the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more information about the source of the problem.
-             ---
-
-            If the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-             ---
-
-            If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code.The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '401':
-          description: |
-            Unauthorized
-            If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-            WWW-Authenticate:
-              description: |
-                Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.
-              type: string
-              maximum: 1
-              minimum: 0
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '403':
-          description: |
-            Forbidden
-            If the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided.  It should include in the "detail" attribute information about the source of the problem, and may indicate how to solve it.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '404':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  Specifically in case of this task resource, the reason can also be that the task is not supported for the VNF LCM operation occurrence represented by the parent resource, and that the task resource consequently does not exist. The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the sourceof the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '405':
-          description: |
-            Not Found
-            If the API producer did not find a current representation for the resource addressed by the URI passed in the request, or is not willing to disclose that one exists, it shall respond with this response code.  The "ProblemDetails" structure may be provided, including in the "detail" attribute information about the source of the problem, e.g. a wrong resource URI variable.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '406':
-          description: |
-            Not Acceptable
-            If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The "ProblemDetails" structure may be omitted in that case.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '500':
-          description: |
-            Internal Server Error
-            If there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond withthis response code. The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-        '503':
-          description: |
-            Service Unavailable
-            If the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 [13] for the use of the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" structure may be omitted.
-          headers:
-            Content-Type:
-              description: The MIME type of the body of the response.
-              type: string
-              maximum: 1
-              minimum: 1
-          schema:
-            description: |
-              The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].
-            type: object
-            required:
-              - status
-              - detail
-            properties:
-              type:
-                description: |
-                  A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be "about:blank".
-                type: string
-                format: URI
-              title:
-                description: |
-                  A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than "about:blank", this attribute shall also be provided. A short, human-readable summary of the problem type.  It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
-                type: string
-              status:
-                description: |
-                  The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
-                type: integer
-              detail:
-                description: |
-                  A human-readable explanation specific to this occurrence of the problem.
-                type: string
-              instance:
-                description: |
-                  A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.
-                type: string
-                format: URI
-
diff --git a/vnfm-simulator/vnfm-service/pom.xml b/vnfm-simulator/vnfm-service/pom.xml
deleted file mode 100644
index 1e3244b..0000000
--- a/vnfm-simulator/vnfm-service/pom.xml
+++ /dev/null
@@ -1,171 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.onap.so.vnfm</groupId>
-    <artifactId>vnfm-simulator</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>vnfm-service</artifactId>
-  <name>${project.artifactId}</name>
-
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <java.version>1.8</java.version>
-    <okhttp-version>2.7.5</okhttp-version>
-    <gson-version>2.8.1</gson-version>
-  </properties>
-  <dependencies>
-    <dependency>
-      <groupId>org.onap.so.adapters</groupId>
-      <artifactId>mso-vnfm-adapter-ext-clients</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-data-jpa</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-actuator</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-devtools</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.security.oauth</groupId>
-      <artifactId>spring-security-oauth2</artifactId>
-      <version>2.3.6.RELEASE</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-jaxrs</artifactId>
-      <version>1.5.0</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.directory.studio</groupId>
-      <artifactId>org.apache.commons.io</artifactId>
-      <version>2.4</version>
-    </dependency>
-    <dependency>
-      <groupId>com.googlecode.json-simple</groupId>
-      <artifactId>json-simple</artifactId>
-      <version>1.1.1</version>
-    </dependency>
-
-    <dependency>
-      <groupId>io.springfox</groupId>
-      <artifactId>springfox-swagger-ui</artifactId>
-      <version>2.6.1</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>io.springfox</groupId>
-      <artifactId>springfox-swagger2</artifactId>
-      <version>2.6.1</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <version>2.9.8</version>
-    </dependency>
-    <dependency>
-      <groupId>com.h2database</groupId>
-      <artifactId>h2</artifactId>
-    </dependency>
-    <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
-    <dependency>
-      <groupId>commons-beanutils</groupId>
-      <artifactId>commons-beanutils</artifactId>
-      <version>1.9.3</version>
-    </dependency>
-    <dependency>
-      <groupId>org.modelmapper</groupId>
-      <artifactId>modelmapper</artifactId>
-      <version>2.3.0</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.okio</groupId>
-      <artifactId>okio</artifactId>
-      <version>1.13.0</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.okhttp</groupId>
-      <artifactId>okhttp</artifactId>
-      <version>${okhttp-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.squareup.okhttp</groupId>
-      <artifactId>logging-interceptor</artifactId>
-      <version>${okhttp-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-      <version>${gson-version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.onap.so</groupId>
-      <artifactId>common</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-maven-plugin</artifactId>
-        <version>${springboot.version}</version>
-        <configuration>
-          <mainClass>org.onap.svnfm.simulator.config.SvnfmApplication</mainClass>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>repackage</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-        <excludes>
-          <exclude>**/*.p12</exclude>
-          <exclude>**/*.jks</exclude>
-        </excludes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>false</filtering>
-        <includes>
-          <include>**/*.p12</include>
-          <include>**/*.jks</include>
-        </includes>
-      </resource>
-    </resources>
-  </build>
-</project>
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java
deleted file mode 100644
index a1abb05..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/ApplicationConfig.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.onap.svnfm.simulator.config;
-
-import java.util.Arrays;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
-import org.springframework.cache.Cache;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.concurrent.ConcurrentMapCache;
-import org.springframework.cache.support.SimpleCacheManager;
-import org.springframework.context.annotation.Bean;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Component;
-
-@Component
-public class ApplicationConfig implements ApplicationRunner {
-
-    private static final String PORT = "local.server.port";
-
-    @Value("${server.dns.name:so-vnfm-simulator.onap}")
-    private String serverDnsName;
-
-    @Value("${server.request.grant.auth:oauth}")
-    private String grantAuth;
-
-    @Autowired
-    private Environment environment;
-
-    private String baseUrl;
-
-    @Override
-    public void run(final ApplicationArguments args) throws Exception {
-        baseUrl = "https://" + serverDnsName + ":" + environment.getProperty(PORT);
-    }
-
-    public String getBaseUrl() {
-        return baseUrl;
-    }
-
-    public String getGrantAuth() {
-        return grantAuth;
-    }
-
-    @Bean
-    public CacheManager cacheManager() {
-        final Cache inlineResponse201 = new ConcurrentMapCache(Constant.IN_LINE_RESPONSE_201_CACHE);
-        final SimpleCacheManager manager = new SimpleCacheManager();
-        manager.setCaches(Arrays.asList(inlineResponse201));
-        return manager;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java
deleted file mode 100644
index 723ae90..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/SvnfmApplication.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.config;
-
-import org.onap.svnfm.simulator.controller.SvnfmController;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-
-/**
- * The spring boot application for the VNF LCM.
- * <p>
- * The VNFM receives requests through its REST API {@link SvnfmController}
- *
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author ronan.kenny@est.tech
- */
-@SpringBootApplication(scanBasePackages = {"org.onap"})
-@EnableJpaRepositories("org.onap.svnfm.simulator")
-@EntityScan("org.onap.svnfm.simulator.model")
-@EnableCaching
-public class SvnfmApplication {
-    public static void main(final String[] args) {
-        SpringApplication.run(SvnfmApplication.class, args);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java
deleted file mode 100644
index 18eadd2..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/config/WebSecurityConfigImpl.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.config;
-
-import org.onap.so.security.MSOSpringFirewall;
-import org.onap.so.security.WebSecurityConfig;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.web.firewall.StrictHttpFirewall;
-
-/**
- * Configure the web security for the application.
- */
-@EnableWebSecurity
-public class WebSecurityConfigImpl extends WebSecurityConfig {
-
-    @Override
-    protected void configure(final HttpSecurity http) throws Exception {
-        http.csrf().disable().authorizeRequests().antMatchers("/**").permitAll();
-    }
-
-    @Override
-    public void configure(final WebSecurity web) throws Exception {
-        super.configure(web);
-        final StrictHttpFirewall firewall = new MSOSpringFirewall();
-        web.httpFirewall(firewall);
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java
deleted file mode 100644
index 98f47bf..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/constants/Constant.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.constants;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author ronan.kenny@est.tech
- */
-public class Constant {
-
-    public static final String BASE_URL = "/vnflcm/v1";
-    public static final String VNF_PROVIDER = "XYZ";
-    public static final String VNF_PROVIDER_NAME = "vCPE";
-    public static final String VNF_SOFTWARE_VERSION = "1.24";
-    public static final String VNFD_VERSION = "onapvcpe01_cxp9025898_4r85d01";
-    public static final String VNF_NOT_INSTANTIATED = "NOT_INSTANTIATED";
-    public static final String VNF_CONFIG_PROPERTIES =
-            "{\"isAutoScaleEnabled\": \"true\",\"isAutoHealingEnabled\": \"true\"}";
-    public static final String IN_LINE_RESPONSE_201_CACHE = "inlineResponse201";
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java
deleted file mode 100644
index 2140b57..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/controller/SvnfmController.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.controller;
-
-import java.util.UUID;
-import javax.ws.rs.core.MediaType;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse2001;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.repository.VnfmCacheRepository;
-import org.onap.svnfm.simulator.services.SvnfmService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- *
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-@RestController
-@RequestMapping(path = Constant.BASE_URL, produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
-public class SvnfmController {
-
-    @Autowired
-    private SvnfmService svnfmService;
-
-    @Autowired
-    private VnfmCacheRepository vnfmCacheRepository;
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(SvnfmController.class);
-
-    /**
-     * To create the Vnf and stores the response in cache
-     *
-     * @param CreateVnfRequest
-     * @return InlineResponse201
-     */
-    @PostMapping(value = "/vnf_instances")
-    public ResponseEntity<InlineResponse201> createVnf(@RequestBody final CreateVnfRequest createVNFRequest) {
-        LOGGER.info("Start createVnf {}", createVNFRequest);
-        final String id = UUID.randomUUID().toString();
-        final HttpHeaders headers = new HttpHeaders();
-        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        final ResponseEntity<InlineResponse201> responseEntity =
-                new ResponseEntity<>(vnfmCacheRepository.createVnf(createVNFRequest, id), headers, HttpStatus.CREATED);
-        LOGGER.info("Finished create {}", responseEntity);
-        return responseEntity;
-    }
-
-    /**
-     * Get the vnf by id from cache
-     *
-     * @param vnfId
-     * @return InlineResponse201
-     */
-    @GetMapping(value = "/vnf_instances/{vnfInstanceId}")
-    @ResponseStatus(code = HttpStatus.OK)
-    public InlineResponse201 getVnf(@PathVariable("vnfInstanceId") final String vnfId) {
-        LOGGER.info("Start getVnf------");
-        return vnfmCacheRepository.getVnf(vnfId);
-    }
-
-    /**
-     * To instantiate the vnf and returns the operation id
-     *
-     * @param vnfId
-     * @throws InterruptedException
-     */
-    @PostMapping(value = "/vnf_instances/{vnfInstanceId}/instantiate")
-    public ResponseEntity<Void> instantiateVnf(@PathVariable("vnfInstanceId") final String vnfId) {
-        LOGGER.info("Start instantiateVNFRequest for vnf id {} ", vnfId);
-
-        final HttpHeaders headers = new HttpHeaders();
-        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        headers.add(HttpHeaders.LOCATION, svnfmService.instantiateVnf(vnfId));
-        return new ResponseEntity<>(headers, HttpStatus.ACCEPTED);
-    }
-
-    /**
-     * To delete the vnf by id
-     *
-     * @param vnfId
-     * @return InlineResponse201
-     */
-    @DeleteMapping(value = "/vnf_instances/{vnfInstanceId}")
-    @ResponseStatus(code = HttpStatus.OK)
-    public ResponseEntity<Void> deleteVnf(@PathVariable("vnfInstanceId") final String vnfId) {
-        LOGGER.info("Start deleting Vnf------");
-        vnfmCacheRepository.deleteVnf(vnfId);
-        final HttpHeaders headers = new HttpHeaders();
-        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        return new ResponseEntity<>(headers, HttpStatus.NO_CONTENT);
-    }
-
-    /**
-     * To terminate the vnf by id
-     *
-     * @param vnfId
-     * @throws InterruptedException
-     */
-    @PostMapping(value = "/vnf_instances/{vnfInstanceId}/terminate")
-    public ResponseEntity<Object> terminateVnf(@PathVariable("vnfInstanceId") final String vnfId) {
-        LOGGER.info("Start terminateVNFRequest {}", vnfId);
-        final HttpHeaders headers = new HttpHeaders();
-        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        headers.add(HttpHeaders.LOCATION, svnfmService.terminateVnf(vnfId));
-        return new ResponseEntity<>(headers, HttpStatus.ACCEPTED);
-    }
-
-
-    /**
-     * To get the status of the operation by id
-     *
-     * @param operationId
-     * @return response entity
-     * @throws InterruptedException
-     */
-    @GetMapping(value = "/vnf_lcm_op_occs/{vnfLcmOpOccId}")
-    public ResponseEntity<InlineResponse200> getOperationStatus(
-            @PathVariable("vnfLcmOpOccId") final String operationId) {
-        LOGGER.info("Start getOperationStatus");
-        final HttpHeaders headers = new HttpHeaders();
-        headers.add("Content-Type", MediaType.APPLICATION_JSON);
-        return new ResponseEntity<>(svnfmService.getOperationStatus(operationId), headers, HttpStatus.OK);
-    }
-
-    @PostMapping(value = "/subscriptions")
-    public ResponseEntity<InlineResponse2001> subscribeForNotifications(
-            @RequestBody final LccnSubscriptionRequest lccnSubscriptionRequest) {
-        LOGGER.info("Subscription request received: {}", lccnSubscriptionRequest);
-        svnfmService.registerSubscription(lccnSubscriptionRequest);
-        final InlineResponse2001 response = new InlineResponse2001();
-
-        final HttpHeaders headers = new HttpHeaders();
-        headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        return new ResponseEntity<>(response, headers, HttpStatus.CREATED);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java
deleted file mode 100644
index 1ea92b3..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/exception/GlobalExceptionHandler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.exception;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.HttpMediaTypeNotSupportedException;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author ronan.kenny@est.tech
- */
-@ControllerAdvice
-public class GlobalExceptionHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
-
-    @ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE)
-    @ExceptionHandler(HttpMediaTypeNotSupportedException.class)
-    public void handleConflict() {
-        final String error = "Media type Not Supported";
-        logger.error(error);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java
deleted file mode 100644
index 6af860c..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfInstance.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-@Entity
-@Table(name = "VNF_INSTANCE")
-public class VnfInstance {
-    @Id
-    @Column(name = "id", nullable = false)
-    private String id;
-    private String vnfInstanceName;
-    private String vnfInstanceDescription;
-    private String vnfdId;
-    private String vnfProvider;
-    private String vnfProductName;
-    private String vnfSoftwareVersion;
-    private String vnfdVersion;
-    private String vnfPkgId;
-    private String vnfConfigurableProperties;
-    private String vimConnectionInfo;
-    private String vnfInstantiationState;
-    private String instantiatedVnfInfo;
-    private String metadata;
-    private String extensions;
-    private String links;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(final String id) {
-        this.id = id;
-    }
-
-    public String getVnfInstanceName() {
-        return vnfInstanceName;
-    }
-
-    public void setVnfInstanceName(final String vnfInstanceName) {
-        this.vnfInstanceName = vnfInstanceName;
-    }
-
-    public String getVnfInstanceDescription() {
-        return vnfInstanceDescription;
-    }
-
-    public void setVnfInstanceDescription(final String vnfInstanceDescription) {
-        this.vnfInstanceDescription = vnfInstanceDescription;
-    }
-
-    public String getVnfdId() {
-        return vnfdId;
-    }
-
-    public void setVnfdId(final String vnfdId) {
-        this.vnfdId = vnfdId;
-    }
-
-    public String getVnfProvider() {
-        return vnfProvider;
-    }
-
-    public void setVnfProvider(final String vnfProvider) {
-        this.vnfProvider = vnfProvider;
-    }
-
-    public String getVnfProductName() {
-        return vnfProductName;
-    }
-
-    public void setVnfProductName(final String vnfProductName) {
-        this.vnfProductName = vnfProductName;
-    }
-
-    public String getVnfSoftwareVersion() {
-        return vnfSoftwareVersion;
-    }
-
-    public void setVnfSoftwareVersion(final String vnfSoftwareVersion) {
-        this.vnfSoftwareVersion = vnfSoftwareVersion;
-    }
-
-    public String getVnfdVersion() {
-        return vnfdVersion;
-    }
-
-    public void setVnfdVersion(final String vnfdVersion) {
-        this.vnfdVersion = vnfdVersion;
-    }
-
-    public String getVnfPkgId() {
-        return vnfPkgId;
-    }
-
-    public void setVnfPkgId(final String vnfPkgId) {
-        this.vnfPkgId = vnfPkgId;
-    }
-
-    public String getVnfConfigurableProperties() {
-        return vnfConfigurableProperties;
-    }
-
-    public void setVnfConfigurableProperties(final String vnfConfigurableProperties) {
-        this.vnfConfigurableProperties = vnfConfigurableProperties;
-    }
-
-    public String getVimConnectionInfo() {
-        return vimConnectionInfo;
-    }
-
-    public void setVimConnectionInfo(final String vimConnectionInfo) {
-        this.vimConnectionInfo = vimConnectionInfo;
-    }
-
-    public String getInstantiationState() {
-        return vnfInstantiationState;
-    }
-
-    public void setVnfInstantiationState(final String vnfInstantiationState) {
-        this.vnfInstantiationState = vnfInstantiationState;
-    }
-
-    public String getVnfInstantiationState() {
-        return instantiatedVnfInfo;
-    }
-
-    public void setInstantiatedVnfInfo(final String instantiatedVnfInfo) {
-        this.instantiatedVnfInfo = instantiatedVnfInfo;
-    }
-
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(final String metadata) {
-        this.metadata = metadata;
-    }
-
-    public String getExtensions() {
-        return extensions;
-    }
-
-    public void setExtensions(final String extensions) {
-        this.extensions = extensions;
-    }
-
-    public String getLinks() {
-        return links;
-    }
-
-    public void setLinks(final String links) {
-        this.links = links;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java
deleted file mode 100644
index c37f433..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/VnfOperation.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.svnfm.simulator.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
-
-/**
- *
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-@Entity
-@Table(name = "VNF_OPERATION")
-public class VnfOperation {
-    @Id
-    @Column(name = "operationId", nullable = false)
-    private String id;
-    private String vnfInstanceId;
-
-    @Enumerated(EnumType.STRING)
-    private InlineResponse200.OperationEnum operation;
-
-    @Enumerated(EnumType.STRING)
-    private InlineResponse200.OperationStateEnum operationState;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(final String id) {
-        this.id = id;
-    }
-
-    public String getVnfInstanceId() {
-        return vnfInstanceId;
-    }
-
-    public void setVnfInstanceId(final String vnfInstanceId) {
-        this.vnfInstanceId = vnfInstanceId;
-    }
-
-    public InlineResponse200.OperationEnum getOperation() {
-        return operation;
-    }
-
-    public void setOperation(final InlineResponse200.OperationEnum operation) {
-        this.operation = operation;
-    }
-
-    public InlineResponse200.OperationStateEnum getOperationState() {
-        return operationState;
-    }
-
-    public void setOperationState(final InlineResponse200.OperationStateEnum operationState) {
-        this.operationState = operationState;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java
deleted file mode 100644
index ea171f0..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/model/Vnfds.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.onap.svnfm.simulator.model;
-
-import java.util.List;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@ConfigurationProperties(prefix = "vnfds")
-@Component
-public class Vnfds {
-
-    private List<Vnfd> vnfdList;
-
-    public static class Vnfd {
-
-        private String vnfdId;
-        private List<Vnfc> vnfclist;
-
-
-        public String getVnfdId() {
-            return vnfdId;
-        }
-
-        public void setVnfdId(final String vnfdId) {
-            this.vnfdId = vnfdId;
-        }
-
-        public List<Vnfc> getVnfcList() {
-            return vnfclist;
-        }
-
-        public void setVnfcList(final List<Vnfc> vnfclist) {
-            this.vnfclist = vnfclist;
-        }
-    }
-
-
-    public static class Vnfc {
-
-        private String vnfcId;
-        private String type;
-        private String vduId;
-        private String resourceTemplateId;
-        private String grantResourceId;
-
-        public String getVnfcId() {
-            return vnfcId;
-        }
-
-        public void setVnfcId(final String vnfcId) {
-            this.vnfcId = vnfcId;
-        }
-
-        public String getVduId() {
-            return vduId;
-        }
-
-        public void setVduId(final String vduId) {
-            this.vduId = vduId;
-        }
-
-        public String getType() {
-            return type;
-        }
-
-        public void setType(final String type) {
-            this.type = type;
-        }
-
-        public String getResourceTemplateId() {
-            return resourceTemplateId;
-        }
-
-        public void setResourceTemplateId(final String resourceTemplateId) {
-            this.resourceTemplateId = resourceTemplateId;
-        }
-
-        public String getGrantResourceId() {
-            return grantResourceId;
-        }
-
-        public void setGrantResourceId(final String grantResourceId) {
-            this.grantResourceId = grantResourceId;
-        }
-
-    }
-
-
-    public List<Vnfd> getVnfdList() {
-        return vnfdList;
-    }
-
-
-    public void setVnfdList(final List<Vnfd> vnfdList) {
-        this.vnfdList = vnfdList;
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java
deleted file mode 100644
index 9a3cd95..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfInstantiationNotification.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- *  Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.notifications;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-public class VnfInstantiationNotification implements Runnable {
-
-    private static final Logger logger = LoggerFactory.getLogger(VnfInstantiationNotification.class);
-
-    @Override
-    public void run() {
-        try {
-            Thread.sleep(10000);
-        } catch (final InterruptedException e) {
-            logger.error("Error occured while simulating instantiation ", e);
-            Thread.currentThread().interrupt();
-        }
-        logger.info("Instantiation process finished");
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java
deleted file mode 100644
index 39de344..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterCreationNotification.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- *  Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.notifications;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-public class VnfmAdapterCreationNotification implements Runnable {
-
-    private static final Logger logger = LoggerFactory.getLogger(VnfmAdapterCreationNotification.class);
-
-    @Override
-    public void run() {
-        try {
-            Thread.sleep(10000);
-        } catch (final InterruptedException e) {
-            logger.error("Error occured while simulating creation ", e);
-            Thread.currentThread().interrupt();
-        }
-        logger.info("Call to VNFM Adapter-Create");
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java
deleted file mode 100644
index af6064f..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/notifications/VnfmAdapterDeletionNotification.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- *  Modifications Copyright (c) 2019 Samsung
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.notifications;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-public class VnfmAdapterDeletionNotification implements Runnable {
-
-    private static final Logger logger = LoggerFactory.getLogger(VnfmAdapterDeletionNotification.class);
-
-    @Override
-    public void run() {
-        try {
-            Thread.sleep(10000);
-        } catch (final InterruptedException e) {
-            logger.error("Error occured while simulating deletion ", e);
-            Thread.currentThread().interrupt();
-        }
-        logger.info("Call to VNFM Adapter-Delete");
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java
deleted file mode 100644
index 5d2c310..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/AuthorizationServerConfig.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.onap.svnfm.simulator.oauth;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
-import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
-import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
-
-@Configuration
-@EnableAuthorizationServer
-@Profile("oauth-authentication")
-/**
- * Configures the authorization server for oauth token based authentication when the spring profile
- * "oauth-authentication" is active
- */
-public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
-
-    private static final int ONE_DAY = 60 * 60 * 24;
-
-    @Override
-    public void configure(final ClientDetailsServiceConfigurer clients) throws Exception {
-        clients.inMemory().withClient("vnfmadapter")
-                .secret("$2a$10$dHzTlqSBcm8hdO52LBvnX./zNTvUzzJy.lZrc4bCBL5gkln0wX6T6")
-                .authorizedGrantTypes("client_credentials").scopes("write").accessTokenValiditySeconds(ONE_DAY)
-                .refreshTokenValiditySeconds(ONE_DAY);
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java
deleted file mode 100644
index d6eda28..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/JsonSerializerConfiguration.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-package org.onap.svnfm.simulator.oauth;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import java.util.ArrayList;
-import java.util.Collection;
-import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.GsonHttpMessageConverter;
-import org.springframework.security.oauth2.common.OAuth2AccessToken;
-
-/**
- * Configures message converter
- */
-@Configuration
-public class JsonSerializerConfiguration {
-
-    @Bean
-    public HttpMessageConverters customConverters() {
-        final Collection<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
-
-        final Gson gson = new GsonBuilder()
-                .registerTypeHierarchyAdapter(OAuth2AccessToken.class, new OAuth2AccessTokenAdapter()).create();
-        final GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter(gson);
-        messageConverters.add(gsonHttpMessageConverter);
-        return new HttpMessageConverters(true, messageConverters);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java
deleted file mode 100644
index 7bccffa..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2AccessTokenAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.onap.svnfm.simulator.oauth;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import java.lang.reflect.Type;
-import org.springframework.security.oauth2.common.OAuth2AccessToken;
-
-public class OAuth2AccessTokenAdapter implements JsonSerializer<OAuth2AccessToken> {
-
-    @Override
-    public JsonElement serialize(final OAuth2AccessToken src, final Type typeOfSrc,
-            final JsonSerializationContext context) {
-        final JsonObject obj = new JsonObject();
-        obj.addProperty(OAuth2AccessToken.ACCESS_TOKEN, src.getValue());
-        obj.addProperty(OAuth2AccessToken.TOKEN_TYPE, src.getTokenType());
-        if (src.getRefreshToken() != null) {
-            obj.addProperty(OAuth2AccessToken.REFRESH_TOKEN, src.getRefreshToken().getValue());
-        }
-        obj.addProperty(OAuth2AccessToken.EXPIRES_IN, src.getExpiresIn());
-        final JsonArray scopeObj = new JsonArray();
-        for (final String scope : src.getScope()) {
-            scopeObj.add(scope);
-        }
-        obj.add(OAuth2AccessToken.SCOPE, scopeObj);
-
-        return obj;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java
deleted file mode 100644
index 18fb1a9..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/oauth/OAuth2ResourceServer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.oauth;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
-import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
-
-@Configuration
-@EnableResourceServer
-@Profile("oauth-authentication")
-/**
- * Enforces oauth token based authentication when the spring profile "oauth-authentication" is active
- */
-public class OAuth2ResourceServer extends ResourceServerConfigurerAdapter {
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java
deleted file mode 100644
index fbdbf74..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmCacheRepository.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.repository;
-
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.services.SvnfmService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Repository;
-
-/**
- *
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-@Repository
-public class VnfmCacheRepository {
-
-    @Autowired
-    private SvnfmService svnfmService;
-
-    @Cacheable(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id")
-    public InlineResponse201 createVnf(final CreateVnfRequest createVnfRequest, final String id) {
-        return svnfmService.createVnf(createVnfRequest, id);
-    }
-
-
-
-    public InlineResponse201 getVnf(final String id) {
-        return svnfmService.getVnf(id);
-    }
-
-    /**
-     * @param vnfId
-     * @return
-     */
-    @CacheEvict(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id")
-    public void deleteVnf(final String id) {}
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java
deleted file mode 100644
index f28b54a..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/repository/VnfmRepository.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.repository;
-
-import java.util.Optional;
-import org.onap.svnfm.simulator.model.VnfInstance;
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.data.repository.query.Param;
-
-/**
- * 
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-public interface VnfmRepository extends CrudRepository<VnfInstance, String> {
-    public Optional<VnfInstance> findById(@Param("id") String id);
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java
deleted file mode 100644
index 020fa03..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/InstantiateOperationProgressor.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.onap.svnfm.simulator.services;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.modelmapper.ModelMapper;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201AddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201VimConnections;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.model.Vnfds.Vnfc;
-import org.onap.svnfm.simulator.model.Vnfds.Vnfd;
-import org.onap.svnfm.simulator.repository.VnfOperationRepository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class InstantiateOperationProgressor extends OperationProgressor {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(InstantiateOperationProgressor.class);
-
-    public InstantiateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
-            final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
-            final Vnfds vnfds, final SubscriptionService subscriptionService) {
-        super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService);
-    }
-
-    @Override
-    protected List<GrantsAddResources> getAddResources(final String vnfdId) {
-        final List<GrantsAddResources> resources = new ArrayList<>();
-
-        for (final Vnfd vnfd : vnfds.getVnfdList()) {
-            if (vnfd.getVnfdId().equals(vnfdId)) {
-                for (final Vnfc vnfc : vnfd.getVnfcList()) {
-                    final GrantsAddResources addResource = new GrantsAddResources();
-                    vnfc.setGrantResourceId(UUID.randomUUID().toString());
-                    addResource.setId(vnfc.getGrantResourceId());
-                    addResource.setType(TypeEnum.fromValue(vnfc.getType()));
-                    addResource.setResourceTemplateId(vnfc.getResourceTemplateId());
-                    addResource.setVduId(vnfc.getVduId());
-                    resources.add(addResource);
-                }
-            }
-        }
-        return resources;
-    }
-
-    @Override
-    protected List<GrantsAddResources> getRemoveResources(final String vnfdId) {
-        return Collections.emptyList();
-    }
-
-    @Override
-    protected List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
-            final InlineResponse201 grantResponse) {
-        final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo = createInstantiatedVnfInfo(grantResponse);
-        svnfmService.updateVnf(InstantiationStateEnum.INSTANTIATED, instantiatedVnfInfo, operation.getVnfInstanceId(),
-                getVimConnections(grantResponse));
-        return instantiatedVnfInfo.getVnfcResourceInfo();
-    }
-
-    private InlineResponse201InstantiatedVnfInfo createInstantiatedVnfInfo(final InlineResponse201 grantResponse) {
-        final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo = new InlineResponse201InstantiatedVnfInfo();
-
-        final Map<String, String> mapOfGrantResourceIdToVimConnectionId = new HashMap<>();
-        for (final InlineResponse201AddResources addResource : grantResponse.getAddResources()) {
-            mapOfGrantResourceIdToVimConnectionId.put(addResource.getResourceDefinitionId(),
-                    addResource.getVimConnectionId());
-        }
-        LOGGER.info("VIM connections in grant response: {}", mapOfGrantResourceIdToVimConnectionId);
-
-        for (final Vnfd vnfd : vnfds.getVnfdList()) {
-            if (vnfd.getVnfdId().equals(svnfmService.getVnf(operation.getVnfInstanceId()).getVnfdId())) {
-                for (final Vnfc vnfc : vnfd.getVnfcList()) {
-                    final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfcResourceInfoItem =
-                            new InlineResponse201InstantiatedVnfInfoVnfcResourceInfo();
-                    vnfcResourceInfoItem.setId(vnfc.getVnfcId());
-                    vnfcResourceInfoItem.setVduId(vnfc.getVduId());
-                    final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource =
-                            new InlineResponse201InstantiatedVnfInfoResourceHandle();
-                    computeResource.setResourceId(UUID.randomUUID().toString());
-                    LOGGER.info("Checking for VIM connection id for : {}", vnfc.getGrantResourceId());
-                    computeResource
-                            .setVimConnectionId(mapOfGrantResourceIdToVimConnectionId.get(vnfc.getGrantResourceId()));
-
-                    computeResource.setVimLevelResourceType("OS::Nova::Server");
-                    vnfcResourceInfoItem.setComputeResource(computeResource);
-                    instantiatedVnfInfo.addVnfcResourceInfoItem(vnfcResourceInfoItem);
-                }
-            }
-        }
-
-        return instantiatedVnfInfo;
-    }
-
-
-    private List<InlineResponse201VimConnectionInfo> getVimConnections(final InlineResponse201 grantResponse) {
-        final List<InlineResponse201VimConnectionInfo> vimConnectionInfo = new ArrayList<>();
-        for (final InlineResponse201VimConnections vimConnection : grantResponse.getVimConnections()) {
-            final ModelMapper modelMapper = new ModelMapper();
-            vimConnectionInfo.add(modelMapper.map(vimConnection, InlineResponse201VimConnectionInfo.class));
-        }
-        return vimConnectionInfo;
-    }
-
-    @Override
-    protected ChangeTypeEnum getVnfcChangeType() {
-        return ChangeTypeEnum.ADDED;
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java
deleted file mode 100644
index 6e9478b..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/OperationProgressor.java
+++ /dev/null
@@ -1,348 +0,0 @@
-package org.onap.svnfm.simulator.services;
-
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.CertificateException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.KeyManagerFactory;
-import javax.ws.rs.core.MediaType;
-import org.apache.commons.codec.binary.Base64;
-import org.modelmapper.ModelMapper;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiResponse;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsLinks;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsLinksVnfLcmOpOcc;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.ApiClient;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.ApiException;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.api.DefaultApi;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationLinks;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.NotificationStatusEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.NotificationTypeEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.OperationEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.VnfLcmOperationOccurrenceNotification.OperationStateEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsBasic;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.SubscriptionsAuthenticationParamsOauth2ClientCredentials;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.repository.VnfOperationRepository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-
-public abstract class OperationProgressor implements Runnable {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(OperationProgressor.class);
-    private static final String CERTIFICATE_TO_TRUST = "so-vnfm-adapter.crt.pem";
-
-    private Resource keyStoreResource = new ClassPathResource("so-vnfm-simulator.p12");
-    private String keyStorePassword = "7Em3&j4.19xYiMelhD5?xbQ.";
-
-    protected final VnfOperation operation;
-    protected final SvnfmService svnfmService;
-    private final VnfOperationRepository vnfOperationRepository;
-    private final ApplicationConfig applicationConfig;
-    protected final Vnfds vnfds;
-    private final SubscriptionService subscriptionService;
-    private final DefaultApi notificationClient;
-    private final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.api.DefaultApi grantClient;
-
-    public OperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
-            final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
-            final Vnfds vnfds, final SubscriptionService subscriptionService) {
-        this.operation = operation;
-        this.svnfmService = svnfmService;
-        this.vnfOperationRepository = vnfOperationRepository;
-        this.applicationConfig = applicationConfig;
-        this.vnfds = vnfds;
-        this.subscriptionService = subscriptionService;
-
-        final ApiClient apiClient = new ApiClient();
-        String callBackUrl = subscriptionService.getSubscriptions().iterator().next().getCallbackUri();
-        callBackUrl = callBackUrl.substring(0, callBackUrl.indexOf("/lcn/"));
-        apiClient.setBasePath(callBackUrl);
-        apiClient.setKeyManagers(getKeyManagers());
-        apiClient.setSslCaCert(getCertificateToTrust());
-        notificationClient = new DefaultApi(apiClient);
-
-        final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient grantApiClient =
-                new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiClient();
-        grantApiClient.setBasePath(callBackUrl);
-        grantApiClient.setKeyManagers(getKeyManagers());
-        grantApiClient.setSslCaCert(getCertificateToTrust());
-        grantClient = new org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.api.DefaultApi(grantApiClient);
-    }
-
-    private InputStream getCertificateToTrust() {
-        try {
-            return new ClassPathResource(CERTIFICATE_TO_TRUST).getInputStream();
-        } catch (final IOException exception) {
-            LOGGER.error("Error reading certificate to trust, https calls to VNFM adapter will fail", exception);
-            return null;
-        }
-    }
-
-    private KeyManager[] getKeyManagers() {
-        KeyStore keystore;
-        try {
-            keystore = KeyStore.getInstance("pkcs12");
-            keystore.load(keyStoreResource.getInputStream(), keyStorePassword.toCharArray());
-            KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
-            keyManagerFactory.init(keystore, keyStorePassword.toCharArray());
-            return keyManagerFactory.getKeyManagers();
-        } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException
-                | UnrecoverableKeyException exception) {
-            LOGGER.error("Error reading certificate, https calls using two way TLS to VNFM adapter will fail",
-                    exception);
-            return new KeyManager[0];
-        }
-    }
-
-    @Override
-    public void run() {
-        try {
-            final VnfLcmOperationOccurrenceNotification notificationOfStarting =
-                    buildNotification(NotificationStatusEnum.START, OperationStateEnum.STARTING);
-            sendNotification(notificationOfStarting);
-
-            sleep(2000);
-            setState(InlineResponse200.OperationStateEnum.PROCESSING);
-            final VnfLcmOperationOccurrenceNotification notificationOfProcessing =
-                    buildNotification(NotificationStatusEnum.START, OperationStateEnum.PROCESSING);
-            sendNotification(notificationOfProcessing);
-
-
-            final GrantRequest grantRequest = buildGrantRequest();
-            final InlineResponse201 grantResponse = sendGrantRequest(grantRequest);
-            final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> vnfcs = handleGrantResponse(grantResponse);
-
-            svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo();
-
-            sleep(10000);
-            setState(InlineResponse200.OperationStateEnum.COMPLETED);
-            final VnfLcmOperationOccurrenceNotification notificationOfCompleted =
-                    buildNotification(NotificationStatusEnum.RESULT, OperationStateEnum.COMPLETED);
-            notificationOfCompleted.setAffectedVnfcs(getVnfcs(vnfcs));
-
-            sendNotification(notificationOfCompleted);
-        } catch (final Exception exception) {
-            LOGGER.error("Error in OperationProgressor ", exception);
-        }
-
-    }
-
-    private void sleep(final long milliSeconds) {
-        try {
-            Thread.sleep(milliSeconds);
-        } catch (final InterruptedException e) {
-            operation.setOperationState(InlineResponse200.OperationStateEnum.FAILED);
-            // Restore interrupted state
-            Thread.currentThread().interrupt();
-        }
-    }
-
-    private void setState(final InlineResponse200.OperationStateEnum state) {
-        LOGGER.info("Setting state to {} for operation {}", state, operation.getId());
-        operation.setOperationState(state);
-        vnfOperationRepository.save(operation);
-    }
-
-    private VnfLcmOperationOccurrenceNotification buildNotification(final NotificationStatusEnum status,
-            final OperationStateEnum operationState) {
-        final VnfLcmOperationOccurrenceNotification notification = new VnfLcmOperationOccurrenceNotification();
-        notification.setId(UUID.randomUUID().toString());
-        notification.setNotificationType(NotificationTypeEnum.VNFLCMOPERATIONOCCURRENCENOTIFICATION);
-        notification.setNotificationStatus(status);
-        notification.setOperationState(operationState);
-        notification.setOperation(OperationEnum.fromValue(operation.getOperation().toString()));
-        notification.setVnfInstanceId(operation.getVnfInstanceId());
-        notification.setVnfLcmOpOccId(operation.getId());
-
-        final LcnVnfLcmOperationOccurrenceNotificationLinks links = new LcnVnfLcmOperationOccurrenceNotificationLinks();
-        final LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance vnfInstanceLink =
-                new LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance();
-        vnfInstanceLink.setHref(getVnfLink());
-        links.setVnfInstance(vnfInstanceLink);
-
-
-        final LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance operationLink =
-                new LcnVnfLcmOperationOccurrenceNotificationLinksVnfInstance();
-        operationLink.setHref(getOperationLink());
-        links.setVnfLcmOpOcc(operationLink);
-
-        notification.setLinks(links);
-
-        return notification;
-    }
-
-    private List<LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs> getVnfcs(
-            final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> instantiatedVnfcs) {
-        final List<LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs> vnfcs = new ArrayList<>();
-        if (instantiatedVnfcs != null) {
-            for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo instantiatedVnfc : instantiatedVnfcs) {
-                LOGGER.info("VNFC TO BE CONVERTED: {}", instantiatedVnfc);
-                final ModelMapper mapper = new ModelMapper();
-                final LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs vnfc =
-                        mapper.map(instantiatedVnfc, LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.class);
-                LOGGER.info("VNFC FROM CONVERSION: {}", vnfc);
-                vnfc.setChangeType(getVnfcChangeType());
-                vnfcs.add(vnfc);
-            }
-        }
-        return vnfcs;
-    }
-
-    private void sendNotification(final VnfLcmOperationOccurrenceNotification notification) {
-        LOGGER.info("Sending notification: {}", notification);
-        try {
-            final SubscriptionsAuthenticationParamsBasic subscriptionAuthentication =
-                    subscriptionService.getSubscriptions().iterator().next().getAuthentication().getParamsBasic();
-            final String auth =
-                    subscriptionAuthentication.getUserName() + ":" + subscriptionAuthentication.getPassword();
-            final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.ISO_8859_1));
-            String authHeader = "Basic " + new String(encodedAuth);
-
-            notificationClient.lcnVnfLcmOperationOccurrenceNotificationPostWithHttpInfo(notification,
-                    MediaType.APPLICATION_JSON, authHeader);
-        } catch (final ApiException exception) {
-            LOGGER.error("Error sending notification: " + notification, exception);
-            LOGGER.error("Response code: {}, body: {}, basePath: {}", exception.getCode(), exception.getResponseBody(),
-                    notificationClient.getApiClient().getBasePath());
-
-        }
-    }
-
-
-    public GrantRequest buildGrantRequest() {
-        final GrantRequest grantRequest = new GrantRequest();
-        grantRequest.setVnfInstanceId(operation.getVnfInstanceId());
-        final String vnfdId = svnfmService.getVnf(operation.getVnfInstanceId()).getVnfdId();
-        grantRequest.setVnfdId(vnfdId);
-        grantRequest.setAddResources(getAddResources(vnfdId));
-        grantRequest.setRemoveResources(getRemoveResources(vnfdId));
-        grantRequest.setVnfLcmOpOccId(operation.getId());
-        grantRequest
-                .setOperation(org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest.OperationEnum
-                        .fromValue(operation.getOperation().getValue()));
-        grantRequest.setIsAutomaticInvocation(false);
-
-        final GrantsLinksVnfLcmOpOcc vnfInstanceLink = new GrantsLinksVnfLcmOpOcc();
-        vnfInstanceLink.setHref(getVnfLink());
-        final GrantsLinksVnfLcmOpOcc operationInstanceLink = new GrantsLinksVnfLcmOpOcc();
-        operationInstanceLink.setHref(getOperationLink());
-        final GrantsLinks links = new GrantsLinks();
-        links.setVnfInstance(vnfInstanceLink);
-        links.setVnfLcmOpOcc(operationInstanceLink);
-        grantRequest.setLinks(links);
-        return grantRequest;
-    }
-
-    protected abstract List<GrantsAddResources> getAddResources(final String vnfdId);
-
-    protected abstract List<GrantsAddResources> getRemoveResources(final String vnfdId);
-
-    protected abstract List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
-            InlineResponse201 grantResponse);
-
-    protected abstract ChangeTypeEnum getVnfcChangeType();
-
-    private InlineResponse201 sendGrantRequest(final GrantRequest grantRequest) {
-        LOGGER.info("Sending grant request: {}", grantRequest);
-        try {
-
-            final SubscriptionsAuthenticationParamsOauth2ClientCredentials subscriptionAuthentication =
-                    subscriptionService.getSubscriptions().iterator().next().getAuthentication()
-                            .getParamsOauth2ClientCredentials();
-
-            final String authHeader = applicationConfig.getGrantAuth().equals("oauth")
-                    ? "Bearer " + getToken(notificationClient.getApiClient(), subscriptionAuthentication)
-                    : null;
-
-            final ApiResponse<InlineResponse201> response = grantClient.grantsPostWithHttpInfo(grantRequest,
-                    MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON, authHeader);
-            LOGGER.info("Grant Response: {}", response);
-            return response.getData();
-        } catch (final org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.ApiException exception) {
-            LOGGER.error("Error sending notification: " + grantRequest, exception);
-            return null;
-        }
-    }
-
-    private String getVnfLink() {
-        return getLinkBaseUrl() + "/vnf_instances/" + operation.getVnfInstanceId();
-    }
-
-    private String getOperationLink() {
-        return getLinkBaseUrl() + "/vnf_lcm_op_occs/" + operation.getId();
-    }
-
-    private String getLinkBaseUrl() {
-        return applicationConfig.getBaseUrl() + "/vnflcm/v1";
-    }
-
-    private String getToken(final ApiClient apiClient,
-            final SubscriptionsAuthenticationParamsOauth2ClientCredentials oauthClientCredentials) {
-        final String basePath = apiClient.getBasePath().substring(0, apiClient.getBasePath().indexOf("/so/"));
-        final String tokenUrl = basePath + "/oauth/token?grant_type=client_credentials";
-
-        try {
-            URL url = new URL(tokenUrl);
-            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
-            connection.setRequestMethod("POST");
-            final String authorizationHeader = getAuthorizationHeader(oauthClientCredentials);
-            connection.addRequestProperty("Authorization", authorizationHeader);
-
-            connection.connect();
-
-            return getResponse(connection).get("access_token").getAsString();
-
-        } catch (IOException exception) {
-            LOGGER.error("Error getting token", exception);
-            return null;
-        }
-    }
-
-    private String getAuthorizationHeader(
-            final SubscriptionsAuthenticationParamsOauth2ClientCredentials oauthClientCredentials) {
-        final String auth = oauthClientCredentials.getClientId() + ":" + oauthClientCredentials.getClientPassword();
-        final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.UTF_8));
-        return "Basic " + new String(encodedAuth);
-    }
-
-    private JsonObject getResponse(HttpsURLConnection connection) throws IOException {
-        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
-        String line, data = "";
-        while ((line = in.readLine()) != null) {
-            data += line;
-        }
-        in.close();
-        connection.getInputStream().close();
-
-        JsonObject jsonObject = new JsonParser().parse(data).getAsJsonObject();
-        return jsonObject;
-    }
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java
deleted file mode 100644
index 6a2340b..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SubscriptionService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.onap.svnfm.simulator.services;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
-import org.springframework.stereotype.Service;
-
-@Service
-public class SubscriptionService {
-
-    Collection<LccnSubscriptionRequest> subscriptions = new ArrayList<>();
-
-    public void registerSubscription(final LccnSubscriptionRequest subscription) {
-        subscriptions.add(subscription);
-    }
-
-    public Collection<LccnSubscriptionRequest> getSubscriptions() {
-        return Collections.unmodifiableCollection(subscriptions);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java
deleted file mode 100644
index 95043d3..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/SvnfmService.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.services;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import org.modelmapper.ModelMapper;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201VimConnectionInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.model.VnfInstance;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.notifications.VnfInstantiationNotification;
-import org.onap.svnfm.simulator.notifications.VnfmAdapterCreationNotification;
-import org.onap.svnfm.simulator.repository.VnfOperationRepository;
-import org.onap.svnfm.simulator.repository.VnfmRepository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.Cache;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.annotation.CachePut;
-import org.springframework.cache.support.SimpleValueWrapper;
-import org.springframework.stereotype.Service;
-
-/**
- *
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-@Service
-public class SvnfmService {
-
-    private VnfmRepository vnfmRepository;
-    private VnfOperationRepository vnfOperationRepository;
-    private VnfmHelper vnfmHelper;
-    private ApplicationConfig applicationConfig;
-    private CacheManager cacheManager;
-    private Vnfds vnfds;
-    private SubscriptionService subscriptionService;
-
-    private final ExecutorService executor = Executors.newCachedThreadPool();
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(SvnfmService.class);
-
-    @Autowired
-    public SvnfmService(VnfmRepository vnfmRepository, VnfOperationRepository vnfOperationRepository,
-            VnfmHelper vnfmHelper, ApplicationConfig applicationConfig, CacheManager cacheManager, Vnfds vnfds,
-            SubscriptionService subscriptionService) {
-        this.vnfmRepository = vnfmRepository;
-        this.vnfOperationRepository = vnfOperationRepository;
-        this.vnfmHelper = vnfmHelper;
-        this.applicationConfig = applicationConfig;
-        this.cacheManager = cacheManager;
-        this.vnfds = vnfds;
-        this.subscriptionService = subscriptionService;
-    }
-
-    public InlineResponse201 createVnf(final CreateVnfRequest createVNFRequest, final String id) {
-        InlineResponse201 inlineResponse201 = null;
-        try {
-            final VnfInstance vnfInstance = vnfmHelper.createVnfInstance(createVNFRequest, id);
-            vnfmRepository.save(vnfInstance);
-            final Thread creationNotification = new Thread(new VnfmAdapterCreationNotification());
-            creationNotification.start();
-            inlineResponse201 = vnfmHelper.getInlineResponse201(vnfInstance);
-            LOGGER.debug("Response from Create VNF {}", inlineResponse201);
-        } catch (IllegalAccessException | InvocationTargetException e) {
-            LOGGER.error("Failed in Create Vnf", e);
-        }
-        return inlineResponse201;
-    }
-
-    @CachePut(value = Constant.IN_LINE_RESPONSE_201_CACHE, key = "#id")
-    public void updateVnf(final InstantiationStateEnum instantiationState,
-            final InlineResponse201InstantiatedVnfInfo instantiatedVnfInfo, final String id,
-            final List<InlineResponse201VimConnectionInfo> vimConnectionInfo) {
-        final InlineResponse201 vnf = getVnf(id);
-        vnf.setInstantiatedVnfInfo(instantiatedVnfInfo);
-        vnf.setInstantiationState(instantiationState);
-        vnf.setVimConnectionInfo(vimConnectionInfo);
-    }
-
-    public String instantiateVnf(final String vnfId) {
-        final VnfOperation vnfOperation = buildVnfOperation(InlineResponse200.OperationEnum.INSTANTIATE, vnfId);
-        vnfOperationRepository.save(vnfOperation);
-        executor.submit(new InstantiateOperationProgressor(vnfOperation, this, vnfOperationRepository,
-                applicationConfig, vnfds, subscriptionService));
-        return vnfOperation.getId();
-    }
-
-    private VnfOperation buildVnfOperation(final InlineResponse200.OperationEnum operation, final String vnfId) {
-        final VnfOperation vnfOperation = new VnfOperation();
-        vnfOperation.setId(UUID.randomUUID().toString());
-        vnfOperation.setOperation(operation);
-        vnfOperation.setOperationState(InlineResponse200.OperationStateEnum.STARTING);
-        vnfOperation.setVnfInstanceId(vnfId);
-        return vnfOperation;
-    }
-
-    public InlineResponse200 getOperationStatus(final String operationId) {
-        LOGGER.info("Getting operation status with id: {}", operationId);
-        final Thread instantiationNotification = new Thread(new VnfInstantiationNotification());
-        instantiationNotification.start();
-        for (final VnfOperation operation : vnfOperationRepository.findAll()) {
-            LOGGER.info("Operation found: {}", operation);
-            if (operation.getId().equals(operationId)) {
-                final ModelMapper modelMapper = new ModelMapper();
-                return modelMapper.map(operation, InlineResponse200.class);
-            }
-        }
-        return null;
-    }
-
-    public InlineResponse201 getVnf(final String vnfId) {
-        final Cache ca = cacheManager.getCache(Constant.IN_LINE_RESPONSE_201_CACHE);
-        if (ca == null)
-            return null;
-        final SimpleValueWrapper wrapper = (SimpleValueWrapper) ca.get(vnfId);
-        if (wrapper == null)
-            return null;
-        final InlineResponse201 inlineResponse201 = (InlineResponse201) wrapper.get();
-        if (inlineResponse201 != null) {
-            LOGGER.info("Cache Read Successful");
-            return inlineResponse201;
-        }
-        return null;
-    }
-
-    public String terminateVnf(final String vnfId) {
-        final VnfOperation vnfOperation = buildVnfOperation(InlineResponse200.OperationEnum.TERMINATE, vnfId);
-        vnfOperationRepository.save(vnfOperation);
-        executor.submit(new TerminateOperationProgressor(vnfOperation, this, vnfOperationRepository, applicationConfig,
-                vnfds, subscriptionService));
-        return vnfOperation.getId();
-    }
-
-    public void registerSubscription(final LccnSubscriptionRequest subscription) {
-        subscriptionService.registerSubscription(subscription);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java
deleted file mode 100644
index c829be9..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/TerminateOperationProgressor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.onap.svnfm.simulator.services;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources.TypeEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsResource;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.model.LcnVnfLcmOperationOccurrenceNotificationAffectedVnfcs.ChangeTypeEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.repository.VnfOperationRepository;
-
-public class TerminateOperationProgressor extends OperationProgressor {
-
-    public TerminateOperationProgressor(final VnfOperation operation, final SvnfmService svnfmService,
-            final VnfOperationRepository vnfOperationRepository, final ApplicationConfig applicationConfig,
-            final Vnfds vnfds, final SubscriptionService subscriptionService) {
-        super(operation, svnfmService, vnfOperationRepository, applicationConfig, vnfds, subscriptionService);
-    }
-
-    @Override
-    protected List<GrantsAddResources> getAddResources(final String vnfdId) {
-        return Collections.emptyList();
-    }
-
-    @Override
-    protected List<GrantsAddResources> getRemoveResources(final String vnfdId) {
-        final List<GrantsAddResources> resources = new ArrayList<>();
-
-        final org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 vnf =
-                svnfmService.getVnf(operation.getVnfInstanceId());
-        for (final InlineResponse201InstantiatedVnfInfoVnfcResourceInfo vnfc : vnf.getInstantiatedVnfInfo()
-                .getVnfcResourceInfo()) {
-            final GrantsAddResources addResource = new GrantsAddResources();
-            addResource.setId(UUID.randomUUID().toString());
-            addResource.setType(TypeEnum.COMPUTE);
-            addResource.setVduId(vnfc.getVduId());
-            final GrantsResource resource = new GrantsResource();
-
-            final InlineResponse201InstantiatedVnfInfoResourceHandle computeResource = vnfc.getComputeResource();
-            resource.setResourceId(computeResource.getResourceId());
-            resource.setVimConnectionId(computeResource.getVimConnectionId());
-            resource.setVimLevelResourceType(computeResource.getVimLevelResourceType());
-            addResource.setResource(resource);
-            resources.add(addResource);
-
-        }
-        return resources;
-    }
-
-    @Override
-    protected List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> handleGrantResponse(
-            final InlineResponse201 grantResponse) {
-        final List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> vnfcs =
-                svnfmService.getVnf(operation.getVnfInstanceId()).getInstantiatedVnfInfo().getVnfcResourceInfo();
-        svnfmService.updateVnf(InstantiationStateEnum.NOT_INSTANTIATED, null, operation.getVnfInstanceId(), null);
-        return vnfcs;
-    }
-
-    @Override
-    protected ChangeTypeEnum getVnfcChangeType() {
-        return ChangeTypeEnum.REMOVED;
-    }
-
-
-
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java b/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java
deleted file mode 100644
index 8f1e299..0000000
--- a/vnfm-simulator/vnfm-service/src/main/java/org/onap/svnfm/simulator/services/VnfmHelper.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.services;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.commons.beanutils.BeanUtils;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201Links;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.model.VnfInstance;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- *
- * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech)
- * @author Ronan Kenny (ronan.kenny@est.tech)
- */
-@Component
-public class VnfmHelper {
-
-    private ApplicationConfig applicationConfig;
-
-    @Autowired
-    public VnfmHelper(ApplicationConfig applicationConfig) {
-        this.applicationConfig = applicationConfig;
-    }
-
-    /**
-     *
-     * @param createVNFRequest
-     * @return vnfInstance
-     */
-    public VnfInstance createVnfInstance(final CreateVnfRequest createVNFRequest, final String id) {
-        final VnfInstance vnfInstance = new VnfInstance();
-        vnfInstance.setId(id);
-        vnfInstance.setVnfInstanceName(createVNFRequest.getVnfInstanceName());
-        vnfInstance.setVnfInstanceDescription(createVNFRequest.getVnfInstanceDescription());
-        vnfInstance.setVnfdId(createVNFRequest.getVnfdId());
-        vnfInstance.setVnfProvider(Constant.VNF_PROVIDER);
-        vnfInstance.setVnfProductName(Constant.VNF_PROVIDER_NAME);
-        return vnfInstance;
-    }
-
-    /**
-     *
-     * @param vnfInstance
-     * @return inlineResponse201
-     * @throws IllegalAccessException
-     * @throws InvocationTargetException
-     */
-    public InlineResponse201 getInlineResponse201(final VnfInstance vnfInstance)
-            throws IllegalAccessException, InvocationTargetException {
-        final InlineResponse201 inlineResponse201 = new InlineResponse201();
-        BeanUtils.copyProperties(inlineResponse201, vnfInstance);
-        inlineResponse201.setVnfdVersion(Constant.VNFD_VERSION);
-        inlineResponse201.setVnfSoftwareVersion(Constant.VNF_SOFTWARE_VERSION);
-        inlineResponse201.setInstantiationState(InstantiationStateEnum.NOT_INSTANTIATED);
-        inlineResponse201.setVnfConfigurableProperties(getConfigProperties());
-        addAdditionalPRopertyInlineResponse201(inlineResponse201);
-        return inlineResponse201;
-    }
-
-    private Map<String, String> getConfigProperties() {
-        final Map<String, String> configProperties = new HashMap<>();
-        configProperties.put("ipAddress", "10.11.12.13");
-        return configProperties;
-    }
-
-    private void addAdditionalPRopertyInlineResponse201(final InlineResponse201 inlineResponse201) {
-        final InlineResponse201LinksSelf VnfInstancesLinksSelf = new InlineResponse201LinksSelf();
-        VnfInstancesLinksSelf
-                .setHref(applicationConfig.getBaseUrl() + "/vnflcm/v1/vnf_instances/" + inlineResponse201.getId());
-        final InlineResponse201LinksSelf VnfInstancesLinksSelfInstantiate = new InlineResponse201LinksSelf();
-        VnfInstancesLinksSelfInstantiate.setHref(applicationConfig.getBaseUrl() + "/vnflcm/v1/vnf_instances/"
-                + inlineResponse201.getId() + "/instantiate");
-        final InlineResponse201Links inlineResponse201Links = new InlineResponse201Links();
-        inlineResponse201Links.setSelf(VnfInstancesLinksSelf);
-        inlineResponse201Links.setInstantiate(VnfInstancesLinksSelfInstantiate);
-        inlineResponse201.setLinks(inlineResponse201Links);
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/main/resources/application.yaml b/vnfm-simulator/vnfm-service/src/main/resources/application.yaml
deleted file mode 100644
index ea8105d..0000000
--- a/vnfm-simulator/vnfm-service/src/main/resources/application.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright © 2019 Nordix Foundation
-#
-# 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.
-
-spring:
- h2:
-  console:
-  enabled: true
-  path: console
- datasource:
-  url: jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE
-  username: admin
-  password: admin
- http:
-  converters:
-   preferred-json-mapper: gson
- security:
-  usercredentials:
-   - username: vnfm
-     password: '$2a$10$Fh9ffgPw2vnmsghsRD3ZauBL1aKXebigbq3BB1RPWtE62UDILsjke'
-     role: BPEL-Client
-   
-server:
-  port: 9093
-  tomcat:
-    max-threads: 50
-  ssl:
-    key-alias: so@so.onap.org
-    key--store-password: '7Em3&j4.19xYiMelhD5?xbQ.'
-    key-store: classpath:so-vnfm-simulator.p12
-    key-store-type: PKCS12
-
-vnfds:
-  vnfdlist:
-  -  vnfdid: 1
-     vnfclist:
-     - vnfcid: VNFC1
-       resourceTemplateId: vnfd1_vnfc1
-       vduId: vnfd1_vduForVnfc1
-       type: COMPUTE
-     - vnfcid: VNFC2
-       resourceTemplateId: vnfd1_vnfc2
-       vduId: vnfd1_vduForVnfc2
-       type: COMPUTE
-  -  vnfdid: 2
-     vnfclist:
-     - vnfcid: VNFC3
-       resourceTemplateId: vnfd2_vnfc3
-       vduId: vnfd2_vduForVnfc3
-       type: COMPUTE
-     - vnfcid: VNFC4
-       resourceTemplateId: vnfd2_vnfc4
-       vduId: vnfd2_vduForVnfc4
-       type: COMPUTE
diff --git a/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-adapter.crt.pem b/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-adapter.crt.pem
deleted file mode 100644
index 3c899e3..0000000
--- a/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-adapter.crt.pem
+++ /dev/null
@@ -1,30 +0,0 @@
-Bag Attributes
-    friendlyName: so@so.onap.org
-    localKeyID: 54 69 6D 65 20 31 35 36 33 34 36 33 36 32 39 35 38 33 
-subject=/CN=so-vnfm-adapter/emailAddress=/OU=so@so.onap.org/OU=OSAAF/O=ONAP/C=US
-issuer=/C=US/O=ONAP/OU=OSAAF/CN=intermediateCA_9
------BEGIN CERTIFICATE-----
-MIIEITCCAwmgAwIBAgIILuAnLLineoYwDQYJKoZIhvcNAQELBQAwRzELMAkGA1UE
-BhMCVVMxDTALBgNVBAoMBE9OQVAxDjAMBgNVBAsMBU9TQUFGMRkwFwYDVQQDDBBp
-bnRlcm1lZGlhdGVDQV85MB4XDTE5MDcxODE1MjcwOVoXDTIwMDcxODE1MjcwOVow
-cDEYMBYGA1UEAwwPc28tdm5mbS1hZGFwdGVyMQ8wDQYJKoZIhvcNAQkBFgAxFzAV
-BgNVBAsMDnNvQHNvLm9uYXAub3JnMQ4wDAYDVQQLDAVPU0FBRjENMAsGA1UECgwE
-T05BUDELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCu2NbWjFiZ5Tz5P7daCD6mqJqSWV3f+gkM2VC/UYM/43hd/2ILJbbtsv4uzS/P
-GXl3UIKBjb7zRiDCvLNMFsHCZ9/gIonG1z737S42LCrdVKq/KQ59yIOPrxYmLyiQ
-Xy81ChX77b2KvKPPeF+K/wnh5fLwlcJ18geeCoWGaMK0C/i6J/uUb9z+Ef0Nmtau
-NdXAuUnERCKMra+3kFxZwaRC/gSCy+/s6EQdeaGNiijg03AmrUx9XjrJjHbYMDVo
-OKSxtv0E4fxbfmTpHaKCuN4eg+0nEXw/eiIEuSHJuh3KKv7wRoP/hG/Tdog7x60M
-SD+hdNjCbFP6yAyMPfoxVnjHAgMBAAGjgecwgeQwCQYDVR0TBAIwADAOBgNVHQ8B
-Af8EBAMCBeAwIAYDVR0lAQH/BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMFQGA1Ud
-IwRNMEuAFIH3mVsQuciM3vNSXupOaaBDPqzdoTCkLjAsMQ4wDAYDVQQLDAVPU0FB
-RjENMAsGA1UECgwET05BUDELMAkGA1UEBhMCVVOCAQcwHQYDVR0OBBYEFFLrO3T4
-QybeDQ28mHgC/xT5f03qMDAGA1UdEQQpMCeCD3NvLXZuZm0tYWRhcHRlcoIUc28t
-dm5mbS1hZGFwdGVyLm9uYXAwDQYJKoZIhvcNAQELBQADggEBACe+JaVIjTku/QNp
-XoQCNN+sllSZmEHTLmYfpSzY5BY2AeJsgTYqFtAhtp6uQf8Jr993CyEyeJ4if2Z9
-J5NWoJKmY1+a63UphB1mg4sNSCuDxvbxPjtrFkOx/DiB1XEUdoifS9IQSDIIuhaD
-YP6sih1TBOh/2ityCe51Mu1J9/wgb24rlYouVtEyQeIai4dqngFHeQHeNXOnGN0z
-osEcKSYa0C+ZOAomBMT58C2aDz9vyI8YPuzwVSDKndmXUgvrkkVnxk3qJRtghDQc
-RV+4SeZg8s4+5DxKL4AL15IAaAPMJHi+MRtfm7qNzqCEl5sAEzO7S4oVHeWLNFV8
-a9PHErg=
------END CERTIFICATE-----
diff --git a/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-simulator.p12 b/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-simulator.p12
deleted file mode 100644
index 7ac0285..0000000
--- a/vnfm-simulator/vnfm-service/src/main/resources/so-vnfm-simulator.p12
+++ /dev/null
Binary files differ
diff --git a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/controllers/TestSvnfmController.java b/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/controllers/TestSvnfmController.java
deleted file mode 100644
index 0818ea3..0000000
--- a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/controllers/TestSvnfmController.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.controllers;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.controller.SvnfmController;
-import org.onap.svnfm.simulator.repository.VnfmCacheRepository;
-import org.onap.svnfm.simulator.services.SvnfmService;
-import org.springframework.http.MediaType;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.MvcResult;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-
-@RunWith(MockitoJUnitRunner.class)
-public class TestSvnfmController {
-
-    private static final String VNF_INSTANCES_URL = "/vnf_instances/";
-    private static final String VNFD_ID = "vnfdId";
-    private static final String VNF_INSTANCE_NAME = "vnfInstanceName";
-    private static final String VNF_INSTANCE_DESCRIPTION = "vnfInstanceDescription";
-    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
-    private static final String VNF_OPERATION_ID = "vnfOperationId";
-    private static final String VNF_INSTANTIATE_URL = "/instantiate";
-    private static final String VNF_TERMINATE_URL = "/terminate";
-    private static final String VNF_LCM_OP_OCC_ID = "vnfLcmOpOccId";
-    private static final String VNF_OPERATION_STATUS_URL = "/vnf_lcm_op_occs/";
-    private static final String SUBSCRIPTIONS_URL = "/subscriptions";
-
-    @InjectMocks
-    private SvnfmController svnfmController;
-
-    private MockMvc mockMvc;
-
-    @Mock
-    private SvnfmService svnfmService;
-
-    @Mock
-    private VnfmCacheRepository vnfmCacheRepository;
-
-    @Before
-    public void setup() {
-        MockitoAnnotations.initMocks(this);
-        this.mockMvc = MockMvcBuilders.standaloneSetup(svnfmController).build();
-    }
-
-    @Test
-    public void createVnfInstanceTest() throws Exception {
-        final CreateVnfRequest createVnfRequest = new CreateVnfRequest();
-
-        createVnfRequest.setVnfdId(VNFD_ID);
-        createVnfRequest.setVnfInstanceName(VNF_INSTANCE_NAME);
-        createVnfRequest.setVnfInstanceDescription(VNF_INSTANCE_DESCRIPTION);
-
-        when(vnfmCacheRepository.createVnf(eq(createVnfRequest), anyString())).thenReturn(new InlineResponse201());
-
-        final String body = (new ObjectMapper()).valueToTree(createVnfRequest).toString();
-        this.mockMvc
-                .perform(post(Constant.BASE_URL + VNF_INSTANCES_URL).content(body)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(status().isCreated()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
-    }
-
-    @Test
-    public void test_getVnf_usingValidVnfInstanceId_vnfInstanceRetrievedSuccessfully() throws Exception {
-        final InlineResponse201 inlineResponse201 = new InlineResponse201();
-        inlineResponse201.setId(VNF_INSTANCE_ID);
-        inlineResponse201.setVnfInstanceName(VNF_INSTANCE_NAME);
-
-        when(vnfmCacheRepository.getVnf(VNF_INSTANCE_ID)).thenReturn(inlineResponse201);
-
-        final ResultActions resultActions = this.mockMvc
-                .perform(get(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(status().isOk()).andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8));
-
-        final MvcResult result = resultActions.andReturn();
-        final String content = result.getResponse().getContentAsString();
-        final InlineResponse201 response201 = new ObjectMapper().readValue(content, InlineResponse201.class);
-        assertThat(response201.getId()).isEqualTo(VNF_INSTANCE_ID);
-        assertThat(response201.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
-    }
-
-    @Test
-    public void test_instantiateVnf_usingValidVnfInstanceId_returnsHttpStatusAccepted() throws Exception {
-        when(svnfmService.instantiateVnf(VNF_INSTANCE_ID)).thenReturn(VNF_OPERATION_ID);
-
-        this.mockMvc
-                .perform(post(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID + VNF_INSTANTIATE_URL)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(status().isAccepted()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
-    }
-
-    @Test
-    public void test_deleteVnf_usingValidVnfInstanceId_returnsHttpStatusNoContent() throws Exception {
-        this.mockMvc
-                .perform(delete(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(status().isNoContent()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
-    }
-
-    @Test
-    public void test_terminateVnf_usingValidVnfInstanceId_returnsHttpStatusIsAccepted() throws Exception {
-        when(svnfmService.terminateVnf(VNF_INSTANCE_ID)).thenReturn(VNF_OPERATION_ID);
-
-        this.mockMvc
-                .perform(post(Constant.BASE_URL + VNF_INSTANCES_URL + VNF_INSTANCE_ID + VNF_TERMINATE_URL)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(status().isAccepted()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
-    }
-
-    @Test
-    public void test_getOperationStatus_usingValidOperationId_operationStatusRetrievedSuccessfully() throws Exception {
-        final InlineResponse200 inlineResponse200 = new InlineResponse200();
-        inlineResponse200.setId(VNF_LCM_OP_OCC_ID);
-        inlineResponse200.setOperation(OperationEnum.INSTANTIATE);
-
-        when(svnfmService.getOperationStatus(VNF_LCM_OP_OCC_ID)).thenReturn(inlineResponse200);
-
-        final ResultActions resultActions = this.mockMvc
-                .perform(get(Constant.BASE_URL + VNF_OPERATION_STATUS_URL + VNF_LCM_OP_OCC_ID)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(content().contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk());
-
-        final MvcResult result = resultActions.andReturn();
-        final String content = result.getResponse().getContentAsString();
-        final InlineResponse200 response200 = new ObjectMapper().readValue(content, InlineResponse200.class);
-        assertThat(response200.getId()).isEqualTo(VNF_LCM_OP_OCC_ID);
-        assertThat(response200.getOperation()).isEqualTo(OperationEnum.INSTANTIATE);
-    }
-
-    @Test
-    public void test_subscribeForNotifications_usingValidSubscriptionRequest_returnsHttpStatusCreated()
-            throws Exception {
-        final LccnSubscriptionRequest lccnSubscriptionRequest = new LccnSubscriptionRequest();
-        final String body = (new ObjectMapper()).valueToTree(lccnSubscriptionRequest).toString();
-
-        this.mockMvc
-                .perform(post(Constant.BASE_URL + SUBSCRIPTIONS_URL).content(body)
-                        .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
-                .andExpect(status().isCreated()).andExpect(content().contentType(MediaType.APPLICATION_JSON));
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/InstantiateOperatorProgressorTest.java b/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/InstantiateOperatorProgressorTest.java
deleted file mode 100644
index b74cd68..0000000
--- a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/InstantiateOperatorProgressorTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2019 Nokia.
- * ================================================================================
- * 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.onap.svnfm.simulator.services;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201AddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.InlineResponse201VimConnections;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.model.Vnfds.Vnfc;
-import org.onap.svnfm.simulator.model.Vnfds.Vnfd;
-
-public class InstantiateOperatorProgressorTest {
-
-    private static final String VNF_ID = "vnfTestId";
-    private static final String CALLBACK_URI = "/lcn/uritest";
-    private static final String VNFC_TYPE = "COMPUTE";
-    private static final String RESOURCE_TEMPLATE_ID = "resTempIdTest";
-    private static final String VDU_ID = "vduIdTest";
-    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
-    private static final String VNFC_ID = "vnfcIdTest";
-    private static final String RESOURCE_DEFINITION_ID = "resDefTestId";
-    private static final String VIM_CONNECTION_ID = "vimConnTestId";
-
-    private SvnfmService svnfmServiceMock;
-
-    private InstantiateOperationProgressor testedObject;
-
-    @Before
-    public void setup() {
-        svnfmServiceMock = mock(SvnfmService.class);
-        VnfOperation vnfOperation = new VnfOperation();
-        vnfOperation.setVnfInstanceId(VNF_INSTANCE_ID);
-        vnfOperation.setOperation(OperationEnum.OPERATE);
-        testedObject = new InstantiateOperationProgressor(vnfOperation, svnfmServiceMock, null, new ApplicationConfig(),
-                createVnfds(), createSubscriptionService());
-    }
-
-    @Test
-    public void getAddResources_vnfIdFound() {
-        List<GrantsAddResources> result = testedObject.getAddResources(VNF_ID);
-        assertThat(result).hasSize(1);
-        GrantsAddResources grantsAddResourceResult = result.get(0);
-        assertThat(grantsAddResourceResult.getType()).hasToString(VNFC_TYPE);
-        assertThat(grantsAddResourceResult.getResourceTemplateId()).isEqualTo(RESOURCE_TEMPLATE_ID);
-        assertThat(grantsAddResourceResult.getVduId()).isEqualTo(VDU_ID);
-    }
-
-    @Test
-    public void getAddResources_vnfIdNotFound() {
-        List<GrantsAddResources> result = testedObject.getAddResources("otherVnfId");
-        assertThat(result).isEmpty();
-    }
-
-    @Test
-    public void handleGrantResponse_VnfdObjectsAvailable() {
-        when(svnfmServiceMock.getVnf(VNF_INSTANCE_ID)).thenReturn(createInlineResponse201());
-
-        InlineResponse201VimConnections inlineResponse201VimConnections = new InlineResponse201VimConnections();
-        List<InlineResponse201VimConnections> listOfVimConnection = new ArrayList<>();
-        listOfVimConnection.add(inlineResponse201VimConnections);
-
-        InlineResponse201AddResources inlineResponse201AddResources = new InlineResponse201AddResources();
-        inlineResponse201AddResources.setResourceDefinitionId(RESOURCE_DEFINITION_ID);
-        inlineResponse201AddResources.setVimConnectionId(VIM_CONNECTION_ID);
-        List<InlineResponse201AddResources> listOfResources = new ArrayList<>();
-        listOfResources.add(inlineResponse201AddResources);
-
-        InlineResponse201 inlineResponse201 = new InlineResponse201();
-        inlineResponse201.setVimConnections(listOfVimConnection);
-        inlineResponse201.setAddResources(listOfResources);
-        List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> resultList =
-                testedObject.handleGrantResponse(inlineResponse201);
-
-        assertThat(resultList).hasSize(1);
-        InlineResponse201InstantiatedVnfInfoVnfcResourceInfo resultObject = resultList.get(0);
-        assertThat(resultObject.getId()).isEqualTo(VNFC_ID);
-        assertThat(resultObject.getVduId()).isEqualTo(VDU_ID);
-        assertThat(resultObject.getComputeResource().getVimConnectionId()).isEqualTo(VIM_CONNECTION_ID);
-    }
-
-    @Test
-    public void getVnfcChangeType_enumAdded() {
-        assertThat(testedObject.getVnfcChangeType().getValue()).isEqualTo("ADDED");
-    }
-
-    @Test
-    public void getRemoveResourcesShouldReturnEmptyList() {
-        assertThat(testedObject.getRemoveResources("anyVnfId")).isEmpty();
-    }
-
-    @Test
-    public void test_buildGrantRequest_usingValidVnfInstanceId_grantRequestRetrievedSuccessfully() {
-        when(svnfmServiceMock.getVnf(Mockito.eq(VNF_INSTANCE_ID))).thenReturn(createInlineResponse201());
-        GrantRequest grantRequest = testedObject.buildGrantRequest();
-        assertThat(grantRequest.getVnfdId().equals(VNF_ID));
-    }
-
-    private Vnfds createVnfds() {
-        Vnfd vnfd = new Vnfd();
-        vnfd.setVnfdId(VNF_ID);
-        List<Vnfc> vnfcList = new ArrayList<>();
-        vnfcList.add(createVnfc());
-        vnfd.setVnfcList(vnfcList);
-        List<Vnfd> vnfdList = new ArrayList<>();
-        vnfdList.add(vnfd);
-
-        Vnfds vnfds = new Vnfds();
-        vnfds.setVnfdList(vnfdList);
-        return vnfds;
-    }
-
-    private Vnfc createVnfc() {
-        Vnfc vnfc = new Vnfc();
-        vnfc.setVnfcId(VNFC_ID);
-        vnfc.setType(VNFC_TYPE);
-        vnfc.setResourceTemplateId(RESOURCE_TEMPLATE_ID);
-        vnfc.setVduId(VDU_ID);
-        vnfc.setGrantResourceId(RESOURCE_DEFINITION_ID);
-        return vnfc;
-    }
-
-    private SubscriptionService createSubscriptionService() {
-        SubscriptionService subscriptionService = new SubscriptionService();
-        LccnSubscriptionRequest lccnSubscriptionRequest = new LccnSubscriptionRequest();
-        lccnSubscriptionRequest.setCallbackUri(CALLBACK_URI);
-        subscriptionService.registerSubscription(lccnSubscriptionRequest);
-        return subscriptionService;
-    }
-
-    private org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 createInlineResponse201() {
-        org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201 inlineResponse201 =
-                new org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201();
-        inlineResponse201.setVnfdId(VNF_ID);
-        return inlineResponse201;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/SvnfmServiceTest.java b/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/SvnfmServiceTest.java
deleted file mode 100644
index 2eca37b..0000000
--- a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/SvnfmServiceTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2019 Nokia.
- * ================================================================================
- * 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.onap.svnfm.simulator.services;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.model.VnfInstance;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.repository.VnfOperationRepository;
-import org.onap.svnfm.simulator.repository.VnfmRepository;
-import org.springframework.cache.Cache;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.support.SimpleValueWrapper;
-
-public class SvnfmServiceTest {
-
-    private static final String VNFD_ID = "vnfdId";
-    private static final String VNF_INSTANCE_NAME = "vnfInstanceName";
-    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
-    private static final String OPERATION_ID = "operationId";
-    private SvnfmService testedObject;
-    private CacheManager cacheManagerMock;
-    private VnfmHelper vnfmHelperMock;
-    private VnfmRepository vnfmRepositoryMock;
-    private VnfOperationRepository vnfOperationRepositoryMock;
-
-    @Before
-    public void setup() {
-        vnfmRepositoryMock = mock(VnfmRepository.class);
-        vnfOperationRepositoryMock = mock(VnfOperationRepository.class);
-        vnfmHelperMock = mock(VnfmHelper.class);
-        ApplicationConfig applicationConfigMock = mock(ApplicationConfig.class);
-        cacheManagerMock = mock(CacheManager.class);
-        Vnfds vnfdsMock = mock(Vnfds.class);
-        SubscriptionService subscriptionServiceMock = mock(SubscriptionService.class);
-
-        testedObject = new SvnfmService(vnfmRepositoryMock, vnfOperationRepositoryMock, vnfmHelperMock,
-                applicationConfigMock, cacheManagerMock, vnfdsMock, subscriptionServiceMock);
-    }
-
-    @Test
-    public void getVnfSuccessful() {
-        // given
-        Cache cacheMock = mock(Cache.class);
-        SimpleValueWrapper simpleValueWrapperMock = mock(SimpleValueWrapper.class);
-        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(cacheMock);
-        when(cacheMock.get(VNF_INSTANCE_ID)).thenReturn(simpleValueWrapperMock);
-        when(simpleValueWrapperMock.get()).thenReturn(getInlineResponse(VNFD_ID, VNF_INSTANCE_NAME));
-        // when
-        InlineResponse201 result = testedObject.getVnf(VNF_INSTANCE_ID);
-        // then
-        assertThat(result.getVnfdId()).isEqualTo(VNFD_ID);
-        assertThat(result.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
-    }
-
-    @Test
-    public void getVnf_ifCacheNullThenReturnNull() {
-        // given
-        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(null);
-        // then
-        assertThat(testedObject.getVnf("any")).isNull();
-    }
-
-    @Test
-    public void getVnf_ifWrapperNullThenReturnNull() {
-        // given
-        Cache cacheMock = mock(Cache.class);
-        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(cacheMock);
-        when(cacheMock.get(VNF_INSTANCE_ID)).thenReturn(null);
-        // then
-        assertThat(testedObject.getVnf(VNF_INSTANCE_ID)).isNull();
-    }
-
-    @Test
-    public void getVnf_ifResultIsNullThenReturnNull() {
-        // when
-        Cache cacheMock = mock(Cache.class);
-        SimpleValueWrapper simpleValueWrapperMock = mock(SimpleValueWrapper.class);
-        when(cacheManagerMock.getCache(Constant.IN_LINE_RESPONSE_201_CACHE)).thenReturn(cacheMock);
-        when(cacheMock.get(VNF_INSTANCE_ID)).thenReturn(simpleValueWrapperMock);
-        when(simpleValueWrapperMock.get()).thenReturn(null);
-        // then
-        assertThat(testedObject.getVnf(VNF_INSTANCE_ID)).isNull();
-    }
-
-    @Test
-    public void test_createVnf_usingValidCreateVnfRequest_vnfInstanceCreatedSuccessfully() throws Exception {
-        // given
-        final CreateVnfRequest createVnfRequest = getCreateVnfRequest();
-        final VnfInstance vnfInstance = getVnfInstance();
-        final InlineResponse201 inlineResponse201 = getInlineResponse(VNFD_ID, VNF_INSTANCE_NAME);
-        when(vnfmHelperMock.createVnfInstance(createVnfRequest, VNF_INSTANCE_ID)).thenReturn(vnfInstance);
-        when(vnfmRepositoryMock.save(vnfInstance)).thenReturn(vnfInstance);
-        when(vnfmHelperMock.getInlineResponse201(vnfInstance)).thenReturn(inlineResponse201);
-        // when
-        final InlineResponse201 result = testedObject.createVnf(createVnfRequest, VNF_INSTANCE_ID);
-        // then
-        assertThat(result.getVnfdId()).isEqualTo(VNFD_ID);
-        assertThat(result.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
-    }
-
-    @Test
-    public void test_createVnf_illegalAccessExceptionThrown_returnsNull() throws Exception {
-        // given
-        final CreateVnfRequest createVnfRequest = getCreateVnfRequest();
-        final VnfInstance vnfInstance = getVnfInstance();
-        when(vnfmHelperMock.createVnfInstance(createVnfRequest, VNF_INSTANCE_ID)).thenReturn(vnfInstance);
-        when(vnfmRepositoryMock.save(vnfInstance)).thenReturn(vnfInstance);
-        when(vnfmHelperMock.getInlineResponse201(vnfInstance)).thenThrow(new IllegalAccessException());
-        // when
-        final InlineResponse201 result = testedObject.createVnf(createVnfRequest, VNF_INSTANCE_ID);
-        // then
-        assertNull(result);
-    }
-
-    @Test
-    public void test_getOperationStatus_usingValidOperationId_operationStatusRetrievedSuccessfully() {
-        // given
-        final OperationEnum operationEnum = OperationEnum.OPERATE;
-        final VnfOperation vnfOperation = getVnfOperation(OPERATION_ID, operationEnum);
-        final List<VnfOperation> vnfOperations = new ArrayList<>();
-        vnfOperations.add(vnfOperation);
-        when(vnfOperationRepositoryMock.findAll()).thenReturn(vnfOperations);
-        // when
-        final InlineResponse200 result = testedObject.getOperationStatus(OPERATION_ID);
-        // then
-        assertThat(result.getId()).isEqualTo(OPERATION_ID);
-        assertThat(result.getOperation()).isEqualTo(operationEnum);
-    }
-
-    @Test
-    public void test_getOperationStatus_usingInvalidOperationId_returnsNull() {
-        // given
-        final OperationEnum operationEnum = OperationEnum.OPERATE;
-        final VnfOperation vnfOperation = getVnfOperation(OPERATION_ID, operationEnum);
-        final List<VnfOperation> vnfOperations = new ArrayList<>();
-        vnfOperations.add(vnfOperation);
-        when(vnfOperationRepositoryMock.findAll()).thenReturn(vnfOperations);
-        // when
-        InlineResponse200 result = testedObject.getOperationStatus("invalidOperationId");
-        // then
-        assertNull(result);
-    }
-
-    private InlineResponse201 getInlineResponse(String vnfdId, String vnfInstanceName) {
-        InlineResponse201 response201 = new InlineResponse201();
-        response201.setVnfdId(vnfdId);
-        response201.vnfInstanceName(vnfInstanceName);
-        return response201;
-    }
-
-    private CreateVnfRequest getCreateVnfRequest() {
-        final CreateVnfRequest createVnfRequest = new CreateVnfRequest();
-        createVnfRequest.setVnfdId(VNFD_ID);
-        createVnfRequest.setVnfInstanceName(VNF_INSTANCE_NAME);
-        return createVnfRequest;
-    }
-
-    private VnfInstance getVnfInstance() {
-        final VnfInstance vnfInstance = new VnfInstance();
-        vnfInstance.setVnfdId(VNFD_ID);
-        vnfInstance.setVnfInstanceName(VNF_INSTANCE_NAME);
-        return vnfInstance;
-    }
-
-    private VnfOperation getVnfOperation(String operationId, OperationEnum operationEnum) {
-        final VnfOperation vnfOperation = new VnfOperation();
-        vnfOperation.setId(operationId);
-        vnfOperation.setOperation(operationEnum);
-        return vnfOperation;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/TerminateOperationProgressorTest.java b/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/TerminateOperationProgressorTest.java
deleted file mode 100644
index c7237a8..0000000
--- a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/TerminateOperationProgressorTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.svnfm.simulator.services;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.grant.model.GrantsAddResources;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse200.OperationEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoResourceHandle;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201InstantiatedVnfInfoVnfcResourceInfo;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.LccnSubscriptionRequest;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.model.VnfOperation;
-import org.onap.svnfm.simulator.model.Vnfds;
-import org.onap.svnfm.simulator.model.Vnfds.Vnfc;
-import org.onap.svnfm.simulator.model.Vnfds.Vnfd;
-
-public class TerminateOperationProgressorTest {
-
-    private static final String VNFD_ID = "vnfdId";
-    private static final String VNFC_TYPE = "COMPUTE";
-    private static final String VDU_ID = "vduId";
-    private static final String VNF_INSTANCE_ID = "vnfInstanceId";
-
-    @Mock
-    private SvnfmService svnfmService;
-
-    private TerminateOperationProgressor testedObject;
-
-    @Before
-    public void setup() {
-        svnfmService = mock(SvnfmService.class);
-        VnfOperation vnfOperation = new VnfOperation();
-        vnfOperation.setVnfInstanceId(VNF_INSTANCE_ID);
-        vnfOperation.setOperation(OperationEnum.OPERATE);
-        testedObject = new TerminateOperationProgressor(vnfOperation, svnfmService, null, new ApplicationConfig(),
-                createVnfds(), createSubscriptionService());
-    }
-
-    @Test
-    public void test_getAddResources_usingValidVnfdId_returnsEmptyList() {
-        List<GrantsAddResources> results = testedObject.getAddResources(VNFD_ID);
-        assertThat(results.isEmpty());
-    }
-
-    @Test
-    public void test_getRemoveResources_usingValidVnfdId_retrievesGrantsAddResourcesSuccessfully() {
-        // given
-        InlineResponse201 inlineResponse201 = createInlineResponse201();
-        InlineResponse201InstantiatedVnfInfo inlineResponse201InstantiatedVnfInfo =
-                setupInlineResponseInstantiatedVnfInfo();
-        inlineResponse201.setInstantiatedVnfInfo(inlineResponse201InstantiatedVnfInfo);
-
-        when(svnfmService.getVnf(VNF_INSTANCE_ID)).thenReturn(inlineResponse201);
-
-        // when
-        List<GrantsAddResources> result = testedObject.getRemoveResources(VNFD_ID);
-
-        // then
-        assertThat(result).hasSize(1);
-        GrantsAddResources grantsAddResourcesResult = result.get(0);
-        assertThat(grantsAddResourcesResult.getType()).hasToString(VNFC_TYPE);
-        assertThat(grantsAddResourcesResult.getVduId()).isEqualTo(VDU_ID);
-    }
-
-    @Test
-    public void test_getVnfcChangeType_isEnumRemoved() {
-        assertThat(testedObject.getVnfcChangeType().getValue()).isEqualTo("REMOVED");
-    }
-
-    private Vnfds createVnfds() {
-        Vnfd vnfd = new Vnfd();
-        vnfd.setVnfdId(VNFD_ID);
-        List<Vnfc> vnfcList = new ArrayList<>();
-        vnfcList.add(createVnfc());
-        vnfd.setVnfcList(vnfcList);
-        List<Vnfd> vnfdList = new ArrayList<>();
-        vnfdList.add(vnfd);
-
-        Vnfds vnfds = new Vnfds();
-        vnfds.setVnfdList(vnfdList);
-        return vnfds;
-    }
-
-    private Vnfc createVnfc() {
-        Vnfc vnfc = new Vnfc();
-        String vnfcId = "vnfcId";
-        vnfc.setVnfcId(vnfcId);
-        vnfc.setType(VNFC_TYPE);
-        String resourceTemplateId = "resTempId";
-        vnfc.setResourceTemplateId(resourceTemplateId);
-        vnfc.setVduId(VDU_ID);
-        String resourceDefinitionId = "resourceDefinitionId";
-        vnfc.setGrantResourceId(resourceDefinitionId);
-        return vnfc;
-    }
-
-    private SubscriptionService createSubscriptionService() {
-        SubscriptionService subscriptionService = new SubscriptionService();
-        LccnSubscriptionRequest lccnSubscriptionRequest = new LccnSubscriptionRequest();
-        String callbackUri = "/lcn/uriest";
-        lccnSubscriptionRequest.setCallbackUri(callbackUri);
-        subscriptionService.registerSubscription(lccnSubscriptionRequest);
-        return subscriptionService;
-    }
-
-    private InlineResponse201 createInlineResponse201() {
-        InlineResponse201 inlineResponse201 = new InlineResponse201();
-        inlineResponse201.setVnfdId(VNFD_ID);
-        return inlineResponse201;
-    }
-
-    private InlineResponse201InstantiatedVnfInfo setupInlineResponseInstantiatedVnfInfo() {
-        InlineResponse201InstantiatedVnfInfo inlineResponse201InstantiatedVnfInfo =
-                new InlineResponse201InstantiatedVnfInfo();
-        List<InlineResponse201InstantiatedVnfInfoVnfcResourceInfo> resultList = new ArrayList<>();
-        InlineResponse201InstantiatedVnfInfoVnfcResourceInfo resourceInfo =
-                new InlineResponse201InstantiatedVnfInfoVnfcResourceInfo();
-        String resourceInfoId = "resourceInfoId";
-        resourceInfo.setId(resourceInfoId);
-        resourceInfo.setVduId((VDU_ID));
-        InlineResponse201InstantiatedVnfInfoResourceHandle resourceHandle =
-                new InlineResponse201InstantiatedVnfInfoResourceHandle();
-        resourceInfo.setComputeResource(resourceHandle);
-        resultList.add(resourceInfo);
-        inlineResponse201InstantiatedVnfInfo.setVnfcResourceInfo(resultList);
-        String flavourId = "flavourId";
-        inlineResponse201InstantiatedVnfInfo.setFlavourId(flavourId);
-        return inlineResponse201InstantiatedVnfInfo;
-    }
-}
diff --git a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/VnfmHelperTest.java b/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/VnfmHelperTest.java
deleted file mode 100644
index 2b9598e..0000000
--- a/vnfm-simulator/vnfm-service/src/test/java/org/onap/svnfm/simulator/services/VnfmHelperTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2019 Nokia.
- * ================================================================================
- * 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.onap.svnfm.simulator.services;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.CreateVnfRequest;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201.InstantiationStateEnum;
-import org.onap.so.adapters.vnfmadapter.extclients.vnfm.model.InlineResponse201LinksSelf;
-import org.onap.svnfm.simulator.config.ApplicationConfig;
-import org.onap.svnfm.simulator.constants.Constant;
-import org.onap.svnfm.simulator.model.VnfInstance;
-
-public class VnfmHelperTest {
-
-    private static final String VNF_INSTANCE_ID = "vnfInstanceTestId";
-    private static final String VNFD_ID = "vnfdTestId";
-    private static final String VNF_INSTANCE_NAME = "vnfInsNameTest";
-    private static final String VNF_INSTANCE_DESCRIPTION = "vnfInstTestDescr";
-    private static final String APPLICATION_CONFIG_BASE_URL = "appConfUrl";
-    private VnfmHelper testedObject;
-    private ApplicationConfig applicationConfigMock;
-
-    @Before
-    public void setup() {
-        applicationConfigMock = mock(ApplicationConfig.class);
-        testedObject = new VnfmHelper(applicationConfigMock);
-    }
-
-    @Test
-    public void createVnfInstance() {
-        // when
-        VnfInstance result = testedObject.createVnfInstance(createVnfRequest(), VNF_INSTANCE_ID);
-        // then
-        assertThat(result.getId()).isEqualTo(VNF_INSTANCE_ID);
-        assertThat(result.getVnfdId()).isEqualTo(VNFD_ID);
-        assertThat(result.getVnfInstanceName()).isEqualTo(VNF_INSTANCE_NAME);
-        assertThat(result.getVnfInstanceDescription()).isEqualTo(VNF_INSTANCE_DESCRIPTION);
-        assertThat(result.getVnfProvider()).isEqualTo(Constant.VNF_PROVIDER);
-        assertThat(result.getVnfProductName()).isEqualTo(Constant.VNF_PROVIDER_NAME);
-    }
-
-    @Test
-    public void getInlineResponse201() throws Exception {
-        // given
-        when(applicationConfigMock.getBaseUrl()).thenReturn(APPLICATION_CONFIG_BASE_URL);
-        // when
-        InlineResponse201 result = testedObject.getInlineResponse201(prepareVnfInstance());
-        // then
-        assertThat(result.getVnfdVersion()).isEqualTo(Constant.VNFD_VERSION);
-        assertThat(result.getVnfSoftwareVersion()).isEqualTo(Constant.VNF_SOFTWARE_VERSION);
-        assertThat(result.getInstantiationState()).isEqualByComparingTo(InstantiationStateEnum.NOT_INSTANTIATED);
-        verifyAdditionalPropertyInlineResponse201(result);
-    }
-
-    private CreateVnfRequest createVnfRequest() {
-        CreateVnfRequest createVnfRequest = new CreateVnfRequest();
-        createVnfRequest.setVnfdId(VNFD_ID);
-        createVnfRequest.setVnfInstanceName(VNF_INSTANCE_NAME);
-        createVnfRequest.setVnfInstanceDescription(VNF_INSTANCE_DESCRIPTION);
-        return createVnfRequest;
-    }
-
-    private VnfInstance prepareVnfInstance() {
-        VnfInstance vnfInstance = new VnfInstance();
-        vnfInstance.setId(VNF_INSTANCE_ID);
-        return vnfInstance;
-    }
-
-    private void verifyAdditionalPropertyInlineResponse201(InlineResponse201 result) {
-        InlineResponse201LinksSelf expectedVnfInstancesLinksSelf = new InlineResponse201LinksSelf();
-        expectedVnfInstancesLinksSelf
-                .setHref(APPLICATION_CONFIG_BASE_URL + "/vnflcm/v1/vnf_instances/" + VNF_INSTANCE_ID);
-        assertThat(result.getLinks().getSelf()).isEqualTo(expectedVnfInstancesLinksSelf);
-
-        InlineResponse201LinksSelf expectedVnfInstancesLinksSelfInstantiate = new InlineResponse201LinksSelf();
-        expectedVnfInstancesLinksSelfInstantiate.setHref(
-                (APPLICATION_CONFIG_BASE_URL + "/vnflcm/v1/vnf_instances/" + VNF_INSTANCE_ID + "/instantiate"));
-        assertThat(result.getLinks().getInstantiate()).isEqualTo(expectedVnfInstancesLinksSelfInstantiate);
-    }
-
-}
