Merge "Changing groupId for message-lib"
diff --git a/cds-ui/server/src/clients/blueprint-management-service-grpc-client.ts b/cds-ui/server/src/clients/blueprint-management-service-grpc-client.ts
index b66b2a7..8975f45 100644
--- a/cds-ui/server/src/clients/blueprint-management-service-grpc-client.ts
+++ b/cds-ui/server/src/clients/blueprint-management-service-grpc-client.ts
@@ -17,7 +17,7 @@
 import * as uuidv1 from 'uuid/v1';
 const grpc = require('grpc');
 import * as protoLoader from '@grpc/proto-loader';
-import {processorApiConfig} from '../config/app-config';
+import { processorApiConfig } from '../config/app-config';
 
 const PROTO_PATH = processorApiConfig.grpc.bluePrintManagement.protoPath;
 
@@ -44,7 +44,7 @@
 
 class BluePrintManagementServiceGrpcClient {
 
-    async uploadBlueprint(filePath: string): Promise<any> {
+    async uploadBlueprint(filePath: string, actionName: string): Promise<any> {
 
         let input = {
             commonHeader: {
@@ -55,6 +55,11 @@
             },
             fileChunk: {
                 chunk: fs.readFileSync(filePath)
+            },
+            actionIdentifiers: {
+                mode: "sync",
+                blueprintName: "cds.zip",
+                actionName: actionName
             }
         }
 
@@ -80,6 +85,34 @@
         });
 
     }
+
+    async downloadBlueprint(blueprintName: string,blueprintVersion: string): Promise<any> {
+
+        let input = {
+            commonHeader: {
+                timestamp: new Date(),
+                originatorId: "cds-ui",
+                requestId: uuidv1(),
+                subRequestId: "1234-56",
+            },
+            actionIdentifiers: {
+                mode: "sync",
+                blueprintName: blueprintName,
+                blueprintVersion: blueprintVersion
+            }
+        }
+
+        return new Promise<any>((resolve, reject) => {
+            stub.downloadBlueprint(input, metadata, (err: any, output: any) => {
+                if (err) {
+                    reject(err);
+                    return;
+                }
+                resolve(output);
+            });
+        });
+
+    }
 }
 
 export const bluePrintManagementServiceGrpcClient = new BluePrintManagementServiceGrpcClient();
diff --git a/cds-ui/server/src/config/app-config.ts b/cds-ui/server/src/config/app-config.ts
index a2cebe5..9b253b8 100644
--- a/cds-ui/server/src/config/app-config.ts
+++ b/cds-ui/server/src/config/app-config.ts
@@ -15,9 +15,9 @@
 */
 export const appConfig = Object.freeze({
     action: Object.freeze({
-        deployBlueprint: Object.freeze({
+        // deployBlueprint: Object.freeze({
             grpcEnabled: process.env.APP_ACTION_DEPLOY_BLUEPRINT_GRPC_ENABLED || true
-        })
+        // })
     })
 });
 
diff --git a/cds-ui/server/src/controllers/blueprint-rest.controller.ts b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
index 7895898..1eef6fb 100644
--- a/cds-ui/server/src/controllers/blueprint-rest.controller.ts
+++ b/cds-ui/server/src/controllers/blueprint-rest.controller.ts
@@ -98,15 +98,26 @@
   ): Promise<Response> {
     return new Promise((resolve, reject) => {
       this.getFileFromMultiPartForm(request).then(file => {
-        this.uploadFileToBlueprintController(file, "/blueprint-model/", response).then(resp => {
-          resolve(resp);
-        }, err => {
-          reject(err);
-        });
+        // if (appConfig.action.deployBlueprint.grpcEnabled)
+        if (appConfig.action.grpcEnabled)
+          return this.uploadFileToBlueprintProcessorGrpc(file, "DRAFT", response);
+        else
+          return this.uploadFileToBlueprintController(file, "/blueprint-model/", response);
       }, err => {
         reject(err);
       });
     });
+    // return new Promise((resolve, reject) => {
+    //   this.getFileFromMultiPartForm(request).then(file => {
+    //     this.uploadFileToBlueprintController(file, "/blueprint-model/", response).then(resp => {
+    //       resolve(resp);
+    //     }, err => {
+    //       reject(err);
+    //     });
+    //   }, err => {
+    //     reject(err);
+    //   });
+    // });
   }
 
   @post('/controllerblueprint/publish')
@@ -127,15 +138,26 @@
   ): Promise<Response> {
     return new Promise((resolve, reject) => {
       this.getFileFromMultiPartForm(request).then(file => {
-        this.uploadFileToBlueprintController(file, "/blueprint-model/publish/", response).then(resp => {
-          resolve(resp);
-        }, err => {
-          reject(err);
-        });
+        // if (appConfig.action.deployBlueprint.grpcEnabled)
+        if (appConfig.action.grpcEnabled)
+          return this.uploadFileToBlueprintProcessorGrpc(file, "PUBLISH", response);
+        else
+          return this.uploadFileToBlueprintController(file, "/blueprint-model/publish/", response);
       }, err => {
         reject(err);
       });
     });
+    // return new Promise((resolve, reject) => {
+    //   this.getFileFromMultiPartForm(request).then(file => {
+    //     this.uploadFileToBlueprintController(file, "/blueprint-model/publish/", response).then(resp => {
+    //       resolve(resp);
+    //     }, err => {
+    //       reject(err);
+    //     });
+    //   }, err => {
+    //     reject(err);
+    //   });
+    // });
   }
 
   @post('/controllerblueprint/enrich-blueprint')
@@ -156,13 +178,17 @@
   ): Promise<Response> {
     return new Promise((resolve, reject) => {
       this.getFileFromMultiPartForm(request).then(file => {
-        this.uploadFileToBlueprintController(file, "/blueprint-model/enrich/", response).then(resp => {
-          resolve(resp);
-        }, err => {
-          reject(err);
-        });
-      }, err => {
-        reject(err);
+        if (appConfig.action.grpcEnabled)
+          return this.uploadFileToBlueprintProcessorGrpc(file, "ENRICH", response);
+        else
+          return this.uploadFileToBlueprintController(file, "/blueprint-model/enrich/", response)
+        //   this.uploadFileToBlueprintController(file, "/blueprint-model/enrich/", response).then(resp => {
+        //     resolve(resp);
+        //   }, err => {
+        //     reject(err);
+        //   });
+        // }, err => {
+        //   reject(err);
       });
     });
   }
@@ -173,9 +199,14 @@
     @param.path.string('version') version: string,
     @inject(RestBindings.Http.RESPONSE) response: Response,
   ): Promise<Response> {
-    return this.downloadFileFromBlueprintController("/blueprint-model/download/by-name/" + name + "/version/" + version, response);
+
+    if (appConfig.action.grpcEnabled)
+      return this.downloadFileFromBlueprintProcessorGrpc(name, version, response);
+    else
+      return this.downloadFileFromBlueprintController("/blueprint-model/download/by-name/" + name + "/version/" + version, response);
   }
 
+
   async getFileFromMultiPartForm(request: Request): Promise<multiparty.File> {
     return new Promise((resolve, reject) => {
       let form = new multiparty.Form();
@@ -209,8 +240,9 @@
   ): Promise<Response> {
     return new Promise((resolve, reject) => {
       this.getFileFromMultiPartForm(request).then(file => {
-        if (appConfig.action.deployBlueprint.grpcEnabled)
-          return this.uploadFileToBlueprintProcessorGrpc(file, response);
+        // if (appConfig.action.deployBlueprint.grpcEnabled)
+        if (appConfig.action.grpcEnabled)
+          return this.uploadFileToBlueprintProcessorGrpc(file, "PUBLISH", response);
         else
           return this.uploadFileToBlueprintProcessor(file, "/execution-service/upload/", response);
       }, err => {
@@ -289,9 +321,9 @@
     })
   }
 
-  async uploadFileToBlueprintProcessorGrpc(file: multiparty.File, response: Response): Promise<Response> {
+  async uploadFileToBlueprintProcessorGrpc(file: multiparty.File, actionName: string, response: Response): Promise<Response> {
     return new Promise<Response>((resolve, reject) => {
-      bluePrintManagementServiceGrpcClient.uploadBlueprint(file.path).then(output => {
+      bluePrintManagementServiceGrpcClient.uploadBlueprint(file.path, actionName).then(output => {
         response.send(output.status.message);
         resolve(response);
       }, err => {
@@ -300,4 +332,16 @@
       });
     });
   }
+  async downloadFileFromBlueprintProcessorGrpc(blueprintName: string, blueprintVersion: string, response: Response): Promise<Response> {
+    return new Promise<Response>((resolve, reject) => {
+      bluePrintManagementServiceGrpcClient.downloadBlueprint(blueprintName, blueprintVersion)
+        .then(output => {
+          response.send(output.status.message);
+          resolve(response);
+        }, err => {
+          response.status(500).send(err);
+          resolve(response);
+        });
+    });
+  }
 }
\ No newline at end of file
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
index b3d719f..71e5fa6 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/data_types.json
@@ -773,4 +773,4 @@
       "derived_from" : "tosca.datatypes.Dynamic"
     }
   }
-}
\ No newline at end of file
+}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
index f7da409..7172e3a 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Definitions/resources_definition_types.json
@@ -63,7 +63,7 @@
         "properties" : {
           "type" : "JSON",
           "verb" : "PUT",
-          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$vnf-id/service-data/vnfs/vnf/$service-instance-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
           "path" : "",
           "payload" : "{\n\"GENERIC-RESOURCE-API:param\": [\n{\n\"GENERIC-RESOURCE-API:name\": \"vdns_vf_module_id\",\n\"GENERIC-RESOURCE-API:value\": \"$vf-module-id\"\n}\n]\n}",
           "input-key-mapping" : {
@@ -1263,7 +1263,7 @@
         "properties" : {
           "verb" : "GET",
           "type" : "JSON",
-          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$vnf-id/service-data/vnfs/vnf/$service-instance-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
           "path" : "/param/0/value",
           "input-key-mapping" : {
             "service-instance-id" : "service-instance-id",
@@ -1439,11 +1439,11 @@
       }
     }
   },
-  "vf-module-name" : {
-    "tags" : "vf-module-name",
-    "name" : "vf-module-name",
+  "vf_module_name" : {
+    "tags" : "vf_module_name",
+    "name" : "vf_module_name",
     "property" : {
-      "description" : "vf-module-name",
+      "description" : "vf_module_name",
       "type" : "string"
     },
     "updated-by" : "Singal, Kapil <ks220y@att.com>",
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py
index 34fd140..388c63f 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Scripts/python/ConfigDeploy.py
@@ -40,11 +40,11 @@
       #if not response.isSuccess():

       #  og.error(response.errorMessage)

       nc.discard_change()

-      nc.edit_config(message_content=payloadInterface, edit_default_peration="none")

-      nc.edit_config(message_content=payloadHostname, edit_default_peration="none")

-      nc.validate()

+      nc.edit_config(message_content=payloadInterface, edit_default_peration="merge") 

+      nc.edit_config(message_content=payloadHostname, edit_default_peration="merge")  

+      #nc.validate()

       nc.commit()

-      #nc.commit(confirmed = True, confirm_timeout=15)

+      nc.get_config()				#nc.commit(confirmed = True, confirm_timeout=15)

       nc.unlock()

       nc.disconnect()

 

diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
index 9e73a31..10e4484 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/baseconfig-template.vtl
@@ -1,9 +1,9 @@
-	{
-    "vdns-instance": [
-        {
-            "ip-addr": "$vdns_int_private_ip_0",
-            "oam-ip-addr": "$vdns_onap_private_ip_0",
-            "enabled": false
-        }
-    ]
-}
\ No newline at end of file
+<vlb-business-vnf-onap-plugin xmlns="urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin">
+<vdns-instances>
+<vdns-instance>
+<ip-addr>$vdns_int_private_ip_0</ip-addr>
+<oam-ip-addr>$vdns_onap_private_ip_0</oam-ip-addr>
+<enabled>false</enabled>
+</vdns-instance>
+</vdns-instances>
+</vlb-business-vnf-onap-plugin>
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
index 7ec446f..d336257 100644
--- a/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
+++ b/components/model-catalog/blueprint-model/service-blueprint/vLB/Templates/incremental-config-template.vtl
@@ -1,9 +1,9 @@
-{
-    "vdns-instance": [
-        {
-            "ip-addr": "$vdns_int_private_ip_0",
-            "oam-ip-addr": "$vdns_onap_private_ip_0",
-            "enabled": true
-        }
-    ]
-}
\ No newline at end of file
+<vlb-business-vnf-onap-plugin xmlns="urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin">
+<vdns-instances>
+<vdns-instance>
+<ip-addr>$vdns_int_private_ip_0</ip-addr>
+<oam-ip-addr>$vdns_onap_private_ip_0</oam-ip-addr>
+<enabled>true</enabled>
+</vdns-instance>
+</vdns-instances>
+</vlb-business-vnf-onap-plugin>
diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/cba/capability/cli/CapabilityCli.kt b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/cba/capability/cli/CapabilityCli.kt
index 9552b61..7bda628 100644
--- a/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/cba/capability/cli/CapabilityCli.kt
+++ b/components/model-catalog/blueprint-model/test-blueprint/capability_cli/Scripts/kotlin/cba/capability/cli/CapabilityCli.kt
@@ -19,6 +19,7 @@
 import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
 import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction
 import org.onap.ccsdk.cds.blueprintsprocessor.ssh.sshClientService
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
 import org.onap.ccsdk.cds.controllerblueprints.core.asJsonString
 import org.onap.ccsdk.cds.controllerblueprints.core.logger
 import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/active-streams.json b/components/model-catalog/resource-dictionary/starter-dictionary/active-streams.json
new file mode 100644
index 0000000..d136fbf
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/active-streams.json
@@ -0,0 +1,18 @@
+{
+  "tags": "active-streams",
+  "name": "active-streams",
+  "property": {
+    "description": "active-streams",
+    "type": "string"
+  },
+  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+  "sources": {
+    "input": {
+      "type": "source-input"
+    },
+    "default": {
+      "type": "source-default",
+      "properties": {}
+    }
+  }
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/cloud_env.json b/components/model-catalog/resource-dictionary/starter-dictionary/cloud_env.json
index 1877c12..28cac3b 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/cloud_env.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/cloud_env.json
@@ -1,37 +1,38 @@
 {
-  "tags": "cloud_env",
-  "name": "cloud_env",
-  "property": {
-    "description": "cloud_env",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/cloud_env",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "cloud_env": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "cloud_env",
+	"name": "cloud_env",
+	"property": {
+		"description": "cloud_env",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/cloud_env",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"cloud_env": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/create-md-sal-vnf-param.json b/components/model-catalog/resource-dictionary/starter-dictionary/create-md-sal-vnf-param.json
new file mode 100644
index 0000000..e19e67c
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/create-md-sal-vnf-param.json
@@ -0,0 +1,49 @@
+{
+	"tags": "create-md-sal-vnf-param",
+	"name": "create-md-sal-vnf-param",
+	"property": {
+		"description": "create-md-sal-vnf-param",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"type": "JSON",
+				"verb": "PUT",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
+				"path": "",
+				"payload": "{\n\"GENERIC-RESOURCE-API:param\": [\n{\n\"GENERIC-RESOURCE-API:name\": \"vdns_vf_module_id\",\n\"GENERIC-RESOURCE-API:value\": \"$vf-module-id\"\n}\n]\n}",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id",
+					"vf-module-id": "vf-module-id"
+				},
+				"output-key-mapping": {},
+				"key-dependencies": [
+					"vf-module-id",
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"aai-data": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "PATCH",
+				"type": "JSON",
+				"url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id/nm-profile-name",
+				"payload": "{\"nm-profile-name\":\"$vf-module-id\"}",
+				"path": "",
+				"input-key-mapping": {
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {},
+				"key-dependencies": [
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_ip.json b/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_ip.json
index c0d42df..9339cd2 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_ip.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_ip.json
@@ -1,37 +1,38 @@
 {
-  "tags": "dcae_collector_ip",
-  "name": "dcae_collector_ip",
-  "property": {
-    "description": "dcae_collector_ip",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_ip",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "dcae_collector_ip": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "dcae_collector_ip",
+	"name": "dcae_collector_ip",
+	"property": {
+		"description": "dcae_collector_ip",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_ip",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"dcae_collector_ip": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_port.json b/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_port.json
index 1191d80..85b561e 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_port.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/dcae_collector_port.json
@@ -1,37 +1,38 @@
 {
-  "tags": "dcae_collector_port",
-  "name": "dcae_collector_port",
-  "property": {
-    "description": "dcae_collector_port",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_port",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "dcae_collector_port": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "dcae_collector_port",
+	"name": "dcae_collector_port",
+	"property": {
+		"description": "dcae_collector_port",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/dcae_collector_port",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"dcae_collector_port": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/demo_artifacts_version.json b/components/model-catalog/resource-dictionary/starter-dictionary/demo_artifacts_version.json
index 3884e1e..63f8a35 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/demo_artifacts_version.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/demo_artifacts_version.json
@@ -1,37 +1,38 @@
 {
-  "tags": "demo_artifacts_version",
-  "name": "demo_artifacts_version",
-  "property": {
-    "description": "demo_artifacts_version",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/demo_artifacts_version",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "demo_artifacts_version": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "demo_artifacts_version",
+	"name": "demo_artifacts_version",
+	"property": {
+		"description": "demo_artifacts_version",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/demo_artifacts_version",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"demo_artifacts_version": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/flavor_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/flavor_name.json
new file mode 100644
index 0000000..ad7f3a7
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/flavor_name.json
@@ -0,0 +1,38 @@
+{
+	"tags": "flavor_name",
+	"name": "flavor_name",
+	"property": {
+		"description": "flavor_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/flavor_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"flavor_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/gre_ipaddr.json b/components/model-catalog/resource-dictionary/starter-dictionary/gre_ipaddr.json
index 92f7abe..a917350 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/gre_ipaddr.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/gre_ipaddr.json
@@ -1,37 +1,38 @@
 {
-  "tags": "gre_ipaddr",
-  "name": "gre_ipaddr",
-  "property": {
-    "description": "gre_ipaddr",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/gre_ipaddr",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "gre_ipaddr": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "gre_ipaddr",
+	"name": "gre_ipaddr",
+	"property": {
+		"description": "gre_ipaddr",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/gre_ipaddr",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"gre_ipaddr": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/image_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/image_name.json
old mode 100755
new mode 100644
index f8816b1..9891caa
--- a/components/model-catalog/resource-dictionary/starter-dictionary/image_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/image_name.json
@@ -1,33 +1,38 @@
 {
-  "name": "image_name",
-  "tags": "image_name",
-  "updated-by": "Singal, Kapil <ks220y@att.com>",
-  "property": {
-    "type": "string",
-    "description": "image_name"
-  },
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/image_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "image_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "image_name",
+	"name": "image_name",
+	"property": {
+		"description": "image_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/image_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"image_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/install_script_version.json b/components/model-catalog/resource-dictionary/starter-dictionary/install_script_version.json
index 39bbb18..1f5f79e 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/install_script_version.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/install_script_version.json
@@ -1,37 +1,38 @@
 {
-  "tags": "install_script_version",
-  "name": "install_script_version",
-  "property": {
-    "description": "install_script_version",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/install_script_version",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "install_script_version": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "install_script_version",
+	"name": "install_script_version",
+	"property": {
+		"description": "install_script_version",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/install_script_version",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"install_script_version": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_net_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_net_id.json
index acde125..2c2c18b 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_net_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_net_id.json
@@ -1,37 +1,38 @@
 {
-  "tags": "int_pktgen_private_net_id",
-  "name": "int_pktgen_private_net_id",
-  "property": {
-    "description": "int_pktgen_private_net_id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_net_id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "int_pktgen_private_net_id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "int_pktgen_private_net_id",
+	"name": "int_pktgen_private_net_id",
+	"property": {
+		"description": "int_pktgen_private_net_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_net_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"int_pktgen_private_net_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_subnet_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_subnet_id.json
index c30bef8..6f2203f 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_subnet_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_pktgen_private_subnet_id.json
@@ -1,37 +1,38 @@
 {
-  "tags": "int_pktgen_private_subnet_id",
-  "name": "int_pktgen_private_subnet_id",
-  "property": {
-    "description": "int_pktgen_private_subnet_id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_subnet_id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "int_pktgen_private_subnet_id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "int_pktgen_private_subnet_id",
+	"name": "int_pktgen_private_subnet_id",
+	"property": {
+		"description": "int_pktgen_private_subnet_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_pktgen_private_subnet_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"int_pktgen_private_subnet_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_private1_net_cidr.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_private1_net_cidr.json
new file mode 100644
index 0000000..f450143
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_private1_net_cidr.json
@@ -0,0 +1,50 @@
+{
+	"tags": "int_private1_net_cidr",
+	"name": "int_private1_net_cidr",
+	"property": {
+		"description": "int_private1_net_cidr",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_net_cidr",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"int_private1_net_cidr": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"int_private1_net_cidr": "prefix"
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_private1_subnet_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_private1_subnet_id.json
new file mode 100644
index 0000000..938f51a
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_private1_subnet_id.json
@@ -0,0 +1,15 @@
+{
+	"tags": "int_private1_subnet_id",
+	"name": "int_private1_subnet_id",
+	"property": {
+		"description": "int_private1_subnet_id",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input",
+			"properties": {}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_private2_net_cidr.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_private2_net_cidr.json
new file mode 100644
index 0000000..e018614
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_private2_net_cidr.json
@@ -0,0 +1,50 @@
+{
+	"tags": "int_private2_net_cidr",
+	"name": "int_private2_net_cidr",
+	"property": {
+		"description": "int_private2_net_cidr",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+				"output-key-mapping": {
+					"int_private2_net_cidr": "prefix"
+				},
+				
+				"input-key-mapping": {}
+			}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private2_net_cidr",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"int_private2_net_cidr": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_private2_subnet_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_private2_subnet_id.json
new file mode 100644
index 0000000..1ec9eb3
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_private2_subnet_id.json
@@ -0,0 +1,15 @@
+{
+	"tags": "int_private2_subnet_id",
+	"name": "int_private2_subnet_id",
+	"property": {
+		"description": "int_private2_subnet_id",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input",
+			"properties": {}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_private_net_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_private_net_id.json
index 4aa07f3..f424da2 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/int_private_net_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_private_net_id.json
@@ -1,37 +1,38 @@
 {
-  "tags": "int_private_net_id",
-  "name": "int_private_net_id",
-  "property": {
-    "description": "int_private_net_id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_net_id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "int_private_net_id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "int_private_net_id",
+	"name": "int_private_net_id",
+	"property": {
+		"description": "int_private_net_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_net_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"int_private_net_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/int_private_subnet_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/int_private_subnet_id.json
index d9e02b5..be6f877 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/int_private_subnet_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/int_private_subnet_id.json
@@ -1,37 +1,38 @@
 {
-  "tags": "int_private_subnet_id",
-  "name": "int_private_subnet_id",
-  "property": {
-    "description": "int_private_subnet_id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_subnet_id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "int_private_subnet_id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "int_private_subnet_id",
+	"name": "int_private_subnet_id",
+	"property": {
+		"description": "int_private_subnet_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private_subnet_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"int_private_subnet_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/key_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/key_name.json
old mode 100755
new mode 100644
index 2633f1d..909cffb
--- a/components/model-catalog/resource-dictionary/starter-dictionary/key_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/key_name.json
@@ -1,33 +1,38 @@
 {
-  "name": "key_name",
-  "tags": "key_name",
-  "updated-by": "Singal, Kapil <ks220y@att.com>",
-  "property": {
-    "type": "string",
-    "description": "key_name"
-  },
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/key_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "key_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "key_name",
+	"name": "key_name",
+	"property": {
+		"description": "key_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/key_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"key_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/keypair.json b/components/model-catalog/resource-dictionary/starter-dictionary/keypair.json
index 2b464a8..5a7fb21 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/keypair.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/keypair.json
@@ -1,37 +1,38 @@
 {
-  "tags": "keypair",
-  "name": "keypair",
-  "property": {
-    "description": "keypair",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/keypair",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "keypair": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "keypair",
+	"name": "keypair",
+	"property": {
+		"description": "keypair",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/keypair",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"keypair": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/management-prefix-id.json b/components/model-catalog/resource-dictionary/starter-dictionary/management-prefix-id.json
index 279ca92..0050bb6 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/management-prefix-id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/management-prefix-id.json
@@ -1,49 +1,50 @@
 {
-  "tags": "management-prefix-id",
-  "name": "management-prefix-id",
-  "property": {
-    "description": "management-prefix-id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/management-prefix-id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "management-prefix-id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"management\"",
-        "input-key-mapping": {},
-        "output-key-mapping": {
-          "management-prefix-id": "prefix_id"
-        }
-      }
-    }
-  }
-}
+	"tags": "management-prefix-id",
+	"name": "management-prefix-id",
+	"property": {
+		"description": "management-prefix-id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/management-prefix-id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"management-prefix-id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"management\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"management-prefix-id": "prefix_id"
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/name_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/name_0.json
old mode 100755
new mode 100644
index 433a3b7..59d8f95
--- a/components/model-catalog/resource-dictionary/starter-dictionary/name_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/name_0.json
@@ -1,15 +1,15 @@
 {
-  "name" : "name_0",
-  "tags" : "name_0",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "name_0",
-    "type" : "string"
-  },
-  "sources" : {
-    "input" : {
-      "type" : "source-input",
-      "properties" : { }
-    }
-  }
+	"tags": "name_0",
+	"name": "name_0",
+	"property": {
+		"description": "name_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input",
+			"properties": {}
+		}
+	}
 }
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/nb_api_version.json b/components/model-catalog/resource-dictionary/starter-dictionary/nb_api_version.json
index 55784fe..c089dea 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/nb_api_version.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/nb_api_version.json
@@ -1,37 +1,38 @@
 {
-  "tags": "nb_api_version",
-  "name": "nb_api_version",
-  "property": {
-    "description": "nb_api_version",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nb_api_version",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "nb_api_version": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "nb_api_version",
+	"name": "nb_api_version",
+	"property": {
+		"description": "nb_api_version",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nb_api_version",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"nb_api_version": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/nexus_artifact_repo.json b/components/model-catalog/resource-dictionary/starter-dictionary/nexus_artifact_repo.json
old mode 100755
new mode 100644
index f1173e4..1cb2224
--- a/components/model-catalog/resource-dictionary/starter-dictionary/nexus_artifact_repo.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/nexus_artifact_repo.json
@@ -1,37 +1,38 @@
 {
-  "tags": "nexus_artifact_repo",
-  "name": "nexus_artifact_repo",
-  "property": {
-    "description": "nexus_artifact_repo",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nexus_artifact_repo",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "nexus_artifact_repo": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "nexus_artifact_repo",
+	"name": "nexus_artifact_repo",
+	"property": {
+		"description": "nexus_artifact_repo",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nexus_artifact_repo",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"nexus_artifact_repo": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/nf-role.json b/components/model-catalog/resource-dictionary/starter-dictionary/nf-role.json
old mode 100755
new mode 100644
index 90f5b49..f666cf4
--- a/components/model-catalog/resource-dictionary/starter-dictionary/nf-role.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/nf-role.json
@@ -1,30 +1,31 @@
 {
-  "name" : "nf-role",
-  "tags" : "nf-role",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vnf/nf-role",
-    "type" : "string"
-  },
-  "sources" : {
-    "default": {
-      "type": "source-default",
-      "properties": {
-      }
-    },
-    "processor-db" : {
-      "type" : "source-db",
-      "properties" : {
-        "type" : "SQL",
-        "query" : "select sdnctl.VF_MODEL.nf_role as vf_model_role from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnfmodelcustomizationuuid",
-        "input-key-mapping" : {
-          "vnfmodelcustomizationuuid" : "vnf-model-customization-uuid"
-        },
-        "output-key-mapping" : {
-          "nf-role" : "vf_model_role"
-        },
-        "key-dependencies" : [ "vnf-model-customization-uuid" ]
-      }
-    }
-  }
-}
+	"tags": "nf-role",
+	"name": "nf-role",
+	"property": {
+		"description": "vnf/nf-role",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select sdnctl.VF_MODEL.nf_role as vf_model_role from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnfmodelcustomizationuuid",
+				"input-key-mapping": {
+					"vnfmodelcustomizationuuid": "vnf-model-customization-uuid"
+				},
+				"output-key-mapping": {
+					"nf-role": "vf_model_role"
+				},
+				"key-dependencies": [
+					"vnf-model-customization-uuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/nfc-naming-code.json b/components/model-catalog/resource-dictionary/starter-dictionary/nfc-naming-code.json
old mode 100755
new mode 100644
index 55d8177..0a578c9
--- a/components/model-catalog/resource-dictionary/starter-dictionary/nfc-naming-code.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/nfc-naming-code.json
@@ -1,35 +1,35 @@
 {
-  "tags": "nfc-naming-code",
-  "name": "nfc-naming-code",
-  "property": {
-    "description": "nfc-naming-code",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select nfc_naming_code as nfc_naming_code from sdnctl.VFC_MODEL where customization_uuid=:vfccustomizationuuid",
-        "input-key-mapping": {
-          "vfccustomizationuuid": "vfccustomizationuuid"
-        },
-        "output-key-mapping": {
-          "nfc-naming-code": "nfc_naming_code"
-        },
-        "key-dependencies": [
-          "vfccustomizationuuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "nfc-naming-code",
+	"name": "nfc-naming-code",
+	"property": {
+		"description": "nfc-naming-code",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select nfc_naming_code as nfc_naming_code from sdnctl.VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+				"input-key-mapping": {
+					"vfccustomizationuuid": "vfccustomizationuuid"
+				},
+				"output-key-mapping": {
+					"nfc-naming-code": "nfc_naming_code"
+				},
+				"key-dependencies": [
+					"vfccustomizationuuid"
+				],
+				"endpoint-selector": "dynamic-db-source"
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_cidr.json b/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_cidr.json
old mode 100755
new mode 100644
index 83144eb..9c9d677
--- a/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_cidr.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_cidr.json
@@ -1,49 +1,50 @@
 {
-  "tags": "onap_private_net_cidr",
-  "name": "onap_private_net_cidr",
-  "property": {
-    "description": "onap_private_net_cidr",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_cidr",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "onap_private_net_cidr": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"management\"",
-        "input-key-mapping": {},
-        "output-key-mapping": {
-          "onap_private_net_cidr": "prefix"
-        }
-      }
-    }
-  }
-}
+	"tags": "onap_private_net_cidr",
+	"name": "onap_private_net_cidr",
+	"property": {
+		"description": "onap_private_net_cidr",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"management\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"onap_private_net_cidr": "prefix"
+				}
+			}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_cidr",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"onap_private_net_cidr": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_id.json
old mode 100755
new mode 100644
index f2bcb9a..8c98843
--- a/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_net_id.json
@@ -1,38 +1,38 @@
 {
-      "tags": "onap_private_net_id",
-      "name": "onap_private_net_id",
-      "property": {
-        "description": "onap_private_net_id",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_id",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "onap_private_net_id": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    
-  }
+	"tags": "onap_private_net_id",
+	"name": "onap_private_net_id",
+	"property": {
+		"description": "onap_private_net_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"onap_private_net_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_subnet_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_subnet_id.json
old mode 100755
new mode 100644
index 0348993..e55b0bd
--- a/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_subnet_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/onap_private_subnet_id.json
@@ -1,37 +1,38 @@
 {
-  "tags": "onap_private_subnet_id",
-  "name": "onap_private_subnet_id",
-  "property": {
-    "description": "onap_private_subnet_id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_subnet_id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "onap_private_subnet_id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "onap_private_subnet_id",
+	"name": "onap_private_subnet_id",
+	"property": {
+		"description": "onap_private_subnet_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_subnet_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"onap_private_subnet_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/pg_int.json b/components/model-catalog/resource-dictionary/starter-dictionary/pg_int.json
index 2747b68..f7ba076 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/pg_int.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/pg_int.json
@@ -1,37 +1,38 @@
 {
-  "tags": "pg_int",
-  "name": "pg_int",
-  "property": {
-    "description": "pg_int",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pg_int",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "pg_int": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "pg_int",
+	"name": "pg_int",
+	"property": {
+		"description": "pg_int",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pg_int",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"pg_int": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_cidr.json b/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_cidr.json
index dc86efa..0eaaf9b 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_cidr.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_cidr.json
@@ -1,50 +1,50 @@
- {
-      "tags": "pktgen_private_net_cidr",
-      "name": "pktgen_private_net_cidr",
-      "property": {
-        "description": "pktgen_private_net_cidr",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_cidr",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "pktgen_private_net_cidr": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        },
-      
-      "processor-db": {
-        "type": "source-db",
-        "properties": {
-          "endpoint-selector": "dynamic-db-source",
-          "type": "SQL",
-          "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"",
-          "input-key-mapping": {},
-          "output-key-mapping": {
-            "onap_private_net_cidr": "prefix"
-          }
-        }
-      }
-    }
-  }
+{
+	"tags": "pktgen_private_net_cidr",
+	"name": "pktgen_private_net_cidr",
+	"property": {
+		"description": "pktgen_private_net_cidr",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+				"output-key-mapping": {
+					"pktgen_private_net_cidr": "prefix"
+				},
+				
+				"input-key-mapping": {}
+			}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_cidr",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"pktgen_private_net_cidr": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_id.json
index 9c8c610..c72117f 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/pktgen_private_net_id.json
@@ -1,37 +1,38 @@
-  {
-      "tags": "pktgen_private_net_id",
-      "name": "pktgen_private_net_id",
-      "property": {
-        "description": "pktgen_private_net_id",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_id",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "pktgen_private_net_id": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    }
+{
+	"tags": "pktgen_private_net_id",
+	"name": "pktgen_private_net_id",
+	"property": {
+		"description": "pktgen_private_net_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"pktgen_private_net_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/private1-prefix-id.json b/components/model-catalog/resource-dictionary/starter-dictionary/private1-prefix-id.json
index 53f43a8..b3b9412 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/private1-prefix-id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/private1-prefix-id.json
@@ -1,49 +1,50 @@
 {
-  "tags": "private1-prefix-id",
-  "name": "private1-prefix-id",
-  "property": {
-    "description": "private1-prefix-id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private1-prefix-id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "private1-prefix-id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private1\"",
-        "input-key-mapping": {},
-        "output-key-mapping": {
-          "private1-prefix-id": "prefix_id"
-        }
-      }
-    }
-  }
-}
+	"tags": "private1-prefix-id",
+	"name": "private1-prefix-id",
+	"property": {
+		"description": "private1-prefix-id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private1-prefix-id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"private1-prefix-id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private1\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"private1-prefix-id": "prefix_id"
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/private2-prefix-id.json b/components/model-catalog/resource-dictionary/starter-dictionary/private2-prefix-id.json
index 8498dd3..02dade7 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/private2-prefix-id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/private2-prefix-id.json
@@ -1,49 +1,50 @@
 {
-  "tags": "private2-prefix-id",
-  "name": "private2-prefix-id",
-  "property": {
-    "description": "private2-prefix-id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private2-prefix-id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "private2-prefix-id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private2\"",
-        "input-key-mapping": {},
-        "output-key-mapping": {
-          "private2-prefix-id": "prefix_id"
-        }
-      }
-    }
-  }
-}
+	"tags": "private2-prefix-id",
+	"name": "private2-prefix-id",
+	"property": {
+		"description": "private2-prefix-id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private2-prefix-id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"private2-prefix-id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"private2-prefix-id": "prefix_id"
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/pub_key.json b/components/model-catalog/resource-dictionary/starter-dictionary/pub_key.json
old mode 100755
new mode 100644
index b7c1da7..cb25ed4
--- a/components/model-catalog/resource-dictionary/starter-dictionary/pub_key.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/pub_key.json
@@ -1,37 +1,38 @@
 {
-  "tags": "pub_key",
-  "name": "pub_key",
-  "property": {
-    "description": "pub_key",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pub_key",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "pub_key": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "pub_key",
+	"name": "pub_key",
+	"property": {
+		"description": "pub_key",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pub_key",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"pub_key": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/public_net_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/public_net_id.json
old mode 100755
new mode 100644
index 34c3767..66e7aee
--- a/components/model-catalog/resource-dictionary/starter-dictionary/public_net_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/public_net_id.json
@@ -1,38 +1,38 @@
-  {
-      "tags": "public_net_id",
-      "name": "public_net_id",
-      "property": {
-        "description": "public_net_id",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/public_net_id",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "public_net_id": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    
-  }
+{
+	"tags": "public_net_id",
+	"name": "public_net_id",
+	"property": {
+		"description": "public_net_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/public_net_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"public_net_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/put-active-streams.json b/components/model-catalog/resource-dictionary/starter-dictionary/put-active-streams.json
new file mode 100644
index 0000000..56237d8
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/put-active-streams.json
@@ -0,0 +1,40 @@
+{
+  "name": "put-active-streams",
+  "tags": "put-active-streams",
+  "property": {
+    "description": "put-active-streams",
+    "type": "string"
+  },
+  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+  "sources": {
+    "input": {
+      "type": "source-input"
+    },
+    "default": {
+      "type": "source-default",
+      "properties": {}
+    },
+    "sdnc": {
+      "type": "source-rest",
+      "properties": {
+        "verb": "PUT",
+        "type": "JSON",
+        "url-path": "$vpg_onap_private_ip_0:8183/restconf/config/stream-count:stream-count/streams",
+        "path": "/param/0/value",
+        "input-key-mapping": {
+          "vpg_onap_private_ip_0": "vpg_onap_private_ip_0",
+          "active-streams": "active-streams"
+        },
+        "output-key-mapping": {
+    
+        },
+        "key-dependencies": [
+          "vpg_onap_private_ip_0",
+          "active-streams"
+        ],
+        "endpoint-selector": "vpkg-rest-api",
+        "payload": "{\"streams\": {\"active-streams\": $active-streams}}"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/sec_group.json b/components/model-catalog/resource-dictionary/starter-dictionary/sec_group.json
old mode 100755
new mode 100644
index 0dca859..deb0a59
--- a/components/model-catalog/resource-dictionary/starter-dictionary/sec_group.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/sec_group.json
@@ -1,38 +1,38 @@
-  {
-      "tags": "sec_group",
-      "name": "sec_group",
-      "property": {
-        "description": "sec_group",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/sec_group",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "sec_group": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    
-  }
+{
+	"tags": "sec_group",
+	"name": "sec_group",
+	"property": {
+		"description": "sec_group",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/sec_group",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"sec_group": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/service-instance-id.json b/components/model-catalog/resource-dictionary/starter-dictionary/service-instance-id.json
old mode 100755
new mode 100644
index 4b1f4f3..533b804
--- a/components/model-catalog/resource-dictionary/starter-dictionary/service-instance-id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/service-instance-id.json
@@ -1,45 +1,43 @@
 {
-  "name" : "service-instance-id",
-  "tags" : "service-instance-id, tosca.datatypes.Root, data_type",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "To be provided",
-    "type" : "string"
-  },
-  "sources" : {
-    "input" : {
-      "type" : "source-input",
-      "properties" : { }
-    },
-    "any-db": {
-      "type": "source-db",
-      "properties": {
-        "query": "SELECT artifact_name FROM BLUEPRINT_MODEL where artifact_version=\"1.0.0\"",
-        "input-key-mapping": {
-        },
-        "output-key-mapping": {
-          "service-instance-id": "artifact_name"
-        }
-      }
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "query": "SELECT artifact_name FROM BLUEPRINT_MODEL where artifact_version=\"1.0.0\"",
-        "input-key-mapping": {
-        },
-        "output-key-mapping": {
-          "service-instance-id": "artifact_name"
-        }
-      }
-    },
-    "capability": {
-      "type": "source-capability",
-      "properties": {
-          "script-type": "jython",
-          "script-class-reference": "SampleRAProcessor",
-          "instance-dependencies": []
-      }
-    }
-  }
-}
+	"tags": "service-instance-id, tosca.datatypes.Root, data_type",
+	"name": "service-instance-id",
+	"property": {
+		"description": "To be provided",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input",
+			"properties": {}
+		},
+		"any-db": {
+			"type": "source-db",
+			"properties": {
+				"query": "SELECT artifact_name FROM BLUEPRINT_RUNTIME where artifact_version=\"1.0.0\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"service-instance-id": "artifact_name"
+				}
+			}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"query": "SELECT artifact_name FROM BLUEPRINT_RUNTIME where artifact_version=\"1.0.0\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"service-instance-id": "artifact_name"
+				}
+			}
+		},
+		"capability": {
+			"type": "source-capability",
+			"properties": {
+				"script-type": "jython",
+				"script-class-reference": "SampleRAProcessor",
+				"instance-dependencies": []
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_flavor_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_flavor_name.json
index 445bc47..31f55b3 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_flavor_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_flavor_name.json
@@ -1,39 +1,38 @@
-  {
-  
-      "tags": "vdns_flavor_name",
-      "name": "vdns_flavor_name",
-      "property": {
-        "description": "vdns_flavor_name",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_flavor_name",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "vdns_flavor_name": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    
-  }
+{
+	"tags": "vdns_flavor_name",
+	"name": "vdns_flavor_name",
+	"property": {
+		"description": "vdns_flavor_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_flavor_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vdns_flavor_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_image_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_image_name.json
index d1d9d06..7ba8f27 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_image_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_image_name.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vdns_image_name",
-  "name": "vdns_image_name",
-  "property": {
-    "description": "vdns_image_name",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_image_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vdns_image_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vdns_image_name",
+	"name": "vdns_image_name",
+	"property": {
+		"description": "vdns_image_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_image_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vdns_image_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_int_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_int_private_ip_0.json
index 902cd27..6c3f7f4 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_int_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_int_private_ip_0.json
@@ -1,37 +1,40 @@
 {
-  "tags": "vdns_int_private_ip_0",
-  "name": "vdns_int_private_ip_0",
-  "property": {
-    "description": "vdns_int_private_ip_0",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_int_private_ip_0",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vdns_int_private_ip_0": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vdns_int_private_ip_0",
+	"name": "vdns_int_private_ip_0",
+	"property": {
+		"description": "vdns_int_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vdns_int_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id",
+					"vdns_vf_module_id": "vdns_vf_module_id"
+				},
+				"output-key-mapping": {
+					"vdns_int_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id",
+					"vdns_vf_module_id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_name_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_name_0.json
index efc7418..693d7f1 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_name_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_name_0.json
@@ -1,38 +1,38 @@
- {
-      "tags": "vdns_name_0",
-      "name": "vdns_name_0",
-      "property": {
-        "description": "vdns_name_0",
-        "type": "string"
-      },
-      "updated-by": "Singal, Kapil <ks220y@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_name_0",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "vdns_name_0": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    
-  }
+{
+	"tags": "vdns_name_0",
+	"name": "vdns_name_0",
+	"property": {
+		"description": "vdns_name_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_name_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vdns_name_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_onap_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_onap_private_ip_0.json
index d6f1e37..96aa4e8 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_onap_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_onap_private_ip_0.json
@@ -1,37 +1,40 @@
 {
-  "tags": "vdns_onap_private_ip_0",
-  "name": "vdns_onap_private_ip_0",
-  "property": {
-    "description": "vdns_onap_private_ip_0",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_onap_private_ip_0",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vdns_onap_private_ip_0": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vdns_onap_private_ip_0",
+	"name": "vdns_onap_private_ip_0",
+	"property": {
+		"description": "vdns_onap_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vf-modules/vf-module/$vdns_vf_module_id/vf-module-data/vf-module-topology/vf-module-parameters/param/vdns_onap_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id",
+					"vdns_vf_module_id": "vdns_vf_module_id"
+				},
+				"output-key-mapping": {
+					"vdns_onap_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id",
+					"vdns_vf_module_id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vdns_vf_module_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_vf_module_id.json
new file mode 100644
index 0000000..d428268
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vdns_vf_module_id.json
@@ -0,0 +1,53 @@
+{
+	"tags": "vdns_vf_module_id",
+	"name": "vdns_vf_module_id",
+	"property": {
+		"description": "vdns_vf_module_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vdns_vf_module_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vdns_vf_module_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"aai-data": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id",
+				"path": "",
+				"input-key-mapping": {
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vdns_vf_module_id": "nm-profile-name"
+				},
+				"key-dependencies": [
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-label.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-label.json
old mode 100755
new mode 100644
index 55526b1..7e52d08
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-label.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-label.json
@@ -1,34 +1,35 @@
 {
-  "tags": "vf-module-label",
-  "name": "vf-module-label",
-  "property": {
-    "description": "vf-module-label",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "type": "SQL",
-        "query": "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid",
-        "input-key-mapping": {
-          "customizationid": "vf-module-model-customization-uuid"
-        },
-        "output-key-mapping": {
-          "vf-module-label": "vf_module_label"
-        },
-        "key-dependencies": [
-          "vf-module-model-customization-uuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vf-module-label",
+	"name": "vf-module-label",
+	"property": {
+		"description": "vf-module-label",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid",
+				"input-key-mapping": {
+					"customizationid": "vf-module-model-customization-uuid"
+				},
+				"output-key-mapping": {
+					"vf-module-label": "vf_module_label"
+				},
+				"key-dependencies": [
+					"vf-module-model-customization-uuid"
+				],
+				"endpoint-selector": "dynamic-db-source"
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-model-customization-uuid.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-model-customization-uuid.json
old mode 100755
new mode 100644
index 232d658..6443235
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-model-customization-uuid.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-model-customization-uuid.json
@@ -1,18 +1,18 @@
 {
-  "tags": "vf-module-model-customization-uuid",
-  "name": "vf-module-model-customization-uuid",
-  "property": {
-    "description": "vf-module-model-customization-uuid",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    }
-  }
+	"tags": "vf-module-model-customization-uuid",
+	"name": "vf-module-model-customization-uuid",
+	"property": {
+		"description": "vf-module-model-customization-uuid",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		}
+	}
 }
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-name.json
new file mode 100644
index 0000000..0cd9da1
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-name.json
@@ -0,0 +1,18 @@
+{
+	"tags": "vf-module-name",
+	"name": "vf-module-name",
+	"property": {
+		"description": "vf_module_name",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-type.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-type.json
old mode 100755
new mode 100644
index dcef027..06f3610
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-type.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf-module-type.json
@@ -1,34 +1,35 @@
 {
-  "tags": "vf-module-type",
-  "name": "vf-module-type",
-  "property": {
-    "description": "vf-module-type",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "type": "SQL",
-        "query": "select vf_module_type as vf_module_type from sdnctl.VF_MODULE_MODEL where customization_uuid=:customizationid",
-        "input-key-mapping": {
-          "customizationid": "vf-module-model-customization-uuid"
-        },
-        "output-key-mapping": {
-          "vf-module-type": "vf_module_type"
-        },
-        "key-dependencies": [
-          "vf-module-model-customization-uuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vf-module-type",
+	"name": "vf-module-type",
+	"property": {
+		"description": "vf-module-type",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select vf_module_type as vf_module_type from sdnctl.VF_MODULE_MODEL where customization_uuid=:customizationid",
+				"output-key-mapping": {
+					"vf-module-type": "vf_module_type"
+				},
+				
+				"input-key-mapping": {
+					"customizationid": "vf-module-model-customization-uuid"
+				},
+				"key-dependencies": [
+					"vf-module-model-customization-uuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf-naming-policy.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf-naming-policy.json
old mode 100755
new mode 100644
index 6c9639c..7af89e1
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vf-naming-policy.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf-naming-policy.json
@@ -1,30 +1,52 @@
 {
-  "name" : "vf-naming-policy",
-  "tags" : "vf-naming-policy",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vf-naming-policy",
-    "type" : "string"
-  },
-  "sources" : {
-    "default": {
-      "type": "source-default",
-      "properties": {
-      }
-    },
-    "processor-db" : {
-      "type" : "source-db",
-      "properties" : {
-        "type" : "SQL",
-        "query" : "select sdnctl.VF_MODEL.naming_policy as vf_naming_policy from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnf_model_customization_uuid",
-        "input-key-mapping" : {
-          "vnf_model_customization_uuid" : "vnf-model-customization-uuid"
-        },
-        "output-key-mapping" : {
-          "vf-naming-policy" : "vf_naming_policy"
-        },
-        "key-dependencies" : [ "vnf-model-customization-uuid" ]
-      }
-    }
-  }
-}
+	"tags": "vf-naming-policy",
+	"name": "vf-naming-policy",
+	"property": {
+		"description": "vf-naming-policy",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vf-naming-policy",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vf-naming-policy": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.VF_MODEL.naming_policy as vf_naming_policy from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnf_model_customization_uuid",
+				"input-key-mapping": {
+					"vnf_model_customization_uuid": "vnf-model-customization-uuid"
+				},
+				"output-key-mapping": {
+					"vf-naming-policy": "vf_naming_policy"
+				},
+				"key-dependencies": [
+					"vnf-model-customization-uuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf-nf-code.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf-nf-code.json
old mode 100755
new mode 100644
index 1bf36ef..e4d4e6d
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vf-nf-code.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf-nf-code.json
@@ -1,25 +1,27 @@
 {
-  "name" : "vf-nf-code",
-  "tags" : "vf-nf-code",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vf-nf-code",
-    "type" : "string"
-  },
-  "sources" : {
-    "processor-db" : {
-      "type" : "source-db",
-      "properties" : {
-        "type" : "SQL",
-        "query" : "select sdnctl.VF_MODEL.nf_code as vf_nf_code from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:customizationid",
-        "input-key-mapping" : {
-          "customizationid" : "vnf-model-customization-uuid"
-        },
-        "output-key-mapping" : {
-          "vf-nf-code" : "vf_nf_code"
-        },
-        "key-dependencies" : [ "vnf-model-customization-uuid" ]
-      }
-    }
-  }
-}
+	"tags": "vf-nf-code",
+	"name": "vf-nf-code",
+	"property": {
+		"description": "vf-nf-code",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select sdnctl.VF_MODEL.nf_code as vf_nf_code from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:customizationid",
+				"input-key-mapping": {
+					"customizationid": "vnf-model-customization-uuid"
+				},
+				"output-key-mapping": {
+					"vf-nf-code": "vf_nf_code"
+				},
+				"key-dependencies": [
+					"vnf-model-customization-uuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vf_module_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/vf_module_id.json
index ff0c597..231d2c5 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vf_module_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vf_module_id.json
@@ -1,19 +1,18 @@
-  {
-      "tags": "vf_module_id",
-      "name": "vf_module_id",
-      "property": {
-        "description": "vf_module_id",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        }
-      }
-    
-  }
\ No newline at end of file
+{
+	"tags": "vf_module_id",
+	"name": "vf_module_id",
+	"property": {
+		"description": "vf_module_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"input": {
+			"type": "source-input"
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfccustomizationuuid.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfccustomizationuuid.json
old mode 100755
new mode 100644
index bd8f5e1..694f0e7
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vfccustomizationuuid.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfccustomizationuuid.json
@@ -1,35 +1,35 @@
 {
-  "tags": "vfccustomizationuuid",
-  "name": "vfccustomizationuuid",
-  "property": {
-    "description": "vfccustomizationuuid",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select sdnctl.VF_MODULE_TO_VFC_MAPPING.vfc_customization_uuid as vnf_customid from sdnctl.VF_MODULE_TO_VFC_MAPPING where vm_count = 1 and sdnctl.VF_MODULE_TO_VFC_MAPPING.vf_module_customization_uuid=:vfmodulecustomizationuuid",
-        "input-key-mapping": {
-          "vfmodulecustomizationuuid": "vf-module-model-customization-uuid"
-        },
-        "output-key-mapping": {
-          "vfccustomizationuuid": "vnf_customid"
-        },
-        "key-dependencies": [
-          "vf-module-model-customization-uuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vfccustomizationuuid",
+	"name": "vfccustomizationuuid",
+	"property": {
+		"description": "vfccustomizationuuid",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.VF_MODULE_TO_VFC_MAPPING.vfc_customization_uuid as vnf_customid from sdnctl.VF_MODULE_TO_VFC_MAPPING where vm_count = 1 and sdnctl.VF_MODULE_TO_VFC_MAPPING.vf_module_customization_uuid=:vfmodulecustomizationuuid",
+				"input-key-mapping": {
+					"vfmodulecustomizationuuid": "vf-module-model-customization-uuid"
+				},
+				"output-key-mapping": {
+					"vfccustomizationuuid": "vnf_customid"
+				},
+				"key-dependencies": [
+					"vf-module-model-customization-uuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_flavor_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_flavor_name.json
new file mode 100644
index 0000000..bd539cd
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_flavor_name.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vfw_flavor_name",
+	"name": "vfw_flavor_name",
+	"property": {
+		"description": "vfw_flavor_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_flavor_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_flavor_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_image_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_image_name.json
new file mode 100644
index 0000000..4878d57
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_image_name.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vfw_image_name",
+	"name": "vfw_image_name",
+	"property": {
+		"description": "vfw_image_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_image_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_image_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private1_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private1_ip_0.json
new file mode 100644
index 0000000..7374f6f
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private1_ip_0.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vfw_int_private1_ip_0",
+	"name": "vfw_int_private1_ip_0",
+	"property": {
+		"description": "vfw_int_private1_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_int_private1_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_int_private1_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private2_floating_ip.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private2_floating_ip.json
new file mode 100644
index 0000000..d6ef221
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private2_floating_ip.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vfw_int_private2_floating_ip",
+	"name": "vfw_int_private2_floating_ip",
+	"property": {
+		"description": "vfw_int_private2_floating_ip",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_int_private2_floating_ip",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_int_private2_floating_ip": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private2_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private2_ip_0.json
new file mode 100644
index 0000000..c45e549
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_int_private2_ip_0.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vfw_int_private2_ip_0",
+	"name": "vfw_int_private2_ip_0",
+	"property": {
+		"description": "vfw_int_private2_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_int_private2_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_int_private2_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_name_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_name_0.json
old mode 100755
new mode 100644
index 96a9758..6f774bf
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_name_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_name_0.json
@@ -1,15 +1,38 @@
 {
-  "name" : "vfw_name_0",
-  "tags" : "vfw_name_0",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vfw_name_0",
-    "type" : "string"
-  },
-  "sources" : {
-    "input" : {
-      "type" : "source-input",
-      "properties" : { }
-    }
-  }
+	"tags": "vfw_name_0",
+	"name": "vfw_name_0",
+	"property": {
+		"description": "vfw_name_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_name_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_name_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vfw_onap_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_onap_private_ip_0.json
new file mode 100644
index 0000000..da65a00
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vfw_onap_private_ip_0.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vfw_onap_private_ip_0",
+	"name": "vfw_onap_private_ip_0",
+	"property": {
+		"description": "vfw_onap_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vfw_onap_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vfw_onap_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vip.json b/components/model-catalog/resource-dictionary/starter-dictionary/vip.json
index 289ab19..5c649df 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vip.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vip.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vip",
-  "name": "vip",
-  "property": {
-    "description": "vip",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vip",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vip": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vip",
+	"name": "vip",
+	"property": {
+		"description": "vip",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vip",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vip": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_0_int_pktgen_private_port_0_mac.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_0_int_pktgen_private_port_0_mac.json
index 7640aa2..0ab9a53 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_0_int_pktgen_private_port_0_mac.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_0_int_pktgen_private_port_0_mac.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vlb_0_int_pktgen_private_port_0_mac",
-  "name": "vlb_0_int_pktgen_private_port_0_mac",
-  "property": {
-    "description": "vlb_0_int_pktgen_private_port_0_mac",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_0_int_pktgen_private_port_0_mac",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vlb_0_int_pktgen_private_port_0_mac": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vlb_0_int_pktgen_private_port_0_mac",
+	"name": "vlb_0_int_pktgen_private_port_0_mac",
+	"property": {
+		"description": "vlb_0_int_pktgen_private_port_0_mac",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_0_int_pktgen_private_port_0_mac",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_0_int_pktgen_private_port_0_mac": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_flavor_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_flavor_name.json
index 3ba34ee..1571708 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_flavor_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_flavor_name.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vlb_flavor_name",
-  "name": "vlb_flavor_name",
-  "property": {
-    "description": "vlb_flavor_name",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_flavor_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vlb_flavor_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vlb_flavor_name",
+	"name": "vlb_flavor_name",
+	"property": {
+		"description": "vlb_flavor_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_flavor_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_flavor_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_image_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_image_name.json
index 0db006b..76c7e67 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_image_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_image_name.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vlb_image_name",
-  "name": "vlb_image_name",
-  "property": {
-    "description": "vlb_image_name",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_image_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vlb_image_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vlb_image_name",
+	"name": "vlb_image_name",
+	"property": {
+		"description": "vlb_image_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_image_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_image_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_pktgen_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_pktgen_private_ip_0.json
index 04604eb..af55cd7 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_pktgen_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_pktgen_private_ip_0.json
@@ -1,37 +1,38 @@
-  {
-      "tags": "vlb_int_pktgen_private_ip_0",
-      "name": "vlb_int_pktgen_private_ip_0",
-      "property": {
-        "description": "vlb_int_pktgen_private_ip_0",
-        "type": "string"
-      },
-      "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_pktgen_private_ip_0",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "vlb_int_pktgen_private_ip_0": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    }
+{
+	"tags": "vlb_int_pktgen_private_ip_0",
+	"name": "vlb_int_pktgen_private_ip_0",
+	"property": {
+		"description": "vlb_int_pktgen_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_pktgen_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_int_pktgen_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_private_ip_0.json
index 4ca8e70..1ac5e19 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_int_private_ip_0.json
@@ -1,38 +1,38 @@
- {
-      "tags": "vlb_int_private_ip_0",
-      "name": "vlb_int_private_ip_0",
-      "property": {
-        "description": "vlb_int_private_ip_0",
-        "type": "string"
-      },
-      "updated-by": "Singal, Kapil <ks220y@att.com>",
-      "sources": {
-        "input": {
-          "type": "source-input"
-        },
-        "default": {
-          "type": "source-default",
-          "properties": {}
-        },
-        "sdnc": {
-          "type": "source-rest",
-          "properties": {
-            "type": "JSON",
-            "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_private_ip_0",
-            "path": "/param/0/value",
-            "input-key-mapping": {
-              "service-instance-id": "service-instance-id",
-              "vnf-id": "vnf-id"
-            },
-            "output-key-mapping": {
-              "vlb_int_private_ip_0": "value"
-            },
-            "key-dependencies": [
-              "service-instance-id",
-              "vnf-id"
-            ]
-          }
-        }
-      }
-    
-  }
+{
+	"tags": "vlb_int_private_ip_0",
+	"name": "vlb_int_private_ip_0",
+	"property": {
+		"description": "vlb_int_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_int_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_name_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_name_0.json
index f8e7f31..acf3494 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_name_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_name_0.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vlb_name_0",
-  "name": "vlb_name_0",
-  "property": {
-    "description": "vlb_name_0",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_name_0",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vlb_name_0": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vlb_name_0",
+	"name": "vlb_name_0",
+	"property": {
+		"description": "vlb_name_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_name_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_name_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_onap_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_onap_private_ip_0.json
index b78cc9f..6279e44 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_onap_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_onap_private_ip_0.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vlb_onap_private_ip_0",
-  "name": "vlb_onap_private_ip_0",
-  "property": {
-    "description": "vlb_onap_private_ip_0",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "private2-prefix-id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vlb_onap_private_ip_0",
+	"name": "vlb_onap_private_ip_0",
+	"property": {
+		"description": "vlb_onap_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_onap_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"private2-prefix-id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_cidr.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_cidr.json
index 419ef22..cf782cc 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_cidr.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_cidr.json
@@ -1,49 +1,50 @@
 {
-  "tags": "vlb_private_net_cidr",
-  "name": "vlb_private_net_cidr",
-  "property": {
-    "description": "vlb_private_net_cidr",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_private_net_cidr",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vlb_private_net_cidr": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"",
-        "input-key-mapping": {},
-        "output-key-mapping": {
-          "vlb_private_net_cidr": "prefix"
-        }
-      }
-    }
-  }
-}
+	"tags": "vlb_private_net_cidr",
+	"name": "vlb_private_net_cidr",
+	"property": {
+		"description": "vlb_private_net_cidr",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private1\"",
+				"input-key-mapping": {},
+				"output-key-mapping": {
+					"vlb_private_net_cidr": "prefix"
+				}
+			}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_private_net_cidr",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_private_net_cidr": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_id.json b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_id.json
index 38f33a2..5e83220 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vlb_private_net_id.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vlb_private_net_id",
-  "name": "vlb_private_net_id",
-  "property": {
-    "description": "vlb_private_net_id",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_private_net_id",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vlb_private_net_id": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vlb_private_net_id",
+	"name": "vlb_private_net_id",
+	"property": {
+		"description": "vlb_private_net_id",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_private_net_id",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vlb_private_net_id": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vm-type.json b/components/model-catalog/resource-dictionary/starter-dictionary/vm-type.json
old mode 100755
new mode 100644
index d24478d..a514592
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vm-type.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vm-type.json
@@ -1,35 +1,35 @@
 {
-  "tags": "vm-type",
-  "name": "vm-type",
-  "property": {
-    "description": "vm-type",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select VFC_MODEL.vm_type as vm_type from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
-        "input-key-mapping": {
-          "vfccustomizationuuid": "vfccustomizationuuid"
-        },
-        "output-key-mapping": {
-          "vm-type": "vm_type"
-        },
-        "key-dependencies": [
-          "vfccustomizationuuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vm-type",
+	"name": "vm-type",
+	"property": {
+		"description": "vm-type",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select VFC_MODEL.vm_type as vm_type from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+				"output-key-mapping": {
+					"vm-type": "vm_type"
+				},
+				
+				"input-key-mapping": {
+					"vfccustomizationuuid": "vfccustomizationuuid"
+				},
+				"key-dependencies": [
+					"vfccustomizationuuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vnf-id.json b/components/model-catalog/resource-dictionary/starter-dictionary/vnf-id.json
old mode 100755
new mode 100644
index a71bef9..7b170a6
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vnf-id.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vnf-id.json
@@ -13,6 +13,26 @@
         "default": {
           "type": "source-default",
           "properties": {}
+        },
+        "sdnc": {
+          "type": "source-rest",
+          "properties": {
+            "verb": "GET",   "type": "JSON",
+            "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf-id",
+            "path": "/param/0/value",
+            "input-key-mapping": {
+              "service-instance-id": "service-instance-id",
+              "vnf-id": "vnf-id"
+            },
+            "output-key-mapping": {
+              "vnf-id": "value"
+            },
+            "key-dependencies": [
+              "service-instance-id",
+              "vnf-id"
+            ]
+          }
         }
       }
     }
+  
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vnf-model-customization-uuid.json b/components/model-catalog/resource-dictionary/starter-dictionary/vnf-model-customization-uuid.json
old mode 100755
new mode 100644
index 2aa08c4..e598f6a
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vnf-model-customization-uuid.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vnf-model-customization-uuid.json
@@ -1,15 +1,15 @@
 {
-  "name" : "vnf-model-customization-uuid",
-  "tags" : "vnf-model-customization-uuid",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vnf-model-customization-uuid",
-    "type" : "string"
-  },
-  "sources" : {
-    "input" : {
-      "type" : "source-input",
-      "properties" : { }
-    }
-  }
+	"tags": "vnf-model-customization-uuid",
+	"name": "vnf-model-customization-uuid",
+	"property": {
+		"description": "vnf-model-customization-uuid",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input",
+			"properties": {}
+		}
+	}
 }
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vnf-name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vnf-name.json
old mode 100755
new mode 100644
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vnf_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vnf_name.json
old mode 100755
new mode 100644
index b8649bf..1794b6a
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vnf_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vnf_name.json
@@ -1,37 +1,37 @@
-{
-  "name" : "vnf_name",
-  "tags" : "vnf_name",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vnf_name",
-    "type" : "string"
-  },
-  "sources" : {
-    "default": {
-      "type": "source-default",
-      "properties": {
-      }
-    },
-    "input": {
-      "type": "source-input",
-      "properties": {
-      }
-    },
-    "sdnc" : {
-      "type" : "source-rest",
-      "properties" : {
-        "type" : "JSON",
-        "url-path" : "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name",
-        "path" : "/param/0/value",
-        "input-key-mapping" : {
-          "service-instance-id" : "service-instance-id",
-          "vnf-id" : "vnf-id"
-        },
-        "output-key-mapping" : {
-          "vnf_name" : "value"
-        },
-        "key-dependencies" : [ "service-instance-id", "vnf-id" ]
-      }
-    }
-  }
-}
+{

+  "tags": "vnf_name",

+  "name": "vnf_name",

+  "property": {

+    "description": "vnf_name",

+    "type": "string"

+  },

+  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",

+  "sources": {

+    "input": {

+      "type": "source-input"

+    },

+    "default": {

+      "type": "source-default",

+      "properties": {}

+    },

+    "sdnc": {

+      "type": "source-rest",

+      "properties": {

+        "verb": "GET",   "type": "JSON",

+        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name",

+        "path": "/param/0/value",

+        "input-key-mapping": {

+          "service-instance-id": "service-instance-id",

+          "vnf-id": "vnf-id"

+        },

+        "output-key-mapping": {

+          "vnf_name": "value"

+        },

+        "key-dependencies": [

+          "service-instance-id",

+          "vnf-id"

+        ]

+      }

+    }

+  }

+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-invariant-uuid.json b/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-invariant-uuid.json
old mode 100755
new mode 100644
index 2150b50..d78ee0d
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-invariant-uuid.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-invariant-uuid.json
@@ -1,35 +1,35 @@
 {
-  "tags": "vnfc-model-invariant-uuid",
-  "name": "vnfc-model-invariant-uuid",
-  "property": {
-    "description": "vnfc-model-invariant-uuid",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select VFC_MODEL.invariant_uuid as vfc_invariant_uuid from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
-        "input-key-mapping": {
-          "vfccustomizationuuid": "vfccustomizationuuid"
-        },
-        "output-key-mapping": {
-          "vnfc-model-invariant-uuid": "vfc_invariant_uuid"
-        },
-        "key-dependencies": [
-          "vfccustomizationuuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vnfc-model-invariant-uuid",
+	"name": "vnfc-model-invariant-uuid",
+	"property": {
+		"description": "vnfc-model-invariant-uuid",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				"type": "SQL",
+				"query": "select VFC_MODEL.invariant_uuid as vfc_invariant_uuid from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+				"output-key-mapping": {
+					"vnfc-model-invariant-uuid": "vfc_invariant_uuid"
+				},
+				
+				"input-key-mapping": {
+					"vfccustomizationuuid": "vfccustomizationuuid"
+				},
+				"key-dependencies": [
+					"vfccustomizationuuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-version.json b/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-version.json
old mode 100755
new mode 100644
index 4673a61..cc9eb62
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-version.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vnfc-model-version.json
@@ -1,35 +1,35 @@
 {
-  "tags": "vnfc-model-version",
-  "name": "vnfc-model-version",
-  "property": {
-    "description": "vnfc-model-version",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "processor-db": {
-      "type": "source-db",
-      "properties": {
-        "endpoint-selector": "dynamic-db-source",
-        "type": "SQL",
-        "query": "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
-        "input-key-mapping": {
-          "vfccustomizationuuid": "vfccustomizationuuid"
-        },
-        "output-key-mapping": {
-          "vnfc-model-version": "vnfc_model_version"
-        },
-        "key-dependencies": [
-          "vfccustomizationuuid"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vnfc-model-version",
+	"name": "vnfc-model-version",
+	"property": {
+		"description": "vnfc-model-version",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"processor-db": {
+			"type": "source-db",
+			"properties": {
+				
+				"type": "SQL",
+				"query": "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+				"input-key-mapping": {
+					"vfccustomizationuuid": "vfccustomizationuuid"
+				},
+				"output-key-mapping": {
+					"vnfc-model-version": "vnfc_model_version"
+				},
+				"key-dependencies": [
+					"vfccustomizationuuid"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_flavor_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_flavor_name.json
index ae21528..faeccf7 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_flavor_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_flavor_name.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vpg_flavor_name",
-  "name": "vpg_flavor_name",
-  "property": {
-    "description": "vpg_flavor_name",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_flavor_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vpg_flavor_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vpg_flavor_name",
+	"name": "vpg_flavor_name",
+	"property": {
+		"description": "vpg_flavor_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_flavor_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vpg_flavor_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_image_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_image_name.json
index 3fd99a6..1bee33c 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_image_name.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_image_name.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vpg_image_name",
-  "name": "vpg_image_name",
-  "property": {
-    "description": "vpg_image_name",
-    "type": "string"
-  },
-  "updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_image_name",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vpg_image_name": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vpg_image_name",
+	"name": "vpg_image_name",
+	"property": {
+		"description": "vpg_image_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_image_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vpg_image_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_pktgen_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_pktgen_private_ip_0.json
index 88e9720..42aeed6 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_pktgen_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_pktgen_private_ip_0.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vpg_int_pktgen_private_ip_0",
-  "name": "vpg_int_pktgen_private_ip_0",
-  "property": {
-    "description": "vpg_int_pktgen_private_ip_0",
-    "type": "string"
-  },
-  "updated-by": "Singal, Kapil <ks220y@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_pktgen_private_ip_0",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vpg_int_pktgen_private_ip_0": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vpg_int_pktgen_private_ip_0",
+	"name": "vpg_int_pktgen_private_ip_0",
+	"property": {
+		"description": "vpg_int_pktgen_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_pktgen_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vpg_int_pktgen_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_private1_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_private1_ip_0.json
new file mode 100644
index 0000000..c54ab20
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_int_private1_ip_0.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vpg_int_private1_ip_0",
+	"name": "vpg_int_private1_ip_0",
+	"property": {
+		"description": "vpg_int_private1_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_private1_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vpg_int_private1_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_name_0 .json b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_name_0 .json
new file mode 100644
index 0000000..65f54f6
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_name_0 .json
@@ -0,0 +1,38 @@
+{
+	"tags": "vpg_name_0",
+	"name": "vpg_name_0",
+	"property": {
+		"description": "vlb_name_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_name_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vpg_name_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_onap_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_onap_private_ip_0.json
index cfdf8b9..bfb12b8 100644
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vpg_onap_private_ip_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vpg_onap_private_ip_0.json
@@ -1,37 +1,38 @@
 {
-  "tags": "vpg_onap_private_ip_0",
-  "name": "vpg_onap_private_ip_0",
-  "property": {
-    "description": "vpg_onap_private_ip_0",
-    "type": "string"
-  },
-  "updated-by": "Singal, Kapil <ks220y@att.com>",
-  "sources": {
-    "input": {
-      "type": "source-input"
-    },
-    "default": {
-      "type": "source-default",
-      "properties": {}
-    },
-    "sdnc": {
-      "type": "source-rest",
-      "properties": {
-        "type": "JSON",
-        "url-path": "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_onap_private_ip_0",
-        "path": "/param/0/value",
-        "input-key-mapping": {
-          "service-instance-id": "service-instance-id",
-          "vnf-id": "vnf-id"
-        },
-        "output-key-mapping": {
-          "vpg_onap_private_ip_0": "value"
-        },
-        "key-dependencies": [
-          "service-instance-id",
-          "vnf-id"
-        ]
-      }
-    }
-  }
-}
+	"tags": "vpg_onap_private_ip_0",
+	"name": "vpg_onap_private_ip_0",
+	"property": {
+		"description": "vpg_onap_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_onap_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vpg_onap_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vsn_flavor_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_flavor_name.json
new file mode 100644
index 0000000..89bd9c4
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_flavor_name.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vsn_flavor_name",
+	"name": "vsn_flavor_name",
+	"property": {
+		"description": "vsn_flavor_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_flavor_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vsn_flavor_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vsn_image_name.json b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_image_name.json
new file mode 100644
index 0000000..8edeb56
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_image_name.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vsn_image_name",
+	"name": "vsn_image_name",
+	"property": {
+		"description": "vsn_image_name",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_image_name",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vsn_image_name": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vsn_int_private2_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_int_private2_ip_0.json
new file mode 100644
index 0000000..c0015a6
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_int_private2_ip_0.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vsn_int_private2_ip_0",
+	"name": "vsn_int_private2_ip_0",
+	"property": {
+		"description": "vsn_int_private2_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_int_private2_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vsn_int_private2_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vsn_name_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_name_0.json
old mode 100755
new mode 100644
index 7b7ba45..1ad25b3
--- a/components/model-catalog/resource-dictionary/starter-dictionary/vsn_name_0.json
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_name_0.json
@@ -1,15 +1,38 @@
 {
-  "name" : "vsn_name_0",
-  "tags" : "vsn_name_0",
-  "updated-by" : "Singal, Kapil <ks220y@att.com>",
-  "property" : {
-    "description" : "vsn_name_0",
-    "type" : "string"
-  },
-  "sources" : {
-    "input" : {
-      "type" : "source-input",
-      "properties" : { }
-    }
-  }
+	"tags": "vsn_name_0",
+	"name": "vsn_name_0",
+	"property": {
+		"description": "vsn_name_0",
+		"type": "string"
+	},
+	"updated-by": "Singal, Kapil <ks220y@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_name_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vsn_name_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/vsn_onap_private_ip_0.json b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_onap_private_ip_0.json
new file mode 100644
index 0000000..b769bc6
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/vsn_onap_private_ip_0.json
@@ -0,0 +1,38 @@
+{
+	"tags": "vsn_onap_private_ip_0",
+	"name": "vsn_onap_private_ip_0",
+	"property": {
+		"description": "vsn_onap_private_ip_0",
+		"type": "string"
+	},
+	"updated-by": "MALAKOV, YURIY <yuriy.malakov@att.com>",
+	"sources": {
+		"input": {
+			"type": "source-input"
+		},
+		"default": {
+			"type": "source-default",
+			"properties": {}
+		},
+		"sdnc": {
+			"type": "source-rest",
+			"properties": {
+				"verb": "GET",
+				"type": "JSON",
+				"url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vsn_onap_private_ip_0",
+				"path": "/param/0/value",
+				"input-key-mapping": {
+					"service-instance-id": "service-instance-id",
+					"vnf-id": "vnf-id"
+				},
+				"output-key-mapping": {
+					"vsn_onap_private_ip_0": "value"
+				},
+				"key-dependencies": [
+					"service-instance-id",
+					"vnf-id"
+				]
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/application/pom.xml b/ms/blueprintsprocessor/application/pom.xml
index 3a95e8c..0ee6ac3 100755
--- a/ms/blueprintsprocessor/application/pom.xml
+++ b/ms/blueprintsprocessor/application/pom.xml
@@ -38,7 +38,6 @@
         <name.space>org.onap.ccsdk.cds</name.space>
         <serviceArtifactName>blueprintsprocessor</serviceArtifactName>
         <image.name>onap/ccsdk-blueprintsprocessor</image.name>
-        <docker.buildArg.https_proxy>${https_proxy}</docker.buildArg.https_proxy>
         <docker.push.phase>deploy</docker.push.phase>
         <docker.verbose>true</docker.verbose>
         <ccsdk.project.version>${project.version}</ccsdk.project.version>
diff --git a/ms/blueprintsprocessor/application/src/main/dc/docker-compose.yaml b/ms/blueprintsprocessor/application/src/main/dc/docker-compose.yaml
index e4bb007..27f72b5 100755
--- a/ms/blueprintsprocessor/application/src/main/dc/docker-compose.yaml
+++ b/ms/blueprintsprocessor/application/src/main/dc/docker-compose.yaml
@@ -58,7 +58,11 @@
       STICKYSELECTORKEY:
       ENVCONTEXT: dev
       APP_PORT: 50052
-      BASIC_AUTH: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+      #AUTH_TYPE: basic-auth
+      #AUTH_TOKEN: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+      AUTH_TYPE: tls-auth
+      AUTH_CERT_CHAIN: /opt/app/onap/python/py-executor-chain.pem
+      AUTH_PRIVATE_KEY: /opt/app/onap/python/py-executor-key.pem
       LOG_FILE: /opt/app/onap/logs/application.log
 
 volumes:
diff --git a/ms/blueprintsprocessor/application/src/main/docker/Dockerfile b/ms/blueprintsprocessor/application/src/main/docker/Dockerfile
index dab0a4c..207cec5 100755
--- a/ms/blueprintsprocessor/application/src/main/docker/Dockerfile
+++ b/ms/blueprintsprocessor/application/src/main/docker/Dockerfile
@@ -1,8 +1,5 @@
 FROM omahoco1/alpine-java-python
 
-ENV HTTP_PROXY  ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
 # add entrypoint
 COPY run.source /etc/run.source
 COPY startService.sh /startService.sh
@@ -15,4 +12,4 @@
  && rm -rf /source.tar.gz \
  && rm -rf /tmp/@project.build.finalName@
 
-ENTRYPOINT /startService.sh
\ No newline at end of file
+ENTRYPOINT /startService.sh
diff --git a/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintGRPCServer.kt b/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintGRPCServer.kt
index 160a1b1..2d39eaa 100644
--- a/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintGRPCServer.kt
+++ b/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintGRPCServer.kt
@@ -18,6 +18,7 @@
 
 import io.grpc.ServerBuilder
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BluePrintManagementGRPCHandler
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcServerLoggingInterceptor
 import org.onap.ccsdk.cds.blueprintsprocessor.security.BasicAuthServerInterceptor
 import org.onap.ccsdk.cds.blueprintsprocessor.selfservice.api.BluePrintProcessingGRPCHandler
 import org.onap.ccsdk.cds.controllerblueprints.core.logger
@@ -44,6 +45,7 @@
             log.info("Starting Blueprint Processor GRPC Starting..")
             val server = ServerBuilder
                     .forPort(grpcPort!!)
+                    .intercept(GrpcServerLoggingInterceptor())
                     .intercept(authInterceptor)
                     .addService(bluePrintProcessingGRPCHandler)
                     .addService(bluePrintManagementGRPCHandler)
diff --git a/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/LoggingWebFilter.kt b/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/LoggingWebFilter.kt
index 5ed5ff4..68fbf25 100644
--- a/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/LoggingWebFilter.kt
+++ b/ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/LoggingWebFilter.kt
@@ -16,7 +16,7 @@
 
 package org.onap.ccsdk.cds.blueprintsprocessor
 
-import org.onap.ccsdk.cds.blueprintsprocessor.core.service.LoggingService
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.RestLoggerService
 import org.onap.ccsdk.cds.controllerblueprints.core.MDCContext
 import org.springframework.stereotype.Component
 import org.springframework.web.server.ServerWebExchange
@@ -29,7 +29,7 @@
 open class LoggingWebFilter : WebFilter {
     override fun filter(serverWebExchange: ServerWebExchange, webFilterChain: WebFilterChain): Mono<Void> {
 
-        val loggingService = LoggingService()
+        val loggingService = RestLoggerService()
         loggingService.entering(serverWebExchange.request)
         val filterChain = webFilterChain.filter(serverWebExchange).subscriberContext(
                 Context.of(MDCContext,  MDCContext()))
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt
index ca623aa..28e7d39 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionService.kt
@@ -198,6 +198,7 @@
             blueprintRuntimeService
         }
 
+        exposeOccurrencePropertyInResourceAssignments(resourceAssignmentRuntimeService, properties)
 
         coroutineScope {
             bulkSequenced.forEach { batchResourceAssignments ->
@@ -352,4 +353,9 @@
                 && resourceResolution.dictionaryVersion == resourceAssignment.version)
     }
 
+    private fun exposeOccurrencePropertyInResourceAssignments(raRuntimeService: ResourceAssignmentRuntimeService,
+                                                              properties: Map<String, Any>) {
+        raRuntimeService.putResolutionStore(ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_OCCURRENCE,
+            properties[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_OCCURRENCE].asJsonPrimitive())
+    }
 }
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionServiceTest.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionServiceTest.kt
index 775c501..5a5336a 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionServiceTest.kt
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionServiceTest.kt
@@ -261,6 +261,7 @@
             every { raRuntimeService.getBluePrintError() } returns BluePrintError()
             every { raRuntimeService.setBluePrintError(any())} returns Unit
             every { raRuntimeService.getInputValue("device-id") } returns "123456".asJsonPrimitive()
+            every { raRuntimeService.putResolutionStore(any(), any()) } returns Unit
 
             val applicationContext = mockk<ApplicationContext>()
             every { applicationContext.getBean("rr-processor-source-capability") } returns MockCapabilityScriptRA()
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml b/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml
index 5945e29..15cabb2 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~  Copyright © 2019 IBM.
+  ~  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
   ~
   ~  Licensed under the Apache License, Version 2.0 (the "License");
   ~  you may not use this file except in compliance with the License.
@@ -42,5 +43,9 @@
             <groupId>org.onap.ccsdk.cds.blueprintsprocessor</groupId>
             <artifactId>processor-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-testing</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcExtensions.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcExtensions.kt
new file mode 100644
index 0000000..55cf094
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcExtensions.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc
+
+import io.grpc.Metadata
+
+fun Metadata.getStringKey(key: String): String? {
+    return this.get(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER))
+}
+
+fun Metadata.putStringKeyValue(key: String, value: String) {
+    this.put(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER), value)
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibConfiguration.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibConfiguration.kt
index 1bef3a0..0ec049a 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibConfiguration.kt
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibConfiguration.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -16,6 +17,10 @@
 
 package org.onap.ccsdk.cds.blueprintsprocessor.grpc
 
+import com.fasterxml.jackson.databind.JsonNode
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.service.BluePrintGrpcClientService
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.service.BluePrintGrpcLibPropertyService
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
 import org.springframework.context.annotation.ComponentScan
 import org.springframework.context.annotation.Configuration
 
@@ -23,10 +28,25 @@
 @ComponentScan
 open class BluePrintGrpcLibConfiguration
 
+/**
+ * Exposed Dependency Service by this GRPC Lib Module
+ */
+fun BluePrintDependencyService.grpcLibPropertyService(): BluePrintGrpcLibPropertyService =
+        instance(GRPCLibConstants.SERVICE_BLUEPRINT_GRPC_LIB_PROPERTY)
+
+fun BluePrintDependencyService.grpcClientService(selector: String): BluePrintGrpcClientService {
+    return grpcLibPropertyService().blueprintGrpcClientService(selector)
+}
+
+fun BluePrintDependencyService.grpcClientService(jsonNode: JsonNode): BluePrintGrpcClientService {
+    return grpcLibPropertyService().blueprintGrpcClientService(jsonNode)
+}
+
 class GRPCLibConstants {
     companion object {
         const val SERVICE_BLUEPRINT_GRPC_LIB_PROPERTY = "blueprint-grpc-lib-property-service"
         const val TYPE_TOKEN_AUTH = "token-auth"
         const val TYPE_BASIC_AUTH = "basic-auth"
+        const val TYPE_TLS_AUTH = "tls-auth"
     }
 }
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibData.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibData.kt
index 76e60bd..47d16fb 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibData.kt
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/BluePrintGrpcLibData.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -16,6 +17,24 @@
 
 package org.onap.ccsdk.cds.blueprintsprocessor.grpc
 
+/** GRPC Server Properties */
+open class GrpcServerProperties {
+    lateinit var type: String
+    var port: Int = -1
+}
+
+open class TokenAuthGrpcServerProperties : GrpcServerProperties() {
+    lateinit var token: String
+}
+
+open class TLSAuthGrpcServerProperties : GrpcServerProperties() {
+    lateinit var certChain: String
+    lateinit var privateKey: String
+    /** Below Used only for Mutual TLS */
+    var trustCertCollection: String? = null
+}
+
+/** GRPC Client Properties */
 open class GrpcClientProperties {
     lateinit var type: String
     lateinit var host: String
@@ -26,6 +45,13 @@
     lateinit var token: String
 }
 
+open class TLSAuthGrpcClientProperties : GrpcClientProperties() {
+    var trustCertCollection: String? = null
+    /** Below Used only for Mutual TLS */
+    var clientCertChain: String? = null
+    var clientPrivateKey: String? = null
+}
+
 open class BasicAuthGrpcClientProperties : GrpcClientProperties() {
     lateinit var username: String
     lateinit var password: String
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcClientLoggingInterceptor.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcClientLoggingInterceptor.kt
new file mode 100644
index 0000000..f3b14b5
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcClientLoggingInterceptor.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor
+
+import io.grpc.*
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.service.GrpcLoggerService
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+
+
+class GrpcClientLoggingInterceptor : ClientInterceptor {
+    val log = logger(GrpcClientLoggingInterceptor::class)
+
+    val loggingService = GrpcLoggerService()
+
+    override fun <ReqT, RespT> interceptCall(method: MethodDescriptor<ReqT, RespT>,
+                                             callOptions: CallOptions, channel: Channel): ClientCall<ReqT, RespT> {
+
+        return object : ForwardingClientCall
+        .SimpleForwardingClientCall<ReqT, RespT>(channel.newCall(method, callOptions)) {
+
+            override fun start(responseListener: Listener<RespT>, headers: Metadata) {
+                val listener = object : ForwardingClientCallListener.SimpleForwardingClientCallListener<RespT>(responseListener) {
+                    override fun onMessage(message: RespT) {
+                        loggingService.grpcInvoking(headers)
+                        super.onMessage(message)
+                    }
+                }
+                super.start(listener, headers)
+            }
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcServerLoggingInterceptor.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcServerLoggingInterceptor.kt
new file mode 100644
index 0000000..e21d5d3
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/interceptor/GrpcServerLoggingInterceptor.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor
+
+import io.grpc.*
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.service.GrpcLoggerService
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput
+import org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput
+import org.slf4j.MDC
+
+class GrpcServerLoggingInterceptor : ServerInterceptor {
+    val log = logger(GrpcServerLoggingInterceptor::class)
+    val loggingService = GrpcLoggerService()
+
+    override fun <ReqT : Any, RespT : Any> interceptCall(call: ServerCall<ReqT, RespT>,
+                                                         requestHeaders: Metadata, next: ServerCallHandler<ReqT, RespT>)
+            : ServerCall.Listener<ReqT> {
+
+        val forwardingServerCall = object : ForwardingServerCall.SimpleForwardingServerCall<ReqT, RespT>(call) {
+            override fun sendHeaders(responseHeaders: Metadata) {
+                loggingService.grpResponding(requestHeaders, responseHeaders)
+                super.sendHeaders(responseHeaders)
+            }
+        }
+
+        return object
+            : ForwardingServerCallListener.SimpleForwardingServerCallListener<ReqT>(
+                next.startCall(forwardingServerCall, requestHeaders)) {
+
+            override fun onMessage(message: ReqT) {
+                /** Get the requestId, SubRequestId and Originator Id and set in MDS context
+                 *  If you are using other GRPC services, Implement own Logging Interceptors to get tracing.
+                 * */
+                when (message) {
+                    is ExecutionServiceInput -> {
+                        val commonHeader = message.commonHeader
+                                ?: throw BluePrintProcessorException("missing common header in request")
+                        loggingService.grpcRequesting(call, commonHeader, next)
+                    }
+                    is BluePrintUploadInput -> {
+                        val commonHeader = message.commonHeader
+                                ?: throw BluePrintProcessorException("missing common header in request")
+                        loggingService.grpcRequesting(call, commonHeader, next)
+                    }
+                    is BluePrintDownloadInput -> {
+                        val commonHeader = message.commonHeader
+                                ?: throw BluePrintProcessorException("missing common header in request")
+                        loggingService.grpcRequesting(call, commonHeader, next)
+                    }
+                    is BluePrintRemoveInput -> {
+                        val commonHeader = message.commonHeader
+                                ?: throw BluePrintProcessorException("missing common header in request")
+                        loggingService.grpcRequesting(call, commonHeader, next)
+                    }
+                    else -> {
+                        loggingService.grpcRequesting(call, requestHeaders, next)
+                    }
+                }
+                super.onMessage(message)
+            }
+
+            override fun onComplete() {
+                MDC.clear()
+                super.onComplete()
+            }
+
+            override fun onCancel() {
+                MDC.clear()
+                super.onCancel()
+            }
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyService.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyService.kt
index a1d2188..f4933a3 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyService.kt
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyService.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -18,17 +19,56 @@
 
 import com.fasterxml.jackson.databind.JsonNode
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintProperties
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.BasicAuthGrpcClientProperties
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.GRPCLibConstants
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.GrpcClientProperties
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TokenAuthGrpcClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.*
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.returnNullIfMissing
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
 import org.springframework.stereotype.Service
 
 @Service(GRPCLibConstants.SERVICE_BLUEPRINT_GRPC_LIB_PROPERTY)
 open class BluePrintGrpcLibPropertyService(private var bluePrintProperties: BluePrintProperties) {
 
+    /** GRPC Server Lib Property Service */
+    fun grpcServerProperties(jsonNode: JsonNode): GrpcServerProperties {
+        return when (val type = jsonNode.get("type").textValue()) {
+            GRPCLibConstants.TYPE_TOKEN_AUTH -> {
+                JacksonUtils.readValue(jsonNode, TokenAuthGrpcServerProperties::class.java)!!
+            }
+            GRPCLibConstants.TYPE_TLS_AUTH -> {
+                JacksonUtils.readValue(jsonNode, TLSAuthGrpcServerProperties::class.java)!!
+            }
+            else -> {
+                throw BluePrintProcessorException("Grpc type($type) not supported")
+            }
+        }
+    }
+
+    fun grpcServerProperties(prefix: String): GrpcServerProperties {
+        val type = bluePrintProperties.propertyBeanType(
+                "$prefix.type", String::class.java)
+        return when (type) {
+            GRPCLibConstants.TYPE_TOKEN_AUTH -> {
+                tokenAuthGrpcServerProperties(prefix)
+            }
+            GRPCLibConstants.TYPE_TLS_AUTH -> {
+                tlsAuthGrpcServerProperties(prefix)
+            }
+            else -> {
+                throw BluePrintProcessorException("Grpc type($type) not supported")
+            }
+        }
+    }
+
+    private fun tokenAuthGrpcServerProperties(prefix: String): TokenAuthGrpcServerProperties {
+        return bluePrintProperties.propertyBeanType(prefix, TokenAuthGrpcServerProperties::class.java)
+    }
+
+    private fun tlsAuthGrpcServerProperties(prefix: String): TLSAuthGrpcServerProperties {
+        return bluePrintProperties.propertyBeanType(prefix, TLSAuthGrpcServerProperties::class.java)
+    }
+
+    /** GRPC Client Lib Property Service */
+
     fun blueprintGrpcClientService(jsonNode: JsonNode): BluePrintGrpcClientService {
         val restClientProperties = grpcClientProperties(jsonNode)
         return blueprintGrpcClientService(restClientProperties)
@@ -42,11 +82,15 @@
 
 
     fun grpcClientProperties(jsonNode: JsonNode): GrpcClientProperties {
-        val type = jsonNode.get("type").textValue()
+        val type = jsonNode.get("type").returnNullIfMissing()?.textValue()
+                ?: BluePrintProcessorException("missing type property")
         return when (type) {
             GRPCLibConstants.TYPE_TOKEN_AUTH -> {
                 JacksonUtils.readValue(jsonNode, TokenAuthGrpcClientProperties::class.java)!!
             }
+            GRPCLibConstants.TYPE_TLS_AUTH -> {
+                JacksonUtils.readValue(jsonNode, TLSAuthGrpcClientProperties::class.java)!!
+            }
             GRPCLibConstants.TYPE_BASIC_AUTH -> {
                 JacksonUtils.readValue(jsonNode, BasicAuthGrpcClientProperties::class.java)!!
             }
@@ -63,6 +107,9 @@
             GRPCLibConstants.TYPE_TOKEN_AUTH -> {
                 tokenAuthGrpcClientProperties(prefix)
             }
+            GRPCLibConstants.TYPE_TLS_AUTH -> {
+                tlsAuthGrpcClientProperties(prefix)
+            }
             GRPCLibConstants.TYPE_BASIC_AUTH -> {
                 basicAuthGrpcClientProperties(prefix)
             }
@@ -75,12 +122,15 @@
 
     fun blueprintGrpcClientService(grpcClientProperties: GrpcClientProperties):
             BluePrintGrpcClientService {
-        when (grpcClientProperties) {
+        return when (grpcClientProperties) {
             is TokenAuthGrpcClientProperties -> {
-                return TokenAuthGrpcClientService(grpcClientProperties)
+                TokenAuthGrpcClientService(grpcClientProperties)
+            }
+            is TLSAuthGrpcClientProperties -> {
+                TLSAuthGrpcClientService(grpcClientProperties)
             }
             is BasicAuthGrpcClientProperties -> {
-                return BasicAuthGrpcClientService(grpcClientProperties)
+                BasicAuthGrpcClientService(grpcClientProperties)
             }
             else -> {
                 throw BluePrintProcessorException("couldn't get grpc service for type(${grpcClientProperties.type})")
@@ -92,6 +142,10 @@
         return bluePrintProperties.propertyBeanType(prefix, TokenAuthGrpcClientProperties::class.java)
     }
 
+    private fun tlsAuthGrpcClientProperties(prefix: String): TLSAuthGrpcClientProperties {
+        return bluePrintProperties.propertyBeanType(prefix, TLSAuthGrpcClientProperties::class.java)
+    }
+
     private fun basicAuthGrpcClientProperties(prefix: String): BasicAuthGrpcClientProperties {
         return bluePrintProperties.propertyBeanType(prefix, BasicAuthGrpcClientProperties::class.java)
     }
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcClientService.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcService.kt
similarity index 79%
rename from ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcClientService.kt
rename to ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcService.kt
index 016c050..0d92916 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcClientService.kt
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcService.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -17,6 +18,11 @@
 package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
 
 import io.grpc.ManagedChannel
+import io.grpc.netty.NettyServerBuilder
+
+interface BluePrintGrpcServerService {
+    fun serverBuilder(): NettyServerBuilder
+}
 
 interface BluePrintGrpcClientService {
     suspend fun channel(): ManagedChannel
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/GrpcLoggerService.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/GrpcLoggerService.kt
new file mode 100644
index 0000000..6d2ba43
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/GrpcLoggerService.kt
@@ -0,0 +1,101 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
+
+import io.grpc.Grpc
+import io.grpc.Metadata
+import io.grpc.ServerCall
+import io.grpc.ServerCallHandler
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.getStringKey
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.putStringKeyValue
+import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants.ONAP_INVOCATION_ID
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants.ONAP_PARTNER_NAME
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants.ONAP_REQUEST_ID
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToEmpty
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToUUID
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.slf4j.MDC
+import java.net.InetAddress
+import java.net.InetSocketAddress
+import java.time.ZoneOffset
+import java.time.ZonedDateTime
+import java.time.format.DateTimeFormatter
+import java.util.*
+
+class GrpcLoggerService {
+
+    private val log = logger(GrpcLoggerService::class)
+
+    /** Used when server receives request */
+    fun <ReqT : Any, RespT : Any> grpcRequesting(call: ServerCall<ReqT, RespT>,
+                                                 headers: Metadata, next: ServerCallHandler<ReqT, RespT>) {
+        val requestID = headers.getStringKey(ONAP_REQUEST_ID).defaultToUUID()
+        val invocationID = headers.getStringKey(ONAP_INVOCATION_ID).defaultToUUID()
+        val partnerName = headers.getStringKey(ONAP_PARTNER_NAME) ?: "UNKNOWN"
+        grpcRequesting(requestID, invocationID, partnerName, call)
+    }
+
+    fun <ReqT : Any, RespT : Any> grpcRequesting(call: ServerCall<ReqT, RespT>,
+                                                 headers: CommonHeader, next: ServerCallHandler<ReqT, RespT>) {
+        val requestID = headers.requestId.defaultToUUID()
+        val invocationID = headers.subRequestId.defaultToUUID()
+        val partnerName = headers.originatorId ?: "UNKNOWN"
+        grpcRequesting(requestID, invocationID, partnerName, call)
+    }
+
+    fun <ReqT : Any, RespT : Any> grpcRequesting(requestID: String, invocationID: String, partnerName: String,
+                                                 call: ServerCall<ReqT, RespT>) {
+        val localhost = InetAddress.getLocalHost()
+
+        val clientSocketAddress = call.attributes.get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR) as? InetSocketAddress
+                ?: throw BluePrintProcessorException("failed to get client address")
+        val serviceName = call.methodDescriptor.fullMethodName
+
+        MDC.put("InvokeTimestamp", ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT))
+        MDC.put("RequestID", requestID)
+        MDC.put("InvocationID", invocationID)
+        MDC.put("PartnerName", partnerName)
+        MDC.put("ClientIPAddress", clientSocketAddress.address.defaultToEmpty())
+        MDC.put("ServerFQDN", localhost.hostName.defaultToEmpty())
+        MDC.put("ServiceName", serviceName)
+        log.trace("MDC Properties : ${MDC.getCopyOfContextMap()}")
+    }
+
+
+    /** Used before invoking any GRPC outbound request, Inbound Invocation ID is used as request Id
+     * for outbound Request, If invocation Id is missing then default Request Id will be generated.
+     */
+    fun grpcInvoking(requestHeader: Metadata) {
+        requestHeader.putStringKeyValue(ONAP_REQUEST_ID, MDC.get("InvocationID").defaultToUUID())
+        requestHeader.putStringKeyValue(ONAP_INVOCATION_ID, UUID.randomUUID().toString())
+        val partnerName = System.getProperty("APPNAME") ?: "BlueprintsProcessor"
+        requestHeader.putStringKeyValue(ONAP_PARTNER_NAME, partnerName)
+    }
+
+    /** Used when server returns response */
+    fun grpResponding(requestHeaders: Metadata, responseHeaders: Metadata) {
+        try {
+            responseHeaders.putStringKeyValue(ONAP_REQUEST_ID, MDC.get("RequestID").defaultToEmpty())
+            responseHeaders.putStringKeyValue(ONAP_INVOCATION_ID, MDC.get("InvocationID").defaultToEmpty())
+            responseHeaders.putStringKeyValue(ONAP_PARTNER_NAME, MDC.get("PartnerName").defaultToEmpty())
+        } catch (e: Exception) {
+            log.warn("couldn't set grpc response headers", e)
+        }
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcClientService.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcClientService.kt
new file mode 100644
index 0000000..a70cbbc
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcClientService.kt
@@ -0,0 +1,54 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
+
+import io.grpc.ManagedChannel
+import io.grpc.internal.DnsNameResolverProvider
+import io.grpc.internal.PickFirstLoadBalancerProvider
+import io.grpc.netty.GrpcSslContexts
+import io.grpc.netty.NettyChannelBuilder
+import io.netty.handler.ssl.SslContext
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TLSAuthGrpcClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcClientLoggingInterceptor
+import org.onap.ccsdk.cds.controllerblueprints.core.normalizedFile
+
+class TLSAuthGrpcClientService(private val tlsAuthGrpcClientProperties: TLSAuthGrpcClientProperties)
+    : BluePrintGrpcClientService {
+
+    override suspend fun channel(): ManagedChannel {
+        return NettyChannelBuilder
+                .forAddress(tlsAuthGrpcClientProperties.host, tlsAuthGrpcClientProperties.port)
+                .nameResolverFactory(DnsNameResolverProvider())
+                .loadBalancerFactory(PickFirstLoadBalancerProvider())
+                .intercept(GrpcClientLoggingInterceptor())
+                .sslContext(sslContext())
+                .build()
+    }
+
+    fun sslContext(): SslContext {
+        val builder = GrpcSslContexts.forClient()
+        if (tlsAuthGrpcClientProperties.trustCertCollection != null) {
+            builder.trustManager(normalizedFile(tlsAuthGrpcClientProperties.trustCertCollection!!))
+        }
+        if (tlsAuthGrpcClientProperties.clientCertChain != null
+                && tlsAuthGrpcClientProperties.clientPrivateKey != null) {
+            builder.keyManager(normalizedFile(tlsAuthGrpcClientProperties.clientCertChain!!),
+                    normalizedFile(tlsAuthGrpcClientProperties.clientPrivateKey!!))
+        }
+        return builder.build()
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcServerService.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcServerService.kt
new file mode 100644
index 0000000..fc73d43
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TLSAuthGrpcServerService.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
+
+import io.grpc.netty.GrpcSslContexts
+import io.grpc.netty.NettyServerBuilder
+import io.netty.handler.ssl.ClientAuth
+import io.netty.handler.ssl.SslContext
+import io.netty.handler.ssl.SslContextBuilder
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TLSAuthGrpcServerProperties
+import org.onap.ccsdk.cds.controllerblueprints.core.normalizedFile
+
+
+class TLSAuthGrpcServerService(private val tlsAuthGrpcServerProperties: TLSAuthGrpcServerProperties)
+    : BluePrintGrpcServerService {
+
+    override fun serverBuilder(): NettyServerBuilder {
+        return NettyServerBuilder
+                .forPort(tlsAuthGrpcServerProperties.port)
+                .sslContext(sslContext())
+    }
+
+    fun sslContext(): SslContext {
+        val sslClientContextBuilder = SslContextBuilder
+                .forServer(normalizedFile(tlsAuthGrpcServerProperties.certChain),
+                        normalizedFile(tlsAuthGrpcServerProperties.privateKey))
+
+        tlsAuthGrpcServerProperties.trustCertCollection?.let { trustCertFile ->
+            sslClientContextBuilder.trustManager(normalizedFile(trustCertFile))
+            sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE)
+        }
+        return GrpcSslContexts.configure(sslClientContextBuilder).build()
+    }
+
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TokenAuthGrpcClientService.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TokenAuthGrpcClientService.kt
index dbff842..601dc0e 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TokenAuthGrpcClientService.kt
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/TokenAuthGrpcClientService.kt
@@ -21,6 +21,7 @@
 import io.grpc.internal.PickFirstLoadBalancerProvider
 import io.grpc.netty.NettyChannelBuilder
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TokenAuthGrpcClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcClientLoggingInterceptor
 
 class TokenAuthGrpcClientService(private val tokenAuthGrpcClientProperties: TokenAuthGrpcClientProperties)
     : BluePrintGrpcClientService {
@@ -30,6 +31,7 @@
                 .forAddress(tokenAuthGrpcClientProperties.host, tokenAuthGrpcClientProperties.port)
                 .nameResolverFactory(DnsNameResolverProvider())
                 .loadBalancerFactory(PickFirstLoadBalancerProvider())
+                .intercept(GrpcClientLoggingInterceptor())
                 .intercept(TokenAuthClientInterceptor(tokenAuthGrpcClientProperties)).usePlaintext().build()
         return managedChannel
     }
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyServiceTest.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyServiceTest.kt
index 8df218f..b7ddc15 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyServiceTest.kt
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcLibPropertyServiceTest.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -22,9 +23,8 @@
 import org.junit.runner.RunWith
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BlueprintPropertyConfiguration
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.BasicAuthGrpcClientProperties
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.BluePrintGrpcLibConfiguration
-import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TokenAuthGrpcClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.*
+import org.onap.ccsdk.cds.controllerblueprints.core.jsonAsJsonType
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.test.context.ContextConfiguration
 import org.springframework.test.context.TestPropertySource
@@ -42,11 +42,25 @@
     "blueprintsprocessor.grpcclient.sample.port=50505",
     "blueprintsprocessor.grpcclient.sample.username=sampleuser",
     "blueprintsprocessor.grpcclient.sample.password=sampleuser",
+
     "blueprintsprocessor.grpcclient.token.type=token-auth",
     "blueprintsprocessor.grpcclient.token.host=127.0.0.1",
     "blueprintsprocessor.grpcclient.token.port=50505",
     "blueprintsprocessor.grpcclient.token.username=sampleuser",
-    "blueprintsprocessor.grpcclient.token.password=sampleuser"
+    "blueprintsprocessor.grpcclient.token.password=sampleuser",
+
+    "blueprintsprocessor.grpcserver.tls-sample.type=tls-auth",
+    "blueprintsprocessor.grpcserver.tls-sample.port=50505",
+    "blueprintsprocessor.grpcserver.tls-sample.certChain=server1.pem",
+    "blueprintsprocessor.grpcserver.tls-sample.privateKey=server1.key",
+    "blueprintsprocessor.grpcserver.tls-sample.trustCertCollection=ca.pem",
+
+    "blueprintsprocessor.grpcclient.tls-sample.type=tls-auth",
+    "blueprintsprocessor.grpcclient.tls-sample.host=127.0.0.1",
+    "blueprintsprocessor.grpcclient.tls-sample.port=50505",
+    "blueprintsprocessor.grpcclient.tls-sample.trustCertCollection=ca.pem",
+    "blueprintsprocessor.grpcclient.tls-sample.clientCertChain=client.pem",
+    "blueprintsprocessor.grpcclient.tls-sample.clientPrivateKey=client.key"
 ])
 class BluePrintGrpcLibPropertyServiceTest {
 
@@ -129,4 +143,52 @@
                 .blueprintGrpcClientService(actualObj)
         assertTrue(svc is BasicAuthGrpcClientService)
     }
+
+    @Test
+    fun testGrpcClientTLSProperties() {
+        val properties = bluePrintGrpcLibPropertyService
+                .grpcClientProperties("blueprintsprocessor.grpcclient.tls-sample") as TLSAuthGrpcClientProperties
+        assertNotNull(properties, "failed to create property bean")
+        assertNotNull(properties.host, "failed to get host property in property bean")
+        assertNotNull(properties.port, "failed to get host property in property bean")
+        assertNotNull(properties.trustCertCollection, "failed to get trustCertCollection property in property bean")
+        assertNotNull(properties.clientCertChain, "failed to get clientCertChain property in property bean")
+        assertNotNull(properties.clientPrivateKey, "failed to get clientPrivateKey property in property bean")
+
+        val configDsl = """{
+            "type" : "tls-auth",
+            "host" : "localhost",
+            "port" : "50505",
+            "trustCertCollection" : "server1.pem",
+            "clientCertChain" : "server1.key",
+            "clientPrivateKey" : "ca.pem"
+            }           
+        """.trimIndent()
+        val jsonProperties = bluePrintGrpcLibPropertyService
+                .grpcClientProperties(configDsl.jsonAsJsonType()) as TLSAuthGrpcClientProperties
+        assertNotNull(jsonProperties, "failed to create property bean from json")
+    }
+
+    @Test
+    fun testGrpcServerTLSProperties() {
+        val properties = bluePrintGrpcLibPropertyService
+                .grpcServerProperties("blueprintsprocessor.grpcserver.tls-sample") as TLSAuthGrpcServerProperties
+        assertNotNull(properties, "failed to create property bean")
+        assertNotNull(properties.port, "failed to get host property in property bean")
+        assertNotNull(properties.trustCertCollection, "failed to get trustCertCollection property in property bean")
+        assertNotNull(properties.certChain, "failed to get certChain property in property bean")
+        assertNotNull(properties.privateKey, "failed to get privateKey property in property bean")
+
+        val configDsl = """{
+            "type" : "tls-auth",
+            "port" : "50505",
+            "certChain" : "server1.pem",
+            "privateKey" : "server1.key",
+            "trustCertCollection" : "ca.pem"
+            }           
+        """.trimIndent()
+        val jsonProperties = bluePrintGrpcLibPropertyService
+                .grpcServerProperties(configDsl.jsonAsJsonType()) as TLSAuthGrpcServerProperties
+        assertNotNull(jsonProperties, "failed to create property bean from json")
+    }
 }
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcServerTest.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcServerTest.kt
new file mode 100644
index 0000000..8154d37
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/BluePrintGrpcServerTest.kt
@@ -0,0 +1,109 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
+
+import com.github.marcoferrer.krotoplus.coroutines.client.clientCallBidiStreaming
+import com.google.protobuf.util.JsonFormat
+import kotlinx.coroutines.channels.consumeEach
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ACTION_MODE_SYNC
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.GRPCLibConstants
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TLSAuthGrpcClientProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TLSAuthGrpcServerProperties
+import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers
+import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader
+import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput
+import java.util.*
+import kotlin.test.Test
+import kotlin.test.assertNotNull
+
+class BluePrintGrpcServerTest {
+
+    private val tlsAuthGrpcServerProperties = TLSAuthGrpcServerProperties().apply {
+        port = 50052
+        type = GRPCLibConstants.TYPE_TLS_AUTH
+        certChain = "src/test/resources/tls-manual/py-executor-chain.pem"
+        privateKey = "src/test/resources/tls-manual/py-executor-key.pem"
+    }
+
+    private val tlsAuthGrpcClientProperties = TLSAuthGrpcClientProperties().apply {
+        host = "localhost"
+        port = 50052
+        type = GRPCLibConstants.TYPE_TLS_AUTH
+        trustCertCollection = "src/test/resources/tls-manual/py-executor-chain.pem"
+    }
+
+    @Test
+    fun testGrpcTLSContext() {
+        val tlsAuthGrpcServerService = TLSAuthGrpcServerService(tlsAuthGrpcServerProperties)
+        val sslContext = tlsAuthGrpcServerService.sslContext()
+        assertNotNull(sslContext, "failed to create grpc server ssl context")
+
+        val tlsAuthGrpcClientService = TLSAuthGrpcClientService(tlsAuthGrpcClientProperties)
+        val clientSslContext = tlsAuthGrpcClientService.sslContext()
+        assertNotNull(clientSslContext, "failed to create grpc client ssl context")
+    }
+
+    /** TLS Client Integration testing, GRPC TLS Junit testing is not supported. */
+    //@Test
+    fun testGrpcTLSServerIntegration() {
+        runBlocking {
+            val tlsAuthGrpcClientService = TLSAuthGrpcClientService(tlsAuthGrpcClientProperties)
+            val grpcChannel = tlsAuthGrpcClientService.channel()
+            /** Get Send and Receive Channel for bidirectional process method*/
+            val (reqChannel, resChannel) = clientCallBidiStreaming(BluePrintProcessingServiceGrpc.getProcessMethod(),
+                    grpcChannel)
+            launch {
+                resChannel.consumeEach {
+                    log.info("Received Response")
+                    if (it.status.eventType == EventType.EVENT_COMPONENT_EXECUTED) {
+                        resChannel.cancel()
+                    }
+                }
+            }
+            val request = getRequest("12345")
+            reqChannel.send(request)
+        }
+    }
+
+    private fun getRequest(requestId: String): ExecutionServiceInput {
+        val commonHeader = CommonHeader.newBuilder()
+                .setTimestamp("2012-04-23T18:25:43.511Z")
+                .setOriginatorId("System")
+                .setRequestId(requestId)
+                .setSubRequestId("$requestId-" + UUID.randomUUID().toString()).build()
+        val actionIdentifier = ActionIdentifiers.newBuilder()
+                .setActionName("SampleScript")
+                .setBlueprintName("sample-cba")
+                .setBlueprintVersion("1.0.0")
+                .setMode(ACTION_MODE_SYNC)
+                .build()
+        val jsonContent = """{ "key1" : "value1" }"""
+        val payloadBuilder = ExecutionServiceInput.newBuilder().payloadBuilder
+        JsonFormat.parser().merge(jsonContent, payloadBuilder)
+
+        return ExecutionServiceInput.newBuilder()
+                .setCommonHeader(commonHeader)
+                .setActionIdentifiers(actionIdentifier)
+                .setPayload(payloadBuilder.build())
+                .build()
+    }
+
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/MockTLSBluePrintProcessingServer.kt b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/MockTLSBluePrintProcessingServer.kt
new file mode 100644
index 0000000..d5bc70c
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/grpc/service/MockTLSBluePrintProcessingServer.kt
@@ -0,0 +1,90 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.grpc.service
+
+import io.grpc.stub.StreamObserver
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.GRPCLibConstants
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TLSAuthGrpcServerProperties
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcServerLoggingInterceptor
+import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType
+import org.onap.ccsdk.cds.controllerblueprints.common.api.Status
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput
+
+
+val log = logger(MockTLSBluePrintProcessingServer::class)
+
+/** For Integration testing stat this server, Set the working path to run this method */
+fun main() {
+    try {
+        val tlsAuthGrpcServerProperties = TLSAuthGrpcServerProperties().apply {
+            port = 50052
+            type = GRPCLibConstants.TYPE_TLS_AUTH
+            certChain = "src/test/resources/tls-manual/py-executor-chain.pem"
+            privateKey = "src/test/resources/tls-manual/py-executor-key.pem"
+        }
+        val server = TLSAuthGrpcServerService(tlsAuthGrpcServerProperties).serverBuilder()
+                .intercept(GrpcServerLoggingInterceptor())
+                .addService(MockTLSBluePrintProcessingServer())
+                .build()
+        server.start()
+        log.info("GRPC Serve started(${server.isShutdown}) on port(${server.port})...")
+        server.awaitTermination()
+    } catch (e: Exception) {
+        log.error("Failed to start tls grpc integration server", e)
+    }
+
+}
+
+class MockTLSBluePrintProcessingServer : BluePrintProcessingServiceGrpc.BluePrintProcessingServiceImplBase() {
+    override fun process(responseObserver: StreamObserver<ExecutionServiceOutput>): StreamObserver<ExecutionServiceInput> {
+
+        return object : StreamObserver<ExecutionServiceInput> {
+            override fun onNext(executionServiceInput: ExecutionServiceInput) {
+                log.info("Received requestId(${executionServiceInput.commonHeader.requestId})  " +
+                        "subRequestId(${executionServiceInput.commonHeader.subRequestId})")
+                responseObserver.onNext(buildResponse(executionServiceInput))
+                responseObserver.onCompleted()
+            }
+
+            override fun onError(error: Throwable) {
+                log.debug("Fail to process message", error)
+                responseObserver.onError(io.grpc.Status.INTERNAL
+                        .withDescription(error.message)
+                        .asException())
+            }
+
+            override fun onCompleted() {
+                log.info("Completed")
+            }
+        }
+    }
+
+    private fun buildResponse(input: ExecutionServiceInput): ExecutionServiceOutput {
+        val status = Status.newBuilder().setCode(200)
+                .setEventType(EventType.EVENT_COMPONENT_EXECUTED)
+                .build()
+        return ExecutionServiceOutput.newBuilder()
+                .setCommonHeader(input.commonHeader)
+                .setActionIdentifiers(input.actionIdentifiers)
+                .setStatus(status)
+                .build()
+
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/README b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/README
new file mode 100644
index 0000000..c4e91a2
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/README
@@ -0,0 +1,5 @@
+
+Generate Certifactes & Keys
+----------------------------
+
+openssl req -x509 -newkey rsa:4096 -keyout my-private-key.pem -out my-public-key-cert.pem -days 3650 -nodes -subj '/CN=localhost'
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/py-executor-chain.pem b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/py-executor-chain.pem
new file mode 100644
index 0000000..30f09df
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/py-executor-chain.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEpDCCAowCCQDyhR+GR2RUiTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
+b2NhbGhvc3QwHhcNMTkxMDIzMDAwMTA0WhcNMjkxMDIwMDAwMTA0WjAUMRIwEAYD
+VQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCs
+c4d6qfbW+GSMp+XURoLXtSAbbehoBXL2beSzqQNW6e+Q9IVtSPZst8VRjUXelFzM
+m7VpS9jhiXOPZ5KKUOD0GVuNQc54VpwtHt7t9L5wS9OvdnLijnMIkc0iUvC6+Rcq
+HSfbNC2Tb+a8jLwojmtRCeY/MyCnmqYpD+U3b6Eue89VpMOIfmDuTqSRRBYNVO72
+hq7FI3UD8+zREg7htfzjJjG14Ec5iVMDxJA1FlwtXFnZxDHgbLjEVjTTR/9Wm1eU
+aJ4oWRt3gG/vnJNa+GwN4w/My+j/5/n/YpNh6GeQrHxBl/SL/SAFBshlwozr4K4K
+av5MqRKyhCACV4SsdhKJUEDtvrtukJvh/ZDW8jdNbFJAljm8UucZGbJrZl6G7XB3
+WteI7rezo0mL0NMBZIT3nQSMEpefKUFZFiE5lYvIk3UuChqIM0xdgV4INwLRHZdc
+1TtiGaBJV05y3Klo5gaUgNGbHP26zfub5TydiMrOA5W2mUvMkG2oit9aqnbaZBLD
+t17cCKzpzcVF5uNUng3j6sQvpTt3S4L28TvKUMAfpecQqvxMoxG0/9HZuv2z+U+L
+LVVsS07yJPIGMLcq1LMM++8LwD1MupcoShjNOq/lUOL6hIMfLOIfxt8Kv8WykVzv
+6yjKEIurjkwMipq4kvr9J7FFi54kGr7uvXWQRHDFJwIDAQABMA0GCSqGSIb3DQEB
+CwUAA4ICAQB7gJzvaOIP3/S2jrObz67g0jiz1cfb4I9KQwpwb6JUWbYm1QjBcGm4
+IhNbdPMD6dpwBc/A4JctA5E+/fArvl14UtK1jkaaE/GCumL0VUSZeAM6CK/63brt
+LplqCunv8ePHmiwjJBnhu+ewe1+mDMVDMw0iot/q+pOM3vqNS1Fipja+xFK1JQZx
+JmkjW/Ug3NHk/SSTfO+VNmlI5bBBApMqKmd9picsyDZ7dTBtZvbqV5eQsPZvv14G
+oEvWnvvom+D5GojroSO+OMHNDR3bzK6p0Cu8AiTy9Ls6J2e4GXJz3Cg/kuF9tNlR
+3X62zDT+CUipuYyTvmjbSyNMGwU7BIZTKFPuTtjh7EwT2g6S8RV9PmT98CQW6kTT
+RJbL7nMIOF0WusysAT5wj1HJ0QKBQCXK+L6WTKTTovaEE7JSVrYe7wVF8Q9SyBIM
+4CPVZt+GMyQKJ9SRnVgTDEMb7sj9HPaoVeDc6LQTv8Q//wFeTdZIWXQhpVJCQCEG
+qkRk9r3isF60ISOXXIYhqE+hx3QXY9M2UyHDtKXPZ7X370vADi2ebBMF8MpIZYl5
+628dME9JhOhLhD5qPJeva2Nq4gLpK+rO6t7ML0Us4edoKyoScowXAh80q1GW3EO3
+IxTK123651C/S0kDqLqZ9rknEdpwSujrT2UW95jUlfo5OKDrPpdOBw==
+-----END CERTIFICATE-----
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/py-executor-key.pem b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/py-executor-key.pem
new file mode 100644
index 0000000..830a3ae
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/src/test/resources/tls-manual/py-executor-key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCsc4d6qfbW+GSM
+p+XURoLXtSAbbehoBXL2beSzqQNW6e+Q9IVtSPZst8VRjUXelFzMm7VpS9jhiXOP
+Z5KKUOD0GVuNQc54VpwtHt7t9L5wS9OvdnLijnMIkc0iUvC6+RcqHSfbNC2Tb+a8
+jLwojmtRCeY/MyCnmqYpD+U3b6Eue89VpMOIfmDuTqSRRBYNVO72hq7FI3UD8+zR
+Eg7htfzjJjG14Ec5iVMDxJA1FlwtXFnZxDHgbLjEVjTTR/9Wm1eUaJ4oWRt3gG/v
+nJNa+GwN4w/My+j/5/n/YpNh6GeQrHxBl/SL/SAFBshlwozr4K4Kav5MqRKyhCAC
+V4SsdhKJUEDtvrtukJvh/ZDW8jdNbFJAljm8UucZGbJrZl6G7XB3WteI7rezo0mL
+0NMBZIT3nQSMEpefKUFZFiE5lYvIk3UuChqIM0xdgV4INwLRHZdc1TtiGaBJV05y
+3Klo5gaUgNGbHP26zfub5TydiMrOA5W2mUvMkG2oit9aqnbaZBLDt17cCKzpzcVF
+5uNUng3j6sQvpTt3S4L28TvKUMAfpecQqvxMoxG0/9HZuv2z+U+LLVVsS07yJPIG
+MLcq1LMM++8LwD1MupcoShjNOq/lUOL6hIMfLOIfxt8Kv8WykVzv6yjKEIurjkwM
+ipq4kvr9J7FFi54kGr7uvXWQRHDFJwIDAQABAoICADepPmRAMbTnDYU8t/jRHXBE
+PO29htL0V0vk4nl+pt5JuZJe6iYA89DZa+3LnG6gEmfUJjSrT4BUXiE+O9U7D7CZ
+8qvgPqUmx1fk6+2AHmuefd/XanNnqQduD/jxLlQbC/gC2xdsev1ok9/tyNmKRmcs
+u81QUkzmpJUCVWiUNkELozswaBBJQj4I0iM1B60b6dlWVVi5/g3dkGVW38jIdaxX
+apoansKaaVoA+s63vd7CPRoFsleOoAB3FqvPREIO97CmJ848HJpwsTB0qDcnkbDV
+xgbDFhxrIozko09ptOvEUILXag45EDmvG8WEivmjVml0aUoTFD7cWHyJBQCpR4fU
+5W9mYd4Rrzbmpb+LGYdNyrp3wo3C7dJ7/ffBMQxmXTdMZkcxorxj4BRG3oACRQ1u
+Ff1iUruZzIIDtEkrC9hc5QpLlDf9b1obm8L9sxf1QmTt59o5oFG40GPwPP19GXwE
+l2faHwho2jYLM9rhuSsK/5sSmUshPNQYmfMnbWzTtghMPE/g0Cfpt8qbspq+G1bk
+z3M97JlFMF83ccRotDElX9E/ttjU7Lehoz+1sOyHiVW1E4oqKer4t+nI2bp6VYZm
+W94qptW7kb4o0DsvPCaoTPBxLJ1ag2WBlqoFkVI0YaxZiZ8OTR55Ovi4z5xWBO1q
+NkCKgdAUQvQVzVtASVGBAoIBAQDSw2nvPFN4gGZ6OI+8j2gWtPcsrhSHS9ykxBeB
+mB/HExYIe8k3EvClf2rnfwzuKgKyVMp7Ev7nH2jS/PGZq37QyXrw0NBGRnvJY0Ez
+YB1KTgf9xaHMGMut5efNvv/cPwYriqosgJ0pdt0vvUAIQ6EBv+iDXXqJ1lQUSRYk
+wKjFABi6TeJY4t9vC474KoXTDaHlwn9+TwnuRBk85wrZzlhK90J0iVa9/Eqeddsc
+Z3CuTlc+NmcP3qvniYODq8nyVc0pKw+28AVYYEd3aJfgm+dpcB21L0oz7CaxH/Rz
+FNONuQRaOzJrcuJsde/KG2X+MHs6hVMXXXWciPrJ2l+Cq7dnAoIBAQDRdwZDcgem
+tJHLihCRzUl9PKip4ZA5757ZyTy6WMLR3wMS2cNTK8+bTrUa0SSC4WSI28pybFA7
+QdSR08c5Nd7jXcIrtqspgZKhb0E60i8VQHhh6ba/kyQjsEz9c/G1WquPK13j2vZ0
+79bomDwFJPsFzABU+sC0/F42ZVQzy9qXkjngjtmaGfrCc7X+pV28nEGtyxHci3L4
+XXfE2dOb+GBVZPLBVXwcthdRYsFuU9GMy2GH0zVtWPOcGRnlpx53Tqg7NIeR0Nm1
+K35EaK8PH92PsAr0Xza7vQHY4cPRz+RhDzjyGQtnhKf96U6gzzt4ZVbQ/UuzDBcL
+PQ2DvUH+sqxBAoIBAEW5kiUsDu0xhTVv2tVll+jTK2ZjnLT5ut/jY2djHTgtrz9V
+PEb1BBmsIoC9PljYGxZGCMpYiW2KrZIHTiIpYwXNcdeTLSPik3cXV+2YIXiAghJJ
+PHKZzWAVS+97/YcubmsfL5cTYWrjQN9XO4TAYtaCV3iGB1DsT9p6J1I3Tl4F3yhb
+NcN0IrjI2R5uauFchC/PfYAaw81ISBUm1iciJYF/dUO6X7DwcvsjQD6QVe3ESwZw
+1v2gC7zIeHKp9WAvVHUHIubBVvNavqnZN01+JjtydNGI+IJe4Jn+WU9tF2OuTqtP
+JCn50sBQ7+gr0j0aatn8W3XCXHNRua3niWtgRYcCggEAT7OzfWxhPuyMYV9qiKAN
+a4ruPp3mjDUCQ6pP4jQuBT+PYtfbe8U63MSpIsgb1XVAFNdVBA70xGd7I/XqY3l9
+ExS08n8yR7vW+Hhl4KTjZ3m9lLwiXmj1omLOGM7KVRBoITUGJ9JEXyB3rM9oXyjA
+H2eNZMh5FSTGEHqj/IV/6paoUSrp37os8VqoEHoJ3d+zGhcf98RT/e9KyGt+GmX6
++eNMf4YwkJg07THfmkRoguNMfCtAtBfZsjbW5MyfShRy7PxC7ZgDju06wXr3yZB9
+dNQuhufH4s27azQUl7w8ETaCm5QuA7i1V2c0FPpljZ052JHZAQsDpbIYd11HREvm
+QQKCAQEA0W7xNYoFvnyikdG0t266LLv1EkWDFdgkelGx/eGe/JZ+au3uTM94EssC
+ni64XX2P8vK/te+c3jItYO4MRgnDJ7GW+bRnJFu2kBE0W4chx7vga0XApVCP+Ugg
+owv5yf9cOAHFulvPefsU0snYStD3gNq77XDg0CwoyUkpeq+GiupoQ8tquMSsrEwp
+ve5DtDip3cLHz2oVLB3mR4kKVwVwmOgO5RKq6N/H6Jxtf/Zk1I260dKr+Dv2MnDh
+dysO4zH5YEt2ML3oY4zY8lu+I5bHCBR1updSny0B31WrXAJyfZpMx+HOwETFKa3B
+v9AGKz0Jc2GOIRKHrCQ/WkZePetaYQ==
+-----END PRIVATE KEY-----
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageExtensions.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageExtensions.kt
new file mode 100644
index 0000000..a817c0c
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageExtensions.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.message
+
+import org.apache.kafka.common.header.Headers
+import org.apache.kafka.common.header.internals.RecordHeader
+import java.nio.charset.Charset
+
+
+fun <T : Headers> T?.toMap(): MutableMap<String, String> {
+    val map: MutableMap<String, String> = hashMapOf()
+    this?.forEach { map[it.key()] = String(it.value(), Charset.defaultCharset()) }
+    return map
+}
+
+fun Headers.addHeader(key: String, value: String) {
+    this.add(RecordHeader(key, value.toByteArray()))
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt
index 1cd8a2a..184e85b 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/BluePrintMessageLibData.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -33,8 +34,10 @@
 open class KafkaMessageConsumerProperties : MessageConsumerProperties() {
     lateinit var bootstrapServers: String
     lateinit var groupId: String
-    var clientId: String? = null
+    lateinit var clientId: String
     var topic: String? = null
+    var autoCommit: Boolean = true
+    var autoOffsetReset: String = "latest"
     var pollMillSec: Long = 1000
     var pollRecords: Int = -1
 }
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerService.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerService.kt
index 25f0bf4..8bcc758 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerService.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerService.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -17,16 +18,47 @@
 package org.onap.ccsdk.cds.blueprintsprocessor.message.service
 
 import kotlinx.coroutines.channels.Channel
+import org.apache.kafka.clients.consumer.Consumer
+import org.apache.kafka.clients.consumer.ConsumerRecords
+import org.onap.ccsdk.cds.blueprintsprocessor.message.MessageConsumerProperties
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+
+/** Consumer Function Interfaces */
+interface ConsumerFunction
 
 interface BlueprintMessageConsumerService {
 
+    suspend fun subscribe(): Channel<String> {
+        return subscribe(null)
+    }
+
     /** Subscribe to the Kafka channel with [additionalConfig] */
     suspend fun subscribe(additionalConfig: Map<String, Any>?): Channel<String>
 
     /** Subscribe to the Kafka channel with [additionalConfig] for dynamic [topics]*/
     suspend fun subscribe(topics: List<String>, additionalConfig: Map<String, Any>? = null): Channel<String>
 
+    /** Consume and execute dynamic function [consumerFunction] */
+    suspend fun consume(consumerFunction: ConsumerFunction) {
+        consume(null, consumerFunction)
+    }
+
+    /** Consume with [additionalConfig], so that we can execute dynamic function [consumerFunction] */
+    suspend fun consume(additionalConfig: Map<String, Any>?, consumerFunction: ConsumerFunction) {
+        throw BluePrintProcessorException("Not Implemented")
+    }
+
+    /** Consume the [topics] with [additionalConfig], so that we can execute dynamic function [consumerFunction] */
+    suspend fun consume(topics: List<String>, additionalConfig: Map<String, Any>?,
+                        consumerFunction: ConsumerFunction) {
+        throw BluePrintProcessorException("Not Implemented")
+    }
+
     /** close the channel, consumer and other resources */
     suspend fun shutDown()
-
+}
+/** Consumer dynamic implementation interface */
+interface KafkaConsumerRecordsFunction : ConsumerFunction {
+    suspend fun invoke(messageConsumerProperties: MessageConsumerProperties, consumer: Consumer<*, *>,
+                       consumerRecords: ConsumerRecords<*, *>)
 }
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerService.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerService.kt
index e33d41c..7d81386 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerService.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerService.kt
@@ -20,15 +20,31 @@
 
 interface BlueprintMessageProducerService {
 
-    fun sendMessage(message: Any): Boolean = runBlocking {
-        sendMessageNB(message)
+    fun sendMessage(message: Any): Boolean {
+        return sendMessage(message = message, headers = null)
     }
 
-    fun sendMessage(topic: String, message: Any): Boolean = runBlocking {
-        sendMessageNB(topic, message)
+    fun sendMessage(topic: String, message: Any): Boolean {
+        return sendMessage(topic, message, null)
     }
 
-    suspend fun sendMessageNB(message: Any): Boolean
+    fun sendMessage(message: Any, headers: MutableMap<String, String>?): Boolean = runBlocking {
+        sendMessageNB(message = message, headers = headers)
+    }
 
-    suspend fun sendMessageNB(topic: String, message: Any): Boolean
+    fun sendMessage(topic: String, message: Any, headers: MutableMap<String, String>?): Boolean = runBlocking {
+        sendMessageNB(topic, message, headers)
+    }
+
+    suspend fun sendMessageNB(message: Any): Boolean {
+        return sendMessageNB(message = message, headers = null)
+    }
+
+    suspend fun sendMessageNB(message: Any, headers: MutableMap<String, String>?): Boolean
+
+    suspend fun sendMessageNB(topic: String, message: Any): Boolean {
+        return sendMessageNB(topic, message, null)
+    }
+
+    suspend fun sendMessageNB(topic: String, message: Any, headers: MutableMap<String, String>?): Boolean
 }
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageConsumerService.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageConsumerService.kt
index b5d444a..757846c 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageConsumerService.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageConsumerService.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -24,33 +25,39 @@
 import org.apache.kafka.clients.consumer.Consumer
 import org.apache.kafka.clients.consumer.ConsumerConfig
 import org.apache.kafka.clients.consumer.KafkaConsumer
+import org.apache.kafka.common.serialization.ByteArrayDeserializer
 import org.apache.kafka.common.serialization.StringDeserializer
 import org.onap.ccsdk.cds.blueprintsprocessor.message.KafkaBasicAuthMessageConsumerProperties
 import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import java.nio.charset.Charset
 import java.time.Duration
 import kotlin.concurrent.thread
 
-class KafkaBasicAuthMessageConsumerService(
+open class KafkaBasicAuthMessageConsumerService(
         private val messageConsumerProperties: KafkaBasicAuthMessageConsumerProperties)
     : BlueprintMessageConsumerService {
 
-    private val channel = Channel<String>()
-    private var kafkaConsumer: Consumer<String, String>? = null
     val log = logger(KafkaBasicAuthMessageConsumerService::class)
+    val channel = Channel<String>()
+    var kafkaConsumer: Consumer<String, ByteArray>? = null
 
     @Volatile
     var keepGoing = true
 
-    fun kafkaConsumer(additionalConfig: Map<String, Any>? = null): Consumer<String, String> {
+    fun kafkaConsumer(additionalConfig: Map<String, Any>? = null): Consumer<String, ByteArray> {
         val configProperties = hashMapOf<String, Any>()
         configProperties[CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG] = messageConsumerProperties.bootstrapServers
         configProperties[ConsumerConfig.GROUP_ID_CONFIG] = messageConsumerProperties.groupId
-        configProperties[ConsumerConfig.AUTO_OFFSET_RESET_CONFIG] = "latest"
+        configProperties[ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG] = messageConsumerProperties.autoCommit
+        /**
+         * earliest: automatically reset the offset to the earliest offset
+         * latest: automatically reset the offset to the latest offset
+         */
+        configProperties[ConsumerConfig.AUTO_OFFSET_RESET_CONFIG] = messageConsumerProperties.autoOffsetReset
         configProperties[ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG] = StringDeserializer::class.java
-        configProperties[ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG] = StringDeserializer::class.java
-        if (messageConsumerProperties.clientId != null) {
-            configProperties[ConsumerConfig.CLIENT_ID_CONFIG] = messageConsumerProperties.clientId!!
-        }
+        configProperties[ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG] = ByteArrayDeserializer::class.java
+        configProperties[ConsumerConfig.CLIENT_ID_CONFIG] = messageConsumerProperties.clientId
+
         /** To handle Back pressure, Get only configured record for processing */
         if (messageConsumerProperties.pollRecords > 0) {
             configProperties[ConsumerConfig.MAX_POLL_RECORDS_CONFIG] = messageConsumerProperties.pollRecords
@@ -70,7 +77,7 @@
     }
 
 
-    override suspend fun subscribe(consumerTopic: List<String>, additionalConfig: Map<String, Any>?): Channel<String> {
+    override suspend fun subscribe(topics: List<String>, additionalConfig: Map<String, Any>?): Channel<String> {
         /** Create Kafka consumer */
         kafkaConsumer = kafkaConsumer(additionalConfig)
 
@@ -80,22 +87,22 @@
                     "topics(${messageConsumerProperties.bootstrapServers})"
         }
 
-        kafkaConsumer!!.subscribe(consumerTopic)
-        log.info("Successfully consumed topic($consumerTopic)")
+        kafkaConsumer!!.subscribe(topics)
+        log.info("Successfully consumed topic($topics)")
 
-        thread(start = true, name = "KafkaConsumer") {
+        thread(start = true, name = "KafkaConsumer-${messageConsumerProperties.clientId}") {
             keepGoing = true
             kafkaConsumer!!.use { kc ->
                 while (keepGoing) {
                     val consumerRecords = kc.poll(Duration.ofMillis(messageConsumerProperties.pollMillSec))
-                    log.info("Consumed Records : ${consumerRecords.count()}")
+                    log.trace("Consumed Records : ${consumerRecords.count()}")
                     runBlocking {
                         consumerRecords?.forEach { consumerRecord ->
                             /** execute the command block */
                             consumerRecord.value()?.let {
                                 launch {
                                     if (!channel.isClosedForSend) {
-                                        channel.send(it)
+                                        channel.send(String(it, Charset.defaultCharset()))
                                     } else {
                                         log.error("Channel is closed to receive message")
                                     }
@@ -110,6 +117,46 @@
         return channel
     }
 
+    override suspend fun consume(additionalConfig: Map<String, Any>?, consumerFunction: ConsumerFunction) {
+        /** get to topic names */
+        val consumerTopic = messageConsumerProperties.topic?.split(",")?.map { it.trim() }
+        check(!consumerTopic.isNullOrEmpty()) { "couldn't get topic information" }
+        return consume(topics = consumerTopic, additionalConfig = additionalConfig, consumerFunction = consumerFunction)
+    }
+
+    override suspend fun consume(topics: List<String>, additionalConfig: Map<String, Any>?,
+                                 consumerFunction: ConsumerFunction) {
+
+        val kafkaConsumerFunction = consumerFunction as KafkaConsumerRecordsFunction
+
+        /** Create Kafka consumer */
+        kafkaConsumer = kafkaConsumer(additionalConfig)
+
+        checkNotNull(kafkaConsumer) {
+            "failed to create kafka consumer for " +
+                    "server(${messageConsumerProperties.bootstrapServers})'s " +
+                    "topics(${messageConsumerProperties.bootstrapServers})"
+        }
+
+        kafkaConsumer!!.subscribe(topics)
+        log.info("Successfully consumed topic($topics)")
+
+        thread(start = true, name = "KafkaConsumer-${messageConsumerProperties.clientId}") {
+            keepGoing = true
+            kafkaConsumer!!.use { kc ->
+                while (keepGoing) {
+                    val consumerRecords = kc.poll(Duration.ofMillis(messageConsumerProperties.pollMillSec))
+                    log.trace("Consumed Records : ${consumerRecords.count()}")
+                    runBlocking {
+                        /** Execute dynamic consumer Block substitution */
+                        kafkaConsumerFunction.invoke(messageConsumerProperties, kc, consumerRecords)
+                    }
+                }
+                log.info("message listener shutting down.....")
+            }
+        }
+    }
+
     override suspend fun shutDown() {
         /** stop the polling loop */
         keepGoing = false
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageProducerService.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageProducerService.kt
index 1c93bb0..42adcd7 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageProducerService.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/KafkaBasicAuthMessageProducerService.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -17,16 +18,18 @@
 package org.onap.ccsdk.cds.blueprintsprocessor.message.service
 
 import org.apache.commons.lang.builder.ToStringBuilder
+import org.apache.kafka.clients.producer.Callback
+import org.apache.kafka.clients.producer.KafkaProducer
 import org.apache.kafka.clients.producer.ProducerConfig.*
+import org.apache.kafka.clients.producer.ProducerRecord
+import org.apache.kafka.common.header.internals.RecordHeader
+import org.apache.kafka.common.serialization.ByteArraySerializer
 import org.apache.kafka.common.serialization.StringSerializer
 import org.onap.ccsdk.cds.blueprintsprocessor.message.KafkaBasicAuthMessageProducerProperties
-import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonString
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToUUID
 import org.slf4j.LoggerFactory
-import org.springframework.kafka.core.DefaultKafkaProducerFactory
-import org.springframework.kafka.core.KafkaTemplate
-import org.springframework.kafka.core.ProducerFactory
-import org.springframework.kafka.support.SendResult
-import org.springframework.util.concurrent.ListenableFutureCallback
+import java.nio.charset.Charset
 
 class KafkaBasicAuthMessageProducerService(
         private val messageProducerProperties: KafkaBasicAuthMessageProducerProperties)
@@ -34,42 +37,46 @@
 
     private val log = LoggerFactory.getLogger(KafkaBasicAuthMessageProducerService::class.java)!!
 
-    private var kafkaTemplate: KafkaTemplate<String, Any>? = null
+    private var kafkaProducer: KafkaProducer<String, ByteArray>? = null
+
+    private val messageLoggerService = MessageLoggerService()
 
     override suspend fun sendMessageNB(message: Any): Boolean {
         checkNotNull(messageProducerProperties.topic) { "default topic is not configured" }
-        return sendMessage(messageProducerProperties.topic!!, message)
+        return sendMessageNB(messageProducerProperties.topic!!, message)
     }
 
-    override suspend fun sendMessageNB(topic: String, message: Any): Boolean {
-        val serializedMessage = when (message) {
-            is String -> {
-                message
-            }
-            else -> {
-                message.asJsonType().toString()
-            }
+    override suspend fun sendMessageNB(message: Any, headers: MutableMap<String, String>?): Boolean {
+        checkNotNull(messageProducerProperties.topic) { "default topic is not configured" }
+        return sendMessageNB(messageProducerProperties.topic!!, message, headers)
+    }
+
+    override suspend fun sendMessageNB(topic: String, message: Any,
+                                       headers: MutableMap<String, String>?): Boolean {
+        val byteArrayMessage = when (message) {
+            is String -> message.toByteArray(Charset.defaultCharset())
+            else -> message.asJsonString().toByteArray(Charset.defaultCharset())
         }
-        val future = messageTemplate().send(topic, serializedMessage)
 
-        future.addCallback(object : ListenableFutureCallback<SendResult<String, Any>> {
-            override fun onSuccess(result: SendResult<String, Any>) {
-                log.info("message sent successfully with offset=[${result.recordMetadata.offset()}]")
-            }
-
-            override fun onFailure(ex: Throwable) {
-                log.error("Unable to send message", ex)
-            }
-        })
+        val record = ProducerRecord<String, ByteArray>(topic, defaultToUUID(), byteArrayMessage)
+        val recordHeaders = record.headers()
+        messageLoggerService.messageProducing(recordHeaders)
+        headers?.let {
+            headers.forEach { (key, value) -> recordHeaders.add(RecordHeader(key, value.toByteArray())) }
+        }
+        val callback = Callback { metadata, exception ->
+            log.info("message published offset(${metadata.offset()}, headers :$headers )")
+        }
+        messageTemplate().send(record, callback).get()
         return true
     }
 
-    private fun producerFactory(additionalConfig: Map<String, Any>? = null): ProducerFactory<String, Any> {
-        log.info("Client Properties : ${ToStringBuilder.reflectionToString(messageProducerProperties)}")
+    fun messageTemplate(additionalConfig: Map<String, ByteArray>? = null): KafkaProducer<String, ByteArray> {
+        log.trace("Client Properties : ${ToStringBuilder.reflectionToString(messageProducerProperties)}")
         val configProps = hashMapOf<String, Any>()
         configProps[BOOTSTRAP_SERVERS_CONFIG] = messageProducerProperties.bootstrapServers
         configProps[KEY_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
-        configProps[VALUE_SERIALIZER_CLASS_CONFIG] = StringSerializer::class.java
+        configProps[VALUE_SERIALIZER_CLASS_CONFIG] = ByteArraySerializer::class.java
         if (messageProducerProperties.clientId != null) {
             configProps[CLIENT_ID_CONFIG] = messageProducerProperties.clientId!!
         }
@@ -79,14 +86,11 @@
         if (additionalConfig != null) {
             configProps.putAll(additionalConfig)
         }
-        return DefaultKafkaProducerFactory(configProps)
-    }
 
-    fun messageTemplate(additionalConfig: Map<String, Any>? = null): KafkaTemplate<String, Any> {
-        if (kafkaTemplate == null) {
-            kafkaTemplate = KafkaTemplate(producerFactory(additionalConfig))
+        if (kafkaProducer == null) {
+            kafkaProducer = KafkaProducer(configProps)
         }
-        return kafkaTemplate!!
+        return kafkaProducer!!
     }
 }
 
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/MessageLoggerService.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/MessageLoggerService.kt
new file mode 100644
index 0000000..21bf1b7
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/MessageLoggerService.kt
@@ -0,0 +1,88 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.message.service
+
+import org.apache.kafka.clients.consumer.ConsumerRecord
+import org.apache.kafka.common.header.Headers
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.CommonHeader
+import org.onap.ccsdk.cds.blueprintsprocessor.message.addHeader
+import org.onap.ccsdk.cds.blueprintsprocessor.message.toMap
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToEmpty
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToUUID
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.slf4j.MDC
+import java.net.InetAddress
+import java.time.Instant
+import java.time.ZoneOffset
+import java.time.ZonedDateTime
+import java.time.format.DateTimeFormatter
+import java.util.*
+
+class MessageLoggerService {
+
+    private val log = logger(MessageLoggerService::class)
+
+    fun messageConsuming(headers: CommonHeader, consumerRecord: ConsumerRecord<*, *>) {
+        messageConsuming(headers.requestId, headers.subRequestId,
+                headers.originatorId, consumerRecord)
+    }
+
+    fun messageConsuming(consumerRecord: ConsumerRecord<*, *>) {
+        val headers = consumerRecord.headers().toMap()
+        val requestID = headers[BluePrintConstants.ONAP_REQUEST_ID].defaultToUUID()
+        val invocationID = headers[BluePrintConstants.ONAP_INVOCATION_ID].defaultToUUID()
+        val partnerName = headers[BluePrintConstants.ONAP_PARTNER_NAME] ?: "UNKNOWN"
+        messageConsuming(requestID, invocationID, partnerName, consumerRecord)
+    }
+
+
+    fun messageConsuming(requestID: String, invocationID: String, partnerName: String,
+                         consumerRecord: ConsumerRecord<*, *>) {
+        val headers = consumerRecord.headers().toMap()
+        val localhost = InetAddress.getLocalHost()
+        MDC.put("InvokeTimestamp", ZonedDateTime
+                .ofInstant(Instant.ofEpochMilli(consumerRecord.timestamp()), ZoneOffset.UTC)
+                .format(DateTimeFormatter.ISO_INSTANT))
+        MDC.put("RequestID", requestID)
+        MDC.put("InvocationID", invocationID)
+        MDC.put("PartnerName", partnerName)
+        MDC.put("ClientIPAddress", headers["ClientIPAddress"].defaultToEmpty())
+        MDC.put("ServerFQDN", localhost.hostName.defaultToEmpty())
+        MDC.put("ServiceName", consumerRecord.topic())
+        // Custom MDC for Message Consumers
+        MDC.put("Offset", consumerRecord.offset().toString())
+        MDC.put("MessageKey", consumerRecord.key()?.toString().defaultToEmpty())
+        log.info("Consuming MDC Properties : ${MDC.getCopyOfContextMap()}")
+    }
+
+    /** Used before producing message request, Inbound Invocation ID is used as request Id
+     * for produced message Request, If invocation Id is missing then default Request Id will be generated.
+     */
+    fun messageProducing(requestHeader: Headers) {
+        val localhost = InetAddress.getLocalHost()
+        requestHeader.addHeader(BluePrintConstants.ONAP_REQUEST_ID, MDC.get("InvocationID").defaultToUUID())
+        requestHeader.addHeader(BluePrintConstants.ONAP_INVOCATION_ID, UUID.randomUUID().toString())
+        val partnerName = System.getProperty("APPNAME") ?: "BlueprintsProcessor"
+        requestHeader.addHeader(BluePrintConstants.ONAP_PARTNER_NAME, partnerName)
+        requestHeader.addHeader("ClientIPAddress", localhost.hostAddress)
+    }
+
+    fun messageConsumingExisting() {
+        MDC.clear()
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt
index f4e85a9..bdceec7 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageConsumerServiceTest.kt
@@ -1,5 +1,6 @@
 /*
  *  Copyright © 2019 IBM.
+ *  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -22,15 +23,14 @@
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.runBlocking
-import org.apache.kafka.clients.consumer.ConsumerRecord
-import org.apache.kafka.clients.consumer.MockConsumer
-import org.apache.kafka.clients.consumer.OffsetResetStrategy
+import org.apache.kafka.clients.consumer.*
 import org.apache.kafka.common.TopicPartition
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BlueprintPropertyConfiguration
 import org.onap.ccsdk.cds.blueprintsprocessor.message.BluePrintMessageLibConfiguration
+import org.onap.ccsdk.cds.blueprintsprocessor.message.MessageConsumerProperties
 import org.onap.ccsdk.cds.controllerblueprints.core.logger
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.test.annotation.DirtiesContext
@@ -87,14 +87,14 @@
                 partitionsEndMap[partition] = records
                 topicsCollection.add(partition.topic())
             }
-            val mockKafkaConsumer = MockConsumer<String, String>(OffsetResetStrategy.EARLIEST)
+            val mockKafkaConsumer = MockConsumer<String, ByteArray>(OffsetResetStrategy.EARLIEST)
             mockKafkaConsumer.subscribe(topicsCollection)
             mockKafkaConsumer.rebalance(partitions)
             mockKafkaConsumer.updateBeginningOffsets(partitionsBeginningMap)
             mockKafkaConsumer.updateEndOffsets(partitionsEndMap)
             for (i in 1..10) {
-                val record = ConsumerRecord<String, String>(topic, 1, i.toLong(), "key_$i",
-                        "I am message $i")
+                val record = ConsumerRecord<String, ByteArray>(topic, 1, i.toLong(), "key_$i",
+                        "I am message $i".toByteArray())
                 mockKafkaConsumer.addRecord(record)
             }
 
@@ -110,6 +110,54 @@
         }
     }
 
+    @Test
+    fun testKafkaBasicAuthConsumerWithDynamicFunction() {
+        runBlocking {
+            val blueprintMessageConsumerService = bluePrintMessageLibPropertyService
+                    .blueprintMessageConsumerService("sample") as KafkaBasicAuthMessageConsumerService
+            assertNotNull(blueprintMessageConsumerService, "failed to get blueprintMessageConsumerService")
+
+            val spyBlueprintMessageConsumerService = spyk(blueprintMessageConsumerService, recordPrivateCalls = true)
+
+            val topic = "default-topic"
+            val partitions: MutableList<TopicPartition> = arrayListOf()
+            val topicsCollection: MutableList<String> = arrayListOf()
+            partitions.add(TopicPartition(topic, 1))
+            val partitionsBeginningMap: MutableMap<TopicPartition, Long> = mutableMapOf()
+            val partitionsEndMap: MutableMap<TopicPartition, Long> = mutableMapOf()
+
+            val records: Long = 10
+            partitions.forEach { partition ->
+                partitionsBeginningMap[partition] = 0L
+                partitionsEndMap[partition] = records
+                topicsCollection.add(partition.topic())
+            }
+            val mockKafkaConsumer = MockConsumer<String, ByteArray>(OffsetResetStrategy.EARLIEST)
+            mockKafkaConsumer.subscribe(topicsCollection)
+            mockKafkaConsumer.rebalance(partitions)
+            mockKafkaConsumer.updateBeginningOffsets(partitionsBeginningMap)
+            mockKafkaConsumer.updateEndOffsets(partitionsEndMap)
+            for (i in 1..10) {
+                val record = ConsumerRecord<String, ByteArray>(topic, 1, i.toLong(), "key_$i",
+                        "I am message $i".toByteArray())
+                mockKafkaConsumer.addRecord(record)
+            }
+
+            every { spyBlueprintMessageConsumerService.kafkaConsumer(any()) } returns mockKafkaConsumer
+            /** Test Consumer Function implementation */
+            val consumerFunction = object : KafkaConsumerRecordsFunction {
+                override suspend fun invoke(messageConsumerProperties: MessageConsumerProperties,
+                                            consumer: Consumer<*, *>, consumerRecords: ConsumerRecords<*, *>) {
+                    val count = consumerRecords.count()
+                    log.trace("Received Message count($count)")
+                }
+            }
+            spyBlueprintMessageConsumerService.consume(consumerFunction)
+            delay(10)
+            spyBlueprintMessageConsumerService.shutDown()
+        }
+    }
+
     /** Integration Kafka Testing, Enable and use this test case only for local desktop testing with real kafka broker */
     //@Test
     fun testKafkaIntegration() {
@@ -131,7 +179,10 @@
             launch {
                 repeat(5) {
                     delay(100)
-                    blueprintMessageProducerService.sendMessage("this is my message($it)")
+                    val headers: MutableMap<String, String> = hashMapOf()
+                    headers["id"] = it.toString()
+                    blueprintMessageProducerService.sendMessageNB(message = "this is my message($it)",
+                            headers = headers)
                 }
             }
             delay(5000)
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt
index 31bcc15..f23624f 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/BlueprintMessageProducerServiceTest.kt
@@ -20,18 +20,18 @@
 import io.mockk.mockk
 import io.mockk.spyk
 import kotlinx.coroutines.runBlocking
+import org.apache.kafka.clients.producer.KafkaProducer
+import org.apache.kafka.clients.producer.RecordMetadata
 import org.junit.runner.RunWith
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BluePrintProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.core.BlueprintPropertyConfiguration
 import org.onap.ccsdk.cds.blueprintsprocessor.message.BluePrintMessageLibConfiguration
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.kafka.core.KafkaTemplate
-import org.springframework.kafka.support.SendResult
 import org.springframework.test.annotation.DirtiesContext
 import org.springframework.test.context.ContextConfiguration
 import org.springframework.test.context.TestPropertySource
 import org.springframework.test.context.junit4.SpringRunner
-import org.springframework.util.concurrent.SettableListenableFuture
+import java.util.concurrent.Future
 import kotlin.test.Test
 import kotlin.test.assertTrue
 
@@ -57,12 +57,12 @@
             val blueprintMessageProducerService = bluePrintMessageLibPropertyService
                     .blueprintMessageProducerService("sample") as KafkaBasicAuthMessageProducerService
 
-            val mockKafkaTemplate = mockk<KafkaTemplate<String, Any>>()
+            val mockKafkaTemplate = mockk<KafkaProducer<String, ByteArray>>()
 
-            val future = SettableListenableFuture<SendResult<String, Any>>()
-            //future.setException(BluePrintException("failed sending"))
+            val responseMock = mockk<Future<RecordMetadata>>()
+            every { responseMock.get() } returns mockk()
 
-            every { mockKafkaTemplate.send(any(), any()) } returns future
+            every { mockKafkaTemplate.send(any(), any()) } returns responseMock
 
             val spyBluePrintMessageProducerService = spyk(blueprintMessageProducerService, recordPrivateCalls = true)
 
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/MessageLoggerServiceTest.kt b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/MessageLoggerServiceTest.kt
new file mode 100644
index 0000000..82e40ef
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/message/service/MessageLoggerServiceTest.kt
@@ -0,0 +1,61 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.message.service
+
+import io.mockk.every
+import io.mockk.mockk
+import org.apache.kafka.clients.consumer.ConsumerRecord
+import org.apache.kafka.common.header.internals.RecordHeaders
+import org.junit.Test
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.CommonHeader
+import org.onap.ccsdk.cds.blueprintsprocessor.message.toMap
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.slf4j.MDC
+import kotlin.test.assertEquals
+
+class MessageLoggerServiceTest {
+
+
+    @Test
+    fun testMessagingHeaders() {
+        val messageLoggerService = MessageLoggerService()
+        val commonHeader = CommonHeader().apply {
+            requestId = "1234"
+            subRequestId = "1234-12"
+            originatorId = "cds-test"
+        }
+
+        val consumerRecord = mockk<ConsumerRecord<*, *>>()
+        every { consumerRecord.headers() } returns null
+        every { consumerRecord.key() } returns "1234"
+        every { consumerRecord.offset() } returns 12345
+        every { consumerRecord.topic() } returns "sample-topic"
+        every { consumerRecord.timestamp() } returns System.currentTimeMillis()
+        messageLoggerService.messageConsuming(commonHeader, consumerRecord)
+        assertEquals(commonHeader.requestId, MDC.get("RequestID"))
+        assertEquals(commonHeader.subRequestId, MDC.get("InvocationID"))
+
+        val mockHeaders = RecordHeaders()
+        messageLoggerService.messageProducing(mockHeaders)
+        val map = mockHeaders.toMap()
+        assertEquals("1234-12", map[BluePrintConstants.ONAP_REQUEST_ID])
+
+        messageLoggerService.messageConsumingExisting()
+
+    }
+
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/resources/logback-test.xml b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/resources/logback-test.xml
index 3868440..820041f 100644
--- a/ms/blueprintsprocessor/modules/commons/message-lib/src/test/resources/logback-test.xml
+++ b/ms/blueprintsprocessor/modules/commons/message-lib/src/test/resources/logback-test.xml
@@ -1,5 +1,6 @@
 <!--
   ~  Copyright © 2019 IBM.
+  ~  Modifications Copyright © 2018-2019 AT&T Intellectual Property.
   ~
   ~  Licensed under the Apache License, Version 2.0 (the "License");
   ~  you may not use this file except in compliance with the License.
@@ -15,11 +16,18 @@
   -->
 
 <configuration>
+
+    <property name="localPattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
+    <property name="defaultPattern"
+              value="%date{ISO8601,UTC}|%X{RequestID}|%X{InvocationID}|%thread|%X{ServiceName}|%X{ClientIPAddress}|%logger{50}| %msg%n"/>
+    <property name="testing"
+              value="%X{RequestID}|%X{InvocationID}|%logger{50}| %msg%n"/>
+
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <!-- encoders are assigned the type
              ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
         <encoder>
-            <pattern>%d{HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
+            <pattern>${localPattern}</pattern>
         </encoder>
     </appender>
 
diff --git a/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/LoggerExtensions.kt b/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/LoggerExtensions.kt
deleted file mode 100644
index cdf6ce1..0000000
--- a/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/LoggerExtensions.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright © 2018-2019 AT&T Intellectual Property.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.ccsdk.cds.blueprintsprocessor.core
-
-import kotlinx.coroutines.*
-import kotlinx.coroutines.reactor.ReactorContext
-import kotlinx.coroutines.reactor.asCoroutineContext
-import org.onap.ccsdk.cds.blueprintsprocessor.core.service.MonoMDCCoroutine
-import org.onap.ccsdk.cds.controllerblueprints.core.MDCContext
-import reactor.core.publisher.Mono
-import kotlin.coroutines.CoroutineContext
-import kotlin.coroutines.EmptyCoroutineContext
-
-/** Used in Rest controller API methods to populate MDC context to nested coroutines from reactor web filter context. */
-@UseExperimental(InternalCoroutinesApi::class)
-fun <T> monoMdc(context: CoroutineContext = EmptyCoroutineContext,
-                block: suspend CoroutineScope.() -> T?): Mono<T> = Mono.create { sink ->
-
-    val reactorContext = (context[ReactorContext]?.context?.putAll(sink.currentContext())
-            ?: sink.currentContext()).asCoroutineContext()
-    /** Populate MDC context only if present in Reactor Context */
-    val newContext = if (!reactorContext.context.isEmpty
-            && reactorContext.context.hasKey(MDCContext)) {
-        val mdcContext = reactorContext.context.get<MDCContext>(MDCContext)
-        GlobalScope.newCoroutineContext(context + reactorContext + mdcContext)
-    } else GlobalScope.newCoroutineContext(context + reactorContext)
-
-    val coroutine = MonoMDCCoroutine(newContext, sink)
-    sink.onDispose(coroutine)
-    coroutine.start(CoroutineStart.DEFAULT, coroutine, block)
-}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/service/BluePrintProcessorLoggingService.kt b/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/service/BluePrintProcessorLoggingService.kt
deleted file mode 100644
index 4da7dcd..0000000
--- a/ms/blueprintsprocessor/modules/commons/processor-core/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/core/service/BluePrintProcessorLoggingService.kt
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright © 2018-2019 AT&T Intellectual Property.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onap.ccsdk.cds.blueprintsprocessor.core.service
-
-import kotlinx.coroutines.AbstractCoroutine
-import kotlinx.coroutines.InternalCoroutinesApi
-import kotlinx.coroutines.handleCoroutineException
-import org.onap.ccsdk.cds.controllerblueprints.core.logger
-import org.slf4j.MDC
-import org.springframework.http.server.reactive.ServerHttpRequest
-import org.springframework.http.server.reactive.ServerHttpResponse
-import reactor.core.Disposable
-import reactor.core.publisher.MonoSink
-import java.time.ZoneOffset
-import java.time.ZonedDateTime
-import java.time.format.DateTimeFormatter
-import java.util.*
-import kotlin.coroutines.CoroutineContext
-
-class LoggingService {
-    private val log = logger(LoggingService::class)
-
-    companion object {
-        const val ONAP_REQUEST_ID = "X-ONAP-RequestID"
-        const val ONAP_INVOCATION_ID = "X-ONAP-InvocationID"
-        const val ONAP_PARTNER_NAME = "X-ONAP-PartnerName"
-    }
-
-    fun entering(request: ServerHttpRequest) {
-        val headers = request.headers
-        val requestID = defaultToUUID(headers.getFirst(ONAP_REQUEST_ID))
-        val invocationID = defaultToUUID(headers.getFirst(ONAP_INVOCATION_ID))
-        val partnerName = defaultToEmpty(headers.getFirst(ONAP_PARTNER_NAME))
-        MDC.put("InvokeTimestamp", ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT))
-        MDC.put("RequestID", requestID)
-        MDC.put("InvocationID", invocationID)
-        MDC.put("PartnerName", partnerName)
-        MDC.put("ClientIPAddress", defaultToEmpty(request.remoteAddress?.address?.hostAddress))
-        MDC.put("ServerFQDN", defaultToEmpty(request.remoteAddress?.hostString))
-        if (MDC.get("ServiceName") == null || MDC.get("ServiceName").equals("", ignoreCase = true)) {
-            MDC.put("ServiceName", request.uri.path)
-        }
-    }
-
-    fun exiting(request: ServerHttpRequest, response: ServerHttpResponse) {
-        try {
-            val reqHeaders = request.headers
-            val resHeaders = response.headers
-            resHeaders[ONAP_REQUEST_ID] = MDC.get("RequestID")
-            resHeaders[ONAP_INVOCATION_ID] = MDC.get("InvocationID")
-        } catch (e: Exception) {
-            log.warn("couldn't set response headers", e)
-        } finally {
-            MDC.clear()
-        }
-    }
-
-    private fun defaultToEmpty(input: Any?): String {
-        return input?.toString() ?: ""
-    }
-
-    private fun defaultToUUID(input: String?): String {
-        return input ?: UUID.randomUUID().toString()
-    }
-}
-
-
-@InternalCoroutinesApi
-class MonoMDCCoroutine<in T>(
-        parentContext: CoroutineContext,
-        private val sink: MonoSink<T>
-) : AbstractCoroutine<T>(parentContext, true), Disposable {
-    private var disposed = false
-
-    override fun onCompleted(value: T) {
-        if (!disposed) {
-            if (value == null) sink.success() else sink.success(value)
-        }
-    }
-
-    override fun onCancelled(cause: Throwable, handled: Boolean) {
-        if (!disposed) {
-            sink.error(cause)
-        } else if (!handled) {
-            handleCoroutineException(context, cause)
-        }
-    }
-
-    override fun dispose() {
-        disposed = true
-        cancel()
-    }
-
-    override fun isDisposed(): Boolean = disposed
-}
diff --git a/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt b/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt
new file mode 100644
index 0000000..cec11ae
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/commons/rest-lib/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/rest/service/RestLoggerService.kt
@@ -0,0 +1,126 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.rest.service
+
+import kotlinx.coroutines.*
+import kotlinx.coroutines.reactor.ReactorContext
+import kotlinx.coroutines.reactor.asCoroutineContext
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants.ONAP_INVOCATION_ID
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants.ONAP_PARTNER_NAME
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants.ONAP_REQUEST_ID
+import org.onap.ccsdk.cds.controllerblueprints.core.MDCContext
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToEmpty
+import org.onap.ccsdk.cds.controllerblueprints.core.defaultToUUID
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.slf4j.MDC
+import org.springframework.http.server.reactive.ServerHttpRequest
+import org.springframework.http.server.reactive.ServerHttpResponse
+import reactor.core.Disposable
+import reactor.core.publisher.Mono
+import reactor.core.publisher.MonoSink
+import java.net.InetAddress
+import java.time.ZoneOffset
+import java.time.ZonedDateTime
+import java.time.format.DateTimeFormatter
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+
+class RestLoggerService {
+    private val log = logger(RestLoggerService::class)
+
+
+    fun entering(request: ServerHttpRequest) {
+        val localhost = InetAddress.getLocalHost()
+        val headers = request.headers
+        val requestID = headers.getFirst(ONAP_REQUEST_ID).defaultToUUID()
+        val invocationID = headers.getFirst(ONAP_INVOCATION_ID).defaultToUUID()
+        val partnerName = headers.getFirst(ONAP_PARTNER_NAME).defaultToEmpty()
+        MDC.put("InvokeTimestamp", ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT))
+        MDC.put("RequestID", requestID)
+        MDC.put("InvocationID", invocationID)
+        MDC.put("PartnerName", partnerName)
+        MDC.put("ClientIPAddress", request.remoteAddress?.address?.hostAddress.defaultToEmpty())
+        MDC.put("ServerFQDN",localhost.hostName.defaultToEmpty())
+        if (MDC.get("ServiceName") == null || MDC.get("ServiceName").equals("", ignoreCase = true)) {
+            MDC.put("ServiceName", request.uri.path)
+        }
+    }
+
+    fun exiting(request: ServerHttpRequest, response: ServerHttpResponse) {
+        try {
+            val reqHeaders = request.headers
+            val resHeaders = response.headers
+            resHeaders[ONAP_REQUEST_ID] = MDC.get("RequestID")
+            resHeaders[ONAP_INVOCATION_ID] = MDC.get("InvocationID")
+            val partnerName = System.getProperty("APPNAME") ?: "BlueprintsProcessor"
+            resHeaders[ONAP_PARTNER_NAME] = partnerName
+        } catch (e: Exception) {
+            log.warn("couldn't set response headers", e)
+        } finally {
+            MDC.clear()
+        }
+    }
+}
+
+
+/** Used in Rest controller API methods to populate MDC context to nested coroutines from reactor web filter context. */
+@UseExperimental(InternalCoroutinesApi::class)
+fun <T> monoMdc(context: CoroutineContext = EmptyCoroutineContext,
+                block: suspend CoroutineScope.() -> T?): Mono<T> = Mono.create { sink ->
+
+    val reactorContext = (context[ReactorContext]?.context?.putAll(sink.currentContext())
+            ?: sink.currentContext()).asCoroutineContext()
+    /** Populate MDC context only if present in Reactor Context */
+    val newContext = if (!reactorContext.context.isEmpty
+            && reactorContext.context.hasKey(MDCContext)) {
+        val mdcContext = reactorContext.context.get<MDCContext>(MDCContext)
+        GlobalScope.newCoroutineContext(context + reactorContext + mdcContext)
+    } else GlobalScope.newCoroutineContext(context + reactorContext)
+
+    val coroutine = MonoMDCCoroutine(newContext, sink)
+    sink.onDispose(coroutine)
+    coroutine.start(CoroutineStart.DEFAULT, coroutine, block)
+}
+
+@InternalCoroutinesApi
+class MonoMDCCoroutine<in T>(
+        parentContext: CoroutineContext,
+        private val sink: MonoSink<T>
+) : AbstractCoroutine<T>(parentContext, true), Disposable {
+    private var disposed = false
+
+    override fun onCompleted(value: T) {
+        if (!disposed) {
+            if (value == null) sink.success() else sink.success(value)
+        }
+    }
+
+    override fun onCancelled(cause: Throwable, handled: Boolean) {
+        if (!disposed) {
+            sink.error(cause)
+        } else if (!handled) {
+            handleCoroutineException(context, cause)
+        }
+    }
+
+    override fun dispose() {
+        disposed = true
+        cancel()
+    }
+
+    override fun isDisposed(): Boolean = disposed
+}
diff --git a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt
index a6bff70..bf251f6 100644
--- a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/BlueprintModelController.kt
@@ -19,9 +19,9 @@
 
 import io.swagger.annotations.ApiOperation
 import io.swagger.annotations.ApiParam
-import org.onap.ccsdk.cds.blueprintsprocessor.core.monoMdc
 import org.onap.ccsdk.cds.blueprintsprocessor.db.primary.domain.BlueprintModelSearch
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.handler.BluePrintModelHandler
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.monoMdc
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
 import org.springframework.core.io.Resource
 import org.springframework.http.MediaType
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
index f14f61e..3456506 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceController.kt
@@ -23,7 +23,7 @@
 import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ACTION_MODE_ASYNC
 import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
 import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutput
-import org.onap.ccsdk.cds.blueprintsprocessor.core.monoMdc
+import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.monoMdc
 import org.onap.ccsdk.cds.blueprintsprocessor.selfservice.api.utils.determineHttpStatusCode
 import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
 import org.onap.ccsdk.cds.controllerblueprints.core.logger
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt
index 20af589..ade47cf 100644
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandler.kt
@@ -23,11 +23,13 @@
 import kotlinx.coroutines.launch
 import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.*
 import org.onap.ccsdk.cds.blueprintsprocessor.selfservice.api.utils.toProto
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractServiceFunction
 import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
 import org.onap.ccsdk.cds.controllerblueprints.core.config.BluePrintLoadConfiguration
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintCatalogService
 import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintWorkflowExecutionService
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
 import org.slf4j.LoggerFactory
 import org.springframework.stereotype.Service
@@ -70,26 +72,45 @@
         val blueprintName = actionIdentifiers.blueprintName
         val blueprintVersion = actionIdentifiers.blueprintVersion
         try {
-            val basePath = blueprintsProcessorCatalogService.getFromDatabase(blueprintName, blueprintVersion)
-            log.info("blueprint base path $basePath")
+            /** Check Blueprint is needed for this request */
+            if (checkServiceFunction(executionServiceInput)) {
+                return executeServiceFunction(executionServiceInput)
+            } else {
+                val basePath = blueprintsProcessorCatalogService.getFromDatabase(blueprintName, blueprintVersion)
+                log.info("blueprint base path $basePath")
 
-            val blueprintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(requestId, basePath.toString())
+                val blueprintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(requestId, basePath.toString())
 
-            val output = bluePrintWorkflowExecutionService.executeBluePrintWorkflow(blueprintRuntimeService,
-                    executionServiceInput, hashMapOf())
+                val output = bluePrintWorkflowExecutionService.executeBluePrintWorkflow(blueprintRuntimeService,
+                        executionServiceInput, hashMapOf())
 
-            val errors = blueprintRuntimeService.getBluePrintError().errors
-            if (errors.isNotEmpty()) {
-                val errorMessage = errors.stream().map { it.toString() }.collect(Collectors.joining(", "))
-                setErrorStatus(errorMessage, output.status)
+                val errors = blueprintRuntimeService.getBluePrintError().errors
+                if (errors.isNotEmpty()) {
+                    val errorMessage = errors.stream().map { it.toString() }.collect(Collectors.joining(", "))
+                    setErrorStatus(errorMessage, output.status)
+                }
+                return output
             }
-            return output
         } catch (e: Exception) {
             log.error("fail processing request id $requestId", e)
             return response(executionServiceInput, e.localizedMessage ?: e.message ?: e.toString(), true)
         }
     }
 
+    /** If the blueprint name is default, It means no blueprint is needed for the execution */
+    fun checkServiceFunction(executionServiceInput: ExecutionServiceInput): Boolean {
+        return executionServiceInput.actionIdentifiers.blueprintName == "default"
+    }
+
+    /** If no blueprint is needed, then get the Service function instance mapping to the action name and execute it */
+    suspend fun executeServiceFunction(executionServiceInput: ExecutionServiceInput): ExecutionServiceOutput {
+        val actionName = executionServiceInput.actionIdentifiers.actionName
+        val instance = BluePrintDependencyService.instance<AbstractServiceFunction>(actionName)
+        checkNotNull(instance) { "failed to initialize service function($actionName)" }
+        instance.actionName = actionName
+        return instance.applyNB(executionServiceInput)
+    }
+
     private fun setErrorStatus(errorMessage: String, status: Status) {
         status.errorMessage = errorMessage
         status.eventType = EventType.EVENT_COMPONENT_FAILURE.name
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt
new file mode 100644
index 0000000..293da0d
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/selfservice/api/ExecutionServiceHandlerTest.kt
@@ -0,0 +1,84 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.selfservice.api
+
+import io.mockk.mockk
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.runner.RunWith
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ActionIdentifiers
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.CommonHeader
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractServiceFunction
+import org.onap.ccsdk.cds.controllerblueprints.core.jsonAsJsonType
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.context.ApplicationContext
+import org.springframework.stereotype.Service
+import org.springframework.test.context.ContextConfiguration
+import org.springframework.test.context.junit4.SpringRunner
+import kotlin.test.Test
+import kotlin.test.assertNotNull
+import kotlin.test.assertTrue
+
+@RunWith(SpringRunner::class)
+@ContextConfiguration(classes = [MockServiceAction::class])
+class ExecutionServiceHandlerTest {
+
+    @Autowired
+    lateinit var applicationContext: ApplicationContext
+
+    @Before
+    fun init() {
+        BluePrintDependencyService.inject(applicationContext)
+    }
+
+    @Test
+    fun testExecuteServiceFunction() {
+        val executionServiceInput = ExecutionServiceInput().apply {
+            commonHeader = CommonHeader().apply {
+                requestId = "1234"
+                subRequestId = "1234-12"
+                originatorId = "cds-test"
+            }
+            actionIdentifiers = ActionIdentifiers().apply {
+                blueprintName = "default"
+                blueprintVersion = "1.0.0"
+                actionName = "mock-service-action"
+            }
+        }
+        runBlocking {
+            val executionServiceHandler = ExecutionServiceHandler(mockk(), mockk(), mockk())
+            val isServiceFunction = executionServiceHandler.checkServiceFunction(executionServiceInput)
+            assertTrue(isServiceFunction, "failed to checkServiceFunction")
+            val executionServiceOutput = executionServiceHandler.executeServiceFunction(executionServiceInput)
+            assertNotNull(executionServiceOutput, "failed to get executionServiceOutput")
+        }
+    }
+}
+
+@Service("mock-service-action")
+class MockServiceAction : AbstractServiceFunction() {
+    override suspend fun processNB(executionRequest: ExecutionServiceInput) {
+        val responsePayload = """{"answer" : "correct"}""".jsonAsJsonType()
+        setResponsePayloadForAction(responsePayload)
+    }
+
+    override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {
+
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractServiceFunction.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractServiceFunction.kt
new file mode 100644
index 0000000..67ab9c4
--- /dev/null
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/AbstractServiceFunction.kt
@@ -0,0 +1,112 @@
+/*
+ * Copyright © 2018-2019 AT&T Intellectual Property.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.services.execution
+
+import com.fasterxml.jackson.databind.JsonNode
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutput
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.Status
+import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BlueprintFunctionNode
+import org.onap.ccsdk.cds.controllerblueprints.core.jsonPathParse
+import org.onap.ccsdk.cds.controllerblueprints.core.logger
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
+
+/** This implementation is used to build services, which doesn't need blueprints */
+abstract class AbstractServiceFunction : BlueprintFunctionNode<ExecutionServiceInput, ExecutionServiceOutput> {
+
+    @Transient
+    private val log = logger(AbstractServiceFunction::class)
+
+    lateinit var executionServiceInput: ExecutionServiceInput
+    var executionServiceOutput = ExecutionServiceOutput()
+    lateinit var processId: String
+    lateinit var actionName: String
+    lateinit var responseActionPayload: JsonNode
+
+    override fun getName(): String {
+        return actionName
+    }
+
+    override suspend fun prepareRequestNB(executionRequest: ExecutionServiceInput): ExecutionServiceInput {
+
+        this.executionServiceInput = executionRequest
+
+        actionName = executionRequest.actionIdentifiers.actionName
+        check(actionName.isNotEmpty()) { "couldn't get action name" }
+
+        processId = executionRequest.commonHeader.requestId
+        check(processId.isNotEmpty()) { "couldn't get process id for service action($actionName)" }
+
+        return executionRequest
+    }
+
+    override suspend fun applyNB(executionServiceInput: ExecutionServiceInput): ExecutionServiceOutput {
+        try {
+            prepareRequestNB(executionServiceInput)
+            processNB(executionServiceInput)
+        } catch (runtimeException: RuntimeException) {
+            log.error("failed in ${getName()} : ${runtimeException.message}", runtimeException)
+            recoverNB(runtimeException, executionServiceInput)
+        }
+        return prepareResponseNB()
+    }
+
+    override suspend fun prepareResponseNB(): ExecutionServiceOutput {
+        log.debug("Preparing Response...")
+        executionServiceOutput.commonHeader = executionServiceInput.commonHeader
+        executionServiceOutput.actionIdentifiers = executionServiceInput.actionIdentifiers
+        var status = Status()
+        try {
+            // Set the Response Payload
+            executionServiceOutput.payload = JacksonUtils.objectMapper.createObjectNode()
+            executionServiceOutput.payload.set("$actionName-response", responseActionPayload)
+            // Set the Default Step Status
+            status.eventType = EventType.EVENT_COMPONENT_EXECUTED.name
+        } catch (e: Exception) {
+            status.message = BluePrintConstants.STATUS_FAILURE
+            status.eventType = EventType.EVENT_COMPONENT_FAILURE.name
+        }
+        executionServiceOutput.status = status
+        return this.executionServiceOutput
+    }
+
+    fun setResponsePayloadForAction(actionPayload: JsonNode) {
+        this.responseActionPayload = actionPayload
+    }
+
+    /**
+     * Get Execution Input Payload data
+     */
+    fun requestPayload(): JsonNode? {
+        return executionServiceInput.payload
+    }
+
+    /**
+     * Get Execution Input payload action property with [expression]
+     * ex: requestPayloadActionProperty("data") will look for path "payload/<action-name>-request/data"
+     */
+    fun requestPayloadActionProperty(expression: String?): JsonNode? {
+        val requestExpression = if (expression.isNullOrBlank()) {
+            "$actionName-request"
+        } else {
+            "$actionName-request.$expression"
+        }
+        return executionServiceInput.payload.jsonPathParse(".$requestExpression")
+    }
+}
\ No newline at end of file
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/MockBluePrintProcessingServer.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/MockBluePrintProcessingServer.kt
index e291aa7..6bffffd 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/MockBluePrintProcessingServer.kt
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/MockBluePrintProcessingServer.kt
@@ -18,8 +18,12 @@
 
 import io.grpc.ServerBuilder
 import io.grpc.stub.StreamObserver
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
+import org.onap.ccsdk.cds.blueprintsprocessor.grpc.interceptor.GrpcServerLoggingInterceptor
 import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType
 import org.onap.ccsdk.cds.controllerblueprints.common.api.Status
+import org.onap.ccsdk.cds.controllerblueprints.core.MDCContext
 import org.onap.ccsdk.cds.controllerblueprints.core.logger
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput
@@ -36,8 +40,13 @@
             override fun onNext(executionServiceInput: ExecutionServiceInput) {
                 log.info("Received requestId(${executionServiceInput.commonHeader.requestId})  " +
                         "subRequestId(${executionServiceInput.commonHeader.subRequestId})")
-                responseObserver.onNext(buildNotification(executionServiceInput))
-                responseObserver.onNext(buildResponse(executionServiceInput))
+                runBlocking {
+                    launch(MDCContext()) {
+                        responseObserver.onNext(buildNotification(executionServiceInput))
+                        responseObserver.onNext(buildResponse(executionServiceInput))
+                        log.info("message has sent successfully...")
+                    }
+                }
                 responseObserver.onCompleted()
             }
 
@@ -85,6 +94,7 @@
     try {
         val server = ServerBuilder
                 .forPort(50052)
+                .intercept(GrpcServerLoggingInterceptor())
                 .addService(MockBluePrintProcessingServer())
                 .build()
         server.start()
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/StreamingRemoteExecutionServiceTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/StreamingRemoteExecutionServiceTest.kt
index 29d24c6..9a5be01 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/StreamingRemoteExecutionServiceTest.kt
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/StreamingRemoteExecutionServiceTest.kt
@@ -16,6 +16,7 @@
 
 package org.onap.ccsdk.cds.blueprintsprocessor.services.execution
 
+import com.google.protobuf.util.JsonFormat
 import io.grpc.inprocess.InProcessChannelBuilder
 import io.grpc.inprocess.InProcessServerBuilder
 import io.grpc.testing.GrpcCleanupRule
@@ -26,6 +27,7 @@
 import kotlinx.coroutines.flow.collect
 import org.junit.Rule
 import org.junit.Test
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ACTION_MODE_SYNC
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.GRPCLibConstants
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.TokenAuthGrpcClientProperties
 import org.onap.ccsdk.cds.blueprintsprocessor.grpc.service.BluePrintGrpcLibPropertyService
@@ -132,12 +134,17 @@
                 .setActionName("SampleScript")
                 .setBlueprintName("sample-cba")
                 .setBlueprintVersion("1.0.0")
+                .setMode(ACTION_MODE_SYNC)
                 .build()
 
+        val jsonContent = """{ "key1" : "value1" }"""
+        val payloadBuilder = ExecutionServiceInput.newBuilder().payloadBuilder
+        JsonFormat.parser().merge(jsonContent, payloadBuilder)
+
         return ExecutionServiceInput.newBuilder()
                 .setCommonHeader(commonHeader)
                 .setActionIdentifiers(actionIdentifier)
-                //.setPayload(payloadBuilder.build())
+                .setPayload(payloadBuilder.build())
                 .build()
 
     }
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/logback-test.xml b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/logback-test.xml
index afe10b3..8951e1a 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/logback-test.xml
+++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/logback-test.xml
@@ -15,11 +15,18 @@
   -->
 
 <configuration>
+
+    <property name="localPattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
+    <property name="defaultPattern"
+              value="%date{ISO8601,UTC}|%X{RequestID}|%X{InvocationID}|%thread|%X{ServiceName}|%X{ClientIPAddress}|%logger{50}| %msg%n"/>
+    <property name="testing"
+              value="%X{RequestID}|%X{InvocationID}|%logger{50}| %msg%n"/>
+
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <!-- encoders are assigned the type
              ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
         <encoder>
-            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <pattern>${testing}</pattern>
         </encoder>
     </appender>
 
diff --git a/ms/blueprintsprocessor/parent/pom.xml b/ms/blueprintsprocessor/parent/pom.xml
index 1c11cff..b8bf820 100755
--- a/ms/blueprintsprocessor/parent/pom.xml
+++ b/ms/blueprintsprocessor/parent/pom.xml
@@ -48,6 +48,7 @@
         <json.unit.version>2.8.0</json.unit.version>
         <xmlunit.version>2.6.3</xmlunit.version>
 
+        <netty-ssl>2.0.26.Final</netty-ssl>
         <sshd.version>2.2.0</sshd.version>
         <jsch.version>0.1.55</jsch.version>
         <jython.version>2.7.1</jython.version>
@@ -269,6 +270,11 @@
                 <artifactId>protobuf-java-util</artifactId>
                 <version>${protobuff.java.utils.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty-tcnative-boringssl-static</artifactId>
+                <version>${netty-ssl}</version>
+            </dependency>
 
             <!-- Adaptors -->
             <dependency>
@@ -664,6 +670,10 @@
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java-util</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-tcnative-boringssl-static</artifactId>
+        </dependency>
     </dependencies>
 
     <repositories>
diff --git a/ms/command-executor/src/main/docker/Dockerfile b/ms/command-executor/src/main/docker/Dockerfile
index c0458bd..b28e580 100644
--- a/ms/command-executor/src/main/docker/Dockerfile
+++ b/ms/command-executor/src/main/docker/Dockerfile
@@ -1,8 +1,5 @@
 FROM python:3.6-slim
 
-ENV HTTP_PROXY  ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
 ENV GRPC_PYTHON_VERSION 1.20.0
 RUN python -m pip install --upgrade pip
 RUN pip install grpcio==${GRPC_PYTHON_VERSION} grpcio-tools==${GRPC_PYTHON_VERSION}
@@ -21,4 +18,4 @@
 
 VOLUME /opt/app/onap/blueprints/deploy/
 
-ENTRYPOINT /opt/app/onap/start.sh
\ No newline at end of file
+ENTRYPOINT /opt/app/onap/start.sh
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt
index 09350ac..509b8ca 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/BluePrintConstants.kt
@@ -24,11 +24,14 @@
  */
 object BluePrintConstants {
 
-    const val RESPONSE_HEADER_TRANSACTION_ID: String = "X-ONAP-RequestID"
     const val RESPONSE_HEADER_MINOR_VERSION: String = "X-MinorVersion"
     const val RESPONSE_HEADER_PATCH_VERSION: String = "X-PatchVersion"
     const val RESPONSE_HEADER_LATEST_VERSION: String = "X-LatestVersion"
 
+    const val ONAP_REQUEST_ID = "X-ONAP-RequestID"
+    const val ONAP_INVOCATION_ID = "X-ONAP-InvocationID"
+    const val ONAP_PARTNER_NAME = "X-ONAP-PartnerName"
+
     const val STATUS_SUCCESS: String = "success"
     const val STATUS_PROCESSING: String = "processing"
     const val STATUS_FAILURE: String = "failure"
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/CustomFunctions.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/CustomFunctions.kt
index 1aaf9d8..7aa2fc8 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/CustomFunctions.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/CustomFunctions.kt
@@ -24,6 +24,7 @@
 import org.onap.ccsdk.cds.controllerblueprints.core.utils.JsonParserUtils
 import org.slf4j.LoggerFactory
 import org.slf4j.helpers.MessageFormatter
+import java.util.*
 import kotlin.reflect.KClass
 
 /**
@@ -36,6 +37,13 @@
 
 fun <T : KClass<*>> logger(clazz: T) = LoggerFactory.getLogger(clazz.java)!!
 
+fun <T : Any> T?.defaultToEmpty(): String {
+    return this?.toString() ?: ""
+}
+
+fun <T : Any> T?.defaultToUUID(): String {
+    return this?.toString() ?: UUID.randomUUID().toString()
+}
 
 fun <T : Any> T.bpClone(): T {
     return ObjectUtils.clone(this)
@@ -175,7 +183,7 @@
 
 fun <T> JsonNode.asType(clazzType: Class<T>): T {
     return JacksonUtils.readValue(this, clazzType)
-        ?: throw BluePrintException("couldn't convert JsonNode of type $clazzType")
+            ?: throw BluePrintException("couldn't convert JsonNode of type $clazzType")
 }
 
 fun JsonNode.asListOfString(): List<String> {
@@ -186,8 +194,7 @@
 fun <T : JsonNode> T?.returnNullIfMissing(): JsonNode? {
     return if (this == null || this is NullNode || this is MissingNode) {
         null
-    }
-    else this
+    } else this
 }
 
 fun <T : JsonNode> T?.isNullOrMissing(): Boolean {
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/MDCContextTest.kt b/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/MDCContextTest.kt
index 2ddb450..6c92d18 100644
--- a/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/MDCContextTest.kt
+++ b/ms/controllerblueprints/modules/blueprint-core/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/MDCContextTest.kt
@@ -39,13 +39,13 @@
 
     @Test
     fun testContextCanBePassedBetweenCoroutines() {
-        MDC.put(BluePrintConstants.RESPONSE_HEADER_TRANSACTION_ID, "12345")
+        MDC.put(BluePrintConstants.ONAP_REQUEST_ID, "12345")
         runBlocking {
             GlobalScope.launch {
-                assertEquals(null, MDC.get(BluePrintConstants.RESPONSE_HEADER_TRANSACTION_ID))
+                assertEquals(null, MDC.get(BluePrintConstants.ONAP_REQUEST_ID))
             }
             launch(MDCContext()) {
-                assertEquals("12345", MDC.get(BluePrintConstants.RESPONSE_HEADER_TRANSACTION_ID),
+                assertEquals("12345", MDC.get(BluePrintConstants.ONAP_REQUEST_ID),
                         "couldn't get request id")
 
                 MDC.put("client_id", "client-1")
diff --git a/ms/py-executor/README b/ms/py-executor/README
new file mode 100644
index 0000000..919795a
--- /dev/null
+++ b/ms/py-executor/README
@@ -0,0 +1,5 @@
+
+Generate Server Certificates
+------------------------------
+
+openssl req -x509 -newkey rsa:4096 -keyout py-executor-key.pem -out py-executor-chain.pem -days 3650 -nodes -subj '/CN=localhost'
\ No newline at end of file
diff --git a/ms/py-executor/client.py b/ms/py-executor/client.py
new file mode 100644
index 0000000..c5bdc43
--- /dev/null
+++ b/ms/py-executor/client.py
@@ -0,0 +1,67 @@
+#  Copyright © 2018-2019 AT&T Intellectual Property.
+#
+#  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.
+#
+#  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.
+
+import grpc
+from blueprints_grpc.proto.BluePrintProcessing_pb2_grpc import BluePrintProcessingServiceStub
+from blueprints_grpc.proto.BluePrintProcessing_pb2 import ExecutionServiceInput
+from blueprints_grpc.proto.BluePrintCommon_pb2 import CommonHeader, ActionIdentifiers
+
+
+def generate_messages():
+    commonHeader = CommonHeader()
+    commonHeader.requestId = "1234"
+    commonHeader.subRequestId = "1234-1"
+    commonHeader.originatorId = "CDS"
+
+    actionIdentifiers = ActionIdentifiers()
+    actionIdentifiers.blueprintName = "sample-cba"
+    actionIdentifiers.blueprintVersion = "1.0.0"
+    actionIdentifiers.actionName = "SampleScript"
+
+    input = ExecutionServiceInput(commonHeader=commonHeader, actionIdentifiers=actionIdentifiers)
+
+    commonHeader2 = CommonHeader()
+    commonHeader2.requestId = "1235"
+    commonHeader2.subRequestId = "1234-2"
+    commonHeader2.originatorId = "CDS"
+    input2 = ExecutionServiceInput(commonHeader=commonHeader2, actionIdentifiers=actionIdentifiers)
+
+    inputs = [input, input2]
+    for input in inputs:
+        print(input)
+        yield input
+
+
+if __name__ == '__main__':
+    with open('py-executor-chain.pem', 'rb') as f:
+        creds = grpc.ssl_channel_credentials(f.read())
+    channel = grpc.secure_channel('localhost:50052', creds)
+    stub = BluePrintProcessingServiceStub(channel)
+
+    messages = generate_messages()
+    responses = stub.process(messages)
+    for response in responses:
+        print(response)
diff --git a/ms/py-executor/configuration.ini b/ms/py-executor/configuration.ini
index 8c36dd0..5688f39 100644
--- a/ms/py-executor/configuration.ini
+++ b/ms/py-executor/configuration.ini
@@ -1,6 +1,11 @@
 [scriptExecutor]
 port=%(APP_PORT)s
-auth=%(BASIC_AUTH)s
+authType=%(AUTH_TYPE)s
+# For Token Auth
+token=%(AUTH_TOKEN)s
+# For TLS Auth
+certChain=%(AUTH_CERT_CHAIN)s
+privateKey=%(AUTH_PRIVATE_KEY)s
 logFile=%(LOG_FILE)s
 maxWorkers=20
 
diff --git a/ms/py-executor/dc/docker-compose.yaml b/ms/py-executor/dc/docker-compose.yaml
index 7600941..30298e3 100755
--- a/ms/py-executor/dc/docker-compose.yaml
+++ b/ms/py-executor/dc/docker-compose.yaml
@@ -16,7 +16,11 @@
       STICKYSELECTORKEY:
       ENVCONTEXT: dev
       APP_PORT: 50052
-      BASIC_AUTH: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+      #AUTH_TYPE: basic-auth
+      #AUTH_TOKEN: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+      AUTH_TYPE: tls-auth
+      AUTH_CERT_CHAIN: /opt/app/onap/python/py-executor-chain.pem
+      AUTH_PRIVATE_KEY: /opt/app/onap/python/py-executor-key.pem
       LOG_FILE: /opt/app/onap/logs/application.log
 
 volumes:
diff --git a/ms/py-executor/docker/Dockerfile b/ms/py-executor/docker/Dockerfile
index b49daf6..9e86cc8 100644
--- a/ms/py-executor/docker/Dockerfile
+++ b/ms/py-executor/docker/Dockerfile
@@ -1,8 +1,5 @@
 FROM python:3.7-slim
 
-ENV HTTP_PROXY  ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
 RUN mkdir -p /opt/app/onap/logs/ && touch /opt/app/onap/logs/application.log
 
 COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
@@ -15,4 +12,4 @@
 
 VOLUME /opt/app/onap/blueprints/deploy/
 
-ENTRYPOINT /opt/app/onap/python/start.sh
\ No newline at end of file
+ENTRYPOINT /opt/app/onap/python/start.sh
diff --git a/ms/py-executor/docker/distribution.xml b/ms/py-executor/docker/distribution.xml
index 6235a7b..bb7a8d2 100755
--- a/ms/py-executor/docker/distribution.xml
+++ b/ms/py-executor/docker/distribution.xml
@@ -38,6 +38,9 @@
             <includes>
                 <include>requirements.txt</include>
                 <include>configuration.ini</include>
+                <include>*.crt</include>
+                <include>*.key</include>
+                 <include>*.pem</include>
             </includes>
             <useDefaultExcludes>true</useDefaultExcludes>
             <fileMode>0666</fileMode>
diff --git a/ms/py-executor/py-executor-chain.pem b/ms/py-executor/py-executor-chain.pem
new file mode 100644
index 0000000..30f09df
--- /dev/null
+++ b/ms/py-executor/py-executor-chain.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEpDCCAowCCQDyhR+GR2RUiTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
+b2NhbGhvc3QwHhcNMTkxMDIzMDAwMTA0WhcNMjkxMDIwMDAwMTA0WjAUMRIwEAYD
+VQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCs
+c4d6qfbW+GSMp+XURoLXtSAbbehoBXL2beSzqQNW6e+Q9IVtSPZst8VRjUXelFzM
+m7VpS9jhiXOPZ5KKUOD0GVuNQc54VpwtHt7t9L5wS9OvdnLijnMIkc0iUvC6+Rcq
+HSfbNC2Tb+a8jLwojmtRCeY/MyCnmqYpD+U3b6Eue89VpMOIfmDuTqSRRBYNVO72
+hq7FI3UD8+zREg7htfzjJjG14Ec5iVMDxJA1FlwtXFnZxDHgbLjEVjTTR/9Wm1eU
+aJ4oWRt3gG/vnJNa+GwN4w/My+j/5/n/YpNh6GeQrHxBl/SL/SAFBshlwozr4K4K
+av5MqRKyhCACV4SsdhKJUEDtvrtukJvh/ZDW8jdNbFJAljm8UucZGbJrZl6G7XB3
+WteI7rezo0mL0NMBZIT3nQSMEpefKUFZFiE5lYvIk3UuChqIM0xdgV4INwLRHZdc
+1TtiGaBJV05y3Klo5gaUgNGbHP26zfub5TydiMrOA5W2mUvMkG2oit9aqnbaZBLD
+t17cCKzpzcVF5uNUng3j6sQvpTt3S4L28TvKUMAfpecQqvxMoxG0/9HZuv2z+U+L
+LVVsS07yJPIGMLcq1LMM++8LwD1MupcoShjNOq/lUOL6hIMfLOIfxt8Kv8WykVzv
+6yjKEIurjkwMipq4kvr9J7FFi54kGr7uvXWQRHDFJwIDAQABMA0GCSqGSIb3DQEB
+CwUAA4ICAQB7gJzvaOIP3/S2jrObz67g0jiz1cfb4I9KQwpwb6JUWbYm1QjBcGm4
+IhNbdPMD6dpwBc/A4JctA5E+/fArvl14UtK1jkaaE/GCumL0VUSZeAM6CK/63brt
+LplqCunv8ePHmiwjJBnhu+ewe1+mDMVDMw0iot/q+pOM3vqNS1Fipja+xFK1JQZx
+JmkjW/Ug3NHk/SSTfO+VNmlI5bBBApMqKmd9picsyDZ7dTBtZvbqV5eQsPZvv14G
+oEvWnvvom+D5GojroSO+OMHNDR3bzK6p0Cu8AiTy9Ls6J2e4GXJz3Cg/kuF9tNlR
+3X62zDT+CUipuYyTvmjbSyNMGwU7BIZTKFPuTtjh7EwT2g6S8RV9PmT98CQW6kTT
+RJbL7nMIOF0WusysAT5wj1HJ0QKBQCXK+L6WTKTTovaEE7JSVrYe7wVF8Q9SyBIM
+4CPVZt+GMyQKJ9SRnVgTDEMb7sj9HPaoVeDc6LQTv8Q//wFeTdZIWXQhpVJCQCEG
+qkRk9r3isF60ISOXXIYhqE+hx3QXY9M2UyHDtKXPZ7X370vADi2ebBMF8MpIZYl5
+628dME9JhOhLhD5qPJeva2Nq4gLpK+rO6t7ML0Us4edoKyoScowXAh80q1GW3EO3
+IxTK123651C/S0kDqLqZ9rknEdpwSujrT2UW95jUlfo5OKDrPpdOBw==
+-----END CERTIFICATE-----
diff --git a/ms/py-executor/py-executor-key.pem b/ms/py-executor/py-executor-key.pem
new file mode 100644
index 0000000..830a3ae
--- /dev/null
+++ b/ms/py-executor/py-executor-key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCsc4d6qfbW+GSM
+p+XURoLXtSAbbehoBXL2beSzqQNW6e+Q9IVtSPZst8VRjUXelFzMm7VpS9jhiXOP
+Z5KKUOD0GVuNQc54VpwtHt7t9L5wS9OvdnLijnMIkc0iUvC6+RcqHSfbNC2Tb+a8
+jLwojmtRCeY/MyCnmqYpD+U3b6Eue89VpMOIfmDuTqSRRBYNVO72hq7FI3UD8+zR
+Eg7htfzjJjG14Ec5iVMDxJA1FlwtXFnZxDHgbLjEVjTTR/9Wm1eUaJ4oWRt3gG/v
+nJNa+GwN4w/My+j/5/n/YpNh6GeQrHxBl/SL/SAFBshlwozr4K4Kav5MqRKyhCAC
+V4SsdhKJUEDtvrtukJvh/ZDW8jdNbFJAljm8UucZGbJrZl6G7XB3WteI7rezo0mL
+0NMBZIT3nQSMEpefKUFZFiE5lYvIk3UuChqIM0xdgV4INwLRHZdc1TtiGaBJV05y
+3Klo5gaUgNGbHP26zfub5TydiMrOA5W2mUvMkG2oit9aqnbaZBLDt17cCKzpzcVF
+5uNUng3j6sQvpTt3S4L28TvKUMAfpecQqvxMoxG0/9HZuv2z+U+LLVVsS07yJPIG
+MLcq1LMM++8LwD1MupcoShjNOq/lUOL6hIMfLOIfxt8Kv8WykVzv6yjKEIurjkwM
+ipq4kvr9J7FFi54kGr7uvXWQRHDFJwIDAQABAoICADepPmRAMbTnDYU8t/jRHXBE
+PO29htL0V0vk4nl+pt5JuZJe6iYA89DZa+3LnG6gEmfUJjSrT4BUXiE+O9U7D7CZ
+8qvgPqUmx1fk6+2AHmuefd/XanNnqQduD/jxLlQbC/gC2xdsev1ok9/tyNmKRmcs
+u81QUkzmpJUCVWiUNkELozswaBBJQj4I0iM1B60b6dlWVVi5/g3dkGVW38jIdaxX
+apoansKaaVoA+s63vd7CPRoFsleOoAB3FqvPREIO97CmJ848HJpwsTB0qDcnkbDV
+xgbDFhxrIozko09ptOvEUILXag45EDmvG8WEivmjVml0aUoTFD7cWHyJBQCpR4fU
+5W9mYd4Rrzbmpb+LGYdNyrp3wo3C7dJ7/ffBMQxmXTdMZkcxorxj4BRG3oACRQ1u
+Ff1iUruZzIIDtEkrC9hc5QpLlDf9b1obm8L9sxf1QmTt59o5oFG40GPwPP19GXwE
+l2faHwho2jYLM9rhuSsK/5sSmUshPNQYmfMnbWzTtghMPE/g0Cfpt8qbspq+G1bk
+z3M97JlFMF83ccRotDElX9E/ttjU7Lehoz+1sOyHiVW1E4oqKer4t+nI2bp6VYZm
+W94qptW7kb4o0DsvPCaoTPBxLJ1ag2WBlqoFkVI0YaxZiZ8OTR55Ovi4z5xWBO1q
+NkCKgdAUQvQVzVtASVGBAoIBAQDSw2nvPFN4gGZ6OI+8j2gWtPcsrhSHS9ykxBeB
+mB/HExYIe8k3EvClf2rnfwzuKgKyVMp7Ev7nH2jS/PGZq37QyXrw0NBGRnvJY0Ez
+YB1KTgf9xaHMGMut5efNvv/cPwYriqosgJ0pdt0vvUAIQ6EBv+iDXXqJ1lQUSRYk
+wKjFABi6TeJY4t9vC474KoXTDaHlwn9+TwnuRBk85wrZzlhK90J0iVa9/Eqeddsc
+Z3CuTlc+NmcP3qvniYODq8nyVc0pKw+28AVYYEd3aJfgm+dpcB21L0oz7CaxH/Rz
+FNONuQRaOzJrcuJsde/KG2X+MHs6hVMXXXWciPrJ2l+Cq7dnAoIBAQDRdwZDcgem
+tJHLihCRzUl9PKip4ZA5757ZyTy6WMLR3wMS2cNTK8+bTrUa0SSC4WSI28pybFA7
+QdSR08c5Nd7jXcIrtqspgZKhb0E60i8VQHhh6ba/kyQjsEz9c/G1WquPK13j2vZ0
+79bomDwFJPsFzABU+sC0/F42ZVQzy9qXkjngjtmaGfrCc7X+pV28nEGtyxHci3L4
+XXfE2dOb+GBVZPLBVXwcthdRYsFuU9GMy2GH0zVtWPOcGRnlpx53Tqg7NIeR0Nm1
+K35EaK8PH92PsAr0Xza7vQHY4cPRz+RhDzjyGQtnhKf96U6gzzt4ZVbQ/UuzDBcL
+PQ2DvUH+sqxBAoIBAEW5kiUsDu0xhTVv2tVll+jTK2ZjnLT5ut/jY2djHTgtrz9V
+PEb1BBmsIoC9PljYGxZGCMpYiW2KrZIHTiIpYwXNcdeTLSPik3cXV+2YIXiAghJJ
+PHKZzWAVS+97/YcubmsfL5cTYWrjQN9XO4TAYtaCV3iGB1DsT9p6J1I3Tl4F3yhb
+NcN0IrjI2R5uauFchC/PfYAaw81ISBUm1iciJYF/dUO6X7DwcvsjQD6QVe3ESwZw
+1v2gC7zIeHKp9WAvVHUHIubBVvNavqnZN01+JjtydNGI+IJe4Jn+WU9tF2OuTqtP
+JCn50sBQ7+gr0j0aatn8W3XCXHNRua3niWtgRYcCggEAT7OzfWxhPuyMYV9qiKAN
+a4ruPp3mjDUCQ6pP4jQuBT+PYtfbe8U63MSpIsgb1XVAFNdVBA70xGd7I/XqY3l9
+ExS08n8yR7vW+Hhl4KTjZ3m9lLwiXmj1omLOGM7KVRBoITUGJ9JEXyB3rM9oXyjA
+H2eNZMh5FSTGEHqj/IV/6paoUSrp37os8VqoEHoJ3d+zGhcf98RT/e9KyGt+GmX6
++eNMf4YwkJg07THfmkRoguNMfCtAtBfZsjbW5MyfShRy7PxC7ZgDju06wXr3yZB9
+dNQuhufH4s27azQUl7w8ETaCm5QuA7i1V2c0FPpljZ052JHZAQsDpbIYd11HREvm
+QQKCAQEA0W7xNYoFvnyikdG0t266LLv1EkWDFdgkelGx/eGe/JZ+au3uTM94EssC
+ni64XX2P8vK/te+c3jItYO4MRgnDJ7GW+bRnJFu2kBE0W4chx7vga0XApVCP+Ugg
+owv5yf9cOAHFulvPefsU0snYStD3gNq77XDg0CwoyUkpeq+GiupoQ8tquMSsrEwp
+ve5DtDip3cLHz2oVLB3mR4kKVwVwmOgO5RKq6N/H6Jxtf/Zk1I260dKr+Dv2MnDh
+dysO4zH5YEt2ML3oY4zY8lu+I5bHCBR1updSny0B31WrXAJyfZpMx+HOwETFKa3B
+v9AGKz0Jc2GOIRKHrCQ/WkZePetaYQ==
+-----END PRIVATE KEY-----
diff --git a/ms/py-executor/server.py b/ms/py-executor/server.py
index 5c149d9..f506e94 100644
--- a/ms/py-executor/server.py
+++ b/ms/py-executor/server.py
@@ -33,21 +33,45 @@
 
 def serve(configuration: ScriptExecutorConfiguration):
     port = configuration.script_executor_property('port')
-    basic_auth = configuration.script_executor_property('auth')
+    authType = configuration.script_executor_property('authType')
     maxWorkers = configuration.script_executor_property('maxWorkers')
 
-    header_validator = RequestHeaderValidatorInterceptor(
-        'authorization', basic_auth, grpc.StatusCode.UNAUTHENTICATED,
-        'Access denied!')
+    if authType == 'tls-auth':
+        cert_chain_file = configuration.script_executor_property('certChain')
+        private_key_file = configuration.script_executor_property('privateKey')
+        logger.info("Setting GRPC server TLS authentication, cert file(%s) private key file(%s)", cert_chain_file,
+                    private_key_file)
+        # read in key and certificate
+        with open(cert_chain_file, 'rb') as f:
+            certificate_chain = f.read()
+        with open(private_key_file, 'rb') as f:
+            private_key = f.read()
 
-    server = grpc.server(futures.ThreadPoolExecutor(max_workers=int(maxWorkers)),
-                         interceptors=(header_validator,))
+        # create server credentials
+        server_credentials = grpc.ssl_server_credentials(((private_key, certificate_chain),))
 
-    BluePrintProcessing_pb2_grpc.add_BluePrintProcessingServiceServicer_to_server(
-        BluePrintProcessingServer(configuration), server)
+        # create server
+        server = grpc.server(futures.ThreadPoolExecutor(max_workers=int(maxWorkers)))
+        BluePrintProcessing_pb2_grpc.add_BluePrintProcessingServiceServicer_to_server(
+            BluePrintProcessingServer(configuration), server)
 
-    server.add_insecure_port('[::]:' + port)
-    server.start()
+        # add secure port using credentials
+        server.add_secure_port('[::]:' + port, server_credentials)
+        server.start()
+    else:
+        logger.info("Setting GRPC server base authentication")
+        basic_auth = configuration.script_executor_property('token')
+        header_validator = RequestHeaderValidatorInterceptor(
+            'authorization', basic_auth, grpc.StatusCode.UNAUTHENTICATED,
+            'Access denied!')
+        # create server with token authentication interceptors
+        server = grpc.server(futures.ThreadPoolExecutor(max_workers=int(maxWorkers)),
+                             interceptors=(header_validator,))
+        BluePrintProcessing_pb2_grpc.add_BluePrintProcessingServiceServicer_to_server(
+            BluePrintProcessingServer(configuration), server)
+
+        server.add_insecure_port('[::]:' + port)
+        server.start()
 
     logger.info("Command Executor Server started on %s" % port)
 
diff --git a/ms/sdclistener/distribution/src/main/docker/Dockerfile b/ms/sdclistener/distribution/src/main/docker/Dockerfile
index e945188..34f6443 100755
--- a/ms/sdclistener/distribution/src/main/docker/Dockerfile
+++ b/ms/sdclistener/distribution/src/main/docker/Dockerfile
@@ -1,8 +1,5 @@
 FROM openjdk:8-jdk-alpine
 
-ENV HTTP_PROXY  ${HTTP_PROXY}
-ENV HTTPS_PROXY ${HTTPS_PROXY}
-
 # add entrypoint
 COPY startService.sh /startService.sh
 RUN chmod 751 /startService.sh