add parameter resolution (CDS) in User-Guide 91/97891/7
authorRene_Robert <rene.robert@orange.com>
Mon, 4 Nov 2019 08:03:23 +0000 (09:03 +0100)
committerRene_Robert <rene.robert@orange.com>
Tue, 5 Nov 2019 15:54:43 +0000 (16:54 +0100)
Issue-ID: DOC-569

Signed-off-by: Rene_Robert <rene.robert@orange.com>
Change-Id: I93d7f9666f21dcc961ba9e7f961ebf5554208228

44 files changed:
docs/guides/onap-user/design/index.rst
docs/guides/onap-user/design/media/capabilities.png [new file with mode: 0755]
docs/guides/onap-user/design/media/cba.png [new file with mode: 0755]
docs/guides/onap-user/design/media/cds-blueprint.png [new file with mode: 0755]
docs/guides/onap-user/design/media/sdc.png [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius.cba [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/artifact_types.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/data_types.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/freeradius.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/node_types.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/policy_types.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/relationship_types.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/resources_definition_types.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/radius-mapping.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/radius-template.vtl [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/userconfig-mapping.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/userconfig-template.vtl [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/vnf-mapping.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/vnf-template.vtl [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius.zip [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/MANIFEST.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/radius.env [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/radius.yaml [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml [new file with mode: 0755]
docs/guides/onap-user/design/parameter_resolution/index.rst [new file with mode: 0644]

index 29d166c..6964740 100644 (file)
@@ -113,7 +113,7 @@ The follwing sections will focus on the different Design steps:
 
    Governance Approval and Service Distribution <./service-distribution/index.rst>
 
-   VNF parameter assignment templating <../../../submodules/ccsdk/cds.git/docs/index.rst>
+   VNF parameter assignment templating <./parameter_resolution/index.rst>
 
    Policy Design <../../../submodules/policy/parent.git/docs/design/design.rst>
 
diff --git a/docs/guides/onap-user/design/media/capabilities.png b/docs/guides/onap-user/design/media/capabilities.png
new file mode 100755 (executable)
index 0000000..447a3c6
Binary files /dev/null and b/docs/guides/onap-user/design/media/capabilities.png differ
diff --git a/docs/guides/onap-user/design/media/cba.png b/docs/guides/onap-user/design/media/cba.png
new file mode 100755 (executable)
index 0000000..eda7650
Binary files /dev/null and b/docs/guides/onap-user/design/media/cba.png differ
diff --git a/docs/guides/onap-user/design/media/cds-blueprint.png b/docs/guides/onap-user/design/media/cds-blueprint.png
new file mode 100755 (executable)
index 0000000..f7d988f
Binary files /dev/null and b/docs/guides/onap-user/design/media/cds-blueprint.png differ
diff --git a/docs/guides/onap-user/design/media/sdc.png b/docs/guides/onap-user/design/media/sdc.png
new file mode 100755 (executable)
index 0000000..5e553cd
Binary files /dev/null and b/docs/guides/onap-user/design/media/sdc.png differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius.cba b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius.cba
new file mode 100755 (executable)
index 0000000..9bc1d2b
Binary files /dev/null and b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius.cba differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/artifact_types.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/artifact_types.json
new file mode 100755 (executable)
index 0000000..da498e3
--- /dev/null
@@ -0,0 +1,16 @@
+{
+  "artifact_types" : {
+    "artifact-mapping-resource" : {
+      "description" : "Resource Mapping File used along with Configuration template",
+      "version" : "1.0.0",
+      "derived_from" : "tosca.artifacts.Implementation",
+      "file_ext" : [ "json" ]
+    },
+    "artifact-template-velocity" : {
+      "description" : " Velocity Template used for Configuration",
+      "version" : "1.0.0",
+      "derived_from" : "tosca.artifacts.Implementation",
+      "file_ext" : [ "vtl" ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/data_types.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/data_types.json
new file mode 100755 (executable)
index 0000000..3d58400
--- /dev/null
@@ -0,0 +1,669 @@
+{
+       "data_types": {
+               "dt-config-assign-properties": {
+                       "description": "Dynamic DataType definition for workflow(config-assign).",
+                       "version": "1.0.0",
+                       "properties": {
+                               "radius_test_user": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "radius_test_password": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnf-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "service-instance-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               }
+                       },
+                       "derived_from": "tosca.datatypes.Dynamic"
+               },
+               "dt-config-deploy-properties": {
+                       "description": "Dynamic DataType definition for workflow(config-deploy).",
+                       "version": "1.0.0",
+                       "properties": {
+                               "vdns_int_private_ip_0": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnf-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vdns_vf_module_id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "service-instance-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "freeradius_ip": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "ip": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               }
+                       },
+                       "derived_from": "tosca.datatypes.Dynamic"
+               },
+               "dt-resource-assignment-properties": {
+                       "description": "Dynamic DataType definition for workflow(resource-assignment).",
+                       "version": "1.0.0",
+                       "properties": {
+                               "vlb_int_pktgen_private_ip_0": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "freeradius_ip": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vm-type": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnf-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "public_net_id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnf_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "keypair": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "vlb_key",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "onap_private_subnet_id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "aic-cloud-region": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "sec_group": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "nfc-naming-code": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnfc-model-invariant-uuid": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vf-module-model-customization-uuid": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vf_module_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "${vf_module_name}",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "onap_private_net_cidr": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "nexus_artifact_repo": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "https://nexus.onap.org",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "pg_int": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "${pg_int}",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vpg_onap_private_ip_0": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "image_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "flavor_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vpg_flavor_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vf-module-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vf-module-label": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vpg_name_0": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "${vpg_name_0}",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vf-naming-policy": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vfccustomizationuuid": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "pktgen_private_net_cidr": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vpg_image_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "private2-prefix-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "onap_private_net_id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnfc-model-version": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "service-instance-id": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "demo_artifacts_version": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "nb_api_version": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "1.2.0",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vpg_int_pktgen_private_ip_0": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "pub_key": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vnf-model-customization-uuid": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "vf-module-type": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "key_name": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "install_script_version": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "radius_test_user": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "radius_test_password": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               },
+                               "cloud_env": {
+                                       "description": "",
+                                       "required": false,
+                                       "type": "string",
+                                       "status": "",
+                                       "constraints": [{
+                                               
+                                       }],
+                                       "default": "openstack",
+                                       "entry_schema": {
+                                               "type": ""
+                                       }
+                               }
+                       },
+                       "derived_from": "tosca.datatypes.Dynamic"
+               }
+       }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/freeradius.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/freeradius.json
new file mode 100755 (executable)
index 0000000..76d8e74
--- /dev/null
@@ -0,0 +1,224 @@
+{
+       "tosca_definitions_version": "controller_blueprint_1_0_0",
+       "metadata": {
+               "template_author": "Abdelmuhaimen Seaudi",
+               "author-email": "abdelmuhaimen.seaudi@orange.com",
+               "user-groups": "ADMIN, OPERATION",
+               "template_name": "freeradius",
+               "template_version": "1.0.0",
+               "template_tags": "test, freeradius, freeradius_cds"
+       },
+       "imports": [{
+               "file": "Definitions/data_types.json"
+       },
+       {
+               "file": "Definitions/relationship_types.json"
+       },
+       {
+               "file": "Definitions/artifact_types.json"
+       },
+       {
+               "file": "Definitions/node_types.json"
+       },
+       {
+               "file": "Definitions/policy_types.json"
+       }],
+       "dsl_definitions": {
+               "ipam-1": {
+                       "type": "token-auth",
+                       "url": "http://netbox-nginx:8080",
+                       "token": "Token 0123456789abcdef0123456789abcdef01234567"
+               },
+               "config-deploy-properties": {
+                       "resolution-key": {
+                               "get_input": "resolution-key"
+                       },
+                       "freeradius_ip": {
+                               "get_input": "freeradius_ip"
+                       }                       
+               },
+               "dynamic-db-source": {
+                       "type": "maria-db",
+                       "url": "jdbc:mysql://mariadb-galera:3306/sdnctl",
+                       "username": "root",
+                       "password": "secretpassword"
+               }
+       },
+       "topology_template": {
+               "workflows": {
+                       "resource-assignment": {
+                               "steps": {
+                                       "resource-assignment": {
+                                               "description": "Resource Assign Workflow",
+                                               "target": "resource-assignment"
+                                       }
+                               },
+                               "inputs": {
+                                       "template-prefix": {
+                                               "required": true,
+                                               "type": "list",
+                                               "entry_schema": {
+                                                       "type": "string"
+                                               }
+                                       },
+                                       "resource-assignment-properties": {
+                                               "description": "Dynamic PropertyDefinition for workflow(resource-assignment).",
+                                               "required": true,
+                                               "type": "dt-resource-assignment-properties"
+                                       }
+                               },
+                               "outputs": {
+                                       "meshed-template": {
+                                               "type": "json",
+                                               "value": {
+                                                       "get_attribute": ["resource-assignment",
+                                                       "assignment-params"]
+                                               }
+                                       }
+                               }
+                       },
+                       "config-assign": {
+                               "steps": {
+                                       "config-assign": {
+                                               "description": "Config Assign Workflow",
+                                               "target": "config-assign",
+                                               "activities": [{
+                                                       "call_operation": ""
+                                               }]
+                                       }
+                               },
+                               "inputs": {
+                                       "resolution-key": {
+                                               "required": true,
+                                               "type": "string"
+                                       },
+                                       "config-assign-properties": {
+                                               "description": "Dynamic PropertyDefinition for workflow(config-assign).",
+                                               "required": true,
+                                               "type": "dt-config-assign-properties"
+                                       }
+                               },
+                               "outputs": {
+                                       "dry-run": {
+                                               "type": "json",
+                                               "value": {
+                                                       "get_attribute": ["config-assign",
+                                                       "assignment-params"]
+                                               }
+                                       }
+                               }
+                       },
+                       "config-deploy": {
+                               "steps": {
+                                       "config-deploy": {
+                                               "description": "Resource Assign and Python Netconf Activation Workflow",
+                                               "target": "config-deploy-process",
+                                               "activities": [{
+                                                       "call_operation": "ComponentScriptExecutor.process"
+                                               }]
+                                       }
+                               },
+                               "inputs": {
+                                       "resolution-key": {
+                                               "required": false,
+                                               "type": "string"
+                                       },
+                                       "service-instance-id": {
+                                               "required": false,
+                                               "type": "string"
+                                       },
+                                       "freeradius_ip": {
+                                               "required": false,
+                                               "type": "string"
+                                       },                                      
+                                       "config-deploy-properties": {
+                                               "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+                                               "required": true,
+                                               "type": "dt-config-deploy-properties"
+                                       }
+                               }
+                       }
+               },
+               "node_templates": {
+                       "resource-assignment": {
+                               "type": "component-resource-resolution",
+                               "interfaces": {
+                                       "ResourceResolutionComponent": {
+                                               "operations": {
+                                                       "process": {
+                                                               "inputs": {
+                                                                       "artifact-prefix-names": {
+                                                                               "get_input": "template-prefix"
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               },
+                               "artifacts": {
+                                       "vnf-template": {
+                                               "type": "artifact-template-velocity",
+                                               "file": "Templates/vnf-template.vtl"
+                                       },
+                                       "vnf-mapping": {
+                                               "type": "artifact-mapping-resource",
+                                               "file": "Templates/vnf-mapping.json"
+                                       },
+                                       "radius-template": {
+                                               "type": "artifact-template-velocity",
+                                               "file": "Templates/radius-template.vtl"
+                                       },
+                                       "radius-mapping": {
+                                               "type": "artifact-mapping-resource",
+                                               "file": "Templates/radius-mapping.json"
+                                       }
+                               }
+                       },
+                       "config-assign": {
+                               "type": "component-resource-resolution",
+                               "interfaces": {
+                                       "ResourceResolutionComponent": {
+                                               "operations": {
+                                                       "process": {
+                                                               "inputs": {
+                                                                       "resolution-key": {
+                                                                               "get_input": "resolution-key"
+                                                                       },
+                                                                       "store-result": true,
+                                                                       "artifact-prefix-names": ["userconfig"]
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               },
+                               "artifacts": {
+                                       "userconfig-template": {
+                                               "type": "artifact-template-velocity",
+                                               "file": "Templates/userconfig-template.vtl"
+                                       },
+                                       "userconfig-mapping": {
+                                               "type": "artifact-mapping-resource",
+                                               "file": "Templates/userconfig-mapping.json"
+                                       }
+                               }
+                       },
+                       "config-deploy-process": {
+                               "type": "component-script-executor",
+                               "interfaces": {
+                                       "ComponentScriptExecutor": {
+                                               "operations": {
+                                                       "process": {
+                                                               "inputs": {
+                                                                       "script-type": "kotlin",
+                                                                       "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.SampleScriptComponent",
+                                                                       "instance-dependencies": [],
+                                                                       "dynamic-properties": "*config-deploy-properties"
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/node_types.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/node_types.json
new file mode 100755 (executable)
index 0000000..d1ace9f
--- /dev/null
@@ -0,0 +1,395 @@
+{
+  "node_types" : {
+    "component-script-executor":{
+  "description": "This is CLI Transaction Configuration Component API",
+  "version": "1.0.0",
+  "attributes": {
+    "response-data": {
+      "required": false,
+      "type": "json"
+    }
+  },
+  "capabilities": {
+    "component-node": {
+      "type": "tosca.capabilities.Node"
+    }
+  },
+  "interfaces": {
+    "ComponentScriptExecutor": {
+      "operations": {
+        "process": {
+          "inputs": {
+            "script-type": {
+              "description": "Script type, kotlin type is supported",
+              "required": true,
+              "type": "string",
+              "default": "internal",
+              "constraints": [
+                {
+                  "valid_values": [
+                    "kotlin",
+                    "jython",
+                    "internal"
+                  ]
+                }
+              ]
+            },
+            "script-class-reference": {
+              "description": "Kotlin Script class name or jython script name.",
+              "required": true,
+              "type": "string"
+            },
+            "dynamic-properties": {
+              "description": "Dynamic Json Content or DSL Json reference.",
+              "required": false,
+              "type": "json"
+            }
+          },
+          "outputs": {
+            "response-data": {
+              "description": "Execution Response Data.",
+              "required": false,
+              "type": "string"
+            },
+            "status": {
+              "description": "Status of the Component Execution ( success or failure )",
+              "required": true,
+              "type": "string"
+            }
+          }
+        }
+      }
+    }
+  },
+  "derived_from": "tosca.nodes.Component"
+},
+    "component-netconf-executor" : {
+      "description" : "This is Netconf Transaction Configuration Component API",
+      "version" : "1.0.0",
+      "attributes" : {
+        "response-data" : {
+          "required" : false,
+          "type" : "json"
+        }
+      },
+      "capabilities" : {
+        "component-node" : {
+          "type" : "tosca.capabilities.Node"
+        }
+      },
+      "requirements" : {
+        "netconf-connection" : {
+          "capability" : "netconf",
+          "node" : "vnf-netconf-device",
+          "relationship" : "tosca.relationships.ConnectsTo"
+        }
+      },
+      "interfaces" : {
+        "ComponentNetconfExecutor" : {
+          "operations" : {
+            "process" : {
+              "inputs" : {
+                "script-type" : {
+                  "description" : "Script type, kotlin type is supported",
+                  "required" : true,
+                  "type" : "string",
+                  "constraints" : [ {
+                    "valid_values" : [ "kotlin", "jython", "internal" ]
+                  } ],
+                  "default" : "internal"
+                },
+                "script-class-reference" : {
+                  "description" : "Kotlin Script class name or jython script name.",
+                  "required" : true,
+                  "type" : "string"
+                },
+                "instance-dependencies" : {
+                  "description" : "Instance names to inject to Jython or Kotlin Script.",
+                  "required" : true,
+                  "type" : "list",
+                  "entry_schema" : {
+                    "type" : "string"
+                  }
+                },
+                "dynamic-properties" : {
+                  "description" : "Dynamic Json Content or DSL Json reference.",
+                  "required" : false,
+                  "type" : "json"
+                }
+              },
+              "outputs" : {
+                "response-data" : {
+                  "description" : "Execution Response Data in JSON format.",
+                  "required" : false,
+                  "type" : "string"
+                },
+                "status" : {
+                  "description" : "Status of the Component Execution ( success or failure )",
+                  "required" : true,
+                  "type" : "string"
+                }
+              }
+            }
+          }
+        }
+      },
+      "derived_from" : "tosca.nodes.Component"
+    },
+    "component-resource-resolution" : {
+      "description" : "This is Resource Assignment Component API",
+      "version" : "1.0.0",
+      "attributes" : {
+        "assignment-params" : {
+          "required" : true,
+          "type" : "string"
+        }
+      },
+      "capabilities" : {
+        "component-node" : {
+          "type" : "tosca.capabilities.Node"
+        }
+      },
+      "interfaces" : {
+        "ResourceResolutionComponent" : {
+          "operations" : {
+            "process" : {
+              "inputs" : {
+                "resolution-key" : {
+                  "description" : "Key for service instance related correlation.",
+                  "required" : false,
+                  "type" : "string"
+                },
+                "occurrence" : {
+                  "description" : "Number of time to perform the resolution.",
+                  "required" : false,
+                  "type" : "integer",
+                  "default" : 1
+                },
+                "store-result" : {
+                  "description" : "Whether or not to store the output.",
+                  "required" : false,
+                  "type" : "boolean"
+                },
+                "resource-type" : {
+                  "description" : "Request type.",
+                  "required" : false,
+                  "type" : "string"
+                },
+                "artifact-prefix-names" : {
+                  "description" : "Template , Resource Assignment Artifact Prefix names",
+                  "required" : true,
+                  "type" : "list",
+                  "entry_schema" : {
+                    "type" : "string"
+                  }
+                },
+                "request-id" : {
+                  "description" : "Request Id, Unique Id for the request.",
+                  "required" : true,
+                  "type" : "string"
+                },
+                "resource-id" : {
+                  "description" : "Resource Id.",
+                  "required" : false,
+                  "type" : "string"
+                },
+                "action-name" : {
+                  "description" : "Action Name of the process",
+                  "required" : false,
+                  "type" : "string"
+                },
+                "dynamic-properties" : {
+                  "description" : "Dynamic Json Content or DSL Json reference.",
+                  "required" : false,
+                  "type" : "json"
+                }
+              },
+              "outputs" : {
+                "resource-assignment-params" : {
+                  "required" : true,
+                  "type" : "string"
+                },
+                "status" : {
+                  "required" : true,
+                  "type" : "string"
+                }
+              }
+            }
+          }
+        }
+      },
+      "derived_from" : "tosca.nodes.Component"
+    },
+    "source-capability" : {
+      "description" : "This is Component Resource Source Node Type",
+      "version" : "1.0.0",
+      "properties" : {
+        "script-type" : {
+          "required" : true,
+          "type" : "string",
+          "constraints" : [ {
+            "valid_values" : [ "kotlin", "internal", "jython" ]
+          } ],
+          "default" : "kotlin"
+        },
+        "script-class-reference" : {
+          "description" : "Capability reference name for internal and kotlin, for jython script file path",
+          "required" : true,
+          "type" : "string"
+        },
+        "instance-dependencies" : {
+          "description" : "Instance dependency Names to Inject to Kotlin / Jython Script.",
+          "required" : false,
+          "type" : "list",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        },
+        "key-dependencies" : {
+          "description" : "Resource Resolution dependency dictionary names.",
+          "required" : true,
+          "type" : "list",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        }
+      },
+      "derived_from" : "tosca.nodes.ResourceSource"
+    },
+    "source-db" : {
+      "description" : "This is Database Resource Source Node Type",
+      "version" : "1.0.0",
+      "properties" : {
+        "type" : {
+          "required" : true,
+          "type" : "string",
+          "constraints" : [ {
+            "valid_values" : [ "SQL", "PLSQL" ]
+          } ],
+          "default" : "SQL"
+        },
+        "endpoint-selector" : {
+          "required" : false,
+          "type" : "string"
+        },
+        "query" : {
+          "required" : true,
+          "type" : "string"
+        },
+        "input-key-mapping" : {
+          "required" : false,
+          "type" : "map",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        },
+        "output-key-mapping" : {
+          "required" : false,
+          "type" : "map",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        },
+        "key-dependencies" : {
+          "required" : true,
+          "type" : "list",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        }
+      },
+      "derived_from" : "tosca.nodes.ResourceSource"
+    },
+    "source-default" : {
+      "description" : "This is Default Resource Source Node Type",
+      "version" : "1.0.0",
+      "properties" : { },
+      "derived_from" : "tosca.nodes.ResourceSource"
+    },
+    "source-input" : {
+      "description" : "This is Input Resource Source Node Type",
+      "version" : "1.0.0",
+      "properties" : { },
+      "derived_from" : "tosca.nodes.ResourceSource"
+    },
+    "source-rest" : {
+      "description" : "This is Rest Resource Source Node Type",
+      "version" : "1.0.0",
+      "properties" : {
+        "type" : {
+          "required" : true,
+          "type" : "string",
+          "constraints" : [ {
+            "valid_values" : [ "JSON" ]
+          } ],
+          "default" : "JSON"
+        },
+        "verb" : {
+          "required" : true,
+          "type" : "string",
+          "constraints" : [ {
+            "valid_values" : [ "GET", "POST", "DELETE", "PUT" ]
+          } ],
+          "default" : "GET"
+        },
+        "payload" : {
+          "required" : false,
+          "type" : "string",
+          "default" : ""
+        },
+        "endpoint-selector" : {
+          "required" : false,
+          "type" : "string"
+        },
+        "url-path" : {
+          "required" : true,
+          "type" : "string"
+        },
+        "path" : {
+          "required" : true,
+          "type" : "string"
+        },
+        "expression-type" : {
+          "required" : false,
+          "type" : "string",
+          "constraints" : [ {
+            "valid_values" : [ "JSON_PATH", "JSON_POINTER" ]
+          } ],
+          "default" : "JSON_PATH"
+        },
+        "input-key-mapping" : {
+          "required" : false,
+          "type" : "map",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        },
+        "output-key-mapping" : {
+          "required" : false,
+          "type" : "map",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        },
+        "key-dependencies" : {
+          "required" : true,
+          "type" : "list",
+          "entry_schema" : {
+            "type" : "string"
+          }
+        }
+      },
+      "derived_from" : "tosca.nodes.ResourceSource"
+    },
+    "tosca.nodes.Component" : {
+      "description" : "This is default Component Node",
+      "version" : "1.0.0",
+      "derived_from" : "tosca.nodes.Root"
+    },
+    "tosca.nodes.ResourceSource" : {
+      "description" : "TOSCA base type for Resource Sources",
+      "version" : "1.0.0",
+      "derived_from" : "tosca.nodes.Root"
+    }
+  }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/policy_types.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/policy_types.json
new file mode 100755 (executable)
index 0000000..1e44cc7
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "policy_types" : { }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/relationship_types.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/relationship_types.json
new file mode 100755 (executable)
index 0000000..4ddd7a5
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "relationship_types" : { }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/resources_definition_types.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Definitions/resources_definition_types.json
new file mode 100755 (executable)
index 0000000..766d7be
--- /dev/null
@@ -0,0 +1,1385 @@
+{
+  "aic-cloud-region" : {
+    "tags" : "aic-cloud-region",
+    "name" : "aic-cloud-region",
+    "property" : {
+      "description" : "aic-cloud-region",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input",
+        "properties" : { }
+      }
+    }
+  },
+  "radius_test_user" : {
+    "tags" : "radius_test_user",
+    "name" : "radius_test_user",
+    "property" : {
+      "description" : "radius_test_user",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/radius_test_user",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "radius_test_user" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "radius_test_password" : {
+    "tags" : "radius_test_password",
+    "name" : "radius_test_password",
+    "property" : {
+      "description" : "radius_test_password",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/radius_test_password",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "radius_test_password" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "freeradius_ip" : {
+    "tags" : "freeradius_ip",
+    "name" : "freeradius_ip",
+    "property" : {
+      "description" : "freeradius_ip",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/freeradius_ip",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "freeradius_ip" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "cloud_env" : {
+    "tags" : "cloud_env",
+    "name" : "cloud_env",
+    "property" : {
+      "description" : "cloud_env",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/cloud_env",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "cloud_env" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "demo_artifacts_version" : {
+    "tags" : "demo_artifacts_version",
+    "name" : "demo_artifacts_version",
+    "property" : {
+      "description" : "demo_artifacts_version",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/demo_artifacts_version",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "demo_artifacts_version" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "flavor_name" : {
+    "tags" : "flavor_name",
+    "name" : "flavor_name",
+    "property" : {
+      "description" : "flavor_name",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/flavor_name",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "flavor_name" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "image_name" : {
+    "tags" : "image_name",
+    "name" : "image_name",
+    "property" : {
+      "description" : "image_name",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/image_name",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "image_name" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "install_script_version" : {
+    "tags" : "install_script_version",
+    "name" : "install_script_version",
+    "property" : {
+      "description" : "install_script_version",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/install_script_version",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "install_script_version" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "key_name" : {
+    "tags" : "key_name",
+    "name" : "key_name",
+    "property" : {
+      "description" : "key_name",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/key_name",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "key_name" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "keypair" : {
+    "tags" : "keypair",
+    "name" : "keypair",
+    "property" : {
+      "description" : "keypair",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/keypair",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "keypair" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "nb_api_version" : {
+    "tags" : "nb_api_version",
+    "name" : "nb_api_version",
+    "property" : {
+      "description" : "nb_api_version",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nb_api_version",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "nb_api_version" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "nexus_artifact_repo" : {
+    "tags" : "nexus_artifact_repo",
+    "name" : "nexus_artifact_repo",
+    "property" : {
+      "description" : "nexus_artifact_repo",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/nexus_artifact_repo",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "nexus_artifact_repo" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "nfc-naming-code" : {
+    "tags" : "nfc-naming-code",
+    "name" : "nfc-naming-code",
+    "property" : {
+      "description" : "nfc-naming-code",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select nfc_naming_code as nfc_naming_code from sdnctl.VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+          "input-key-mapping" : {
+            "vfccustomizationuuid" : "vfccustomizationuuid"
+          },
+          "output-key-mapping" : {
+            "nfc-naming-code" : "nfc_naming_code"
+          },
+          "key-dependencies" : [ "vfccustomizationuuid" ],
+          "endpoint-selector" : "dynamic-db-source"
+        }
+      }
+    }
+  },
+  "onap_private_net_cidr" : {
+    "tags" : "onap_private_net_cidr",
+    "name" : "onap_private_net_cidr",
+    "property" : {
+      "description" : "onap_private_net_cidr",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "endpoint-selector" : "dynamic-db-source",
+          "type" : "SQL",
+          "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"management\"",
+          "input-key-mapping" : { },
+          "output-key-mapping" : {
+            "onap_private_net_cidr" : "prefix"
+          }
+        }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_cidr",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "onap_private_net_cidr" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "onap_private_net_id" : {
+    "tags" : "onap_private_net_id",
+    "name" : "onap_private_net_id",
+    "property" : {
+      "description" : "onap_private_net_id",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_net_id",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "onap_private_net_id" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "onap_private_subnet_id" : {
+    "tags" : "onap_private_subnet_id",
+    "name" : "onap_private_subnet_id",
+    "property" : {
+      "description" : "onap_private_subnet_id",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_subnet_id",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "onap_private_subnet_id" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "pg_int" : {
+    "tags" : "pg_int",
+    "name" : "pg_int",
+    "property" : {
+      "description" : "pg_int",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pg_int",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "pg_int" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "pktgen_private_net_cidr" : {
+    "tags" : "pktgen_private_net_cidr",
+    "name" : "pktgen_private_net_cidr",
+    "property" : {
+      "description" : "pktgen_private_net_cidr",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+          "output-key-mapping" : {
+            "pktgen_private_net_cidr" : "prefix"
+          },
+          "endpoint-selector" : "dynamic-db-source",
+          "input-key-mapping" : { }
+        }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pktgen_private_net_cidr",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "pktgen_private_net_cidr" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "private2-prefix-id" : {
+    "tags" : "private2-prefix-id",
+    "name" : "private2-prefix-id",
+    "property" : {
+      "description" : "private2-prefix-id",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/private2-prefix-id",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "private2-prefix-id" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "endpoint-selector" : "dynamic-db-source",
+          "type" : "SQL",
+          "query" : "select sdnctl.IPAM_IP_POOL.prefix_id as prefix_id from sdnctl.IPAM_IP_POOL where description = \"private2\"",
+          "input-key-mapping" : { },
+          "output-key-mapping" : {
+            "private2-prefix-id" : "prefix_id"
+          }
+        }
+      }
+    }
+  },
+  "pub_key" : {
+    "tags" : "pub_key",
+    "name" : "pub_key",
+    "property" : {
+      "description" : "pub_key",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/pub_key",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "pub_key" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "public_net_id" : {
+    "tags" : "public_net_id",
+    "name" : "public_net_id",
+    "property" : {
+      "description" : "public_net_id",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/public_net_id",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "public_net_id" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "sec_group" : {
+    "tags" : "sec_group",
+    "name" : "sec_group",
+    "property" : {
+      "description" : "sec_group",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/sec_group",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "sec_group" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "service-instance-id" : {
+    "tags" : "service-instance-id, tosca.datatypes.Root, data_type",
+    "name" : "service-instance-id",
+    "property" : {
+      "description" : "To be provided",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input",
+        "properties" : { }
+      },
+      "any-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "query" : "SELECT artifact_name FROM BLUEPRINT_RUNTIME where artifact_version=\"1.0.0\"",
+          "input-key-mapping" : { },
+          "output-key-mapping" : {
+            "service-instance-id" : "artifact_name"
+          }
+        }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "query" : "SELECT artifact_name FROM BLUEPRINT_RUNTIME where artifact_version=\"1.0.0\"",
+          "input-key-mapping" : { },
+          "output-key-mapping" : {
+            "service-instance-id" : "artifact_name"
+          }
+        }
+      },
+      "capability" : {
+        "type" : "source-capability",
+        "properties" : {
+          "script-type" : "jython",
+          "script-class-reference" : "SampleRAProcessor",
+          "instance-dependencies" : [ ]
+        }
+      }
+    }
+  },
+  "vf-module-id" : {
+    "tags" : "vf-module-id",
+    "name" : "vf-module-id",
+    "property" : {
+      "description" : "vf-module-id",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input",
+        "properties" : { }
+      }
+    }
+  },
+  "vf-module-label" : {
+    "tags" : "vf-module-label",
+    "name" : "vf-module-label",
+    "property" : {
+      "description" : "vf-module-label",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid",
+          "input-key-mapping" : {
+            "customizationid" : "vf-module-model-customization-uuid"
+          },
+          "output-key-mapping" : {
+            "vf-module-label" : "vf_module_label"
+          },
+          "key-dependencies" : [ "vf-module-model-customization-uuid" ],
+          "endpoint-selector" : "dynamic-db-source"
+        }
+      }
+    }
+  },
+  "vf-module-model-customization-uuid" : {
+    "tags" : "vf-module-model-customization-uuid",
+    "name" : "vf-module-model-customization-uuid",
+    "property" : {
+      "description" : "vf-module-model-customization-uuid",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      }
+    }
+  },
+  "vf-module-type" : {
+    "tags" : "vf-module-type",
+    "name" : "vf-module-type",
+    "property" : {
+      "description" : "vf-module-type",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select vf_module_type as vf_module_type from sdnctl.VF_MODULE_MODEL where customization_uuid=:customizationid",
+          "output-key-mapping" : {
+            "vf-module-type" : "vf_module_type"
+          },
+          "endpoint-selector" : "dynamic-db-source",
+          "input-key-mapping" : {
+            "customizationid" : "vf-module-model-customization-uuid"
+          },
+          "key-dependencies" : [ "vf-module-model-customization-uuid" ]
+        }
+      }
+    }
+  },
+  "vf-naming-policy" : {
+    "tags" : "vf-naming-policy",
+    "name" : "vf-naming-policy",
+    "property" : {
+      "description" : "vf-naming-policy",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vf-naming-policy",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vf-naming-policy" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "endpoint-selector" : "dynamic-db-source",
+          "type" : "SQL",
+          "query" : "select sdnctl.VF_MODEL.naming_policy as vf_naming_policy from sdnctl.VF_MODEL where sdnctl.VF_MODEL.customization_uuid=:vnf_model_customization_uuid",
+          "input-key-mapping" : {
+            "vnf_model_customization_uuid" : "vnf-model-customization-uuid"
+          },
+          "output-key-mapping" : {
+            "vf-naming-policy" : "vf_naming_policy"
+          },
+          "key-dependencies" : [ "vnf-model-customization-uuid" ]
+        }
+      }
+    }
+  },
+  "vf_module_name" : {
+    "tags" : "vf_module_name",
+    "name" : "vf_module_name",
+    "property" : {
+      "description" : "vf_module_name",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      }
+    }
+  },
+  "vfccustomizationuuid" : {
+    "tags" : "vfccustomizationuuid",
+    "name" : "vfccustomizationuuid",
+    "property" : {
+      "description" : "vfccustomizationuuid",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "endpoint-selector" : "dynamic-db-source",
+          "type" : "SQL",
+          "query" : "select sdnctl.VF_MODULE_TO_VFC_MAPPING.vfc_customization_uuid as vnf_customid from sdnctl.VF_MODULE_TO_VFC_MAPPING where vm_count = 1 and sdnctl.VF_MODULE_TO_VFC_MAPPING.vf_module_customization_uuid=:vfmodulecustomizationuuid",
+          "input-key-mapping" : {
+            "vfmodulecustomizationuuid" : "vf-module-model-customization-uuid"
+          },
+          "output-key-mapping" : {
+            "vfccustomizationuuid" : "vnf_customid"
+          },
+          "key-dependencies" : [ "vf-module-model-customization-uuid" ]
+        }
+      }
+    }
+  },
+  "vlb_int_pktgen_private_ip_0" : {
+    "tags" : "vlb_int_pktgen_private_ip_0",
+    "name" : "vlb_int_pktgen_private_ip_0",
+    "property" : {
+      "description" : "vlb_int_pktgen_private_ip_0",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vlb_int_pktgen_private_ip_0",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vlb_int_pktgen_private_ip_0" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "vm-type" : {
+    "tags" : "vm-type",
+    "name" : "vm-type",
+    "property" : {
+      "description" : "vm-type",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select VFC_MODEL.vm_type as vm_type from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+          "output-key-mapping" : {
+            "vm-type" : "vm_type"
+          },
+          "endpoint-selector" : "dynamic-db-source",
+          "input-key-mapping" : {
+            "vfccustomizationuuid" : "vfccustomizationuuid"
+          },
+          "key-dependencies" : [ "vfccustomizationuuid" ]
+        }
+      }
+    }
+  },
+  "vnf-id" : {
+    "tags" : "vnf-id",
+    "name" : "vnf-id",
+    "property" : {
+      "description" : "vnf-id",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf-id",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vnf-id" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "vnf-model-customization-uuid" : {
+    "tags" : "vnf-model-customization-uuid",
+    "name" : "vnf-model-customization-uuid",
+    "property" : {
+      "description" : "vnf-model-customization-uuid",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input",
+        "properties" : { }
+      }
+    }
+  },
+  "vnf_name" : {
+    "tags" : "vnf_name",
+    "name" : "vnf_name",
+    "property" : {
+      "description" : "vnf_name",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vnf_name" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "vnfc-model-invariant-uuid" : {
+    "tags" : "vnfc-model-invariant-uuid",
+    "name" : "vnfc-model-invariant-uuid",
+    "property" : {
+      "description" : "vnfc-model-invariant-uuid",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select VFC_MODEL.invariant_uuid as vfc_invariant_uuid from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+          "output-key-mapping" : {
+            "vnfc-model-invariant-uuid" : "vfc_invariant_uuid"
+          },
+          "endpoint-selector" : "dynamic-db-source",
+          "input-key-mapping" : {
+            "vfccustomizationuuid" : "vfccustomizationuuid"
+          },
+          "key-dependencies" : [ "vfccustomizationuuid" ]
+        }
+      }
+    }
+  },
+  "vnfc-model-version" : {
+    "tags" : "vnfc-model-version",
+    "name" : "vnfc-model-version",
+    "property" : {
+      "description" : "vnfc-model-version",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "processor-db" : {
+        "type" : "source-db",
+        "properties" : {
+          "type" : "SQL",
+          "query" : "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid",
+          "output-key-mapping" : {
+            "vnfc-model-version" : "vnfc_model_version"
+          },
+          "endpoint-selector" : "dynamic-db-source",
+          "input-key-mapping" : {
+            "vfccustomizationuuid" : "vfccustomizationuuid"
+          },
+          "key-dependencies" : [ "vfccustomizationuuid" ]
+        }
+      }
+    }
+  },
+  "vpg_int_pktgen_private_ip_0" : {
+    "tags" : "vpg_int_pktgen_private_ip_0",
+    "name" : "vpg_int_pktgen_private_ip_0",
+    "property" : {
+      "description" : "vpg_int_pktgen_private_ip_0",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_int_pktgen_private_ip_0",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vpg_int_pktgen_private_ip_0" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "vpg_name_0" : {
+    "tags" : "vpg_name_0",
+    "name" : "vpg_name_0",
+    "property" : {
+      "description" : "vlb_name_0",
+      "type" : "string"
+    },
+    "updated-by" : "MALAKOV, YURIY <yuriy.malakov@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_name_0",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vpg_name_0" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  },
+  "vpg_onap_private_ip_0" : {
+    "tags" : "vpg_onap_private_ip_0",
+    "name" : "vpg_onap_private_ip_0",
+    "property" : {
+      "description" : "vpg_onap_private_ip_0",
+      "type" : "string"
+    },
+    "updated-by" : "Singal, Kapil <ks220y@att.com>",
+    "sources" : {
+      "input" : {
+        "type" : "source-input"
+      },
+      "default" : {
+        "type" : "source-default",
+        "properties" : { }
+      },
+      "sdnc" : {
+        "type" : "source-rest",
+        "properties" : {
+          "verb" : "GET",
+          "type" : "JSON",
+          "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vpg_onap_private_ip_0",
+          "path" : "/param/0/value",
+          "input-key-mapping" : {
+            "service-instance-id" : "service-instance-id",
+            "vnf-id" : "vnf-id"
+          },
+          "output-key-mapping" : {
+            "vpg_onap_private_ip_0" : "value"
+          },
+          "key-dependencies" : [ "service-instance-id", "vnf-id" ]
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml
new file mode 100755 (executable)
index 0000000..92fb2aa
--- /dev/null
@@ -0,0 +1,27 @@
+<service-logic\r
+  xmlns='http://www.onap.org/sdnc/svclogic'\r
+  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+  xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='CONFIG' version='1.0.0'>\r
+    <method rpc='ConfigDeploy' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="nf-account-collection" method="process">\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <execute plugin="execute" method="process">\r
+                        <outcome value='failure'>\r
+                            <return status="failure">\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <return status='success'>\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt
new file mode 100755 (executable)
index 0000000..e0d36ca
--- /dev/null
@@ -0,0 +1,82 @@
+package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts\r
+\r
+import com.fasterxml.jackson.databind.node.ObjectNode\r
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput\r
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction\r
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction\r
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentFunctionScriptingService\r
+\r
+import java.io.ByteArrayInputStream\r
+import java.io.IOException\r
+import java.io.InputStream\r
+import org.apache.sshd.client.SshClient\r
+import org.apache.sshd.client.channel.ClientChannel\r
+import org.apache.sshd.client.future.AuthFuture\r
+import org.apache.sshd.client.future.ConnectFuture\r
+import org.apache.sshd.client.session.ClientSession\r
+import org.apache.sshd.common.future.SshFutureListener\r
+import org.apache.sshd.common.util.io.NoCloseInputStream\r
+import org.apache.sshd.common.util.io.NoCloseOutputStream\r
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedContentFromResolvedArtifactNB\r
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException\r
+import org.onap.ccsdk.cds.controllerblueprints.core.asListOfString\r
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils\r
+import org.slf4j.LoggerFactory\r
+import java.io.ByteArrayOutputStream\r
+import java.util.*\r
+\r
+open class SampleScriptComponent : AbstractScriptComponentFunction() {\r
+\r
+    private val log = LoggerFactory.getLogger(SampleScriptComponent::class.java)!!\r
+\r
+    override suspend fun processNB(executionRequest: ExecutionServiceInput) {\r
+        log.info("Hello Kotlin!")\r
+        val resolution_key = getDynamicProperties("resolution-key").asText()\r
+        log.info("resolution_key: $resolution_key")\r
+        val payload = storedContentFromResolvedArtifactNB(resolution_key, "userconfig")\r
+        val payloadObject = JacksonUtils.jsonNode(payload) as ObjectNode\r
+        val freeradius_ip: String = payloadObject.get("freeradius_ip").asText()\r
+        log.info("freeradius_ip: $freeradius_ip")\r
+        val user_config: String = payloadObject.get("user_config").asText()\r
+        log.info("user_config: $user_config")  \r
+        log.info("Waiting 2 minutes for VM to initialize")\r
+        Thread.sleep(120000)           \r
+        val client = SshClient.setUpDefaultClient()\r
+        client.start()\r
+        log.info("SSH Client Service started successfully")\r
+        val session = client.connect("cloud", freeradius_ip, 22).verify(3000).session\r
+        session.addPasswordIdentity("password")\r
+        log.info("SSH Client authenticating...")\r
+        val authFuture = session.auth().verify(3000)\r
+        log.info("SSH client session($session) created")\r
+        log.info("SSH Authenticated: $authFuture.isSuccess()")\r
+        val command="echo '$user_config' | sudo tee -a /etc/freeradius/users"\r
+        log.info("Executing host($session) command($command)")\r
+        val channel = session.createExecChannel(command)\r
+        val outputStream = ByteArrayOutputStream()\r
+        channel!!.out = outputStream\r
+        channel!!.err = outputStream\r
+        channel!!.open().await()\r
+        //val waitMask = channel!!.waitFor(Collections.unmodifiableSet(EnumSet.of(ClientChannelEvent.CLOSED)), 3000)\r
+        //if (waitMask.contains(ClientChannelEvent.TIMEOUT)) {\r
+        //    throw BluePrintProcessorException("Failed to retrieve command result in time: $command")\r
+        //}\r
+        Thread.sleep(3000)\r
+        val exitStatus = channel!!.exitStatus\r
+        //ClientChannel. .validateCommandExitStatusCode(command, exitStatus!!)\r
+        if (channel != null) {\r
+            channel!!.close()\r
+        }\r
+        if (client.isOpen) {\r
+            client.stop()\r
+        }\r
+        log.info(outputStream.toString())\r
+        log.info("SSH Client Service stopped successfully")\r
+\r
+\r
+    }\r
+\r
+\r
+    override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {\r
+    }\r
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py
new file mode 100755 (executable)
index 0000000..2b88e82
--- /dev/null
@@ -0,0 +1,39 @@
+#  Copyright (c) 2019 Bell Canada.\r
+#\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#      http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+\r
+import netconf_constant\r
+from common import ResolutionHelper\r
+from time import sleep \r
+from netconfclient import NetconfClient\r
+from org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor import \\r
+  NetconfComponentFunction\r
+\r
+\r
+class ConfigDeploy(NetconfComponentFunction):\r
+\r
+  def process(self, execution_request):      \r
+      log = globals()[netconf_constant.SERVICE_LOG]      \r
+      print(globals())\r
+      rr = ResolutionHelper(self)\r
+\r
+      # Get meshed template from DB\r
+      resolution_key = self.getDynamicProperties("resolution-key").asText()\r
+      payload = rr.retrieve_resolved_template_from_database(resolution_key, "userconfig")      \r
+      print(payload)\r
+\r
+\r
+  def recover(self, runtime_exception, execution_request):\r
+        log.error("Exception in the script {}", runtime_exception)\r
+        print self.addError(runtime_exception.cause.message)\r
+        return None
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta
new file mode 100755 (executable)
index 0000000..bc98c17
--- /dev/null
@@ -0,0 +1,6 @@
+TOSCA-Meta-File-Version: 1.0.0
+CSAR-Version: 1.0
+Created-By: SEAUDI, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>
+Entry-Definitions: Definitions/freeradius.json
+Template-Tags: freeradius_CDS
+Content-Type: application/vnd.oasis.bpmn
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/radius-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/radius-mapping.json
new file mode 100755 (executable)
index 0000000..271167d
--- /dev/null
@@ -0,0 +1,613 @@
+[
+  {
+    "name": "radius_test_user",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_user",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },  
+  {
+    "name": "radius_test_password",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_password",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },  
+  {
+    "name": "freeradius_ip",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "freeradius_ip",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "cloud_env",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "openstack"
+    },
+    "input-param": false,
+    "dictionary-name": "cloud_env",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf_module_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "${vf_module_name}"
+    },
+    "input-param": false,
+    "dictionary-name": "vf_module_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "aic-cloud-region",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "aic-cloud-region",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "keypair",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "vlb_key"
+    },
+    "input-param": false,
+    "dictionary-name": "keypair",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "nfc-naming-code",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "nfc-naming-code",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vfccustomizationuuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_cidr",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_cidr",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_id",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "onap_private_subnet_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_subnet_id",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "public_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "public_net_id",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "pub_key",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "pub_key",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "key_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "key_name",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "sec_group",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "sec_group",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "service-instance-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-module-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-module-label",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-label",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vf-module-model-customization-uuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vf-module-model-customization-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-model-customization-uuid",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-module-type",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-type",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vf-module-model-customization-uuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vf-naming-policy",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+         },
+    "input-param": false,
+    "dictionary-name": "vf-naming-policy",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+         "service-instance-id",
+      "vnf-id"
+       ],
+    "version": 0
+  },
+  {
+    "name": "vfccustomizationuuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vfccustomizationuuid",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vf-module-model-customization-uuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vnf_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf_name",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vm-type",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vm-type",
+    "dictionary-source": "processor-db",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-model-customization-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-model-customization-uuid",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnfc-model-invariant-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnfc-model-invariant-uuid",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vfccustomizationuuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vnfc-model-version",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnfc-model-version",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vfccustomizationuuid"
+    ],
+    "version": 0
+  }
+]
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/radius-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/radius-template.vtl
new file mode 100755 (executable)
index 0000000..f4c57d4
--- /dev/null
@@ -0,0 +1,211 @@
+{
+  "resource-accumulator-resolved-data": [
+    {
+      "param-name": "radius_test_user",
+      "param-value": "${radius_test_user}"
+    },    
+       {
+      "param-name": "radius_test_password",
+      "param-value": "${radius_test_password}"
+    },
+       {
+      "param-name": "freeradius_ip",
+      "param-value": "${freeradius_ip}"
+    }, 
+    {
+      "param-name": "service-instance-id",
+      "param-value": "${service-instance-id}"
+    },
+    {
+      "param-name": "vnf_id",
+      "param-value": "${vnf-id}"
+    },
+    {
+      "param-name": "vnf_name",
+      "param-value": "${vnf_name}"
+    },
+    {
+      "param-name": "vnf_model_customization_uuid",
+      "param-value": "${vnf-model-customization-uuid}"
+    },
+    {
+      "param-name": "vf_module_id",
+      "param-value": "${vf-module-id}"
+    },
+    {
+      "param-name": "vf_module_type",
+      "param-value": "${vf-module-type}"
+    },
+    {
+      "param-name": "vf_module_customization_uuid",
+      "param-value": "${vf-module-model-customization-uuid}"
+    },
+    {
+      "param-name": "vfc_customization_uuid",
+      "param-value": "${vfccustomizationuuid}"
+    },
+    {
+      "param-name": "aic-cloud-region",
+      "param-value": "${aic-cloud-region}"
+    },
+    {
+      "param-name": "vm-type",
+      "param-value": "${vm-type}"
+    },
+    {
+      "param-name": "vnfc-model-customization-uuid",
+      "param-value": "${vfccustomizationuuid}"
+    },
+    {
+      "param-name": "vnfc-model-invariant-uuid",
+      "param-value": "${vnfc-model-invariant-uuid}"
+    },
+    {
+      "param-name": "vnfc-model-version",
+      "param-value": "${vnfc-model-version}"
+    },
+    {
+      "param-name": "nfc-naming-code",
+      "param-value": "${nfc-naming-code}"
+    },
+    {
+      "param-name": "cloud_env",
+      "param-value": "openstack"
+    },
+    {
+      "param-name": "key_name",
+      "param-value": "${key_name}"
+    },
+    {
+      "param-name": "pub_key",
+      "param-value": "${pub_key}"
+    },
+    {
+      "param-name": "public_net_id",
+      "param-value": "${public_net_id}"
+    },
+    {
+      "param-name": "onap_private_net_id",
+      "param-value": "${onap_private_net_id}"
+    },
+    {
+      "param-name": "onap_private_subnet_id",
+      "param-value": "${onap_private_subnet_id}"
+    },
+    {
+      "param-name": "onap_private_net_cidr",
+      "param-value": "${onap_private_net_cidr}"
+    },
+    {
+      "param-name": "sec_group",
+      "param-value": "${sec_group}"
+    }
+  ],
+  "capability-data": [
+    {
+      "capability-name": "generate-name",
+      "key-mapping": [
+        {
+          "payload": [
+            {
+              "param-name": "resource-name",
+              "param-value": "freeRadius_name_0"
+            },
+            {
+              "param-name": "resource-value",
+              "param-value": "${freeRadius_name_0}"
+            },
+            {
+              "param-name": "external-key",
+              "param-value": "${vf-module-id}_freeRadius_name_0"
+            },
+            {
+              "param-name": "policy-instance-name",
+              "param-value": "${vf-naming-policy}"
+            },
+            {
+              "param-name": "naming-type",
+              "param-value": "VNFC"
+            },
+            {
+              "param-name": "VNF_NAME",
+              "param-value": "${vnf_name}"
+            },
+            {
+              "param-name": "NFC_NAMING_CODE",
+              "param-value": "${nfc-naming-code}"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "freeRadius_name_0",
+              "resource-value": "${freeRadius_name_0}"
+            }
+          ]
+        },
+        {
+          "payload": [
+            {
+              "param-name": "resource-name",
+              "param-value": "vf-module-name"
+            },
+            {
+              "param-name": "resource-value",
+              "param-value": "${vf-module-name}"
+            },
+            {
+              "param-name": "external-key",
+              "param-value": "${vf-module-id}_vf-module-name"
+            },
+            {
+              "param-name": "policy-instance-name",
+              "param-value": "${vf-naming-policy}"
+            },
+            {
+              "param-name": "naming-type",
+              "param-value": "VF-MODULE"
+            },
+            {
+              "param-name": "VNF_NAME",
+              "param-value": "${vnf_name}"
+            },
+            {
+              "param-name": "VF_MODULE_LABEL",
+              "param-value": "${vf-module-label}"
+            },
+            {
+              "param-name": "VF_MODULE_TYPE",
+              "param-value": "${vf-module-type}"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "vf-module-name",
+              "resource-value": "${vf-module-name}"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "capability-name": "aai-vf-module-put",
+      "key-mapping": [
+        {
+          "payload": [
+            {
+              "param-name": "vf-module",
+              "param-value": "vf-module"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "aai-vf-module-put",
+              "resource-value": "${status}"
+            }
+          ]
+        }
+      ]
+    }
+       
+  ]
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/userconfig-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/userconfig-mapping.json
new file mode 100755 (executable)
index 0000000..7fb2978
--- /dev/null
@@ -0,0 +1,112 @@
+[
+  {
+    "name": "service-instance-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+  
+    "name": "radius_test_user",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_user",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+      "name": "freeradius_ip",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "freeradius_ip",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "radius_test_password",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_password",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  }
+]
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/userconfig-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/userconfig-template.vtl
new file mode 100755 (executable)
index 0000000..6a23c3f
--- /dev/null
@@ -0,0 +1 @@
+{"freeradius_ip":"$freeradius_ip","user_config":"$radius_test_user Cleartext-Password := \"$radius_test_password\""}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/vnf-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/vnf-mapping.json
new file mode 100755 (executable)
index 0000000..55f0a69
--- /dev/null
@@ -0,0 +1,375 @@
+[
+  {
+    "name": "radius_test_user",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_user",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },  
+  {
+    "name": "radius_test_password",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_password",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },  
+  {
+    "name": "cloud_env",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "openstack"
+    },
+    "input-param": false,
+    "dictionary-name": "cloud_env",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+    {
+    "name": "flavor_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "flavor_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "image_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "image_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "pub_key",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova"
+    },
+    "input-param": false,
+    "dictionary-name": "pub_key",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "onap_private_subnet_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_subnet_id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "public_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "public_net_id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_cidr",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_cidr",
+    "dictionary-source": "processor-db",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "sec_group",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "sec_group",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "service-instance-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-model-customization-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-model-customization-uuid",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-naming-policy",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP"
+    },
+    "input-param": false,
+    "dictionary-name": "vf-naming-policy",
+    "dictionary-source": "default",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "${vnf_name}"
+    },
+    "input-param": false,
+    "dictionary-name": "vnf_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "aic-cloud-region",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "aic-cloud-region",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "key_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "olc-key"
+    },
+    "input-param": false,
+    "dictionary-name": "key_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  }
+]
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/vnf-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/CBA_freeradius/Templates/vnf-template.vtl
new file mode 100755 (executable)
index 0000000..8d1cf3b
--- /dev/null
@@ -0,0 +1,166 @@
+{
+  "resource-accumulator-resolved-data": [
+    {
+      "param-name": "radius_test_user",
+      "param-value": "${radius_test_user}"
+    },    
+       {
+      "param-name": "radius_test_password",
+      "param-value": "${radius_test_password}"
+    },
+    {
+      "param-name": "service-instance-id",
+      "param-value": "${service-instance-id}"
+    },
+    {
+      "param-name": "vnf_id",
+      "param-value": "${vnf-id}"
+    },
+         {
+      "param-name": "vf-naming-policy",
+      "param-value": "${vf-naming-policy}"
+    },
+    {
+      "param-name": "vnf-model-customization-uuid",
+      "param-value": "${vnf-model-customization-uuid}"
+    },
+    {
+      "param-name": "aic-cloud-region",
+      "param-value": "${aic-cloud-region}"
+    },
+    {
+      "param-name": "onap_private_net_id",
+      "param-value": "${onap_private_net_id}"
+    },
+        {
+      "param-name": "image_name",
+      "param-value": "${image_name}"
+    },
+    {
+      "param-name": "onap_private_subnet_id",
+      "param-value": "${onap_private_subnet_id}"
+    },
+    {
+      "param-name": "vfccustomizationuuid",
+      "param-value": "${vfccustomizationuuid}"
+    },
+    {
+      "param-name": "vf-module-model-customization-uuid",
+      "param-value": "${vf-module-model-customization-uuid}"
+    },
+    {
+      "param-name": "cloud_env",
+      "param-value": "${cloud_env}"
+    },
+           {
+      "param-name": "flavor_name",
+      "param-value": "${flavor_name}"
+    },
+    {
+      "param-name": "pub_key",
+      "param-value": "${pub_key}"
+    },
+    {
+      "param-name": "sec_group",
+      "param-value": "${sec_group}"
+    },
+    {
+      "param-name": "public_net_id",
+      "param-value": "${public_net_id}"
+    },
+    {
+      "param-name": "onap_private_net_cidr",
+      "param-value": "${onap_private_net_cidr}"
+    },
+    {
+      "param-name": "key_name",
+      "param-value": "${key_name}"
+    }
+  ],
+       "capability-data": [{
+               "capability-name": "generate-name",
+               "key-mapping": [{
+                       "payload": [{
+                               "param-name": "resource-name",
+                               "param-value": "vnf_name"
+                       },
+                       {
+                               "param-name": "resource-value",
+                               "param-value": "${vnf_name}"
+                       },
+                       {
+                               "param-name": "external-key",
+                               "param-value": "${vnf-id}_vnf_name"
+                       },
+                       {
+                               "param-name": "policy-instance-name",
+                               "param-value": "${vf-naming-policy}"
+                       },
+                       {
+                               "param-name": "naming-type",
+                               "param-value": "VNF"
+                       },
+                       {
+                               "param-name": "AIC_CLOUD_REGION",
+                               "param-value": "${aic-cloud-region}"
+                       }],
+                       "output-key-mapping": [{
+                               "resource-name": "vnf_name",
+                               "resource-value": "${vnf_name}"
+                       }]
+               }]
+       },
+           {
+      "capability-name": "aai-vnf-put",
+      "key-mapping": [
+        {
+          "payload": [
+            {
+              "param-name": "generic-vnf",
+              "param-value": "generic-vnf"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "aai-vnf-put",
+              "resource-value": "${status}"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "capability-name": "netbox-ip-assign",
+      "key-mapping": [
+       
+
+        {
+          "payload": [
+            {
+              "param-name": "service-instance-id",
+              "param-value": "${service-instance-id}"
+            },
+            {
+              "param-name": "prefix-id",
+              "param-value": "3"
+            },
+            {
+              "param-name": "vnf-id",
+              "param-value": "${vnf-id}"
+            },
+            {
+              "param-name": "external_key",
+              "param-value": "${vnf-id}-freeradius_ip"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "freeradius_ip",
+              "resource-value": "${freeradius_ip}"
+            }
+          ]
+        },
+      ]
+    }
+       ]  
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius.zip b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius.zip
new file mode 100755 (executable)
index 0000000..114ef54
Binary files /dev/null and b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius.zip differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/MANIFEST.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/MANIFEST.json
new file mode 100755 (executable)
index 0000000..5719ac8
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "name": "radius",
+    "description": "",
+    "data": [
+        {
+            "file": "radius.yaml",
+            "type": "HEAT",
+            "isBase": "true",
+            "data": [
+                {
+                    "file": "radius.env",
+                    "type": "HEAT_ENV"
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/radius.env b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/radius.env
new file mode 100755 (executable)
index 0000000..bee3255
--- /dev/null
@@ -0,0 +1,17 @@
+parameters:\r
+# Metadata required by ONAP\r
+  vnf_id: FreeRadius-VNF\r
+  vf_module_id: FreeRadius-VF-module\r
+  vnf_name: FreeRadius-VNF-name\r
+\r
+# Server parameters, naming required by ONAP\r
+  image_name: ubuntu-16.04-daily\r
+  flavor_name: onap.small\r
+  pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDExKK9DuERvBQwdYbHzDw8en8pfg/1vEYHTIW2IS6+yhRH+jKncYVI/PHWjfM/ragWEipSyMHxfqhdlYylxVAYQKm1DTWCC9y3a6TUieFWn802Sb6YbEtXdYZWxlNWwD3Y/7c/zF7V6Oh30ZS3lMoncX9oh9nAM8GQL0m+4vcKMGX5am3S1qPslrcxhEEpOlFb9FX1jSy3aeHLb57aj0wp/g9WwWlDZ31FWensUZG6O0o2QUmMB0QOb2rIcFHlpRzF36i/2wKXT+xJxXEB38UwweJwohLRSo8sLqJvYRYjIxlZK2pgqyZalHq7GZBqfPyaLpXPUwMtE0oHV47zQABx root@qvocrobot-virtual-machine\r
+  key_name: FreeRadius-key\r
+  freeRadius_name_0: FreeRadius-VM-name\r
+  freeradius_ip: 10.0.0.100\r
+  \r
+# Network parameters, naming required by ONAP\r
+  onap_private_net_id: admin\r
+  public_net_id: admin\r
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/radius.yaml b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/after_enrichment/HEAT_freeradius/radius.yaml
new file mode 100755 (executable)
index 0000000..a699ca0
--- /dev/null
@@ -0,0 +1,163 @@
+heat_template_version: 2013-05-23\r
+\r
+description: Heat template to deploy a FreeRadius\r
+\r
+parameters:\r
+# Metadata required by ONAP\r
+  vnf_name:\r
+    type: string\r
+    label: VM name\r
+    description: The VM name\r
+  vnf_id:\r
+    type: string\r
+    label: VNF ID\r
+    description: The VNF ID is provided by ONAP\r
+  vf_module_id:\r
+    type: string\r
+    label: VF module ID\r
+    description: The VF Module ID is provided by ONAP\r
+\r
+# Server parameters, naming required by ONAP\r
+  image_name:\r
+    type: string\r
+    label: Image name or ID\r
+    description: Image to be used for compute instance\r
+  flavor_name:\r
+    type: string\r
+    label: Flavor\r
+    description: Type of instance (flavor) to be used\r
+  pub_key:\r
+    type: string\r
+    label: Public key\r
+    description: Public key to be installed on the compute instance\r
+  key_name:\r
+    type: string\r
+    label: Public key name\r
+    description: Public key name to be installed on the compute instance    \r
+  freeRadius_name_0:\r
+    type: string\r
+    label: VM name\r
+    description: The VM name\r
+\r
+# Network parameters, naming required by ONAP\r
+  onap_private_net_id:\r
+    type: string\r
+    label: management network\r
+    description: The management network\r
+  onap_private_subnet_id:\r
+    type: string\r
+    label: management network\r
+    description: The management network\r
+  public_net_id:\r
+    type: string\r
+    label: control plane network\r
+    description: The control plane network\r
+  freeradius_ip:\r
+    type: string\r
+    label: freeradius vm ip address\r
+    description: freeradius vm ip address\r
+\r
+resources:\r
+  random-str:\r
+    type: OS::Heat::RandomString\r
+    properties:\r
+      length: 4\r
+      \r
+  freeRadius_key:\r
+    type: OS::Nova::KeyPair\r
+    properties:\r
+      name: { get_param: key_name } \r
+      public_key: { get_param: pub_key }\r
+      save_private_key: false\r
+\r
+  freeRadius_oam_security_group:\r
+    type: OS::Neutron::SecurityGroup\r
+    properties:\r
+      description: security group\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: oam_sg_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      rules: [\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]\r
+\r
+  freeRadius_control_plane_security_group:\r
+    type: OS::Neutron::SecurityGroup\r
+    properties:\r
+      description: security group\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: cp_sg_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      rules: [\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]\r
+\r
+  freeRadius_0_oam_port_0:\r
+    type: OS::Neutron::Port\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: oam_port_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      network: { get_param: onap_private_net_id }\r
+      fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: freeradius_ip }}]\r
+      security_groups: [{ get_resource: freeRadius_oam_security_group }]\r
+\r
+  freeRadius_0_control_plane_port_0:\r
+    type: OS::Neutron::Port\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: cp_port_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      network: { get_param: public_net_id }\r
+      security_groups: [{ get_resource: freeRadius_control_plane_security_group }]\r
+\r
+  freeRadius_VM_settings:\r
+    type: OS::Heat::SoftwareConfig\r
+    properties:\r
+      config: |\r
+            #!/bin/bash\r
+            apt-get update\r
+            apt-get install -y freeradius\r
+            echo -e "password\npassword" | passwd cloud\r
+            sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config \r
+            service ssh restart\r
+\r
+\r
+  freeRadius_server_0:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      image: { get_param: image_name }\r
+      flavor: { get_param: flavor_name }\r
+      name: { get_param: freeRadius_name_0 }\r
+      metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }, vnf_name: { get_param: vnf_name }}\r
+      key_name: { get_resource: freeRadius_key }\r
+      networks:\r
+        - port: { get_resource: freeRadius_0_oam_port_0 }\r
+        - port: { get_resource: freeRadius_0_control_plane_port_0 }\r
+      user_data_format: RAW\r
+      user_data: |\r
+        #!/bin/bash\r
+        echo "!!! Install FreeRadius"\r
+        apt-get update\r
+        apt-get install -y freeradius\r
+        echo "!!! Setup password authentication for user cloud"\r
+        echo -e "password\npassword" | passwd cloud\r
+        sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config \r
+        service ssh restart\r
+        echo "!!! Done"\r
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba
new file mode 100755 (executable)
index 0000000..37a74dd
Binary files /dev/null and b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius.cba differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json
new file mode 100755 (executable)
index 0000000..76d8e74
--- /dev/null
@@ -0,0 +1,224 @@
+{
+       "tosca_definitions_version": "controller_blueprint_1_0_0",
+       "metadata": {
+               "template_author": "Abdelmuhaimen Seaudi",
+               "author-email": "abdelmuhaimen.seaudi@orange.com",
+               "user-groups": "ADMIN, OPERATION",
+               "template_name": "freeradius",
+               "template_version": "1.0.0",
+               "template_tags": "test, freeradius, freeradius_cds"
+       },
+       "imports": [{
+               "file": "Definitions/data_types.json"
+       },
+       {
+               "file": "Definitions/relationship_types.json"
+       },
+       {
+               "file": "Definitions/artifact_types.json"
+       },
+       {
+               "file": "Definitions/node_types.json"
+       },
+       {
+               "file": "Definitions/policy_types.json"
+       }],
+       "dsl_definitions": {
+               "ipam-1": {
+                       "type": "token-auth",
+                       "url": "http://netbox-nginx:8080",
+                       "token": "Token 0123456789abcdef0123456789abcdef01234567"
+               },
+               "config-deploy-properties": {
+                       "resolution-key": {
+                               "get_input": "resolution-key"
+                       },
+                       "freeradius_ip": {
+                               "get_input": "freeradius_ip"
+                       }                       
+               },
+               "dynamic-db-source": {
+                       "type": "maria-db",
+                       "url": "jdbc:mysql://mariadb-galera:3306/sdnctl",
+                       "username": "root",
+                       "password": "secretpassword"
+               }
+       },
+       "topology_template": {
+               "workflows": {
+                       "resource-assignment": {
+                               "steps": {
+                                       "resource-assignment": {
+                                               "description": "Resource Assign Workflow",
+                                               "target": "resource-assignment"
+                                       }
+                               },
+                               "inputs": {
+                                       "template-prefix": {
+                                               "required": true,
+                                               "type": "list",
+                                               "entry_schema": {
+                                                       "type": "string"
+                                               }
+                                       },
+                                       "resource-assignment-properties": {
+                                               "description": "Dynamic PropertyDefinition for workflow(resource-assignment).",
+                                               "required": true,
+                                               "type": "dt-resource-assignment-properties"
+                                       }
+                               },
+                               "outputs": {
+                                       "meshed-template": {
+                                               "type": "json",
+                                               "value": {
+                                                       "get_attribute": ["resource-assignment",
+                                                       "assignment-params"]
+                                               }
+                                       }
+                               }
+                       },
+                       "config-assign": {
+                               "steps": {
+                                       "config-assign": {
+                                               "description": "Config Assign Workflow",
+                                               "target": "config-assign",
+                                               "activities": [{
+                                                       "call_operation": ""
+                                               }]
+                                       }
+                               },
+                               "inputs": {
+                                       "resolution-key": {
+                                               "required": true,
+                                               "type": "string"
+                                       },
+                                       "config-assign-properties": {
+                                               "description": "Dynamic PropertyDefinition for workflow(config-assign).",
+                                               "required": true,
+                                               "type": "dt-config-assign-properties"
+                                       }
+                               },
+                               "outputs": {
+                                       "dry-run": {
+                                               "type": "json",
+                                               "value": {
+                                                       "get_attribute": ["config-assign",
+                                                       "assignment-params"]
+                                               }
+                                       }
+                               }
+                       },
+                       "config-deploy": {
+                               "steps": {
+                                       "config-deploy": {
+                                               "description": "Resource Assign and Python Netconf Activation Workflow",
+                                               "target": "config-deploy-process",
+                                               "activities": [{
+                                                       "call_operation": "ComponentScriptExecutor.process"
+                                               }]
+                                       }
+                               },
+                               "inputs": {
+                                       "resolution-key": {
+                                               "required": false,
+                                               "type": "string"
+                                       },
+                                       "service-instance-id": {
+                                               "required": false,
+                                               "type": "string"
+                                       },
+                                       "freeradius_ip": {
+                                               "required": false,
+                                               "type": "string"
+                                       },                                      
+                                       "config-deploy-properties": {
+                                               "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+                                               "required": true,
+                                               "type": "dt-config-deploy-properties"
+                                       }
+                               }
+                       }
+               },
+               "node_templates": {
+                       "resource-assignment": {
+                               "type": "component-resource-resolution",
+                               "interfaces": {
+                                       "ResourceResolutionComponent": {
+                                               "operations": {
+                                                       "process": {
+                                                               "inputs": {
+                                                                       "artifact-prefix-names": {
+                                                                               "get_input": "template-prefix"
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               },
+                               "artifacts": {
+                                       "vnf-template": {
+                                               "type": "artifact-template-velocity",
+                                               "file": "Templates/vnf-template.vtl"
+                                       },
+                                       "vnf-mapping": {
+                                               "type": "artifact-mapping-resource",
+                                               "file": "Templates/vnf-mapping.json"
+                                       },
+                                       "radius-template": {
+                                               "type": "artifact-template-velocity",
+                                               "file": "Templates/radius-template.vtl"
+                                       },
+                                       "radius-mapping": {
+                                               "type": "artifact-mapping-resource",
+                                               "file": "Templates/radius-mapping.json"
+                                       }
+                               }
+                       },
+                       "config-assign": {
+                               "type": "component-resource-resolution",
+                               "interfaces": {
+                                       "ResourceResolutionComponent": {
+                                               "operations": {
+                                                       "process": {
+                                                               "inputs": {
+                                                                       "resolution-key": {
+                                                                               "get_input": "resolution-key"
+                                                                       },
+                                                                       "store-result": true,
+                                                                       "artifact-prefix-names": ["userconfig"]
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               },
+                               "artifacts": {
+                                       "userconfig-template": {
+                                               "type": "artifact-template-velocity",
+                                               "file": "Templates/userconfig-template.vtl"
+                                       },
+                                       "userconfig-mapping": {
+                                               "type": "artifact-mapping-resource",
+                                               "file": "Templates/userconfig-mapping.json"
+                                       }
+                               }
+                       },
+                       "config-deploy-process": {
+                               "type": "component-script-executor",
+                               "interfaces": {
+                                       "ComponentScriptExecutor": {
+                                               "operations": {
+                                                       "process": {
+                                                               "inputs": {
+                                                                       "script-type": "kotlin",
+                                                                       "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.SampleScriptComponent",
+                                                                       "instance-dependencies": [],
+                                                                       "dynamic-properties": "*config-deploy-properties"
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Plans/CONFIG_ConfigDeploy.xml
new file mode 100755 (executable)
index 0000000..92fb2aa
--- /dev/null
@@ -0,0 +1,27 @@
+<service-logic\r
+  xmlns='http://www.onap.org/sdnc/svclogic'\r
+  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'\r
+  xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='CONFIG' version='1.0.0'>\r
+    <method rpc='ConfigDeploy' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="nf-account-collection" method="process">\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <execute plugin="execute" method="process">\r
+                        <outcome value='failure'>\r
+                            <return status="failure">\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <return status='success'>\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt
new file mode 100755 (executable)
index 0000000..e0d36ca
--- /dev/null
@@ -0,0 +1,82 @@
+package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts\r
+\r
+import com.fasterxml.jackson.databind.node.ObjectNode\r
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput\r
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractComponentFunction\r
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.AbstractScriptComponentFunction\r
+import org.onap.ccsdk.cds.blueprintsprocessor.services.execution.ComponentFunctionScriptingService\r
+\r
+import java.io.ByteArrayInputStream\r
+import java.io.IOException\r
+import java.io.InputStream\r
+import org.apache.sshd.client.SshClient\r
+import org.apache.sshd.client.channel.ClientChannel\r
+import org.apache.sshd.client.future.AuthFuture\r
+import org.apache.sshd.client.future.ConnectFuture\r
+import org.apache.sshd.client.session.ClientSession\r
+import org.apache.sshd.common.future.SshFutureListener\r
+import org.apache.sshd.common.util.io.NoCloseInputStream\r
+import org.apache.sshd.common.util.io.NoCloseOutputStream\r
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.storedContentFromResolvedArtifactNB\r
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException\r
+import org.onap.ccsdk.cds.controllerblueprints.core.asListOfString\r
+import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils\r
+import org.slf4j.LoggerFactory\r
+import java.io.ByteArrayOutputStream\r
+import java.util.*\r
+\r
+open class SampleScriptComponent : AbstractScriptComponentFunction() {\r
+\r
+    private val log = LoggerFactory.getLogger(SampleScriptComponent::class.java)!!\r
+\r
+    override suspend fun processNB(executionRequest: ExecutionServiceInput) {\r
+        log.info("Hello Kotlin!")\r
+        val resolution_key = getDynamicProperties("resolution-key").asText()\r
+        log.info("resolution_key: $resolution_key")\r
+        val payload = storedContentFromResolvedArtifactNB(resolution_key, "userconfig")\r
+        val payloadObject = JacksonUtils.jsonNode(payload) as ObjectNode\r
+        val freeradius_ip: String = payloadObject.get("freeradius_ip").asText()\r
+        log.info("freeradius_ip: $freeradius_ip")\r
+        val user_config: String = payloadObject.get("user_config").asText()\r
+        log.info("user_config: $user_config")  \r
+        log.info("Waiting 2 minutes for VM to initialize")\r
+        Thread.sleep(120000)           \r
+        val client = SshClient.setUpDefaultClient()\r
+        client.start()\r
+        log.info("SSH Client Service started successfully")\r
+        val session = client.connect("cloud", freeradius_ip, 22).verify(3000).session\r
+        session.addPasswordIdentity("password")\r
+        log.info("SSH Client authenticating...")\r
+        val authFuture = session.auth().verify(3000)\r
+        log.info("SSH client session($session) created")\r
+        log.info("SSH Authenticated: $authFuture.isSuccess()")\r
+        val command="echo '$user_config' | sudo tee -a /etc/freeradius/users"\r
+        log.info("Executing host($session) command($command)")\r
+        val channel = session.createExecChannel(command)\r
+        val outputStream = ByteArrayOutputStream()\r
+        channel!!.out = outputStream\r
+        channel!!.err = outputStream\r
+        channel!!.open().await()\r
+        //val waitMask = channel!!.waitFor(Collections.unmodifiableSet(EnumSet.of(ClientChannelEvent.CLOSED)), 3000)\r
+        //if (waitMask.contains(ClientChannelEvent.TIMEOUT)) {\r
+        //    throw BluePrintProcessorException("Failed to retrieve command result in time: $command")\r
+        //}\r
+        Thread.sleep(3000)\r
+        val exitStatus = channel!!.exitStatus\r
+        //ClientChannel. .validateCommandExitStatusCode(command, exitStatus!!)\r
+        if (channel != null) {\r
+            channel!!.close()\r
+        }\r
+        if (client.isOpen) {\r
+            client.stop()\r
+        }\r
+        log.info(outputStream.toString())\r
+        log.info("SSH Client Service stopped successfully")\r
+\r
+\r
+    }\r
+\r
+\r
+    override suspend fun recoverNB(runtimeException: RuntimeException, executionRequest: ExecutionServiceInput) {\r
+    }\r
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Scripts/python/ConfigDeploy.py
new file mode 100755 (executable)
index 0000000..2b88e82
--- /dev/null
@@ -0,0 +1,39 @@
+#  Copyright (c) 2019 Bell Canada.\r
+#\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#      http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+\r
+import netconf_constant\r
+from common import ResolutionHelper\r
+from time import sleep \r
+from netconfclient import NetconfClient\r
+from org.onap.ccsdk.cds.blueprintsprocessor.functions.netconf.executor import \\r
+  NetconfComponentFunction\r
+\r
+\r
+class ConfigDeploy(NetconfComponentFunction):\r
+\r
+  def process(self, execution_request):      \r
+      log = globals()[netconf_constant.SERVICE_LOG]      \r
+      print(globals())\r
+      rr = ResolutionHelper(self)\r
+\r
+      # Get meshed template from DB\r
+      resolution_key = self.getDynamicProperties("resolution-key").asText()\r
+      payload = rr.retrieve_resolved_template_from_database(resolution_key, "userconfig")      \r
+      print(payload)\r
+\r
+\r
+  def recover(self, runtime_exception, execution_request):\r
+        log.error("Exception in the script {}", runtime_exception)\r
+        print self.addError(runtime_exception.cause.message)\r
+        return None
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/TOSCA-Metadata/TOSCA.meta
new file mode 100755 (executable)
index 0000000..bc98c17
--- /dev/null
@@ -0,0 +1,6 @@
+TOSCA-Meta-File-Version: 1.0.0
+CSAR-Version: 1.0
+Created-By: SEAUDI, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>
+Entry-Definitions: Definitions/freeradius.json
+Template-Tags: freeradius_CDS
+Content-Type: application/vnd.oasis.bpmn
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json
new file mode 100755 (executable)
index 0000000..271167d
--- /dev/null
@@ -0,0 +1,613 @@
+[
+  {
+    "name": "radius_test_user",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_user",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },  
+  {
+    "name": "radius_test_password",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_password",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },  
+  {
+    "name": "freeradius_ip",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "freeradius_ip",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "cloud_env",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "openstack"
+    },
+    "input-param": false,
+    "dictionary-name": "cloud_env",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf_module_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "${vf_module_name}"
+    },
+    "input-param": false,
+    "dictionary-name": "vf_module_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "aic-cloud-region",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "aic-cloud-region",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "keypair",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "vlb_key"
+    },
+    "input-param": false,
+    "dictionary-name": "keypair",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "nfc-naming-code",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "nfc-naming-code",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vfccustomizationuuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_cidr",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_cidr",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_id",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "onap_private_subnet_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_subnet_id",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "public_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "public_net_id",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "pub_key",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "pub_key",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "key_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "key_name",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "sec_group",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "sec_group",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "service-instance-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-module-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-module-label",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-label",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vf-module-model-customization-uuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vf-module-model-customization-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-model-customization-uuid",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-module-type",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vf-module-type",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vf-module-model-customization-uuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vf-naming-policy",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+         },
+    "input-param": false,
+    "dictionary-name": "vf-naming-policy",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+         "service-instance-id",
+      "vnf-id"
+       ],
+    "version": 0
+  },
+  {
+    "name": "vfccustomizationuuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vfccustomizationuuid",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vf-module-model-customization-uuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vnf_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf_name",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vm-type",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vm-type",
+    "dictionary-source": "processor-db",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-model-customization-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-model-customization-uuid",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnfc-model-invariant-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnfc-model-invariant-uuid",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vfccustomizationuuid"
+    ],
+    "version": 0
+  },
+  {
+    "name": "vnfc-model-version",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnfc-model-version",
+    "dictionary-source": "processor-db",
+    "dependencies": [
+      "vfccustomizationuuid"
+    ],
+    "version": 0
+  }
+]
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl
new file mode 100755 (executable)
index 0000000..f4c57d4
--- /dev/null
@@ -0,0 +1,211 @@
+{
+  "resource-accumulator-resolved-data": [
+    {
+      "param-name": "radius_test_user",
+      "param-value": "${radius_test_user}"
+    },    
+       {
+      "param-name": "radius_test_password",
+      "param-value": "${radius_test_password}"
+    },
+       {
+      "param-name": "freeradius_ip",
+      "param-value": "${freeradius_ip}"
+    }, 
+    {
+      "param-name": "service-instance-id",
+      "param-value": "${service-instance-id}"
+    },
+    {
+      "param-name": "vnf_id",
+      "param-value": "${vnf-id}"
+    },
+    {
+      "param-name": "vnf_name",
+      "param-value": "${vnf_name}"
+    },
+    {
+      "param-name": "vnf_model_customization_uuid",
+      "param-value": "${vnf-model-customization-uuid}"
+    },
+    {
+      "param-name": "vf_module_id",
+      "param-value": "${vf-module-id}"
+    },
+    {
+      "param-name": "vf_module_type",
+      "param-value": "${vf-module-type}"
+    },
+    {
+      "param-name": "vf_module_customization_uuid",
+      "param-value": "${vf-module-model-customization-uuid}"
+    },
+    {
+      "param-name": "vfc_customization_uuid",
+      "param-value": "${vfccustomizationuuid}"
+    },
+    {
+      "param-name": "aic-cloud-region",
+      "param-value": "${aic-cloud-region}"
+    },
+    {
+      "param-name": "vm-type",
+      "param-value": "${vm-type}"
+    },
+    {
+      "param-name": "vnfc-model-customization-uuid",
+      "param-value": "${vfccustomizationuuid}"
+    },
+    {
+      "param-name": "vnfc-model-invariant-uuid",
+      "param-value": "${vnfc-model-invariant-uuid}"
+    },
+    {
+      "param-name": "vnfc-model-version",
+      "param-value": "${vnfc-model-version}"
+    },
+    {
+      "param-name": "nfc-naming-code",
+      "param-value": "${nfc-naming-code}"
+    },
+    {
+      "param-name": "cloud_env",
+      "param-value": "openstack"
+    },
+    {
+      "param-name": "key_name",
+      "param-value": "${key_name}"
+    },
+    {
+      "param-name": "pub_key",
+      "param-value": "${pub_key}"
+    },
+    {
+      "param-name": "public_net_id",
+      "param-value": "${public_net_id}"
+    },
+    {
+      "param-name": "onap_private_net_id",
+      "param-value": "${onap_private_net_id}"
+    },
+    {
+      "param-name": "onap_private_subnet_id",
+      "param-value": "${onap_private_subnet_id}"
+    },
+    {
+      "param-name": "onap_private_net_cidr",
+      "param-value": "${onap_private_net_cidr}"
+    },
+    {
+      "param-name": "sec_group",
+      "param-value": "${sec_group}"
+    }
+  ],
+  "capability-data": [
+    {
+      "capability-name": "generate-name",
+      "key-mapping": [
+        {
+          "payload": [
+            {
+              "param-name": "resource-name",
+              "param-value": "freeRadius_name_0"
+            },
+            {
+              "param-name": "resource-value",
+              "param-value": "${freeRadius_name_0}"
+            },
+            {
+              "param-name": "external-key",
+              "param-value": "${vf-module-id}_freeRadius_name_0"
+            },
+            {
+              "param-name": "policy-instance-name",
+              "param-value": "${vf-naming-policy}"
+            },
+            {
+              "param-name": "naming-type",
+              "param-value": "VNFC"
+            },
+            {
+              "param-name": "VNF_NAME",
+              "param-value": "${vnf_name}"
+            },
+            {
+              "param-name": "NFC_NAMING_CODE",
+              "param-value": "${nfc-naming-code}"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "freeRadius_name_0",
+              "resource-value": "${freeRadius_name_0}"
+            }
+          ]
+        },
+        {
+          "payload": [
+            {
+              "param-name": "resource-name",
+              "param-value": "vf-module-name"
+            },
+            {
+              "param-name": "resource-value",
+              "param-value": "${vf-module-name}"
+            },
+            {
+              "param-name": "external-key",
+              "param-value": "${vf-module-id}_vf-module-name"
+            },
+            {
+              "param-name": "policy-instance-name",
+              "param-value": "${vf-naming-policy}"
+            },
+            {
+              "param-name": "naming-type",
+              "param-value": "VF-MODULE"
+            },
+            {
+              "param-name": "VNF_NAME",
+              "param-value": "${vnf_name}"
+            },
+            {
+              "param-name": "VF_MODULE_LABEL",
+              "param-value": "${vf-module-label}"
+            },
+            {
+              "param-name": "VF_MODULE_TYPE",
+              "param-value": "${vf-module-type}"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "vf-module-name",
+              "resource-value": "${vf-module-name}"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "capability-name": "aai-vf-module-put",
+      "key-mapping": [
+        {
+          "payload": [
+            {
+              "param-name": "vf-module",
+              "param-value": "vf-module"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "aai-vf-module-put",
+              "resource-value": "${status}"
+            }
+          ]
+        }
+      ]
+    }
+       
+  ]
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json
new file mode 100755 (executable)
index 0000000..7fb2978
--- /dev/null
@@ -0,0 +1,112 @@
+[
+  {
+    "name": "service-instance-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+  
+    "name": "radius_test_user",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_user",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+      "name": "freeradius_ip",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "freeradius_ip",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  },
+  {
+    "name": "radius_test_password",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_password",
+    "dictionary-source": "sdnc",
+    "dependencies": [
+      "service-instance-id",
+      "vnf-id"
+    ],
+    "version": 0
+  }
+]
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl
new file mode 100755 (executable)
index 0000000..6a23c3f
--- /dev/null
@@ -0,0 +1 @@
+{"freeradius_ip":"$freeradius_ip","user_config":"$radius_test_user Cleartext-Password := \"$radius_test_password\""}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json
new file mode 100755 (executable)
index 0000000..55f0a69
--- /dev/null
@@ -0,0 +1,375 @@
+[
+  {
+    "name": "radius_test_user",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_user",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },  
+  {
+    "name": "radius_test_password",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "radius_test_password",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },  
+  {
+    "name": "cloud_env",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "openstack"
+    },
+    "input-param": false,
+    "dictionary-name": "cloud_env",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+    {
+    "name": "flavor_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "flavor_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "image_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "image_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "pub_key",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova"
+    },
+    "input-param": false,
+    "dictionary-name": "pub_key",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "onap_private_subnet_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_subnet_id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "public_net_id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "public_net_id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "onap_private_net_cidr",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "onap_private_net_cidr",
+    "dictionary-source": "processor-db",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "sec_group",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      }
+    },
+    "input-param": false,
+    "dictionary-name": "sec_group",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "service-instance-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "service-instance-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-id",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-id",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf-model-customization-uuid",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "vnf-model-customization-uuid",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vf-naming-policy",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP"
+    },
+    "input-param": false,
+    "dictionary-name": "vf-naming-policy",
+    "dictionary-source": "default",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "vnf_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "${vnf_name}"
+    },
+    "input-param": false,
+    "dictionary-name": "vnf_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "aic-cloud-region",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": ""
+    },
+    "input-param": false,
+    "dictionary-name": "aic-cloud-region",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  },
+  {
+    "name": "key_name",
+    "property": {
+      "description": "",
+      "required": false,
+      "type": "string",
+      "status": "",
+      "constraints": [
+        {}
+      ],
+      "entry_schema": {
+        "type": ""
+      },
+      "default": "olc-key"
+    },
+    "input-param": false,
+    "dictionary-name": "key_name",
+    "dictionary-source": "input",
+    "dependencies": [],
+    "version": 0
+  }
+]
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl
new file mode 100755 (executable)
index 0000000..8d1cf3b
--- /dev/null
@@ -0,0 +1,166 @@
+{
+  "resource-accumulator-resolved-data": [
+    {
+      "param-name": "radius_test_user",
+      "param-value": "${radius_test_user}"
+    },    
+       {
+      "param-name": "radius_test_password",
+      "param-value": "${radius_test_password}"
+    },
+    {
+      "param-name": "service-instance-id",
+      "param-value": "${service-instance-id}"
+    },
+    {
+      "param-name": "vnf_id",
+      "param-value": "${vnf-id}"
+    },
+         {
+      "param-name": "vf-naming-policy",
+      "param-value": "${vf-naming-policy}"
+    },
+    {
+      "param-name": "vnf-model-customization-uuid",
+      "param-value": "${vnf-model-customization-uuid}"
+    },
+    {
+      "param-name": "aic-cloud-region",
+      "param-value": "${aic-cloud-region}"
+    },
+    {
+      "param-name": "onap_private_net_id",
+      "param-value": "${onap_private_net_id}"
+    },
+        {
+      "param-name": "image_name",
+      "param-value": "${image_name}"
+    },
+    {
+      "param-name": "onap_private_subnet_id",
+      "param-value": "${onap_private_subnet_id}"
+    },
+    {
+      "param-name": "vfccustomizationuuid",
+      "param-value": "${vfccustomizationuuid}"
+    },
+    {
+      "param-name": "vf-module-model-customization-uuid",
+      "param-value": "${vf-module-model-customization-uuid}"
+    },
+    {
+      "param-name": "cloud_env",
+      "param-value": "${cloud_env}"
+    },
+           {
+      "param-name": "flavor_name",
+      "param-value": "${flavor_name}"
+    },
+    {
+      "param-name": "pub_key",
+      "param-value": "${pub_key}"
+    },
+    {
+      "param-name": "sec_group",
+      "param-value": "${sec_group}"
+    },
+    {
+      "param-name": "public_net_id",
+      "param-value": "${public_net_id}"
+    },
+    {
+      "param-name": "onap_private_net_cidr",
+      "param-value": "${onap_private_net_cidr}"
+    },
+    {
+      "param-name": "key_name",
+      "param-value": "${key_name}"
+    }
+  ],
+       "capability-data": [{
+               "capability-name": "generate-name",
+               "key-mapping": [{
+                       "payload": [{
+                               "param-name": "resource-name",
+                               "param-value": "vnf_name"
+                       },
+                       {
+                               "param-name": "resource-value",
+                               "param-value": "${vnf_name}"
+                       },
+                       {
+                               "param-name": "external-key",
+                               "param-value": "${vnf-id}_vnf_name"
+                       },
+                       {
+                               "param-name": "policy-instance-name",
+                               "param-value": "${vf-naming-policy}"
+                       },
+                       {
+                               "param-name": "naming-type",
+                               "param-value": "VNF"
+                       },
+                       {
+                               "param-name": "AIC_CLOUD_REGION",
+                               "param-value": "${aic-cloud-region}"
+                       }],
+                       "output-key-mapping": [{
+                               "resource-name": "vnf_name",
+                               "resource-value": "${vnf_name}"
+                       }]
+               }]
+       },
+           {
+      "capability-name": "aai-vnf-put",
+      "key-mapping": [
+        {
+          "payload": [
+            {
+              "param-name": "generic-vnf",
+              "param-value": "generic-vnf"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "aai-vnf-put",
+              "resource-value": "${status}"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "capability-name": "netbox-ip-assign",
+      "key-mapping": [
+       
+
+        {
+          "payload": [
+            {
+              "param-name": "service-instance-id",
+              "param-value": "${service-instance-id}"
+            },
+            {
+              "param-name": "prefix-id",
+              "param-value": "3"
+            },
+            {
+              "param-name": "vnf-id",
+              "param-value": "${vnf-id}"
+            },
+            {
+              "param-name": "external_key",
+              "param-value": "${vnf-id}-freeradius_ip"
+            }
+          ],
+          "output-key-mapping": [
+            {
+              "resource-name": "freeradius_ip",
+              "resource-value": "${freeradius_ip}"
+            }
+          ]
+        },
+      ]
+    }
+       ]  
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip
new file mode 100755 (executable)
index 0000000..114ef54
Binary files /dev/null and b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius.zip differ
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/MANIFEST.json
new file mode 100755 (executable)
index 0000000..5719ac8
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "name": "radius",
+    "description": "",
+    "data": [
+        {
+            "file": "radius.yaml",
+            "type": "HEAT",
+            "isBase": "true",
+            "data": [
+                {
+                    "file": "radius.env",
+                    "type": "HEAT_ENV"
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.env
new file mode 100755 (executable)
index 0000000..bee3255
--- /dev/null
@@ -0,0 +1,17 @@
+parameters:\r
+# Metadata required by ONAP\r
+  vnf_id: FreeRadius-VNF\r
+  vf_module_id: FreeRadius-VF-module\r
+  vnf_name: FreeRadius-VNF-name\r
+\r
+# Server parameters, naming required by ONAP\r
+  image_name: ubuntu-16.04-daily\r
+  flavor_name: onap.small\r
+  pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDExKK9DuERvBQwdYbHzDw8en8pfg/1vEYHTIW2IS6+yhRH+jKncYVI/PHWjfM/ragWEipSyMHxfqhdlYylxVAYQKm1DTWCC9y3a6TUieFWn802Sb6YbEtXdYZWxlNWwD3Y/7c/zF7V6Oh30ZS3lMoncX9oh9nAM8GQL0m+4vcKMGX5am3S1qPslrcxhEEpOlFb9FX1jSy3aeHLb57aj0wp/g9WwWlDZ31FWensUZG6O0o2QUmMB0QOb2rIcFHlpRzF36i/2wKXT+xJxXEB38UwweJwohLRSo8sLqJvYRYjIxlZK2pgqyZalHq7GZBqfPyaLpXPUwMtE0oHV47zQABx root@qvocrobot-virtual-machine\r
+  key_name: FreeRadius-key\r
+  freeRadius_name_0: FreeRadius-VM-name\r
+  freeradius_ip: 10.0.0.100\r
+  \r
+# Network parameters, naming required by ONAP\r
+  onap_private_net_id: admin\r
+  public_net_id: admin\r
diff --git a/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml b/docs/guides/onap-user/design/parameter_resolution/freeradius_example/before_enrichment/HEAT_freeradius/radius.yaml
new file mode 100755 (executable)
index 0000000..a699ca0
--- /dev/null
@@ -0,0 +1,163 @@
+heat_template_version: 2013-05-23\r
+\r
+description: Heat template to deploy a FreeRadius\r
+\r
+parameters:\r
+# Metadata required by ONAP\r
+  vnf_name:\r
+    type: string\r
+    label: VM name\r
+    description: The VM name\r
+  vnf_id:\r
+    type: string\r
+    label: VNF ID\r
+    description: The VNF ID is provided by ONAP\r
+  vf_module_id:\r
+    type: string\r
+    label: VF module ID\r
+    description: The VF Module ID is provided by ONAP\r
+\r
+# Server parameters, naming required by ONAP\r
+  image_name:\r
+    type: string\r
+    label: Image name or ID\r
+    description: Image to be used for compute instance\r
+  flavor_name:\r
+    type: string\r
+    label: Flavor\r
+    description: Type of instance (flavor) to be used\r
+  pub_key:\r
+    type: string\r
+    label: Public key\r
+    description: Public key to be installed on the compute instance\r
+  key_name:\r
+    type: string\r
+    label: Public key name\r
+    description: Public key name to be installed on the compute instance    \r
+  freeRadius_name_0:\r
+    type: string\r
+    label: VM name\r
+    description: The VM name\r
+\r
+# Network parameters, naming required by ONAP\r
+  onap_private_net_id:\r
+    type: string\r
+    label: management network\r
+    description: The management network\r
+  onap_private_subnet_id:\r
+    type: string\r
+    label: management network\r
+    description: The management network\r
+  public_net_id:\r
+    type: string\r
+    label: control plane network\r
+    description: The control plane network\r
+  freeradius_ip:\r
+    type: string\r
+    label: freeradius vm ip address\r
+    description: freeradius vm ip address\r
+\r
+resources:\r
+  random-str:\r
+    type: OS::Heat::RandomString\r
+    properties:\r
+      length: 4\r
+      \r
+  freeRadius_key:\r
+    type: OS::Nova::KeyPair\r
+    properties:\r
+      name: { get_param: key_name } \r
+      public_key: { get_param: pub_key }\r
+      save_private_key: false\r
+\r
+  freeRadius_oam_security_group:\r
+    type: OS::Neutron::SecurityGroup\r
+    properties:\r
+      description: security group\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: oam_sg_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      rules: [\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]\r
+\r
+  freeRadius_control_plane_security_group:\r
+    type: OS::Neutron::SecurityGroup\r
+    properties:\r
+      description: security group\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: cp_sg_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      rules: [\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22},\r
+        {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}]\r
+\r
+  freeRadius_0_oam_port_0:\r
+    type: OS::Neutron::Port\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: oam_port_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      network: { get_param: onap_private_net_id }\r
+      fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: freeradius_ip }}]\r
+      security_groups: [{ get_resource: freeRadius_oam_security_group }]\r
+\r
+  freeRadius_0_control_plane_port_0:\r
+    type: OS::Neutron::Port\r
+    properties:\r
+      name:\r
+        str_replace:\r
+          template: pre_base_rand\r
+          params:\r
+            pre: cp_port_\r
+            base: { get_param: vnf_name }\r
+            rand: { get_resource: random-str }\r
+      network: { get_param: public_net_id }\r
+      security_groups: [{ get_resource: freeRadius_control_plane_security_group }]\r
+\r
+  freeRadius_VM_settings:\r
+    type: OS::Heat::SoftwareConfig\r
+    properties:\r
+      config: |\r
+            #!/bin/bash\r
+            apt-get update\r
+            apt-get install -y freeradius\r
+            echo -e "password\npassword" | passwd cloud\r
+            sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config \r
+            service ssh restart\r
+\r
+\r
+  freeRadius_server_0:\r
+    type: OS::Nova::Server\r
+    properties:\r
+      image: { get_param: image_name }\r
+      flavor: { get_param: flavor_name }\r
+      name: { get_param: freeRadius_name_0 }\r
+      metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }, vnf_name: { get_param: vnf_name }}\r
+      key_name: { get_resource: freeRadius_key }\r
+      networks:\r
+        - port: { get_resource: freeRadius_0_oam_port_0 }\r
+        - port: { get_resource: freeRadius_0_control_plane_port_0 }\r
+      user_data_format: RAW\r
+      user_data: |\r
+        #!/bin/bash\r
+        echo "!!! Install FreeRadius"\r
+        apt-get update\r
+        apt-get install -y freeradius\r
+        echo "!!! Setup password authentication for user cloud"\r
+        echo -e "password\npassword" | passwd cloud\r
+        sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config \r
+        service ssh restart\r
+        echo "!!! Done"\r
diff --git a/docs/guides/onap-user/design/parameter_resolution/index.rst b/docs/guides/onap-user/design/parameter_resolution/index.rst
new file mode 100644 (file)
index 0000000..ec09d63
--- /dev/null
@@ -0,0 +1,691 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2019 ONAP Contributors. All rights reserved.
+
+.. _doc_guide_user_des_param_assign:
+
+VNF Parameter resolution templating
+===================================
+
+Overview
+--------
+
+When instantiating a Service composed of PNF, VNF or CNF there is the need to
+get some values for some parameters.
+
+For example, it may be necessary to provide a VNF management @ip
+Address or a VNF instance name. Those parameters can be necessary
+to create cloud resources or to configure the VNF at application level.
+
+The initial implementation of ONAP required operators to provide
+preload data spreadsheet for each PNF/VNF/CNF Instance that is being
+instantiated via ONAP which was error prone and was not operationally
+a scalable solution for telcos. As part of the ONAP CDS component introduction
+in Casablanca release, the user, that wants to instantiate a new VNF/CNF,
+does not need to get and provide those data.
+
+Of course the “user” may be a human but may be also an application that uses
+the “instantiation” API on ONAP NBI or ONAP SO.
+
+ONAP CDS component is then in charge of resolving those parameters
+automatically.
+
+.. toctree::
+   :maxdepth: 1
+   :titlesonly:
+
+   Full CDS documentation is here <../../../../submodules/ccsdk/cds.git/docs/index.rst>
+
+It offers automated solution out of the box by delivering network intent
+declarative package during design time phase that automated the provisioning
+and/or network configuration network intent.
+
+At instantiation time, CDS controller will find (assign) the values
+according some “recipies” described in a "Controller Blueprint Archive”:
+a collection of files that CDS controller will use to proceed
+parameter resolution.
+
+Thanks to CDS, at instantiation time, the user, that wants to instantiate
+a new VNF, does not need to get and provide those data himself.
+Of course the “user” may be a human but may be also
+an application that uses the “instantiation” API on ONAP NBI or ONAP SO.
+
+Less effort for the “user”, but more effort for the “designer”
+that needs to pre-defined all necessary recipies
+during design time.
+
+The purpose of the following text is to describe various files and content
+that are necessary to the CDS controller to resolve any parameters.
+
+To illustrate the subject, let's take an example: a service composed of
+a freeradius VNF.
+
+That software will be installed on a simple ubuntu image.
+
+
+Design process
+--------------
+
+    * `Step 1 : identify the parameters needed for instantiation`_
+    * `Step 2: identify the parameters needed for post-instantiation`_
+    * `Step 3: identify the data source for each parameter`_
+    * `Step 4: add new data definition in CDS resource dictionary`_
+    * `Step 5: write template files`_
+    * `Step 6: write mapping files`_
+    * `Step 7: write scripts`_
+    * `Step 8: write the "CDS blueprint" file`_
+    * `Step 9: build the "Controller Blueprint Archive” (cba)`_
+    * `Step 10: attached the cba to a service definition`_
+    * `Step 11: distribute the service`_
+    * `Step 12: instantiate the service and check`_
+
+
+Step 1 : identify the parameters needed for instantiation
+---------------------------------------------------------
+
+To instantiate a freeradius VNF, a Heat Template can be used. Several
+parameters are defined in that template: vnf_name, image_name,
+management @ip...
+
+This Heat Template is a first place to find the parameters that need
+to be resolved.
+
+Our example:
+
+::
+
+   parameters:
+   # Metadata required by ONAP
+   vnf_id: FreeRadius-VNF
+   vf_module_id: FreeRadius-VF-module
+   vnf_name: FreeRadius-VNF-name
+
+   # Server parameters, naming required by ONAP
+   image_name: ubuntu-16.04-daily
+   flavor_name: onap.small
+   pub_key: ssh-rsa AAAAB3Nza...UwMtE0oHV47zQABx root@qvocrobot-virtual-machine
+   key_name: FreeRadius-key
+   freeRadius_name_0: FreeRadius-VM-name
+   freeradius_ip: 10.0.0.100
+
+   # Network parameters, naming required by ONAP
+   onap_private_net_id: admin
+   public_net_id: admin
+
+
+In the following section, only part of those parameters will be automated
+by CDS (just for illustration).
+
+- vnf_name
+- flavor_name
+- pub_key
+- image_name
+- freeradius_ip
+
+In real, all parameters need to be  processed
+(or at least those that change from one VNF instance to the other)
+
+Step 2: identify the parameters needed for post-instantiation
+-------------------------------------------------------------
+
+Also, a freeradius VNF is software that will be able to accept or reject
+some connection requests. Only declared "users" can be accepted by
+the freeradius.
+
+To be able to proceed, it is necessary to declare (=configure) some "users"
+in a file located in /etc/freeradius/users in the VM where the freeradius
+software is installed.
+
+At this step, the designer needs to know the VNF specificities. It is
+application-level parameters. For example: configure a firewall rule in
+a firewall VNF, declare a "user" in a AAA radius VNF...
+
+In the freeradius example (an opensource AAA radius solution),
+the following parameters can be automated via CDS:
+
+- user_name
+- user_password
+
+Step 3: identify the data source for each parameter
+---------------------------------------------------
+
+The parameter list that the Designer decided to automate:
+
+- vnf_name
+- flavor_name
+- pub_key
+- image_name
+- freeradius_ip
+- user_name
+- user_password
+
+Here after the decision/solution that the designer may take:
+
+**vnf_name** will be resolved using a "naming" application (micro-service),
+provided by ONAP.
+
+**image_name** will be resolved via a default value in the template
+
+**flavor_name** will be resolved via an input that will be provided
+in the instantiation request.
+
+**pub_key** will be resolved via an input that will be provided
+in the instantiation request.
+
+**freeradius_ip** will be resolved using an IP Address Management (IPAM)
+application, provided by ONAP (Netbox).
+
+**user_name** and **user_password** will be resolved via inputs
+that will be provided in the instantiation request.
+
+Step 4: add new data definition in CDS resource dictionary
+----------------------------------------------------------
+
+In CDS, there is a database that will contain all resource Definitions
+in order to be able to re-use those resources.
+
+Service Designer needs to check about existing resources in the disctionary.
+
+By default, some resources are pre-loaded when installing ONAP platform.
+
+Preloaded resources (parameter definition): Resources_.
+
+For the freeradius use-case, there are 3 resources to add
+in the resource dictionary:
+
+::
+
+   curl -k 'https://cds-ui:30497/resourcedictionary/save' -X POST -H 'Content-type: application/json' \
+   -d '{
+      "name": "radius_test_user",
+      "tags": "radius_test_user",
+      "data_type": "string",
+      "description": "radius_test_user",
+      "entry_schema": "string",
+      "updatedBy": "Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>",
+      "definition": {
+         "tags": "radius_test_user",
+         "name": "radius_test_user",
+         "property": {
+            "description": "radius_test_user",
+            "type": "string"
+         },
+         "updated-by": "Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>",
+         "sources": {
+            "input": {
+               "type": "source-input"
+            },
+            "default": {
+               "type": "source-default",
+               "properties": {}
+            },
+            "sdnc": {
+               "type": "source-rest",
+               "properties": {
+                  "verb": "GET",
+                  "type": "JSON",
+                  "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/radius_test_user",
+                  "path": "/param/0/value",
+                  "input-key-mapping": {
+                     "service-instance-id": "service-instance-id",
+                     "vnf-id": "vnf-id"
+                  },
+                  "output-key-mapping": {
+                     "radius_test_user": "value"
+                  },
+                  "key-dependencies": ["service-instance-id",
+                  "vnf-id"]
+               }
+            }
+         }
+      }
+   }'
+
+
+::
+
+   curl -k 'https://cds-ui:30497/resourcedictionary/save' -X POST -H 'Content-type: application/json' \
+   '{
+      "name": "radius_test_password",
+      "tags": "radius_test_password",
+      "data_type": "string",
+      "description": "radius_test_password",
+      "entry_schema": "string",
+      "updatedBy": "Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>",
+      "definition": {
+         "tags": "radius_test_password",
+         "name": "radius_test_password",
+         "property": {
+            "description": "radius_test_password",
+            "type": "string"
+         },
+         "updated-by": "Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>",
+         "sources": {
+            "input": {
+               "type": "source-input"
+            },
+            "default": {
+               "type": "source-default",
+               "properties": {}
+            },
+            "sdnc": {
+               "type": "source-rest",
+               "properties": {
+                  "verb": "GET",
+                  "type": "JSON",
+                  "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/radius_test_password",
+                  "path": "/param/0/value",
+                  "input-key-mapping": {
+                     "service-instance-id": "service-instance-id",
+                     "vnf-id": "vnf-id"
+                  },
+                  "output-key-mapping": {
+                     "radius_test_password": "value"
+                  },
+                  "key-dependencies": ["service-instance-id",
+                  "vnf-id"]
+               }
+            }
+         }
+      }
+   }'
+
+
+::
+
+   curl -k 'https://cds-ui:30497/resourcedictionary/save' -X POST -H 'Content-type: application/json' \
+   '{
+      "name": "freeradius_ip",
+      "tags": "freeradius_ip",
+      "data_type": "string",
+      "description": "freeradius_ip",
+      "entry_schema": "string",
+      "updatedBy": "Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>",
+      "definition": {
+         "tags": "freeradius_ip",
+         "name": "freeradius_ip",
+         "property": {
+            "description": "freeradius_ip",
+            "type": "string"
+         },
+         "updated-by": "Seaudi, Abdelmuhaimen <abdelmuhaimen.seaudi@orange.com>",
+         "sources": {
+            "input": {
+               "type": "source-input"
+            },
+            "default": {
+               "type": "source-default",
+               "properties": {}
+            },
+            "sdnc": {
+               "type": "source-rest",
+               "properties": {
+                  "verb": "GET",
+                  "type": "JSON",
+                  "url-path": "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/freeradius_ip",
+                  "path": "/param/0/value",
+                  "input-key-mapping": {
+                     "service-instance-id": "service-instance-id",
+                     "vnf-id": "vnf-id"
+                  },
+                  "output-key-mapping": {
+                     "freeradius_ip": "value"
+                  },
+                  "key-dependencies": ["service-instance-id",
+                  "vnf-id"]
+               }
+            }
+         }
+      }
+   }'
+
+
+
+Step 5: write template files
+----------------------------
+
+In this example, Designer needs to create 3 "templates".
+
+- VNF level :download:`VNF_template_file <freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-template.vtl>`
+- VFmodule level :download:`VFmodule_template_file <freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-template.vtl>`
+- post-instantiation VNF level :download:`VNF_config_template_file <freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-template.vtl>`
+
+CDS makes use of "velocity template" or "Jinja template" files.
+
+This way, CDS is able to generate the desired datastructure
+with resolved values, that will then be sent to the target system:
+
+- openstack when instantiating the VNF/VF-module
+- instantiated VNF when doing some post-instantiation operation
+
+There are two sections in each velocity file:
+
+- "resource-accumulator-resolved-data": a list of all parameters
+- "capability-data": a list of "capabilities" to process and resolv a parameter
+
+ONAP SDNC provides some "capabilities":
+
+- generate-name
+- vlan-tag-assign
+- netbox-ip-assign
+- aai-vnf-put
+- ...
+
+There is an SDNC Directed Graph associated to each of those "capability".
+
+Service Designer needs to know about those capabilitie with their
+input/output, in order to re-use them.
+
+In case, Service Designer wants to use a new capability, a solution will be
+to create a Directed Graph and update the Self-serve-vnf-assign and/or
+Self-serve-vf-module-assign Directed Graph by adding a new
+entry in the list of capabilities (node: set ss.capability.execution-order[])
+
+|image3|
+
+Step 6: write mapping files
+---------------------------
+
+Along with each velocity template, Designer needs to create a
+"mapping" file.
+
+This is the place where the Designer explains, for each parameter:
+
+- value source: the system or database that will provide the value
+- default value
+
+At VNF instantiation step, values are often coming from input (in the request
+sent by the user).
+
+At VF module instantion step, values are often coming from SDNC database
+(stored values from VNF instantiation step).
+
+Resolved data are always stored in SDNC database (MDSAL)
+
+About sources:
+
+- "input": parameter/value is provided in the request
+- "sdnc": parameter/value is coming from the SDNC database (MDSAL)
+  via a Rest call
+- "default": always take the default value
+- "processor-db": coming from SDNC but MariaDB database via SQL request
+
+Other sources are possible.
+
+For the freeradius example, there are then 3 mapping files:
+
+- VNF level :download:`VNF_mapping_file <freeradius_example/before_enrichment/CBA_freeradius/Templates/vnf-mapping.json>`
+- VFmodule level :download:`VFmodule_mapping_file <freeradius_example/before_enrichment/CBA_freeradius/Templates/radius-mapping.json>`
+- post-instantiation VNF level :download:`VNF_config_mapping_file <freeradius_example/before_enrichment/CBA_freeradius/Templates/userconfig-mapping.json>`
+
+Step 7: write scripts
+---------------------
+
+Sometimes, it will be necessary to use some scripts (python, kotlin,
+ansible...) to process some operation.
+
+Those scripts needs to be part of the "Controller Blueprint Archive” (cba).
+
+In freeradius example, a :download:`Kotlin script <freeradius_example/before_enrichment/CBA_freeradius/Scripts/kotlin/kotlin.kt>` is used
+to get data, open an ssh tunnel to the VNF and add the user/password
+in the /etc/freeradius/users file.
+
+Step 8: write the "CDS blueprint" file
+--------------------------------------
+
+The "designer" will then create a "CDS blueprint".
+
+It is a JSON file and for the freeradius usecase, it is called
+freeradius.json.
+
+This file will be the main entry point for CDS controller
+to understand what need to be processed and how to process it.
+
+The content of that file is composed of several sections conforming to TOSCA
+specifications.
+
+Part of the file is provided by the Service Designer but it will them be
+automatically completed by CDS controller via an "enrichment" operation
+(see next step)
+
+|image1|
+
+In a short, this file will contain information about:
+
+- any parameters or external sources needed to resolve parameters,
+- all the resolve actions needed during the instantiation of a service,
+- any post-instantiation steps that need to run after the service
+  instance is up and running
+- all necessary template files
+
+For the freeradius example, here is the :download:`CDS blueprint <freeradius_example/before_enrichment/CBA_freeradius/Definitions/freeradius.json>`
+before enrichment.
+
+Step 9: build the "Controller Blueprint Archive” (cba)
+------------------------------------------------------
+
+Having created velocity templates, mapping files, scripts and a first
+CDS blueprint version,
+it is now simple to create the "Controller Blueprint Archive” (cba).
+
+This is a "zip-like" archive file that will have the following structure
+and content:
+
+|image2|
+
+For the freeradius example, here is the :download:`cba archive <freeradius_example/before_enrichment/CBA_freeradius.cba>` before enrichment.
+
+To complete that cba, an "enrichment" operation is needed.
+
+Service Designer can use two methods:
+
+- using CDS User Interface
+- using CDS rest API
+
+Service Designer needs to send the cba to CDS-UI pod and requests
+the enrichment.
+
+Here is the example using CDS-UI rest API:
+
+::
+
+   curl -X POST \
+   https://cds-ui:30497/controllerblueprint/enrich-blueprint \
+   -H 'Accept: application/json, text/plain, */*' \
+   -H 'Accept-Encoding: gzip, deflate, br' \
+   -H 'Accept-Language: en-US,en;q=0.9,ar;q=0.8,fr;q=0.7' \
+   -H 'Cache-Control: no-cache' \
+   -H 'Connection: keep-alive' \
+   -H 'Content-Length: 16488' \
+   -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryamjjRAAflAzY4XR5' \
+   -H 'Host: cds-ui:30497' \
+   -H 'Origin: https://cds-ui:30497' \
+   -H 'Postman-Token: 5e895c04-577a-4610-97e6-5d3881fd96c5,508c40d9-65da-47bc-a3a8-038d64f44a94' \
+   -H 'Referer: https://cds-ui:30497/blueprint' \
+   -H 'Sec-Fetch-Mode: cors' \
+   -H 'Sec-Fetch-Site: same-origin' \
+   -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36' \
+   -H 'cache-control: no-cache' \
+   -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
+   -F 'file=@/home/user/dev/CBA_freeradius.cba' -k
+
+Result will be that the cba will contains several new files in "Definition"
+folder of the cba. Also, the CDS blueprint file (freeradius.json) will
+be completed.
+
+The cba is now ready to be onboarded in ONAP SDC along with
+a service definition.
+
+For the freeradius example, here is the :download:`cba archive <freeradius_example/after_enrichment/CBA_freeradius.cba>` after enrichment.
+
+Step 10: attached the cba to a service definition
+-------------------------------------------------
+
+In SDC, when defining a service, Designer will attach the cba archive
+to the service definition, using the "deployment" section.
+
+Note that the template_name and template_version are to be added to the
+service model in SDC under assignment parameters section, and this will
+tell SO which blueprint to use for the service model that is being
+instantiated.
+
+SDC sdnc_artifact_name = CBA blueprint json filename, e.g. “vnf”,
+we will see below that we will have vnf-mapping.json and vnf-template.vtl
+templates in the blueprint.
+
+SDC sdnc_model_name = CBA Metadata template_name, e.g. “test”,
+we can see in the below screenshot the metadata section showing template name.
+
+SDC sdnc_model_verion = CBA Metadata template_version, e.g. “1.0.0”,
+we can see in the below screenshot the metadata section showing
+template version.
+
+|image4|
+
+Step 11: distribute the service
+-------------------------------
+
+In SDC, when distributing the service, the CDS controller will be
+informed that a new cba archive is available.
+
+CDS controller will then collect the cba archive.
+
+Step 12: instantiate the service and check
+------------------------------------------
+
+Here is the ONAP SO api request to instantiate the freeradius service:
+
+::
+
+   curl -X POST \
+   http://84.39.34.234:30277/onap/so/infra/serviceInstantiation/v7/serviceInstances \
+   -H 'Accept: */*' \
+   -H 'Accept-Encoding: gzip, deflate' \
+   -H 'Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==' \
+   -H 'Cache-Control: no-cache' \
+   -H 'Connection: keep-alive' \
+   -H 'Content-Length: 4581' \
+   -H 'Content-Type: application/json' \
+   -H 'Cookie: JSESSIONID=DAFA0915D8D644A5E01BB499A1769365' \
+   -H 'Host: 84.39.34.234:30277' \
+   -H 'Postman-Token: 02273554-69e5-426b-83ce-675462a14436,eea8e2dc-fbce-45ac-82d7-19fdca83804a' \
+   -H 'User-Agent: PostmanRuntime/7.19.0' \
+   -H 'cache-control: no-cache' \
+   -d '{
+   "requestDetails": {
+      "subscriberInfo": {
+         "globalSubscriberId": "Demonstration"
+      },
+      "requestInfo": {
+         "suppressRollback": false,
+         "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+         "requestorId": "adt",
+         "source": "VID"
+      },
+      "cloudConfiguration": {
+         "lcpCloudRegionId": "fr1",
+         "tenantId": "6270eaa820934710960682c506115453",
+         "cloudOwner":"CloudOwner"
+      },
+      "requestParameters": {
+         "subscriptionServiceType": "vLB",
+         "userParams": [
+         {
+            "Homing_Solution": "none"
+         },
+         {
+            "service": {
+               "instanceParams": [
+               ],
+               "resources": {
+               "vnfs": [
+                  {
+                     "modelInfo": {
+                  "modelName": "freeradius5",
+                  "modelVersionId": "f7538c8d-c27c-46f9-8c2c-f01eb2a19bfa",
+                  "modelInvariantUuid": "cd322f8b-0496-4126-b3d6-200adceaf11f",
+                  "modelVersion": "1.0",
+                  "modelCustomizationId": "bc976d7c-bf2c-4da5-9b6b-815d9ea22b92",
+                  "modelInstanceName": "freeradius5 0"
+                     },
+                     "cloudConfiguration": {
+                     "lcpCloudRegionId": "fr1",
+                     "tenantId": "6270eaa820934710960682c506115453"
+                     },
+                     "platform": {
+                     "platformName": "test"
+                     },
+                     "lineOfBusiness": {
+                     "lineOfBusinessName": "LOB-Demonstration"
+                     },
+                     "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+                     "instanceName": "freeradius5 0",
+                     "instanceParams": [
+                     {
+                        "onap_private_net_id": "olc-onap",
+                        "onap_private_subnet_id": "olc-onap",
+                        "pub_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs84Cy8+qi/jvucay0BwFtOq3ian0ulTXFGxkZcZCR0N48j88pbHJaEqb9e25MAsrfH+7Etb9Kd5nbBThEL/i0AyHXnDsc80Oq0sqlLcfLo3SGSurkrNoRofHboJ5Hn+N9SlWN5FCQGbTx1w3rjqR4LasAI6XxH9xpXSFyyge6ysVXH0cYaZ8sg98nFZa1fPJR9L8COjZvF+EYudub2RC5HVyV/sx7bliNFo9JwQh6du1abG4G7ZDjTIcYwYp21iq52UzWU28RVcAyY6AQZJu2lHLdsr8fPvyeWZpC5EqGsxI1G609m9G/dURRKwYfez/f2ATzpn5QjEX7LrLWBM8r Generated-by-Nova",
+                        "image_name": "Ubuntu 16.04",
+                        "flavor_name":"n1.cw.standard-1",
+                        "sec_group":"olc-open",
+                        "cloud_env":"openstack",
+                        "public_net_id": "olc-public",
+                        "aic-cloud-region": "fr1",
+                        "key_name":"olc-key",
+                        "vf-naming-policy": "SDNC_Policy.Config_MS_ONAP_VNF_NAMING_TIMESTAMP",
+                        "radius_test_user": "Rene-Robert",
+                        "radius_test_password": "SecretPassword"
+                     }
+                     ],
+                     "vfModules": [
+                     {
+                        "modelInfo": {
+                           "modelName": "Freeradius5..radius..module-0",
+                           "modelVersionId": "e08d6d0f-27ea-4b46-a2d1-0d60c49fca59",
+                           "modelInvariantUuid": "fdb408c6-6dd1-4a0c-88ca-ebc3ff77b445",
+                           "modelVersion": "1",
+                           "modelCustomizationId": "e82a94de-6dff-4dc9-a57e-335315c8fdae"
+                        },
+                        "instanceName": "Freeradius5..radius..module-0",
+                        "instanceParams": [
+                                                   {  }
+                        ]
+                     }
+                     ]
+                  }
+               ]
+               },
+               "modelInfo": {
+               "modelVersion": "1.0",
+         "modelVersionId": "4dacb612-935f-4755-91a1-78af64331c42",
+         "modelInvariantId": "98d65302-3be3-4828-a116-1bedb2919048",
+         "modelName": "freeradius5",
+               "modelType": "service"
+               }
+            }
+         }
+         ],
+         "aLaCarte": false
+      },
+      "project": {
+         "projectName": "Project-Demonstration"
+      },
+      "owningEntity": {
+         "owningEntityId": "67f2e84c-734d-4e90-a1e4-d2ffa2e75849",
+         "owningEntityName": "OE-Demonstration"
+      },
+      "modelInfo": {
+         "modelVersion": "1.0",
+         "modelVersionId": "4dacb612-935f-4755-91a1-78af64331c42",
+         "modelInvariantId": "98d65302-3be3-4828-a116-1bedb2919048",
+         "modelName": "freeradius5",
+      "modelType": "service"
+      }
+   }
+   }'
+
+.. |image1| image:: ../media/cds-blueprint.png
+.. |image2| image:: ../media/cba.png
+.. |image3| image:: ../media/capabilities.png
+.. |image4| image:: ../media/sdc.png
+.. _Resources: https://git.onap.org/ccsdk/cds/tree/components/model-catalog/resource-dictionary/starter-dictionary