CLAMP should not display all CDS workflow properties 27/111127/3
authorroot1 <vidyashree.rama@huawei.com>
Tue, 11 Aug 2020 13:14:29 +0000 (18:44 +0530)
committerroot1 <vidyashree.rama@huawei.com>
Fri, 28 Aug 2020 06:31:34 +0000 (12:01 +0530)
CLAMP should not display all CDS workflow properties

Issue-ID: CLAMP-856
Signed-off-by: root1 <vidyashree.rama@huawei.com>
Change-Id: I98fc46c9c9ba574a3606740921d74743cb6f38ea

17 files changed:
src/main/java/org/onap/clamp/clds/client/CdsServices.java
src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
src/main/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java
src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
src/test/java/org/onap/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java
src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json
src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json
src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json
src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json
src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec&#63;connectionTimeToLive=5000/.file
src/test/resources/tosca/model-properties-cds.json
src/test/resources/tosca/model-properties-operational-policy.json [new file with mode: 0644]
src/test/resources/tosca/model-properties.json
src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
src/test/resources/tosca/operational-policy-json-schema.json
src/test/resources/tosca/resource-details-cds.json [new file with mode: 0644]
src/test/resources/tosca/resource-details.json

index fa15e27..fd3b353 100644 (file)
@@ -22,6 +22,8 @@
 \r
 package org.onap.clamp.clds.client;\r
 \r
+import static java.lang.Boolean.parseBoolean;\r
+\r
 import com.att.eelf.configuration.EELFLogger;\r
 import com.att.eelf.configuration.EELFManager;\r
 import com.google.gson.JsonElement;\r
@@ -52,6 +54,10 @@ public class CdsServices {
 \r
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CdsServices.class);\r
 \r
+    private static final String TYPE = "type";\r
+    private static final String PROPERTIES = "properties";\r
+    private static final String LIST = "list";\r
+\r
     /**\r
      * Constructor.\r
      */\r
@@ -129,55 +135,80 @@ public class CdsServices {
         JsonObject dataTypes = root.getAsJsonObject("dataTypes");\r
 \r
         JsonObject workFlowProperties = new JsonObject();\r
-        workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes));\r
+        workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));\r
         return workFlowProperties;\r
     }\r
 \r
-    private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes) {\r
-        JsonObject inputObject = new JsonObject();\r
+    private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes,\r
+                                          JsonObject inputObject) {\r
+        if (inputs == null) {\r
+            return inputObject;\r
+        }\r
+\r
         for (Map.Entry<String, JsonElement> entry : inputs.entrySet()) {\r
             String key = entry.getKey();\r
             JsonObject inputProperty = inputs.getAsJsonObject(key);\r
-            String type = inputProperty.get("type").getAsString();\r
+            String type = inputProperty.get(TYPE).getAsString();\r
             if (isComplexType(type, dataTypes)) {\r
                 inputObject.add(key, handleComplexType(type, dataTypes));\r
-            } else if (type.equalsIgnoreCase("list")) {\r
-                inputObject.add(key, handleListType(key, inputProperty,\r
-                                                    dataTypes));\r
-            } else {\r
+            } else if (LIST.equalsIgnoreCase(type)) {\r
+                handleListType(key, inputProperty, dataTypes, inputObject);\r
+            } else if (isInputParam(inputProperty)) {\r
                 inputObject.add(key, entry.getValue());\r
             }\r
         }\r
         return inputObject;\r
     }\r
 \r
-    private JsonObject handleListType(String propertyName,\r
+    private void handleListType(String propertyName,\r
                                       JsonObject inputProperty,\r
-                                      JsonObject dataTypes) {\r
-        if (inputProperty.get("entry_schema") != null) {\r
-            String type = inputProperty.get("entry_schema").getAsJsonObject().get(\r
-                            "type").getAsString();\r
-            if (dataTypes.get(type) != null) {\r
-                JsonObject jsonObject = new JsonObject();\r
-                jsonObject.addProperty("type", "list");\r
-                jsonObject.add("properties", handleComplexType(type, dataTypes));\r
-                return jsonObject;\r
-            } else {\r
-                return inputProperty;\r
-            }\r
+                                      JsonObject dataTypes,\r
+                                      JsonObject inputObject) {\r
+        if (inputProperty.get("entry_schema") == null) {\r
+            throw new CdsParametersException("Entry schema is null for " + propertyName);\r
+        }\r
+\r
+        String type = inputProperty.get("entry_schema").getAsJsonObject().get(\r
+                TYPE).getAsString();\r
+        if (dataTypes.get(type) != null) {\r
+            JsonObject jsonObject = new JsonObject();\r
+            jsonObject.addProperty(TYPE, LIST);\r
+            jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));\r
+            inputObject.add(propertyName, jsonObject);\r
+        } else if (isInputParam(inputProperty)) {\r
+            inputObject.add(propertyName, inputProperty);\r
         }\r
-        throw new CdsParametersException("Entry schema is null for " + propertyName);\r
     }\r
 \r
     private JsonObject handleComplexType(String key, JsonObject dataTypes) {\r
-        JsonObject properties = dataTypes.get(key).getAsJsonObject().get("properties").getAsJsonObject();\r
-        return getInputProperties(properties, dataTypes);\r
+        JsonObject jsonObject = new JsonObject();\r
+        jsonObject.addProperty(TYPE, "object");\r
+        jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));\r
+        return jsonObject;\r
+    }\r
+\r
+    private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {\r
+        JsonObject properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();\r
+        JsonObject object = new JsonObject();\r
+        getInputProperties(properties, dataTypes, object);\r
+        return object;\r
     }\r
 \r
     private boolean isComplexType(String type, JsonObject dataTypes) {\r
+        if (dataTypes == null) {\r
+            return false;\r
+        }\r
         return dataTypes.get(type) != null;\r
     }\r
 \r
+    private boolean isInputParam(JsonObject inputProperty) {\r
+        JsonElement inputParam = inputProperty.get("input-param");\r
+        if (inputParam == null) {\r
+            return false;\r
+        }\r
+        return parseBoolean(inputParam.getAsString());\r
+    }\r
+\r
     /**\r
      * Creates payload to query CDS to get workflow input properties.\r
      *\r
index 94a477f..39fa25a 100644 (file)
@@ -24,6 +24,7 @@
 package org.onap.clamp.clds.tosca.update.execution.cds;
 
 import static org.onap.clamp.clds.tosca.ToscaSchemaConstants.TYPE;
+import static org.onap.clamp.clds.tosca.ToscaSchemaConstants.TYPE_LIST;
 
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
@@ -108,7 +109,8 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess {
                     obj.addProperty("title", workflowsEntry.getKey());
                     obj.add("properties",
                             createInputPropertiesForPayload(workflowsEntry.getValue().getAsJsonObject(),
-                                                            controllerProperties));
+                                                            controllerProperties,
+                                                            workflowsEntry.getKey()));
                     schemaAnyOf.add(obj);
                 }
             }
@@ -150,10 +152,12 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess {
      * @param workFlow cds work flows to update payload
      * @param controllerProperties cds properties to get blueprint name and
      *                            version
+     * @param workFlowName work flow name
      * @return returns the properties of payload
      */
     public static JsonObject createInputPropertiesForPayload(JsonObject workFlow,
-                                                             JsonObject controllerProperties) {
+                                                             JsonObject controllerProperties,
+                                                             String workFlowName) {
         String artifactName = controllerProperties.get("sdnc_model_name").getAsString();
         String artifactVersion = controllerProperties.get("sdnc_model_version").getAsString();
         JsonObject inputs = workFlow.getAsJsonObject("inputs");
@@ -164,32 +168,53 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess {
                 "artifact version", artifactVersion, true));
         jsonObject.add("mode", createAnyOfJsonProperty(
                 "mode", "async", false));
-        jsonObject.add("data", createDataProperty(inputs));
+        jsonObject.add("data", createDataProperty(inputs, workFlowName));
         return jsonObject;
     }
 
-    private static JsonObject createDataProperty(JsonObject inputs) {
+    private static JsonObject createDataProperty(JsonObject inputs, String workFlowName) {
         JsonObject data = new JsonObject();
         data.addProperty("title", "data");
         data.addProperty("type", "string");
         data.addProperty("format", "textarea");
         JsonObject defaultValue = new JsonObject();
-        addDefaultValueForData(inputs, defaultValue);
+        addDefaultValueForData(inputs, defaultValue, workFlowName);
         data.addProperty("default", defaultValue.toString());
         return data;
     }
 
     private static void addDefaultValueForData(JsonObject inputs,
-                                               JsonObject defaultValue) {
+                                               JsonObject defaultValue,
+                                               String workFlowName) {
         Set<Map.Entry<String, JsonElement>> entrySet = inputs.entrySet();
         for (Map.Entry<String, JsonElement> entry : entrySet) {
             String key = entry.getKey();
             JsonObject inputProperty = inputs.getAsJsonObject(key);
-            if (inputProperty.get(TYPE) == null) {
-                addDefaultValueForData(entry.getValue().getAsJsonObject(), defaultValue);
+            if (key.equalsIgnoreCase(workFlowName + "-properties")) {
+                addDefaultValueForData(entry.getValue().getAsJsonObject().get("properties")
+                        .getAsJsonObject(), defaultValue, workFlowName);
+            } else if ("object".equalsIgnoreCase(inputProperty.get(TYPE).getAsString())) {
+                JsonObject object = new JsonObject();
+                addDefaultValueForData(entry.getValue().getAsJsonObject().get("properties")
+                        .getAsJsonObject(), object, workFlowName);
+                defaultValue.add(entry.getKey(), object);
+            } else if (TYPE_LIST.equalsIgnoreCase(inputProperty.get(TYPE).getAsString())) {
+                defaultValue.add(entry.getKey(), handleListType(entry.getValue().getAsJsonObject(), workFlowName));
             } else {
                 defaultValue.addProperty(entry.getKey(), "");
             }
         }
     }
+
+    private static JsonArray handleListType(JsonObject inputs,
+                                            String workFlowName) {
+
+        JsonObject object = new JsonObject();
+        if (inputs.get("properties") != null) {
+            addDefaultValueForData(inputs.get("properties").getAsJsonObject(), object, workFlowName);
+        }
+        JsonArray arr = new JsonArray();
+        arr.add(object);
+        return arr;
+    }
 }
index ee40306..c0e1c01 100644 (file)
@@ -53,6 +53,8 @@ public class OperationalPolicyRepresentationBuilder {
     public static final String STRING = "string";
     public static final String TYPE = "type";
     public static final String TYPE_LIST = "list";
+    public static final String TYPE_OBJECT = "object";
+    public static final String TYPE_ARRAY = "array";
 
     private OperationalPolicyRepresentationBuilder() {
        throw new IllegalStateException("This is Utility class, not supposed to be initiated.");
@@ -240,8 +242,8 @@ public class OperationalPolicyRepresentationBuilder {
         JsonObject payload = new JsonObject();
         payload.addProperty(TITLE, "Payload");
         payload.addProperty(TYPE, "object");
-        payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow,
-                                                                  controllerProperties));
+        payload.add(PROPERTIES, createInputPropertiesForPayload(workFlow, controllerProperties,
+                                                                workFlowName));
         JsonObject properties = new JsonObject();
         properties.add(RECIPE, createRecipeForCdsWorkflow(workFlowName));
         properties.add("payload", payload);
@@ -265,10 +267,12 @@ public class OperationalPolicyRepresentationBuilder {
      * @param workFlow             cds work flows to update payload
      * @param controllerProperties cds properties to get blueprint name and
      *                             version
+     * @param workFlowName         work flow name
      * @return returns the properties of payload
      */
     public static JsonObject createInputPropertiesForPayload(JsonObject workFlow,
-                                                             JsonObject controllerProperties) {
+                                                             JsonObject controllerProperties,
+                                                             String workFlowName) {
         String artifactName = controllerProperties.get("sdnc_model_name").getAsString();
         String artifactVersion = controllerProperties.get("sdnc_model_version").getAsString();
         JsonObject inputs = workFlow.getAsJsonObject("inputs");
@@ -279,33 +283,33 @@ public class OperationalPolicyRepresentationBuilder {
                 "artifact version", STRING, artifactVersion, "True", null));
         jsonObject.add("mode", createCdsInputProperty(
                 "mode", STRING, "async" ,null));
-        jsonObject.add("data", createDataProperty(inputs));
+        jsonObject.add("data", createDataProperty(inputs, workFlowName));
         return jsonObject;
     }
 
-    private static JsonObject createDataProperty(JsonObject inputs) {
+    private static JsonObject createDataProperty(JsonObject inputs, String workflowName) {
         JsonObject data = new JsonObject();
         data.addProperty(TITLE, "data");
         JsonObject dataObj = new JsonObject();
-        addDataFields(inputs, dataObj);
+        addDataFields(inputs, dataObj, workflowName);
         data.add(PROPERTIES, dataObj);
         return data;
     }
 
     private static void addDataFields(JsonObject inputs,
-                                      JsonObject dataObj) {
+                                      JsonObject dataObj,
+                                      String workFlowName) {
         Set<Map.Entry<String, JsonElement>> entrySet = inputs.entrySet();
         for (Map.Entry<String, JsonElement> entry : entrySet) {
             String key = entry.getKey();
             JsonObject inputProperty = inputs.getAsJsonObject(key);
-            if (inputProperty.get(TYPE) == null) {
-                addDataFields(entry.getValue().getAsJsonObject(), dataObj);
+            if (key.equalsIgnoreCase(workFlowName + "-properties")) {
+                addDataFields(entry.getValue().getAsJsonObject().get("properties").getAsJsonObject(),
+                        dataObj, workFlowName);
             } else {
                 dataObj.add(entry.getKey(),
-                            createCdsInputProperty(key,
-                                                   inputProperty.get(TYPE).getAsString(),
-                                                   null,
-                                                   entry.getValue().getAsJsonObject()));
+                        createCdsInputProperty(key, inputProperty.get(TYPE).getAsString(),null,
+                                entry.getValue().getAsJsonObject()));
             }
         }
     }
@@ -318,15 +322,15 @@ public class OperationalPolicyRepresentationBuilder {
         property.addProperty(TITLE, title);
 
         if (TYPE_LIST.equalsIgnoreCase(type)) {
-            property.addProperty(TYPE, "array");
+            property.addProperty(TYPE, TYPE_ARRAY);
             if (cdsProperty != null && cdsProperty.get(PROPERTIES) != null) {
-                JsonObject dataObject = new JsonObject();
-                addDataFields(cdsProperty.get(PROPERTIES).getAsJsonObject(),
-                              dataObject);
                 JsonObject listProperties = new JsonObject();
-                listProperties.add(PROPERTIES, dataObject);
+                listProperties.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
                 property.add(ITEMS, listProperties);
             }
+        } else if (TYPE_OBJECT.equalsIgnoreCase(type)) {
+            property.addProperty(TYPE, TYPE_OBJECT);
+            property.add(PROPERTIES, getProperties(cdsProperty.get(PROPERTIES).getAsJsonObject()));
         } else {
             property.addProperty(TYPE, type);
         }
@@ -336,4 +340,13 @@ public class OperationalPolicyRepresentationBuilder {
         }
         return property;
     }
+
+    private static JsonObject getProperties(JsonObject inputProperties) {
+        if (inputProperties == null) {
+            return null;
+        }
+        JsonObject dataObject = new JsonObject();
+        addDataFields(inputProperties, dataObject, null);
+        return dataObject;
+    }
 }
index 7f0e576..f777421 100644 (file)
@@ -128,7 +128,7 @@ public class ToscaConverterWithDictionarySupportItCase {
     @Transactional
     public final void testMetadataClampPossibleValueWithExecutor() throws IOException, UnknownComponentException {
         Service service = new Service(ResourceFileUtil.getResourceAsString("tosca/service-details.json"),
-                ResourceFileUtil.getResourceAsString("tosca/resource-details.json"));
+                ResourceFileUtil.getResourceAsString("tosca/resource-details-cds.json"));
         JsonTemplateManager jsonTemplateManager =
                 new JsonTemplateManager(
                         ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap"
index b90a286..4f728b4 100644 (file)
@@ -37,8 +37,8 @@ public class OperationalPolicyRepresentationBuilderTest {
 
     @Test
     public void testOperationalPolicyPayloadConstruction() throws IOException {
-        JsonObject jsonModel = new GsonBuilder().create()
-                .fromJson(ResourceFileUtil.getResourceAsString("tosca/model-properties.json"), JsonObject.class);
+        JsonObject jsonModel = new GsonBuilder().create().fromJson(ResourceFileUtil
+                .getResourceAsString("tosca/model-properties-operational-policy.json"), JsonObject.class);
         Service service = new Service(jsonModel.get("serviceDetails").getAsJsonObject(),
                 jsonModel.get("resourceDetails").getAsJsonObject(), "1.0");
 
index 7e78bb0..2b64931 100644 (file)
@@ -1,57 +1,29 @@
 {
   "inputs": {
-    "resolution-key": {
-      "required": true,
-      "type": "string"
-    },
     "modify-config-properties": {
-      "vpg_onap_private_ip_0": {
-        "description": "",
-        "required": false,
-        "type": "string",
-        "status": "",
-        "constraints": [
-          {}
-        ],
-        "entry_schema": {
-          "type": ""
+      "type": "object",
+      "properties": {
+        "service-instance-id": {
+          "type": "string",
+          "input-param": true
+        },
+        "update-active-streams": {
+          "description": "",
+          "required": false,
+          "type": "string",
+          "input-param": true,
+          "status": "",
+          "constraints": [
+            {}
+          ],
+          "entry_schema": {
+            "type": "dt-data"
+          }
+        },
+        "generic-vnf.vnf-id": {
+          "type": "string",
+          "input-param": true
         }
-      },
-      "service-instance.service-instance-id": {
-        "type": "string"
-      },
-      "vnf-id": {
-        "type": "string"
-      },
-      "data": {
-        "description": "",
-        "required": false,
-        "type": "string",
-        "status": "",
-        "constraints": [
-          {}
-        ],
-        "entry_schema": {
-          "type": "dt-data"
-        }
-      },
-      "service-instance-id": {
-        "type": "string"
-      },
-      "update-active-streams": {
-        "description": "",
-        "required": false,
-        "type": "string",
-        "status": "",
-        "constraints": [
-          {}
-        ],
-        "entry_schema": {
-          "type": "dt-data"
-        }
-      },
-      "generic-vnf.vnf-id": {
-        "type": "string"
       }
     }
   }
index e46da67..115d79b 100644 (file)
           }
         },
         "service-instance-id": {
-          "type": "string"
+          "type": "string",
+          "input-param": true
         },
         "update-active-streams": {
           "description": "",
           "required": false,
           "type": "string",
+          "input-param": true,
           "status": "",
           "constraints": [
             {}
@@ -66,7 +68,8 @@
           }
         },
         "generic-vnf.vnf-id": {
-          "type": "string"
+          "type": "string",
+          "input-param": true
         }
       },
       "derived_from": "tosca.datatypes.Dynamic"
index 5b373a4..07d851f 100644 (file)
@@ -1,12 +1,5 @@
 {
   "inputs": {
-    "template-prefix": {
-      "required": true,
-      "type": "list",
-      "entry_schema": {
-        "type": "string"
-      }
-    },
     "template-prefix-with-complex-type": {
       "type": "list",
       "properties": {
@@ -14,6 +7,7 @@
           "description": "",
           "required": false,
           "type": "string",
+          "input-param": true,
           "status": "",
           "constraints": [
             {}
       }
     },
     "resource-assignment-properties": {
-      "private1-prefix-id": {
-        "description": "",
-        "required": false,
-        "type": "string",
-        "status": "",
-        "constraints": [
-          {}
-        ],
-        "entry_schema": {
-          "type": ""
+      "type": "object",
+      "properties": {
+        "private1-prefix-id": {
+          "description": "",
+          "required": false,
+          "type": "string",
+          "input-param": true,
+          "status": "",
+          "constraints": [
+            {}
+          ],
+          "entry_schema": {
+            "type": ""
+          }
         }
       }
     }
index d0f78cf..7f76c6c 100644 (file)
@@ -45,6 +45,7 @@
           "description": "",
           "required": false,
           "type": "string",
+          "input-param": true,
           "status": "",
           "constraints": [
             {}
@@ -64,6 +65,7 @@
           "description": "",
           "required": false,
           "type": "string",
+          "input-param": true,
           "status": "",
           "constraints": [
             {}
index 13d3fea..9e616df 100644 (file)
             "properties": {
                 "request-id": {
                     "required": true,
-                    "type": "string"
+                    "type": "string",
+                    "input-param": true
                 },
                 "service-instance-id": {
                     "required": true,
-                    "type": "string"
+                    "type": "string",
+                    "input-param": true
                 },
                 "vnf-id": {
                     "required": true,
                 },
                 "hostname": {
                     "required": true,
-                    "type": "string"
+                    "type": "string",
+                    "input-param": true
+                },
+                "request-info": {
+                    "required": true,
+                    "type": "dt-request-info-properties",
+                    "input-param": true
                 },
                 "vnf_name": {
                     "required": true,
             },
             "constraints": null,
             "derived_from": "tosca.datatypes.Dynamic"
+        },
+        "dt-request-info-properties": {
+            "description": "This is Dynamically generated data type for workflow activate",
+            "version": "1.0.0",
+            "metadata": null,
+            "attributes": null,
+            "properties": {
+                "prop1": {
+                    "required": true,
+                    "type": "string",
+                    "input-param": true
+                },
+                "prop2": {
+                    "required": true,
+                    "type": "string",
+                    "input-param": true
+                }
+            },
+            "constraints": null,
+            "derived_from": "tosca.datatypes.Dynamic"
         }
     }
 }
\ No newline at end of file
index 591840b..fea6584 100644 (file)
                                                                        }
                                                                },
                                                                "resource-assignment-properties": {
-                                                                       "private1-prefix-id": {
-                                                                               "description": "",
-                                                                               "required": false,
-                                                                               "type": "string",
-                                                                               "status": "",
-                                                                               "constraints": [
-                                                                                       {}
-                                                                               ],
-                                                                               "entry_schema": {
-                                                                                       "type": ""
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "private1-prefix-id": {
+                                                                                       "description": "",
+                                                                                       "required": false,
+                                                                                       "type": "string",
+                                                                                       "status": "",
+                                                                                       "constraints": [
+                                                                                               {}
+                                                                                       ],
+                                                                                       "entry_schema": {
+                                                                                               "type": ""
+                                                                                       }
                                                                                }
                                                                        }
                                                                }
diff --git a/src/test/resources/tosca/model-properties-operational-policy.json b/src/test/resources/tosca/model-properties-operational-policy.json
new file mode 100644 (file)
index 0000000..2a65685
--- /dev/null
@@ -0,0 +1,353 @@
+{
+       "serviceDetails": {
+               "serviceType": "",
+               "namingPolicy": "",
+               "environmentContext": "General_Revenue-Bearing",
+               "serviceEcompNaming": "true",
+               "serviceRole": "",
+               "name": "vLoadBalancerMS",
+               "description": "vLBMS",
+               "invariantUUID": "30ec5b59-4799-48d8-ac5f-1058a6b0e48f",
+               "ecompGeneratedNaming": "true",
+               "category": "Network L4+",
+               "type": "Service",
+               "UUID": "63cac700-ab9a-4115-a74f-7eac85e3fce0",
+               "instantiationType": "A-la-carte"
+       },
+       "resourceDetails": {
+               "CP": {
+               },
+               "VL": {
+               },
+               "VF": {
+                       "vLoadBalancerMS 0": {
+                               "resourceVendor": "Test",
+                               "resourceVendorModelNumber": "",
+                               "name": "vLoadBalancerMS",
+                               "description": "vLBMS",
+                               "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+                               "subcategory": "Load Balancer",
+                               "category": "Application L4+",
+                               "type": "VF",
+                               "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+                               "version": "1.0",
+                               "resourceVendorRelease": "1.0",
+                               "customizationUUID": "465246dc-7748-45f4-a013-308d92922552",
+                               "controllerProperties": {
+                                       "sdnc_model_name": "baseconfiguration",
+                                       "sdnc_model_version": "1.0.0",
+                                       "workflows": {
+                                               "resource-assignment": {
+                                                       "inputs": {
+                                                               "resource-assignment-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "activate": {
+                                                       "inputs": {
+                                                               "activate-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "activate-restconf": {
+                                                       "inputs": {
+                                                               "activate-restconf-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "activate-cli": {
+                                                       "inputs": {
+                                                               "activate-cli-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "assign-activate": {
+                                                       "inputs": {
+                                                               "assign-activate-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "imperative-test-wf": {
+                                                       "inputs": {
+                                                               "imperative-test-wf-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "CR": {
+               },
+               "VFC": {
+               },
+               "PNF": {
+               },
+               "Service": {
+               },
+               "CVFC": {
+               },
+               "Service Proxy": {
+               },
+               "Configuration": {
+               },
+               "AllottedResource": {
+               },
+               "VFModule": {
+                       "Vloadbalancerms..vpkg..module-1": {
+                               "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+                               "vfModuleModelVersion": "1",
+                               "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+                               "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+                               "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+                               "min_vf_module_instances": 0,
+                               "vf_module_label": "vpkg",
+                               "max_vf_module_instances": 1,
+                               "vf_module_type": "Expansion",
+                               "isBase": false,
+                               "initial_count": 0,
+                               "volume_group": false
+                       },
+                       "Vloadbalancerms..vdns..module-3": {
+                               "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+                               "vfModuleModelVersion": "1",
+                               "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+                               "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+                               "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+                               "min_vf_module_instances": 0,
+                               "vf_module_label": "vdns",
+                               "max_vf_module_instances": 50,
+                               "vf_module_type": "Expansion",
+                               "isBase": false,
+                               "initial_count": 0,
+                               "volume_group": false
+                       },
+                       "Vloadbalancerms..base_template..module-0": {
+                               "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+                               "vfModuleModelVersion": "1",
+                               "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+                               "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+                               "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+                               "min_vf_module_instances": 1,
+                               "vf_module_label": "base_template",
+                               "max_vf_module_instances": 1,
+                               "vf_module_type": "Base",
+                               "isBase": true,
+                               "initial_count": 1,
+                               "volume_group": false
+                       },
+                       "Vloadbalancerms..vlb..module-2": {
+                               "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+                               "vfModuleModelVersion": "1",
+                               "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+                               "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+                               "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+                               "min_vf_module_instances": 0,
+                               "vf_module_label": "vlb",
+                               "max_vf_module_instances": 1,
+                               "vf_module_type": "Expansion",
+                               "isBase": false,
+                               "initial_count": 0,
+                               "volume_group": false
+                       }
+               }
+       }
+}
\ No newline at end of file
index 688a09a..1c0fe24 100644 (file)
                                                "resource-assignment": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "activate": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "activate-restconf": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "activate-cli": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "assign-activate": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "imperative-test-wf": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
-                                               } 
-                                       }
+                                               }
+                                       }
                                }
                        }
                },
index f6713af..4519d5c 100644 (file)
@@ -94,7 +94,7 @@
                         "title": "data",
                         "type": "string",
                         "format": "textarea",
-                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
                       }
                     }
                   },
                         "title": "data",
                         "type": "string",
                         "format": "textarea",
-                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
                       }
                     }
                   },
                         "title": "data",
                         "type": "string",
                         "format": "textarea",
-                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
                       }
                     }
                   },
                         "title": "data",
                         "type": "string",
                         "format": "textarea",
-                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
                       }
                     }
                   },
                         "title": "data",
                         "type": "string",
                         "format": "textarea",
-                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
                       }
                     }
                   },
                         "title": "data",
                         "type": "string",
                         "format": "textarea",
-                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"vnf-id\":\"\",\"action-name\":\"\",\"scope-type\":\"\",\"hostname\":\"\",\"vnf_name\":\"\"}"
+                        "default": "{\"request-id\":\"\",\"service-instance-id\":\"\",\"hostname\":\"\",\"request-info\":{\"prop1\":\"\",\"prop2\":\"\"}}"
                       }
                     }
                   }
index e8363b4..dc6c32f 100644 (file)
                                         "title": "service-instance-id",
                                         "type": "string"
                                       },
-                                      "vnf-id": {
-                                        "title": "vnf-id",
-                                        "type": "string"
-                                      },
-                                      "action-name": {
-                                        "title": "action-name",
-                                        "type": "string"
-                                      },
-                                      "scope-type": {
-                                        "title": "scope-type",
-                                        "type": "string"
-                                      },
                                       "hostname": {
                                         "title": "hostname",
                                         "type": "string"
                                       },
-                                      "vnf_name": {
-                                        "title": "vnf_name",
-                                        "type": "string"
+                                      "request-info": {
+                                        "title": "request-info",
+                                        "type": "object",
+                                        "properties": {
+                                          "prop1": {
+                                            "title": "prop1",
+                                            "type": "string"
+                                          },
+                                          "prop2": {
+                                            "title": "prop2",
+                                            "type": "string"
+                                          }
+                                        }
                                       }
                                     }
                                   }
                                         "title": "service-instance-id",
                                         "type": "string"
                                       },
-                                      "vnf-id": {
-                                        "title": "vnf-id",
-                                        "type": "string"
-                                      },
-                                      "action-name": {
-                                        "title": "action-name",
-                                        "type": "string"
-                                      },
-                                      "scope-type": {
-                                        "title": "scope-type",
-                                        "type": "string"
-                                      },
                                       "hostname": {
                                         "title": "hostname",
                                         "type": "string"
                                       },
-                                      "vnf_name": {
-                                        "title": "vnf_name",
-                                        "type": "string"
+                                      "request-info": {
+                                        "title": "request-info",
+                                        "type": "object",
+                                        "properties": {
+                                          "prop1": {
+                                            "title": "prop1",
+                                            "type": "string"
+                                          },
+                                          "prop2": {
+                                            "title": "prop2",
+                                            "type": "string"
+                                          }
+                                        }
                                       }
                                     }
                                   }
                                         "title": "service-instance-id",
                                         "type": "string"
                                       },
-                                      "vnf-id": {
-                                        "title": "vnf-id",
-                                        "type": "string"
-                                      },
-                                      "action-name": {
-                                        "title": "action-name",
-                                        "type": "string"
-                                      },
-                                      "scope-type": {
-                                        "title": "scope-type",
-                                        "type": "string"
-                                      },
                                       "hostname": {
                                         "title": "hostname",
                                         "type": "string"
                                       },
-                                      "vnf_name": {
-                                        "title": "vnf_name",
-                                        "type": "string"
+                                      "request-info": {
+                                        "title": "request-info",
+                                        "type": "object",
+                                        "properties": {
+                                          "prop1": {
+                                            "title": "prop1",
+                                            "type": "string"
+                                          },
+                                          "prop2": {
+                                            "title": "prop2",
+                                            "type": "string"
+                                          }
+                                        }
                                       }
                                     }
                                   }
                                         "title": "service-instance-id",
                                         "type": "string"
                                       },
-                                      "vnf-id": {
-                                        "title": "vnf-id",
-                                        "type": "string"
-                                      },
-                                      "action-name": {
-                                        "title": "action-name",
-                                        "type": "string"
-                                      },
-                                      "scope-type": {
-                                        "title": "scope-type",
-                                        "type": "string"
-                                      },
                                       "hostname": {
                                         "title": "hostname",
                                         "type": "string"
                                       },
-                                      "vnf_name": {
-                                        "title": "vnf_name",
-                                        "type": "string"
+                                      "request-info": {
+                                        "title": "request-info",
+                                        "type": "object",
+                                        "properties": {
+                                          "prop1": {
+                                            "title": "prop1",
+                                            "type": "string"
+                                          },
+                                          "prop2": {
+                                            "title": "prop2",
+                                            "type": "string"
+                                          }
+                                        }
                                       }
                                     }
                                   }
                                         "title": "service-instance-id",
                                         "type": "string"
                                       },
-                                      "vnf-id": {
-                                        "title": "vnf-id",
-                                        "type": "string"
-                                      },
-                                      "action-name": {
-                                        "title": "action-name",
-                                        "type": "string"
-                                      },
-                                      "scope-type": {
-                                        "title": "scope-type",
-                                        "type": "string"
-                                      },
                                       "hostname": {
                                         "title": "hostname",
                                         "type": "string"
                                       },
-                                      "vnf_name": {
-                                        "title": "vnf_name",
-                                        "type": "string"
+                                      "request-info": {
+                                        "title": "request-info",
+                                        "type": "object",
+                                        "properties": {
+                                          "prop1": {
+                                            "title": "prop1",
+                                            "type": "string"
+                                          },
+                                          "prop2": {
+                                            "title": "prop2",
+                                            "type": "string"
+                                          }
+                                        }
                                       }
                                     }
                                   }
                                         "title": "service-instance-id",
                                         "type": "string"
                                       },
-                                      "vnf-id": {
-                                        "title": "vnf-id",
-                                        "type": "string"
-                                      },
-                                      "action-name": {
-                                        "title": "action-name",
-                                        "type": "string"
-                                      },
-                                      "scope-type": {
-                                        "title": "scope-type",
-                                        "type": "string"
-                                      },
                                       "hostname": {
                                         "title": "hostname",
                                         "type": "string"
                                       },
-                                      "vnf_name": {
-                                        "title": "vnf_name",
-                                        "type": "string"
+                                      "request-info": {
+                                        "title": "request-info",
+                                        "type": "object",
+                                        "properties": {
+                                          "prop1": {
+                                            "title": "prop1",
+                                            "type": "string"
+                                          },
+                                          "prop2": {
+                                            "title": "prop2",
+                                            "type": "string"
+                                          }
+                                        }
                                       }
                                     }
                                   }
diff --git a/src/test/resources/tosca/resource-details-cds.json b/src/test/resources/tosca/resource-details-cds.json
new file mode 100644 (file)
index 0000000..d972d0c
--- /dev/null
@@ -0,0 +1,336 @@
+{
+       "CP": {
+       },
+       "VL": {
+       },
+       "VF": {
+               "vLoadBalancerMS 0": {
+                       "resourceVendor": "Test",
+                       "resourceVendorModelNumber": "",
+                       "name": "vLoadBalancerMS",
+                       "description": "vLBMS",
+                       "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+                       "subcategory": "Load Balancer",
+                       "category": "Application L4+",
+                       "type": "VF",
+                       "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+                       "version": "1.0",
+                       "resourceVendorRelease": "1.0",
+                       "customizationUUID": "465246dc-7748-45f4-a013-308d92922552",
+                               "controllerProperties": {
+                                       "sdnc_model_name": "baseconfiguration",
+                                       "sdnc_model_version": "1.0.0",
+                                       "workflows": {
+                                               "resource-assignment": {
+                                                       "inputs": {
+                                                               "resource-assignment-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "activate": {
+                                                       "inputs": {
+                                                               "activate-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "activate-restconf": {
+                                                       "inputs": {
+                                                               "activate-restconf-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "activate-cli": {
+                                                       "inputs": {
+                                                               "activate-cli-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "assign-activate": {
+                                                       "inputs": {
+                                                               "assign-activate-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               "imperative-test-wf": {
+                                                       "inputs": {
+                                                               "imperative-test-wf-properties": {
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               } 
+                                }
+               }
+               }
+       },
+       "CR": {
+       },
+       "VFC": {
+       },
+       "PNF": {
+       },
+       "Service": {
+       },
+       "CVFC": {
+       },
+       "Service Proxy": {
+       },
+       "Configuration": {
+       },
+       "AllottedResource": {
+       },
+       "VFModule": {
+               "Vloadbalancerms..vpkg..module-1": {
+                       "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+                       "vfModuleModelVersion": "1",
+                       "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+                       "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+                       "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+                       "min_vf_module_instances": 0,
+                       "vf_module_label": "vpkg",
+                       "max_vf_module_instances": 1,
+                       "vf_module_type": "Expansion",
+                       "isBase": false,
+                       "initial_count": 0,
+                       "volume_group": false
+               },
+               "Vloadbalancerms..vdns..module-3": {
+                       "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+                       "vfModuleModelVersion": "1",
+                       "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+                       "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+                       "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+                       "min_vf_module_instances": 0,
+                       "vf_module_label": "vdns",
+                       "max_vf_module_instances": 50,
+                       "vf_module_type": "Expansion",
+                       "isBase": false,
+                       "initial_count": 0,
+                       "volume_group": false
+               },
+               "Vloadbalancerms..base_template..module-0": {
+                       "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+                       "vfModuleModelVersion": "1",
+                       "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+                       "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+                       "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+                       "min_vf_module_instances": 1,
+                       "vf_module_label": "base_template",
+                       "max_vf_module_instances": 1,
+                       "vf_module_type": "Base",
+                       "isBase": true,
+                       "initial_count": 1,
+                       "volume_group": false
+               },
+               "Vloadbalancerms..vlb..module-2": {
+                       "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+                       "vfModuleModelVersion": "1",
+                       "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+                       "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+                       "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+                       "min_vf_module_instances": 0,
+                       "vf_module_label": "vlb",
+                       "max_vf_module_instances": 1,
+                       "vf_module_type": "Expansion",
+                       "isBase": false,
+                       "initial_count": 0,
+                       "volume_group": false
+               }
+       }
+}
\ No newline at end of file
index dc47b44..b55adbf 100644 (file)
                                                "resource-assignment": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "activate": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "activate-restconf": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "activate-cli": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "assign-activate": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }
                                                "imperative-test-wf": {
                                                        "inputs": {
                                                                "resource-assignment-properties": {
-                                                                       "request-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "service-instance-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf-id": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "action-name": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "scope-type": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "hostname": {
-                                                                               "type": "string",
-                                                                               "required": true
-                                                                       },
-                                                                       "vnf_name": {
-                                                                               "type": "string",
-                                                                               "required": true
+                                                                       "type": "object",
+                                                                       "properties": {
+                                                                               "request-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "service-instance-id": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "hostname": {
+                                                                                       "type": "string",
+                                                                                       "required": true,
+                                                                                       "input-param": true
+                                                                               },
+                                                                               "request-info": {
+                                                                                       "type": "object",
+                                                                                       "properties": {
+                                                                                               "prop1": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               },
+                                                                                               "prop2": {
+                                                                                                       "required": true,
+                                                                                                       "type": "string",
+                                                                                                       "input-param": true
+                                                                                               }
+                                                                                       }
+                                                                               }
                                                                        }
                                                                }
                                                        }