Merge "1- Fix add template & cancel button in templates modal"
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html
index 9f0028b..305ffa6 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/configuration-dashboard/configuration-dashboard.component.html
@@ -728,9 +728,11 @@
                                     </div>
                                 </div>
                             </div>
-                            <button type="button" class="btn btn-sm mb-2 btn-enrich" data-toggle="modal"
-                                    data-target="#enrichModal">
-                                <i class="icon-enrich" aria-hidden="true"></i> Manual Enrich
+                            <button type="button" class="btn btn-sm mb-2 btn-enrich"
+                                    (click)="enrichBluePrint()">
+                                   <!-- data-toggle="modal" data-target="#enrichModal"-->
+
+                                <i class="icon-enrich" aria-hidden="true"></i> Enrich
                             </button>
 
 
@@ -758,6 +760,9 @@
                             <a class="nav-item nav-link" id="nav-authentication-tab" data-toggle="tab"
                                href="#nav-authentication" role="tab" aria-controls="nav-authentication"
                                aria-selected="false">EXTERNAL SYSTEM AUTHENTICATION PROPERTIES</a>
+                            <a class="nav-item nav-link" id="nav-topologytemplate-tab" data-toggle="tab"
+                               href="#nav-topologytemplate" role="tab" aria-controls="nav-authentication"
+                               aria-selected="false">Topology Template</a>
                         </div>
                     </div>
 
@@ -790,6 +795,14 @@
                                     </div>
                                 </div>
                             </div>
+                            <div class="tab-pane fade" id="nav-topologytemplate" role="tabpanel"
+                                 aria-labelledby="nav-authentication-tab">
+                                <div class="card creat-card">
+                                    <div class="editor-container">
+                                        <app-topology-template></app-topology-template>
+                                    </div>
+                                </div>
+                            </div>
                         </div>
                     </div>
                 </div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.css
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.html
new file mode 100644
index 0000000..f673644
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.html
@@ -0,0 +1,13 @@
+<p>topology-template works!</p>
+<ul class="defintionsNote">
+    <li><b>To add new property: </b></li>
+    <li>1. Use Copy and paste option or</li>
+    <li>2. Write them manually</li>
+</ul>
+<ace-editor [(text)]="content" [mode]="'json'"
+            [autoUpdateContent]="true" [durationBeforeCallback]="1000" [theme]="'eclipse'"
+            (textChanged)="textChanged($event)"
+            #editor style="height:300px;"
+            (autocomplete)="content"
+>
+</ace-editor>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.ts
new file mode 100644
index 0000000..8fce695
--- /dev/null
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/topology-template/topology-template.component.ts
@@ -0,0 +1,56 @@
+import {Component, OnDestroy, OnInit} from '@angular/core';
+import {distinctUntilChanged, takeUntil} from 'rxjs/operators';
+import {DesignerStore} from '../../designer/designer.store';
+import {Subject} from 'rxjs';
+import {PackageCreationUtils} from '../package-creation.utils';
+import {PackageCreationStore} from '../package-creation.store';
+
+@Component({
+    selector: 'app-topology-template',
+    templateUrl: './topology-template.component.html',
+    styleUrls: ['./topology-template.component.css']
+})
+export class TopologyTemplateComponent implements OnInit, OnDestroy {
+
+    ngUnsubscribe = new Subject();
+    content = ' ';
+    private cbaPackage: any;
+    private designerState: any;
+
+    constructor(private designerStore: DesignerStore,
+                private packageCreationUtils: PackageCreationUtils,
+                private packageCreationStore: PackageCreationStore) {
+
+        this.packageCreationStore.state$
+            .pipe(distinctUntilChanged((a: any, b: any) => JSON.stringify(a) === JSON.stringify(b)),
+                takeUntil(this.ngUnsubscribe))
+            .subscribe(
+                cbaPackage => {
+                    this.cbaPackage = cbaPackage;
+                });
+        this.designerStore.state$.pipe(
+            distinctUntilChanged((a: any, b: any) => JSON.stringify(a) === JSON.stringify(b)),
+            takeUntil(this.ngUnsubscribe))
+            .subscribe(state => {
+                this.designerState = state;
+                this.content =
+                    this.packageCreationUtils.transformToJson(state.template);
+                console.log(this.content);
+                console.log(state.template);
+            });
+    }
+
+    ngOnInit() {
+    }
+
+    textChanged($event: {}) {
+        this.cbaPackage.templateTopology.content = this.content;
+        this.designerState.template = JSON.parse(this.content);
+
+    }
+
+    ngOnDestroy() {
+        this.ngUnsubscribe.next();
+        this.ngUnsubscribe.complete();
+    }
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css
index e69de29..953346b 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.css
@@ -0,0 +1,6 @@
+.dot {
+    height: 8px;
+    width: 1px;
+    background-color: #0ABDE3;
+
+}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html
index ca88c65..dea94db 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/package-list/package-list.component.html
@@ -33,6 +33,8 @@
                             <p class="packageName" tooltip="{{bluePrint.artifactName}}" placement="bottom">
                                 {{bluePrint.artifactName}}</p>
                             <span class="package-version">v{{bluePrint.artifactVersion}}</span>
+                            <button *ngIf="bluePrint.published.includes('Y')" type="button"
+                                    class="dot"><i class="glyphicon glyphicon-ok"></i></button>
                         </a>
 
                     </div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts
index ad79a13..e231ebe 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages.module.ts
@@ -36,6 +36,8 @@
 import { FunctionsAttributeComponent } from './designer/functions-attribute/functions-attribute.component';
 import { ActionAttributesComponent } from './designer/action-attributes/action-attributes.component';
 import { MatInputModule, MatPaginatorModule, MatProgressSpinnerModule, MatSortModule, MatTableModule } from '@angular/material';
+import { TopologyTemplateComponent } from './package-creation/topology-template/topology-template.component';
+import {CollapseModule} from 'ngx-bootstrap/collapse';
 
 @NgModule({
     declarations: [PackagesDashboardComponent,
@@ -61,6 +63,7 @@
         ImportPackageComponent,
         FunctionsAttributeComponent,
         ActionAttributesComponent,
+        TopologyTemplateComponent,
 
     ],
     imports: [
@@ -80,7 +83,8 @@
         MatTableModule,
         MatPaginatorModule,
         MatSortModule,
-        MatProgressSpinnerModule
+        MatProgressSpinnerModule,
+        CollapseModule
     ],
     providers: [ApiService, JsonPipe, ComponentCanDeactivateGuard],
     bootstrap: []
diff --git a/docs/api-reference/bp-processor.rst b/docs/api-reference/bp-processor.rst
index 31efc40..ea88801 100644
--- a/docs/api-reference/bp-processor.rst
+++ b/docs/api-reference/bp-processor.rst
@@ -23,9 +23,8 @@
 
 Here is the automatically created swagger file for CDS Blueprint Processor API:
 :download:`cds-bp-processor-api-swagger.json <media/cds-bp-processor-api-swagger.json>`
-:download:`cds-bp-processor-api-swagger.yaml <media/cds-bp-processor-api-swagger.yaml>`
 
-You can find a postman collection including sample requests for all endpoints here: 
+You can find a postman collection including sample requests for all endpoints here:
 :download:`bp-processor.postman_collection.json <media/bp-processor.postman_collection.json>`.
 Please keep the Postman Collection up-to-date for new endpoints.
 
diff --git a/docs/api-reference/media/bp-processor.postman_collection.json b/docs/api-reference/media/bp-processor.postman_collection.json
index f2a9f14..0e62117 100644
--- a/docs/api-reference/media/bp-processor.postman_collection.json
+++ b/docs/api-reference/media/bp-processor.postman_collection.json
@@ -318,6 +318,169 @@
 							}
 						},
 						"url": {
+							"raw": "http://{{host}}:{{port}}/api/v1/blueprint-model/by-name/pnf_netconf/version/1.0.0",
+							"protocol": "http",
+							"host": [
+								"{{host}}"
+							],
+							"port": "{{port}}",
+							"path": [
+								"api",
+								"v1",
+								"blueprint-model",
+								"by-name",
+								"pnf_netconf",
+								"version",
+								"1.0.0"
+							]
+						},
+						"description": "Get Meta-Data of a Blueprint Model by its name and version."
+					},
+					"response": [
+						{
+							"name": "CDS Bootstrap",
+							"originalRequest": {
+								"method": "POST",
+								"header": [
+									{
+										"key": "Content-Type",
+										"value": "application/json"
+									},
+									{
+										"key": "",
+										"value": "",
+										"type": "text",
+										"disabled": true
+									}
+								],
+								"body": {
+									"mode": "raw",
+									"raw": "{\r\n\"loadModelType\" : false,\r\n\"loadResourceDictionary\" : true,\r\n\"loadCBA\" : false\r\n}",
+									"options": {
+										"raw": {}
+									}
+								},
+								"url": {
+									"raw": "http://localhost:8081/api/v1/blueprint-model/bootstrap",
+									"protocol": "http",
+									"host": [
+										"localhost"
+									],
+									"port": "8081",
+									"path": [
+										"api",
+										"v1",
+										"blueprint-model",
+										"bootstrap"
+									]
+								}
+							},
+							"status": "OK",
+							"code": 200,
+							"_postman_previewlanguage": "json",
+							"header": [
+								{
+									"key": "X-ONAP-RequestID",
+									"value": "b73253b6-d2be-4701-bdb2-31fa66b79a01"
+								},
+								{
+									"key": "X-ONAP-InvocationID",
+									"value": "b1a59296-fcf2-4435-b8de-9a2e9b9f4077"
+								},
+								{
+									"key": "X-ONAP-PartnerName",
+									"value": "cds-controller"
+								},
+								{
+									"key": "Vary",
+									"value": "Origin"
+								},
+								{
+									"key": "Vary",
+									"value": "Access-Control-Request-Method"
+								},
+								{
+									"key": "Vary",
+									"value": "Access-Control-Request-Headers"
+								},
+								{
+									"key": "Content-Type",
+									"value": "application/json"
+								},
+								{
+									"key": "Content-Length",
+									"value": "0"
+								},
+								{
+									"key": "Cache-Control",
+									"value": "no-cache, no-store, max-age=0, must-revalidate"
+								},
+								{
+									"key": "Pragma",
+									"value": "no-cache"
+								},
+								{
+									"key": "Expires",
+									"value": "0"
+								},
+								{
+									"key": "X-Content-Type-Options",
+									"value": "nosniff"
+								},
+								{
+									"key": "X-Frame-Options",
+									"value": "DENY"
+								},
+								{
+									"key": "X-XSS-Protection",
+									"value": "1 ; mode=block"
+								},
+								{
+									"key": "Referrer-Policy",
+									"value": "no-referrer"
+								}
+							],
+							"cookie": [],
+							"body": ""
+						}
+					]
+				},
+				{
+					"name": "Download a Blueprint Model",
+					"protocolProfileBehavior": {
+						"disabledSystemHeaders": {}
+					},
+					"request": {
+						"auth": {
+							"type": "basic",
+							"basic": [
+								{
+									"key": "password",
+									"value": "ccsdkapps",
+									"type": "string"
+								},
+								{
+									"key": "username",
+									"value": "ccsdkapps",
+									"type": "string"
+								}
+							]
+						},
+						"method": "GET",
+						"header": [
+							{
+								"key": "Content-Type",
+								"value": "application/json",
+								"disabled": true
+							},
+							{
+								"key": "",
+								"type": "text",
+								"value": "",
+								"disabled": true
+							}
+						],
+						"url": {
 							"raw": "http://{{host}}:{{port}}/api/v1/blueprint-model/download/by-name/pnf_netconf/version/1.0.0",
 							"protocol": "http",
 							"host": [
@@ -335,7 +498,7 @@
 								"1.0.0"
 							]
 						},
-						"description": "Get Meta-Data of a Blueprint Model by its name and version."
+						"description": "Gets the CBA of a blueprint model by its name and version. Response can be saved to a file to download the CBA."
 					},
 					"response": [
 						{
@@ -482,7 +645,7 @@
 							}
 						],
 						"url": {
-							"raw": "http://{{host}}:{{port}}/api/v1/blueprint-model/download/416f241d-3ef9-4cb6-8834-956ae4f70b07",
+							"raw": "http://{{host}}:{{port}}/api/v1/blueprint-model/download/44471683-4446-4ed9-8b27-fac6a8f81e5e",
 							"protocol": "http",
 							"host": [
 								"{{host}}"
@@ -493,7 +656,7 @@
 								"v1",
 								"blueprint-model",
 								"download",
-								"416f241d-3ef9-4cb6-8834-956ae4f70b07"
+								"44471683-4446-4ed9-8b27-fac6a8f81e5e"
 							]
 						},
 						"description": "Gets the CBA of a blueprint model by its ID. Response can be saved to a file to download the CBA."
@@ -2682,12 +2845,12 @@
 	],
 	"variable": [
 		{
-			"id": "86d601d8-fded-49c0-8870-545b57019003",
+			"id": "59f58f5b-ee64-490b-be39-09983d888dd8",
 			"key": "host",
 			"value": "localhost"
 		},
 		{
-			"id": "b53854bd-6fbb-42bb-a001-9b77a3883cf8",
+			"id": "284f1750-2dd3-4fa4-aade-cccd91d53cc7",
 			"key": "port",
 			"value": "8081"
 		}
diff --git a/docs/api-reference/media/cds-bp-processor-api-swagger.json b/docs/api-reference/media/cds-bp-processor-api-swagger.json
index a9f5965..af3ed94 100644
--- a/docs/api-reference/media/cds-bp-processor-api-swagger.json
+++ b/docs/api-reference/media/cds-bp-processor-api-swagger.json
@@ -64,7 +64,7 @@
           "200" : {
             "description" : "OK",
             "schema" : {
-              "type" : "object"
+              "$ref" : "#/definitions/BlueprintModelSearch"
             }
           },
           "500" : {
@@ -129,7 +129,7 @@
           "200" : {
             "description" : "OK",
             "schema" : {
-              "type" : "object"
+              "$ref" : "#/definitions/BlueprintModelSearch"
             }
           },
           "404" : {
@@ -249,7 +249,7 @@
           "200" : {
             "description" : "OK",
             "schema" : {
-              "type" : "object"
+              "$ref" : "#/definitions/BlueprintModelSearch"
             }
           },
           "503" : {
@@ -277,7 +277,10 @@
           "200" : {
             "description" : "successful operation",
             "schema" : {
-              "type" : "object"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/BlueprintModelSearch"
+              }
             }
           }
         }
@@ -440,7 +443,7 @@
           "200" : {
             "description" : "successful operation",
             "schema" : {
-              "type" : "object"
+              "$ref" : "#/definitions/BlueprintModelSearch"
             }
           }
         }
@@ -465,7 +468,10 @@
           "200" : {
             "description" : "successful operation",
             "schema" : {
-              "type" : "object"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/BlueprintModelSearch"
+              }
             }
           }
         }
@@ -482,7 +488,8 @@
         "parameters" : [ {
           "in" : "body",
           "name" : "body",
-          "required" : false,
+          "description" : "Blueprint and workflow identification",
+          "required" : true,
           "schema" : {
             "$ref" : "#/definitions/WorkFlowSpecRequest"
           }
@@ -548,7 +555,7 @@
           "200" : {
             "description" : "OK",
             "schema" : {
-              "type" : "object"
+              "$ref" : "#/definitions/BlueprintModelSearch"
             }
           },
           "404" : {
diff --git a/docs/api-reference/media/cds-bp-processor-api-swagger.yaml b/docs/api-reference/media/cds-bp-processor-api-swagger.yaml
deleted file mode 100644
index e16e22c..0000000
--- a/docs/api-reference/media/cds-bp-processor-api-swagger.yaml
+++ /dev/null
@@ -1,714 +0,0 @@
----
-swagger: "2.0"
-info:
-  description: "Shows all resources and endpoints which CDS BP processor currently\
-    \ provides with sample requests/responses, parameter description and other information."
-  version: "v1"
-  title: "CDS Blueprint Processor API Reference"
-  termsOfService: "https://www.onap.org/"
-  contact:
-    name: "ONAP Community"
-    url: "https://www.onap.org/"
-    email: "onap-discuss@lists.onap.org"
-  license:
-    name: "Apache 2.0"
-    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
-host: "localhost:8080"
-tags:
-- name: "Blueprint Model Catalog API"
-  description: "Manages all blueprint models which are available in CDS"
-schemes:
-- "http"
-paths:
-  /api/v1/blueprint-model:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "List all Blueprint Models"
-      description: "Lists all meta-data of blueprint models which are saved in CDS."
-      operationId: "BlueprintModelController_allBlueprintModel_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters: []
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "array"
-            items:
-              $ref: "#/definitions/BlueprintModelSearch"
-        500:
-          description: "Internal Server Error"
-    post:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Save a Blueprint Model"
-      description: "Saves a blueprint model by the given CBA zip file input. There\
-        \ is no validation of the attached CBA happening when this API is called."
-      operationId: "BlueprintModelController_saveBlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      consumes:
-      - "multipart/form-data"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "file"
-        description: "CBA file to be uploaded (example: cba.zip)"
-        required: true
-        schema:
-          $ref: "#/definitions/FilePart"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        500:
-          description: "Internal Server Error"
-  /api/v1/blueprint-model/bootstrap:
-    post:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Bootstrap CDS"
-      description: "Loads all Model Types, Resource Dictionaries and Blueprint Models\
-        \ which are included in CDS by default. Before starting to work with CDS,\
-        \ bootstrap should be called to load all the basic models that each orginization\
-        \ might support. Parameter values can be set as `false`  to skip loading e.g.\
-        \ the Resource Dictionaries but this is not recommended."
-      operationId: "BlueprintModelController_bootstrap_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      consumes:
-      - "application/json"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        description: "Specifies which elements to load"
-        required: true
-        schema:
-          $ref: "#/definitions/BootstrapRequest"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        500:
-          description: "Internal Server Error"
-  /api/v1/blueprint-model/by-name/{name}/version/{version}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Get a Blueprint Model by Name and Version"
-      description: "Get Meta-Data of a Blueprint Model by its name and version."
-      operationId: "BlueprintModelController_getBlueprintByNameAndVersion_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "name"
-        in: "path"
-        description: "Name of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "pnf_netconf"
-      - name: "version"
-        in: "path"
-        description: "Version of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "1.0.0"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        404:
-          description: "Not Found"
-  /api/v1/blueprint-model/download/by-name/{name}/version/{version}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Download a Blueprint Model"
-      description: "Gets the CBA of a blueprint model by its name and version. Response\
-        \ can be saved to a file to download the CBA."
-      operationId: "BlueprintModelController_downloadBlueprintByNameAndVersion_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "name"
-        in: "path"
-        description: "Name of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "pnf_netconf"
-      - name: "version"
-        in: "path"
-        description: "Version of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "1.0.0"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        404:
-          description: "Not Found"
-  /api/v1/blueprint-model/download/{id}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Download a Blueprint Model by ID"
-      description: "Gets the CBA of a blueprint model by its ID. Response can be saved\
-        \ to a file to download the CBA."
-      operationId: "BlueprintModelController_downloadBluePrint_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "id"
-        in: "path"
-        description: "ID of the blueprint model to download"
-        required: true
-        type: "string"
-        x-example: "67ec1f96-ab55-4b81-aff9-23ee0ed1d7a4"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        404:
-          description: "Not Found"
-  /api/v1/blueprint-model/enrich:
-    post:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Enrich a Blueprint Model"
-      description: "Enriches the attached CBA and returns the enriched CBA zip file\
-        \ in the response. The enrichment process will complete the package by providing\
-        \ all the definition of types used."
-      operationId: "BlueprintModelController_enrichBlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      consumes:
-      - "multipart/form-data"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "file"
-        description: "CBA zip file to be uploaded (example: cba_unenriched.zip)"
-        required: true
-        schema:
-          $ref: "#/definitions/FilePart"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/enrichandpublish:
-    post:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Enrich and publish a Blueprint Model"
-      description: "Enriches the attached CBA, validates it and saves it in CDS if\
-        \ validation was successful."
-      operationId: "BlueprintModelController_enrichAndPubishlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      consumes:
-      - "multipart/form-data"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "file"
-        description: "Unenriched CBA zip file to be uploaded (example: cba_unenriched.zip)"
-        required: true
-        schema:
-          $ref: "#/definitions/FilePart"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        503:
-          description: "Service Unavailable"
-  /api/v1/blueprint-model/meta-data/{keyword}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Search for Blueprints by a Keyword"
-      description: "Lists all blueprint models by a matching keyword in any of the\
-        \ meta-data of the blueprint models. Blueprint models are just returned if\
-        \ a whole keyword is matching, not just parts of it. Not case-sensitive. Used\
-        \ by CDS UI."
-      operationId: "BlueprintModelController_allBlueprintModelMetaData_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "keyword"
-        in: "path"
-        description: "Keyword to search for in blueprint model meta-data"
-        required: true
-        type: "string"
-        x-example: "pnf_netconf"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/name/{name}/version/{version}:
-    delete:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Delete a Blueprint Model by Name"
-      description: "Deletes a blueprint model identified by its name and version from\
-        \ CDS."
-      operationId: "BlueprintModelController_deleteBlueprintByName_DELETE.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      parameters:
-      - name: "name"
-        in: "path"
-        description: "Name of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "pnf_netconf"
-      - name: "version"
-        in: "path"
-        description: "Version of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "1.0.0"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/paged:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Get Blueprints ordered"
-      description: "Lists all blueprint models which are saved in CDS in an ordered\
-        \ mode."
-      operationId: "BlueprintModelController_allBlueprintModelPaged_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "limit"
-        in: "query"
-        description: "Maximum number of returned blueprint models"
-        required: false
-        type: "integer"
-        default: 20
-        format: "int32"
-      - name: "offset"
-        in: "query"
-        description: "Offset"
-        required: false
-        type: "integer"
-        default: 0
-        format: "int32"
-      - name: "sort"
-        in: "query"
-        description: "Order of returned blueprint models"
-        required: false
-        type: "string"
-        default: "DATE"
-        enum:
-        - "DATE"
-        - "NAME"
-        - "VERSION"
-      - name: "sortType"
-        in: "query"
-        description: "Ascend or descend ordering"
-        required: false
-        type: "string"
-        default: "ASC"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/PageBlueprintModelSearch"
-  /api/v1/blueprint-model/paged/meta-data/{keyword}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Search for Blueprints by a Keyword in an ordered mode"
-      description: "Lists all blueprint models by a matching keyword in any of the\
-        \ meta-data of the blueprint models in an ordered mode. Blueprint models are\
-        \ just returned if a whole keyword is matching, not just parts of it. Not\
-        \ case-sensitive. Used by CDS UI."
-      operationId: "BlueprintModelController_allBlueprintModelMetaDataPaged_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "keyword"
-        in: "path"
-        description: "Keyword to search for in blueprint model meta-data"
-        required: true
-        type: "string"
-        x-example: "pnf_netconf"
-      - name: "limit"
-        in: "query"
-        description: "Maximum number of returned blueprint models"
-        required: false
-        type: "integer"
-        default: 20
-        format: "int32"
-      - name: "offset"
-        in: "query"
-        description: "Offset"
-        required: false
-        type: "integer"
-        default: 0
-        format: "int32"
-      - name: "sort"
-        in: "query"
-        description: "Order of returned blueprint models"
-        required: false
-        type: "string"
-        default: "DATE"
-        enum:
-        - "DATE"
-        - "NAME"
-        - "VERSION"
-      - name: "sortType"
-        in: "query"
-        description: "Ascend or descend ordering"
-        required: false
-        type: "string"
-        default: "ASC"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/PageBlueprintModelSearch"
-  /api/v1/blueprint-model/publish:
-    post:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Publish a Blueprint Model"
-      description: "Validates the attached CBA file and saves it in CDS if validation\
-        \ was successful. CBA needs to be already enriched."
-      operationId: "BlueprintModelController_publishBlueprint_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      consumes:
-      - "multipart/form-data"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "file"
-        description: "Enriched CBA zip file to be uploaded (example: cba_enriched.zip)"
-        required: true
-        schema:
-          $ref: "#/definitions/FilePart"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/search/{tags}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Search for a Blueprint by Tag"
-      description: "Searches for all blueprint models which contain the specified\
-        \ input parameter in their tags. Blueprint models which contain just parts\
-        \ of the searched word in their tags are also returned."
-      operationId: "BlueprintModelController_searchBlueprintModels_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "tags"
-        in: "path"
-        description: "Tag to search for"
-        required: true
-        type: "string"
-        x-example: "test"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/workflow-spec:
-    post:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Get Workflow Specification"
-      description: "Get the workflow of a blueprint identified by Blueprint and workflow\
-        \ name. Inputs, outputs and data types of workflow is returned."
-      operationId: "BlueprintModelController_workflowSpec_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      consumes:
-      - "application/json"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        required: false
-        schema:
-          $ref: "#/definitions/WorkFlowSpecRequest"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/workflows/blueprint-name/{name}/version/{version}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Get Workflows of a Blueprint"
-      description: "Get all available workflows of a Blueprint identified by its name\
-        \ and version."
-      operationId: "BlueprintModelController_getWorkflowList_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "name"
-        in: "path"
-        description: "Name of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "pnf_netconf"
-      - name: "version"
-        in: "path"
-        description: "Version of the blueprint model"
-        required: true
-        type: "string"
-        x-example: "1.0.0"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            type: "object"
-  /api/v1/blueprint-model/{id}:
-    get:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Get a Blueprint Model by ID"
-      description: "Get meta-data of a blueprint model by its internally created ID."
-      operationId: "BlueprintModelController_getBlueprintModel_GET.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "id"
-        in: "path"
-        description: "ID of the blueprint model to search for"
-        required: true
-        type: "string"
-        x-example: "67ec1f96-ab55-4b81-aff9-23ee0ed1d7a4"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        404:
-          description: "Not Found"
-    delete:
-      tags:
-      - "Blueprint Model Catalog API"
-      summary: "Delete a Blueprint Model by ID"
-      description: "Delete a blueprint model by its ID. ID is the internally created\
-        \ ID of blueprint, not the name of blueprint."
-      operationId: "BlueprintModelController_deleteBlueprint_DELETE.org.onap.ccsdk.cds.blueprintsprocessor.designer.api"
-      parameters:
-      - name: "id"
-        in: "path"
-        description: "ID of the blueprint model to delete"
-        required: true
-        type: "string"
-        x-example: "67ec1f96-ab55-4b81-aff9-23ee0ed1d7a4"
-      responses:
-        200:
-          description: "OK"
-          schema:
-            type: "object"
-        404:
-          description: "RESOURCE_NOT_FOUND"
-securityDefinitions:
-  Basic Auth:
-    type: "basic"
-definitions:
-  BlueprintModelSearch:
-    type: "object"
-    required:
-    - "artifactName"
-    - "artifactVersion"
-    - "createdDate"
-    - "id"
-    - "published"
-    - "tags"
-    - "updatedBy"
-    properties:
-      id:
-        type: "string"
-        example: "\"658f9a48-7f54-41ba-ae18-c69f26f3dc94\""
-        description: "ID of Blueprint model, is automatically created by CDS"
-      artifactUUId:
-        type: "string"
-        example: "null"
-        description: "Artifact UUID, usually null"
-      artifactType:
-        type: "string"
-        example: "\"SDNC_MODEL\""
-        description: "Artifact Type, usually null"
-      artifactVersion:
-        type: "string"
-        example: "\"1.0.0\""
-        description: "Artifact Version, usually 1.0.0"
-      artifactDescription:
-        type: "string"
-        example: "\"\""
-        description: "Artifact Description, usually empty"
-      internalVersion:
-        type: "integer"
-        format: "int32"
-        example: "null"
-        description: "Internal Version of CBA, usually null"
-      createdDate:
-        type: "string"
-        format: "date-time"
-        example: "\"2020-11-19T10:34:56.000Z\""
-        description: "Datetime of the creation of CBA in CDS"
-      artifactName:
-        type: "string"
-        example: "\"pnf_netconf\""
-        description: "Artifact Name, defined in Metadata"
-      published:
-        type: "string"
-        example: "\"pnf_netconf\""
-        description: "Artifact Name, defined in Metadata"
-      updatedBy:
-        type: "string"
-        example: "\"Deutsche Telekom AG\""
-        description: "Name of publisher, defined in Metadata"
-      tags:
-        type: "string"
-        example: "\"test\""
-        description: "Tags to identify the CBA, defined in Metadata"
-  BootstrapRequest:
-    type: "object"
-    required:
-    - "loadCBA"
-    - "loadModelType"
-    - "loadResourceDictionary"
-    properties:
-      loadModelType:
-        type: "boolean"
-        example: true
-        description: "Specifies if default model types should be loaded"
-      loadResourceDictionary:
-        type: "boolean"
-        example: true
-        description: "Specifies if default data dictionaries should be loaded"
-      loadCBA:
-        type: "boolean"
-        example: true
-        description: "Specifies if default blueprint models should be loaded"
-  FilePart:
-    type: "object"
-  Page:
-    type: "object"
-    properties:
-      totalPages:
-        type: "integer"
-        format: "int32"
-      totalElements:
-        type: "integer"
-        format: "int64"
-      size:
-        type: "integer"
-        format: "int32"
-      content:
-        type: "array"
-        items:
-          type: "object"
-      number:
-        type: "integer"
-        format: "int32"
-      sort:
-        $ref: "#/definitions/Sort"
-      last:
-        type: "boolean"
-      numberOfElements:
-        type: "integer"
-        format: "int32"
-      pageable:
-        $ref: "#/definitions/Pageable"
-      first:
-        type: "boolean"
-      empty:
-        type: "boolean"
-  PageBlueprintModelSearch:
-    type: "object"
-    properties:
-      totalPages:
-        type: "integer"
-        format: "int32"
-      totalElements:
-        type: "integer"
-        format: "int64"
-      size:
-        type: "integer"
-        format: "int32"
-      content:
-        type: "array"
-        items:
-          $ref: "#/definitions/BlueprintModelSearch"
-      number:
-        type: "integer"
-        format: "int32"
-      sort:
-        $ref: "#/definitions/Sort"
-      last:
-        type: "boolean"
-      numberOfElements:
-        type: "integer"
-        format: "int32"
-      pageable:
-        $ref: "#/definitions/Pageable"
-      first:
-        type: "boolean"
-      empty:
-        type: "boolean"
-  Pageable:
-    type: "object"
-    properties:
-      offset:
-        type: "integer"
-        format: "int64"
-      sort:
-        $ref: "#/definitions/Sort"
-      paged:
-        type: "boolean"
-      unpaged:
-        type: "boolean"
-      pageNumber:
-        type: "integer"
-        format: "int32"
-      pageSize:
-        type: "integer"
-        format: "int32"
-  Sort:
-    type: "object"
-    properties:
-      unsorted:
-        type: "boolean"
-      sorted:
-        type: "boolean"
-      empty:
-        type: "boolean"
-  WorkFlowSpecRequest:
-    type: "object"
-    required:
-    - "blueprintName"
-    - "workflowName"
-    properties:
-      blueprintName:
-        type: "string"
-        example: "\"pnf_netconf\""
-        description: "Name of the BLueprint"
-      version:
-        type: "string"
-      returnContent:
-        type: "string"
-      workflowName:
-        type: "string"
-        example: "\"config-assign\""
-        description: "Name of the Workflow"
-      specType:
-        type: "string"
diff --git a/ms/blueprintsprocessor/application/pom.xml b/ms/blueprintsprocessor/application/pom.xml
index 2b14433..cccff52 100755
--- a/ms/blueprintsprocessor/application/pom.xml
+++ b/ms/blueprintsprocessor/application/pom.xml
@@ -335,9 +335,9 @@
                             <springmvc>true</springmvc>
                             <locations>
                                 <location>org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BlueprintModelController</location>
-                                <!-- These locations are not implemented yet
                                 <location>org.onap.ccsdk.cds.blueprintsprocessor.resource.api</location>
                                 <location>org.onap.ccsdk.cds.blueprintsprocessor.configs.api</location>
+                                <!-- This location is not implemented yet
                                 <location>org.onap.ccsdk.cds.blueprintsprocessor.healthapi</location>
                                 -->
                             </locations>
@@ -370,7 +370,7 @@
                                     <type>basic</type>
                                 </securityDefinition>
                             </securityDefinitions>
-                            <outputFormats>json,yaml</outputFormats>
+                            <outputFormats>json</outputFormats>
                             <swaggerDirectory>${basedir}/../../../docs/api-reference/media</swaggerDirectory>
                             <swaggerFileName>cds-bp-processor-api-swagger</swaggerFileName>
                             <jsonExampleValues>true</jsonExampleValues>
diff --git a/ms/blueprintsprocessor/functions/config-snapshots/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/config/snapshots/db/ResourceConfigSnapshot.kt b/ms/blueprintsprocessor/functions/config-snapshots/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/config/snapshots/db/ResourceConfigSnapshot.kt
index 7df5ea1..a260d32 100644
--- a/ms/blueprintsprocessor/functions/config-snapshots/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/config/snapshots/db/ResourceConfigSnapshot.kt
+++ b/ms/blueprintsprocessor/functions/config-snapshots/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/config/snapshots/db/ResourceConfigSnapshot.kt
@@ -50,7 +50,7 @@
     @Column(name = "resource_type", nullable = false)
     var resourceType: String? = null
 
-    @get:ApiModelProperty(value = "ID associated with the resource type in the inventory system.", required = true)
+    @get:ApiModelProperty(value = "ID associated with the resource type in the inventory system.", required = true, example = "\"1\"")
     @Column(name = "resource_id", nullable = false)
     var resourceId: String? = null
 
@@ -58,7 +58,7 @@
     @Column(name = "status", nullable = false)
     var status: Status? = null
 
-    @get:ApiModelProperty(value = "Snapshot of the resource as retrieved from resource.", required = true)
+    @get:ApiModelProperty(value = "Snapshot of the resource as retrieved from resource.", required = true, example = "\"config_snapshot\"")
     @Lob
     @Column(name = "config_snapshot", nullable = false)
     var config_snapshot: String? = null
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 38c5c99..79a00b1 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
@@ -150,8 +150,11 @@
 
             val failedResolution = resourceAssignmentList.filter { it.status != "success" && it.property?.required == true }.map { it.name }
             if (failedResolution.isNotEmpty()) {
-                log.error("Failed to resolve required resources($failedResolution)")
-                bluePrintRuntimeService.setBluePrintError(resourceAssignmentRuntimeService.getBluePrintError())
+                // The following error message is returned by default to handle a scenario when
+                // error message comes empty even when resolution has actually failed.
+                // Example: input-source type resolution seems to fail with no error code.
+                bluePrintRuntimeService.getBluePrintError().errors.add("Failed to resolve required resources($failedResolution)")
+                bluePrintRuntimeService.getBluePrintError().errors.addAll(resourceAssignmentRuntimeService.getBluePrintError().errors)
             }
         }
         return ResourceResolutionResult(templateMap, assignmentMap)
diff --git a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintWorkflowService.kt b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintWorkflowService.kt
index 98e5e5a..f3e4e59 100644
--- a/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintWorkflowService.kt
+++ b/ms/blueprintsprocessor/modules/blueprints/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/service/BluePrintWorkflowService.kt
@@ -103,7 +103,7 @@
 
     var exceptions: MutableList<Exception> = arrayListOf()
 
-    final override val coroutineContext: CoroutineContext
+    override val coroutineContext: CoroutineContext
         get() = job + CoroutineName("Wf")
 
     fun cancel() {
diff --git a/ms/blueprintsprocessor/modules/blueprints/resource-dict/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/resource/dict/ResourceDefinition.kt b/ms/blueprintsprocessor/modules/blueprints/resource-dict/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/resource/dict/ResourceDefinition.kt
index 556f4a3..2e7e182 100644
--- a/ms/blueprintsprocessor/modules/blueprints/resource-dict/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/resource/dict/ResourceDefinition.kt
+++ b/ms/blueprintsprocessor/modules/blueprints/resource-dict/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/resource/dict/ResourceDefinition.kt
@@ -20,29 +20,37 @@
 import com.fasterxml.jackson.annotation.JsonFormat
 import com.fasterxml.jackson.annotation.JsonProperty
 import com.fasterxml.jackson.databind.JsonNode
+import io.swagger.annotations.ApiModel
+import io.swagger.annotations.ApiModelProperty
 import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate
 import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
 import java.io.Serializable
 import java.util.Date
 
+@ApiModel
 open class ResourceDefinition {
 
     @JsonProperty(value = "name", required = true)
+    @ApiModelProperty(value = "Name", required = true, example = "\"default-source\"")
     lateinit var name: String
 
     @JsonProperty(value = "property", required = true)
+    @ApiModelProperty(value = "Property", required = true)
     lateinit var property: PropertyDefinition
 
     var tags: String? = null
 
     /** The default group for Resource Definition is "default" */
     @JsonProperty(value = "group", required = true)
+    @ApiModelProperty(value = "Group", required = true, example = "\"default\"")
     var group: String = "default"
 
     @JsonProperty(value = "updated-by")
+    @ApiModelProperty(value = "Updated by", required = true, example = "\"example@onap.com\"")
     lateinit var updatedBy: String
 
     @JsonProperty(value = "sources", required = true)
+    @ApiModelProperty(value = "Sources", required = true, example = "\"sources\"")
     lateinit var sources: MutableMap<String, NodeTemplate>
 }
 
diff --git a/ms/blueprintsprocessor/modules/inbounds/configs-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/configs/api/ResourceConfigSnapshotController.kt b/ms/blueprintsprocessor/modules/inbounds/configs-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/configs/api/ResourceConfigSnapshotController.kt
index d285fe5..584df27 100644
--- a/ms/blueprintsprocessor/modules/inbounds/configs-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/configs/api/ResourceConfigSnapshotController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/configs-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/configs/api/ResourceConfigSnapshotController.kt
@@ -48,7 +48,7 @@
 @RestController
 @RequestMapping("/api/v1/configs")
 @Api(
-    value = "/api/v1/configs",
+    value = "Resource configuration",
     description = "Interaction with stored configurations."
 )
 open class ResourceConfigSnapshotController(private val resourceConfigSnapshotService: ResourceConfigSnapshotService) {
@@ -67,7 +67,6 @@
     }
 
     @RequestMapping(
-        path = [""],
         method = [RequestMethod.GET],
         produces = [MediaType.TEXT_PLAIN_VALUE, MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE]
     )
@@ -79,10 +78,10 @@
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
     fun get(
-        @ApiParam(value = "Resource Type associated of the resource configuration snapshot.", required = false)
+        @ApiParam(value = "Resource Type associated of the resource configuration snapshot.", required = false, example = "\"PNF\"")
         @RequestParam(value = "resourceType", required = true) resourceType: String,
 
-        @ApiParam(value = "Resource Id associated of the resource configuration snapshot.", required = false)
+        @ApiParam(value = "Resource Id associated of the resource configuration snapshot.", required = false, example = "\"1\"")
         @RequestParam(value = "resourceId", required = true) resourceId: String,
 
         @ApiParam(value = "Status of the snapshot being retrieved.", defaultValue = "RUNNING", required = false)
@@ -142,18 +141,18 @@
         value = "Store a resource configuration snapshot identified by resourceId, resourceType, status.",
         notes = "Store a resource configuration snapshot, identified by its resourceId and resourceType, " +
             "and optionally its status, either RUNNING or CANDIDATE.",
-        response = ResourceConfigSnapshot::class, produces = MediaType.APPLICATION_JSON_VALUE
+        response = ResourceConfigSnapshot::class
     )
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
     fun postWithResourceIdAndResourceType(
-        @ApiParam(value = "Resource Type associated with the resolution.", required = false)
+        @ApiParam(value = "Resource Type associated with the resolution.", required = false, example = "\"PNF\"")
         @PathVariable(value = "resourceType", required = true) resourceType: String,
-        @ApiParam(value = "Resource Id associated with the resolution.", required = false)
+        @ApiParam(value = "Resource Id associated with the resolution.", required = false, example = "\"1\"")
         @PathVariable(value = "resourceId", required = true) resourceId: String,
         @ApiParam(value = "Status of the snapshot being retrieved.", defaultValue = "RUNNING", required = true)
         @PathVariable(value = "status", required = true) status: String,
-        @ApiParam(value = "Config snapshot to store.", required = true)
+        @ApiParam(value = "Config snapshot to store.", required = true, example = "\"config_snapshot\"")
         @RequestBody snapshot: String
     ): ResponseEntity<ResourceConfigSnapshot> = runBlocking {
 
@@ -178,7 +177,7 @@
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
     fun getAllByID(
-        @ApiParam(value = "Resource Id associated of the resource configuration snapshots.", required = false)
+        @ApiParam(value = "Resource Id associated of the resource configuration snapshots.", required = false, example = "\"1\"")
         @RequestParam(value = "resourceId", required = true) resourceId: String,
         @ApiParam(value = "Status of the snapshot being retrieved.", defaultValue = "ANY", required = false)
         @RequestParam(value = "status", required = false, defaultValue = "ANY") status: String
@@ -223,7 +222,7 @@
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
     fun getAllByType(
-        @ApiParam(value = "Resource Type associated of the resource configuration snapshot.", required = false)
+        @ApiParam(value = "Resource Type associated of the resource configuration snapshot.", required = false, example = "\"PNF\"")
         @RequestParam(value = "resourceType", required = true) resourceType: String,
         @ApiParam(value = "Status of the snapshot being retrieved.", defaultValue = "ANY", required = false)
         @RequestParam(value = "status", required = false, defaultValue = "ANY") status: String
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 167e435..8b79ce7 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
@@ -91,7 +91,9 @@
     @PostMapping(produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType.MULTIPART_FORM_DATA_VALUE])
     @ApiOperation(
         value = "Save a Blueprint Model",
-        notes = "Saves a blueprint model by the given CBA zip file input. There is no validation of the attached CBA happening when this API is called."
+        notes = "Saves a blueprint model by the given CBA zip file input. " +
+            "There is no validation of the attached CBA happening when this API is called.",
+        response = BlueprintModelSearch::class
     )
     @ApiResponses(
         ApiResponse(code = 200, message = "OK"),
@@ -148,7 +150,9 @@
         value = "Search for Blueprints by a Keyword",
         notes = "Lists all blueprint models by a matching keyword in any of the meta-data of the blueprint models. " +
             "Blueprint models are just returned if a whole keyword is matching, not just parts of it. Not case-sensitive. " +
-            "Used by CDS UI."
+            "Used by CDS UI.",
+        responseContainer = "List",
+        response = BlueprintModelSearch::class
     )
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
@@ -206,7 +210,8 @@
     @GetMapping("/by-name/{name}/version/{version}", produces = [MediaType.APPLICATION_JSON_VALUE])
     @ApiOperation(
         value = "Get a Blueprint Model by Name and Version",
-        notes = "Get Meta-Data of a Blueprint Model by its name and version."
+        notes = "Get Meta-Data of a Blueprint Model by its name and version.",
+        response = BlueprintModelSearch::class
     )
     @ApiResponses(
         ApiResponse(code = 200, message = "OK"),
@@ -249,7 +254,8 @@
     @GetMapping("/{id}", produces = [MediaType.APPLICATION_JSON_VALUE])
     @ApiOperation(
         value = "Get a Blueprint Model by ID",
-        notes = "Get meta-data of a blueprint model by its internally created ID."
+        notes = "Get meta-data of a blueprint model by its internally created ID.",
+        response = BlueprintModelSearch::class
     )
     @ApiResponses(
         ApiResponse(code = 200, message = "OK"),
@@ -316,7 +322,8 @@
     )
     @ApiOperation(
         value = "Enrich and publish a Blueprint Model",
-        notes = "Enriches the attached CBA, validates it and saves it in CDS if validation was successful."
+        notes = "Enriches the attached CBA, validates it and saves it in CDS if validation was successful.",
+        response = BlueprintModelSearch::class
     )
     @ApiResponses(
         ApiResponse(code = 200, message = "OK"),
@@ -335,7 +342,8 @@
     @PostMapping("/publish", produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType.MULTIPART_FORM_DATA_VALUE])
     @ApiOperation(
         value = "Publish a Blueprint Model",
-        notes = "Validates the attached CBA file and saves it in CDS if validation was successful. CBA needs to be already enriched."
+        notes = "Validates the attached CBA file and saves it in CDS if validation was successful. CBA needs to be already enriched.",
+        response = BlueprintModelSearch::class
     )
     @ResponseBody
     @Throws(BluePrintException::class)
@@ -351,7 +359,9 @@
     @ApiOperation(
         value = "Search for a Blueprint by Tag",
         notes = "Searches for all blueprint models which contain the specified input parameter in their tags. " +
-            "Blueprint models which contain just parts of the searched word in their tags are also returned."
+            "Blueprint models which contain just parts of the searched word in their tags are also returned.",
+        responseContainer = "List",
+        response = BlueprintModelSearch::class
     )
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
@@ -397,7 +407,10 @@
     @ResponseBody
     @Throws(BluePrintException::class)
     @PreAuthorize("hasRole('USER')")
-    suspend fun workflowSpec(@RequestBody workFlowSpecReq: WorkFlowSpecRequest):
+    suspend fun workflowSpec(
+        @ApiParam(required = true, value = "Blueprint and workflow identification")
+        @RequestBody workFlowSpecReq: WorkFlowSpecRequest
+    ):
         ResponseEntity<String> = mdcWebCoroutineScope {
             var json = bluePrintModelHandler.prepareWorkFlowSpec(workFlowSpecReq)
                 .asJsonString()
diff --git a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/ResourceDictionaryController.kt b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/ResourceDictionaryController.kt
index 7f569cf..1dcfa2f 100644
--- a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/ResourceDictionaryController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/ResourceDictionaryController.kt
@@ -16,6 +16,9 @@
 
 package org.onap.ccsdk.cds.blueprintsprocessor.designer.api
 
+import io.swagger.annotations.Api
+import io.swagger.annotations.ApiOperation
+import io.swagger.annotations.ApiParam
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.domain.ResourceDictionary
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.handler.ResourceDictionaryHandler
 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.mdcWebCoroutineScope
@@ -34,24 +37,43 @@
 
 @RestController
 @RequestMapping(value = ["/api/v1/dictionary"])
+@Api(
+    value = "Resource dictionary",
+    description = "Interaction with stored dictionaries."
+)
 open class ResourceDictionaryController(private val resourceDictionaryHandler: ResourceDictionaryHandler) {
 
     @GetMapping(path = ["/{name}"], produces = [MediaType.APPLICATION_JSON_VALUE])
+    @ApiOperation(
+        value = "Retrieve a resource dictionary.",
+        notes = "Retrieve a resource dictionary by name provided.",
+        response = ResourceDictionary::class
+    )
     @ResponseBody
     @Throws(BluePrintException::class)
-    suspend fun getResourceDictionaryByName(@PathVariable(value = "name") name: String): ResourceDictionary =
+    suspend fun getResourceDictionaryByName(
+        @ApiParam(value = "Name of the resource.", required = true, example = "\"hostname\"")
+        @PathVariable(value = "name") name: String
+    ): ResourceDictionary =
         mdcWebCoroutineScope {
             resourceDictionaryHandler.getResourceDictionaryByName(name)
         }
 
     @PostMapping(
-        path = [""],
         produces = [MediaType.APPLICATION_JSON_VALUE],
         consumes = [MediaType.APPLICATION_JSON_VALUE]
     )
+    @ApiOperation(
+        value = "Saves a resource dictionary.",
+        notes = "Saves a resource dictionary by dictionary provided.",
+        response = ResourceDictionary::class
+    )
     @ResponseBody
     @Throws(BluePrintException::class)
-    suspend fun saveResourceDictionary(@RequestBody dataDictionary: ResourceDictionary): ResourceDictionary =
+    suspend fun saveResourceDictionary(
+        @ApiParam(value = "Resource dictionary to store.", required = true)
+        @RequestBody dataDictionary: ResourceDictionary
+    ): ResourceDictionary =
         mdcWebCoroutineScope {
             resourceDictionaryHandler.saveResourceDictionary(dataDictionary)
         }
@@ -61,15 +83,31 @@
         produces = [MediaType.APPLICATION_JSON_VALUE],
         consumes = [MediaType.APPLICATION_JSON_VALUE]
     )
+    @ApiOperation(
+        value = "Saves a resource dictionary.",
+        notes = "Saves a resource dictionary by resource definition provided.",
+        nickname = "ResourceDictionaryController_saveResourceDictionary_1_POST.org.onap.ccsdk.cds.blueprintsprocessor.designer.api",
+        response = ResourceDefinition::class
+    )
     @ResponseBody
     @Throws(BluePrintException::class)
-    suspend fun saveResourceDictionary(@RequestBody resourceDefinition: ResourceDefinition): ResourceDefinition =
+    suspend fun saveResourceDictionary(
+        @ApiParam(value = "Resource definition to generate.", required = true)
+        @RequestBody resourceDefinition: ResourceDefinition
+    ): ResourceDefinition =
         mdcWebCoroutineScope {
             resourceDictionaryHandler.saveResourceDefinition(resourceDefinition)
         }
 
     @DeleteMapping(path = ["/{name}"])
-    suspend fun deleteResourceDictionaryByName(@PathVariable(value = "name") name: String) = mdcWebCoroutineScope {
+    @ApiOperation(
+        value = "Removes a resource dictionary.",
+        notes = "Removes a resource dictionary by name provided."
+    )
+    suspend fun deleteResourceDictionaryByName(
+        @ApiParam(value = "Name of the resource.", required = true)
+        @PathVariable(value = "name") name: String
+    ) = mdcWebCoroutineScope {
         resourceDictionaryHandler.deleteResourceDictionary(name)
     }
 
@@ -78,26 +116,55 @@
         produces = [MediaType.APPLICATION_JSON_VALUE],
         consumes = [MediaType.APPLICATION_JSON_VALUE]
     )
+    @ApiOperation(
+        value = "Searches for a resource dictionary.",
+        notes = "Searches for a resource dictionary by names provided.",
+        responseContainer = "List",
+        response = ResourceDictionary::class
+    )
     @ResponseBody
-    suspend fun searchResourceDictionaryByNames(@RequestBody names: List<String>): List<ResourceDictionary> =
+    suspend fun searchResourceDictionaryByNames(
+        @ApiParam(value = "List of names.", required = true)
+        @RequestBody names: List<String>
+    ): List<ResourceDictionary> =
         mdcWebCoroutineScope {
             resourceDictionaryHandler.searchResourceDictionaryByNames(names)
         }
 
     @GetMapping(path = ["/search/{tags}"], produces = [MediaType.APPLICATION_JSON_VALUE])
+    @ApiOperation(
+        value = "Searches for a resource dictionary.",
+        notes = "Searches for a resource dictionary by tags provided.",
+        responseContainer = "List",
+        response = ResourceDictionary::class
+    )
     @ResponseBody
-    suspend fun searchResourceDictionaryByTags(@PathVariable(value = "tags") tags: String): List<ResourceDictionary> =
+    suspend fun searchResourceDictionaryByTags(
+        @ApiParam(value = "Tags list.", required = true, example = "\"status\"")
+        @PathVariable(value = "tags") tags: String
+    ): List<ResourceDictionary> =
         mdcWebCoroutineScope {
             resourceDictionaryHandler.searchResourceDictionaryByTags(tags)
         }
 
     @GetMapping(path = ["/source-mapping"], produces = [MediaType.APPLICATION_JSON_VALUE])
+    @ApiOperation(
+        value = "Searches for a source mapping.",
+        notes = "Searches for a source mapping.",
+        response = ResourceSourceMapping::class
+    )
     @ResponseBody
     suspend fun getResourceSourceMapping(): ResourceSourceMapping = mdcWebCoroutineScope {
         resourceDictionaryHandler.getResourceSourceMapping()
     }
 
     @GetMapping(path = ["/resource_dictionary_group"], produces = [MediaType.APPLICATION_JSON_VALUE])
+    @ApiOperation(
+        value = "Retrieve all resource dictionary groups.",
+        notes = "Retrieve all resource dictionary groups.",
+        responseContainer = "List",
+        response = String::class
+    )
     @ResponseBody
     suspend fun getResourceDictionaryDistinct(): List<String> = mdcWebCoroutineScope {
         resourceDictionaryHandler.getResourceDictionaryDistinct()
diff --git a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/domain/ResourceDictionary.kt b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/domain/ResourceDictionary.kt
index eaa63dd..5dac6b5 100644
--- a/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/domain/ResourceDictionary.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/designer-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/designer/api/domain/ResourceDictionary.kt
@@ -17,6 +17,7 @@
 package org.onap.ccsdk.cds.blueprintsprocessor.designer.api.domain
 
 import com.fasterxml.jackson.annotation.JsonFormat
+import io.swagger.annotations.ApiModel
 import io.swagger.annotations.ApiModelProperty
 import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition
 import org.springframework.data.annotation.LastModifiedDate
@@ -40,40 +41,42 @@
  * @version 1.0
  */
 @EntityListeners(AuditingEntityListener::class)
+@ApiModel
 @Entity
 @Table(name = "RESOURCE_DICTIONARY")
 class ResourceDictionary : Serializable {
 
     @Id
     @Column(name = "name", nullable = false)
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Name", required = true, example = "\"sample-db-source\"")
     lateinit var name: String
 
     @Column(name = "data_type", nullable = false)
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Data type", required = true, example = "\"string\"")
     lateinit var dataType: String
 
     @Column(name = "entry_schema")
+    @ApiModelProperty(value = "Entry schema", required = true, example = "\"dt-license-key\"")
     var entrySchema: String? = null
 
     @Column(name = "resource_dictionary_group")
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Resource dictionary group", required = true, example = "\"default\"")
     var resourceDictionaryGroup: String? = null
 
     @Lob
     @Convert(converter = JpaResourceDefinitionConverter::class)
     @Column(name = "definition", nullable = false)
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Definition", required = true)
     lateinit var definition: ResourceDefinition
 
     @Lob
     @Column(name = "description", nullable = false)
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Description", required = true, example = "\"demo_artifacts_version\"")
     lateinit var description: String
 
     @Lob
     @Column(name = "tags", nullable = false)
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Tags", required = true, example = "\"hostname\"")
     lateinit var tags: String
 
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
@@ -83,7 +86,7 @@
     var creationDate: Date? = null
 
     @Column(name = "updated_by", nullable = false)
-    @ApiModelProperty(required = true)
+    @ApiModelProperty(value = "Updated by", required = true, example = "\"username\"")
     lateinit var updatedBy: String
 
     override fun toString(): String {
diff --git a/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/ResourceController.kt b/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/ResourceController.kt
index e7c11e3..3c18ba4 100644
--- a/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/ResourceController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/ResourceController.kt
@@ -38,7 +38,7 @@
 @RestController
 @RequestMapping("/api/v1/resources")
 @Api(
-    value = "/api/v1/resources",
+    value = "Resources",
     description = "Interaction with resolved resources."
 )
 open class ResourceController(private var resourceResolutionDBService: ResourceResolutionDBService) {
@@ -116,8 +116,7 @@
     )
     @ApiOperation(
         value = "Delete resources using resolution key",
-        notes = "Delete all the resources associated to a resolution-key using blueprint metadata, artifact name and the resolution-key.",
-        produces = MediaType.APPLICATION_JSON_VALUE
+        notes = "Delete all the resources associated to a resolution-key using blueprint metadata, artifact name and the resolution-key."
     )
     @PreAuthorize("hasRole('USER')")
     fun deleteByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKey(
@@ -148,8 +147,7 @@
     )
     @ApiOperation(
         value = "Fetch a resource value using resolution key.",
-        notes = "Retrieve a stored resource value using the blueprint metadata, artifact name, resolution-key along with the name of the resource value to retrieve.",
-        produces = MediaType.APPLICATION_JSON_VALUE
+        notes = "Retrieve a stored resource value using the blueprint metadata, artifact name, resolution-key along with the name of the resource value to retrieve."
     )
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
diff --git a/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/TemplateController.kt b/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/TemplateController.kt
index b56a63b..b80e81c 100644
--- a/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/TemplateController.kt
+++ b/ms/blueprintsprocessor/modules/inbounds/resource-api/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/resource/api/TemplateController.kt
@@ -47,7 +47,7 @@
 @RestController
 @RequestMapping("/api/v1/template")
 @Api(
-    value = "/api/v1/template",
+    value = "Resource template",
     description = "Interaction with resolved template."
 )
 open class TemplateController(private val templateResolutionService: TemplateResolutionService) {
@@ -146,8 +146,7 @@
         value = "Store a resolved template w/ resolution-key",
         notes = "Store a template for a given CBA's action, identified by its blueprint name, blueprint version, " +
             "artifact name and resolution key.",
-        response = TemplateResolution::class,
-        produces = MediaType.APPLICATION_JSON_VALUE
+        response = TemplateResolution::class
     )
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
@@ -178,8 +177,7 @@
         value = "Store a resolved template w/ resourceId and resourceType",
         notes = "Store a template for a given CBA's action, identified by its blueprint name, blueprint version, " +
             "artifact name, resourceId and resourceType.",
-        response = TemplateResolution::class,
-        produces = MediaType.APPLICATION_JSON_VALUE
+        response = TemplateResolution::class
     )
     @ResponseBody
     @PreAuthorize("hasRole('USER')")
diff --git a/ms/blueprintsprocessor/modules/services/workflow-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/ImperativeWorkflowExecutionService.kt b/ms/blueprintsprocessor/modules/services/workflow-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/ImperativeWorkflowExecutionService.kt
index 0146358..464ae8d 100644
--- a/ms/blueprintsprocessor/modules/services/workflow-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/ImperativeWorkflowExecutionService.kt
+++ b/ms/blueprintsprocessor/modules/services/workflow-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/ImperativeWorkflowExecutionService.kt
@@ -17,12 +17,14 @@
 package org.onap.ccsdk.cds.blueprintsprocessor.services.workflow
 
 import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.coroutineScope
 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.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.MDCContext
 import org.onap.ccsdk.cds.controllerblueprints.core.asGraph
 import org.onap.ccsdk.cds.controllerblueprints.core.checkNotEmpty
 import org.onap.ccsdk.cds.controllerblueprints.core.data.EdgeLabel
@@ -35,6 +37,7 @@
 import org.onap.ccsdk.cds.controllerblueprints.core.service.NodeSkipMessage
 import org.onap.ccsdk.cds.controllerblueprints.core.service.WorkflowExecuteMessage
 import org.springframework.stereotype.Service
+import kotlin.coroutines.CoroutineContext
 
 @Service("imperativeWorkflowExecutionService")
 class ImperativeWorkflowExecutionService(
@@ -54,14 +57,21 @@
 
         val graph = bluePrintContext.workflowByName(workflowName).asGraph()
 
-        return ImperativeBluePrintWorkflowService(nodeTemplateExecutionService)
-            .executeWorkflow(graph, bluePrintRuntimeService, executionServiceInput)
+        return coroutineScope {
+            ImperativeBluePrintWorkflowService(
+                nodeTemplateExecutionService,
+                this.coroutineContext[MDCContext]
+            )
+        }.let { it.executeWorkflow(graph, bluePrintRuntimeService, executionServiceInput) }
     }
 }
 
-open class ImperativeBluePrintWorkflowService(private val nodeTemplateExecutionService: NodeTemplateExecutionService) :
+open class ImperativeBluePrintWorkflowService(private val nodeTemplateExecutionService: NodeTemplateExecutionService, private val mdcContext: CoroutineContext?) :
     AbstractBluePrintWorkFlowService<ExecutionServiceInput, ExecutionServiceOutput>() {
 
+    final override val coroutineContext: CoroutineContext
+        get() = mdcContext?.let { super.coroutineContext + it } ?: super.coroutineContext
+
     val log = logger(ImperativeBluePrintWorkflowService::class)
 
     lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*>