<?xml version="1.0" encoding="UTF-8"?>
 <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
-  <bpmn:process id="Process_1" isExecutable="true">
+  <bpmn:process id="CnfAdapterBB" name="CnfAdapterBB" isExecutable="true">
     <bpmn:startEvent id="StartEvent_1">
       <bpmn:outgoing>SequenceFlow_0xb4elc</bpmn:outgoing>
     </bpmn:startEvent>
 
 package org.onap.so.bpmn.infrastructure.adapter.cnf.tasks;
 
-import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowAction;
 import org.onap.so.client.adapter.cnf.CnfAdapterClient;
-import org.onap.so.client.adapter.cnf.CnfAdapterClientException;
 import org.onap.so.client.adapter.cnf.entities.InstanceRequest;
 import org.onap.so.client.adapter.cnf.entities.InstanceResponse;
+import org.onap.so.client.adapter.cnf.entities.Labels;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 
 @Component
 public class CnfAdapter {
 
     public void callCnfAdapter(DelegateExecution execution) throws Exception {
         try {
-            final String instanceRequest = (String) execution.getVariable("instanceRequest");
-            InstanceRequest request = new ObjectMapper().readValue(instanceRequest, InstanceRequest.class);
+            InstanceRequest request = new InstanceRequest();
+            request.setRbName("test-rbdef");
+            request.setRbVersion("v1");
+            request.setCloudRegion("krd");
+            request.setVfModuleUUID("VF module UUID");
+            request.setProfileName("p1");
+            Map<String, String> overrideValues = new HashMap<>();
+            overrideValues.put("image.tag", "latest");
+            overrideValues.put("dcae_collector_ip", "1.2.3.4");
+            Map<String, String> labels = new HashMap<String, String>();
+            labels.put("custom-label-1", "abcdef");
+            request.setLabels(labels);
+            request.setOverrideValues(overrideValues);
             InstanceResponse response = cnfAdapterClient.createVfModule(request);
         } catch (Exception ex) {
             logger.error("Exception in callCnfAdapter", ex);
 
         request.setRbName(vfModule.getModelInfoVfModule().getModelInvariantUUID());
         request.setRbVersion(vfModule.getModelInfoVfModule().getModelUUID());
         request.setCloudRegion(cloudRegion.getLcpCloudRegionId());
-        request.setReleaseName(vfModule.getVfModuleId());
+        request.setVfModuleUUID(vfModule.getVfModuleId());
         request.setProfileName(sdncDirectives.get("k8s-rb-profile-name"));
         request.setOverrideValues(sdncDirectives);
         return request;
 
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.retry.annotation.Backoff;
 import org.springframework.retry.annotation.Retryable;
         }
     }
 
+    @Retryable(value = {HttpServerErrorException.class}, maxAttempts = 3, backoff = @Backoff(delay = 3000))
+    public InstanceResponse healthcheck() throws CnfAdapterClientException {
+        try {
+            // String uri = env.getRequiredProperty("mso.cnf.adapter.endpoint"); //TODO: This needs to be added as well
+            // for configuration
+            String uri = "https://localhost:32780"; // TODO: What is the correct uri?
+            String endpoint = UriBuilder.fromUri(uri).path("/api/cnf-adapter/v1/healthcheck").build().toString();
+            HttpEntity<?> entity = new HttpEntity<>(getHttpHeaders());
+            ResponseEntity<InstanceResponse> result =
+                    restTemplate.exchange(endpoint, HttpMethod.GET, entity, InstanceResponse.class);
+            return result.getBody();
+        } catch (HttpClientErrorException e) {
+            logger.error("Error Calling CNF Adapter, e");
+            if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+                throw new EntityNotFoundException(e.getResponseBodyAsString());
+            }
+            throw e;
+        }
+    }
+
     protected HttpHeaders getHttpHeaders() {
         HttpHeaders headers = new HttpHeaders();
-        List<org.springframework.http.MediaType> acceptableMediaTypes = new ArrayList<>();
-        acceptableMediaTypes.add(org.springframework.http.MediaType.APPLICATION_JSON);
+        List<MediaType> acceptableMediaTypes = new ArrayList<>();
+        acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
         headers.setAccept(acceptableMediaTypes);
+        headers.setContentType(MediaType.APPLICATION_JSON);
         /*
          * try { String userCredentials = CryptoUtils.decrypt(env.getRequiredProperty("mso.cnf.adapter.auth"),
          * env.getRequiredProperty("mso.msoKey")); if (userCredentials != null) { headers.add(HttpHeaders.AUTHORIZATION,
 
         "override-values"})
 public class InstanceRequest {
 
-    @JsonProperty("rb-name")
+    @JsonProperty("modelInvariantId")
     private String rbName;
-    @JsonProperty("rb-version")
+    @JsonProperty("modelVersionId")
     private String rbVersion;
-    @JsonProperty("profile-name")
+    @JsonProperty("k8sRBProfileName")
     private String profileName;
-    @JsonProperty("release-name")
-    private String releaseName;
-    @JsonProperty("cloud-region")
+    @JsonProperty("vfModuleUUID")
+    private String vfModuleUUID;
+    @JsonProperty("cloudRegionId")
     private String cloudRegion;
     @JsonProperty("labels")
-    private Labels labels;
+    private Map<String, String> labels;
     @JsonProperty(value = "override-values")
     private Map<String, String> overrideValues;
 
     }
 
     @JsonProperty("labels")
-    public Labels getLabels() {
+    public Map<String, String> getLabels() {
         return labels;
     }
 
     @JsonProperty("labels")
-    public void setLabels(Labels labels) {
+    public void setLabels(Map<String, String> labels) {
         this.labels = labels;
     }
 
-    public String getReleaseName() {
-        return releaseName;
+    public String getVfModuleUUID() {
+        return vfModuleUUID;
     }
 
-    public void setReleaseName(String releaseName) {
-        this.releaseName = releaseName;
+    public void setVfModuleUUID(String vfModuleUUID) {
+        this.vfModuleUUID = vfModuleUUID;
     }
 
     public Map<String, String> getOverrideValues() {