Dublin release 53/79653/1
authorCheung, Pat (kc1472) <kc1472@att.com>
Mon, 4 Mar 2019 19:59:03 +0000 (19:59 +0000)
committerCheung, Pat (kc1472) <kc1472@att.com>
Mon, 4 Mar 2019 19:59:03 +0000 (19:59 +0000)
DGs to support pnf-topology-operation with assign svc-action

Change-Id: Ia257c03cd8e3b2dd8f801b67a0d55ab7f7ed1ba6
Issue-ID: SDNC-635
Signed-off-by: Cheung, Pat (kc1472) <kc1472@att.com>
Former-commit-id: 6120758d9eaf6d6aae57d94f236ff7ddda3503c7

12 files changed:
installation/src/main/properties/generic-resource-api-dg.properties
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation-assign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-assign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-pnf-input.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation-assign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-assign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-pnf-input.xml [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/self-serve-pnf-assignments.json [new file with mode: 0644]

index 16d5987..8c21e68 100644 (file)
@@ -31,6 +31,7 @@ restapi.sotn-attachment.templatefile=sotn-attachment-allotted-resource.json
 restapi.sdwan-attachment.templatefile=sdwan-attachment-allotted-resource.json
 restapi.oof-getpath.templatefile=oof-getpath.json
 restapi.naming.gen-name.templatefile=naming-ms-post-gen-name.json
+restapi.ss.pnf.templatefile=self-serve-pnf-assignments.json
 restapi.ss.vnf.templatefile=self-serve-vnf-assignments.json
 restapi.ss.vfmodule.templatefile=self-serve-vfmodule-assignments.json
 restapi.ss.mS.vlan.tag.assign.templatefile=self-serve-mS-vlan-tag-assignments.json
@@ -59,6 +60,7 @@ restapi.services=/restconf/config/GENERIC-RESOURCE-API:services/service/{service
 restapi.service.vnf.vfmodule-resource=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/vnf-data/vf-modules/vf-module/{vf-module-id}
 restapi.connection-attachment-allottedresource=/restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/{allotted-resource-id}/
 restapi.naming.gen-name.service=/web/service/v1/genNetworkElementName
+restapi.ss-pnf-assignments=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/pnfs/pnf/{pnf-id}/
 restapi.ss-vnf-assignments=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/
 restapi.ss-vfmodule-assignments=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/vnf-data/vf-modules/vf-module/{vf-module-id}/
 restapi.ss-mS-vlan-tag-assign=/vlantagapi/v1/{action}
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation-assign.json
new file mode 100644 (file)
index 0000000..2e3a1c2
--- /dev/null
@@ -0,0 +1,424 @@
+[\r
+    {\r
+        "id": "d3b3a7ea.d04d08",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 133.3333282470703,\r
+        "y": 79.63588523864746,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "46bb10f7.5c3fb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46bb10f7.5c3fb",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 248.61903381347656,\r
+        "y": 121.54066467285156,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "11b944cd.c96c5b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11b944cd.c96c5b",\r
+        "type": "method",\r
+        "name": "method pnf-topology-operation-assign",\r
+        "xml": "<method rpc='pnf-topology-operation-assign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 243.92864990234375,\r
+        "y": 165.55255317687988,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "ce6b8a58.b8d3e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e923496.314c4c",\r
+        "type": "comment",\r
+        "name": "pnf-topology-operation-assign",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 535.5948638916016,\r
+        "y": 41.38888931274414,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c8dd484.c334bc",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 627.2143096923828,\r
+        "y": 309.0287160873413,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "e97259d0.1af158",\r
+                "413f5d48.571fc4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e97259d0.1af158",\r
+        "type": "outcome",\r
+        "name": "CreatePnfInstance",\r
+        "xml": "<outcome value='CreatePnfInstance'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.9286041259766,\r
+        "y": 286.1715974807739,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "f6bc9eb4.5cc37"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "413f5d48.571fc4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 842.9285697937012,\r
+        "y": 331.88592529296875,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "514d78e9.baa838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6bc9eb4.5cc37",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1065.785732269287,\r
+        "y": 286.17162704467773,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "514d78e9.baa838",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreatePnfInstance'\" />\n",\r
+        "comments": "",\r
+        "x": 1082.9285774230957,\r
+        "y": 331.8858833312988,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4388ff9d.ce7d6",\r
+        "type": "get-resource",\r
+        "name": "get-resource VF_MODEL",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 639.5476150512695,\r
+        "y": 400.17158603668213,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "512ab575.220ccc",\r
+                "3a1614d2.3eacec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6dc29919.0f2208",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VF customization UUID ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`\" />\n",\r
+        "comments": "",\r
+        "x": 1080.9760932922363,\r
+        "y": 423.60007190704346,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "512ab575.220ccc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.3333129882812,\r
+        "y": 380.55242347717285,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "d5d2d14c.f67aa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a1614d2.3eacec",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 848.9047431945801,\r
+        "y": 424.83813667297363,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "6dc29919.0f2208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5d2d14c.f67aa",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1080.333293914795,\r
+        "y": 378.695330619812,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "95465986.653a28",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.1190948486328,\r
+        "y": 182.314471244812,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce6b8a58.b8d3e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 353.41272735595703,\r
+        "y": 309.5079708099365,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "2c8dd484.c334bc",\r
+                "4388ff9d.ce7d6",\r
+                "95465986.653a28",\r
+                "6cdfcbff.124fe4",\r
+                "4f7127f2.481f58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6cdfcbff.124fe4",\r
+        "type": "switchNode",\r
+        "name": "switch input cloud-owner",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.8333511352539,\r
+        "y": 237.55254077911377,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "fbe3ca5c.624b78",\r
+                "12f9e0f5.d15d1f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbe3ca5c.624b78",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 819.1667251586914,\r
+        "y": 207.55252933502197,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "c50e0e6c.80923"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12f9e0f5.d15d1f",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 818.9286308288574,\r
+        "y": 248.5050230026245,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "6843bdbc.1eb674"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c50e0e6c.80923",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 954.1666793823242,\r
+        "y": 205.88586902618408,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6843bdbc.1eb674",\r
+        "type": "set",\r
+        "name": "set prop.cloud-region.cloud-owner",\r
+        "xml": "<set>\n<parameter name='prop.cloud-region.cloud-owner' value='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`' />\n",\r
+        "comments": "",\r
+        "x": 1035.8333358764648,\r
+        "y": 247.55255031585693,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "940a3bec.b79db8",\r
+        "type": "call",\r
+        "name": "call self-serve-pnf-assign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-assign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 848.5553359985352,\r
+        "y": 596.4128832817078,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "ee11637d.64cc5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22ef4f33.3ca9c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n<parameter name=\"error-message\" value=\"`'Failed to create self-serve assignment for pnf with pnf-id=' + $pnf-topology-operation-input.pnf-details.pnf-id + ' with error: ' + $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1232.6267127990723,\r
+        "y": 596.4128336906433,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d7499e88.a3c54",\r
+        "type": "comment",\r
+        "name": "SELF-SERVE FORK",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 758.174690246582,\r
+        "y": 547.6151220798492,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ee11637d.64cc5",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1053.8529167175293,\r
+        "y": 595.9009146690369,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "22ef4f33.3ca9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8085154e.65e6a8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 820.9642715454102,\r
+        "y": 750.5674510002136,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4326ce02.3a255",\r
+        "type": "set",\r
+        "name": "set pnf-level-oper-status to PendingCreate",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-rpc-action' value='`$pnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-action' value='`$pnf-topology-operation-input.request-information.request-action`' />",\r
+        "comments": "",\r
+        "x": 959.0277328491211,\r
+        "y": 649.15491771698,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b05b3263.f3526",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-pnf-assign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 810.8689994812012,\r
+        "y": 698.3447003364563,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f7127f2.481f58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 599.535530090332,\r
+        "y": 667.8531589508057,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "940a3bec.b79db8",\r
+                "8085154e.65e6a8",\r
+                "b05b3263.f3526"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation.json
new file mode 100644 (file)
index 0000000..9559965
--- /dev/null
@@ -0,0 +1,302 @@
+[\r
+    {\r
+        "id": "a75a636d.6f381",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 151.42859649658203,\r
+        "y": 90.00000190734863,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "bc77da8a.d3eb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc77da8a.d3eb38",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 265.7143020629883,\r
+        "y": 130.2381134033203,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "5d578276.4bfefc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d578276.4bfefc",\r
+        "type": "method",\r
+        "name": "method pnf-topology-operation",\r
+        "xml": "<method rpc='pnf-topology-operation' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 217.8572235107422,\r
+        "y": 169.99999618530273,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "8685d57b.911a08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24fd3171.4300ae",\r
+        "type": "comment",\r
+        "name": "pnf-topology-operation",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 545.7734527587891,\r
+        "y": 37.58634567260742,\r
+        "z": "304db441.66b4dc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8685d57b.911a08",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 234.02387237548828,\r
+        "y": 376.26495265960693,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "53481fdc.accfe",\r
+                "142ac2ac.46ecad",\r
+                "1bd90137.06db9f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53481fdc.accfe",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 519.380973815918,\r
+        "y": 530.7146434783936,\r
+        "z": "304db441.66b4dc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "142ac2ac.46ecad",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 529.4285430908203,\r
+        "y": 374.4761962890625,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "19927cce.f2a7f3",\r
+                "9c8ad773.ef9d68",\r
+                "a0c10c00.06af18",\r
+                "4205ab8c.75bdf4",\r
+                "5cc63376.4006fc",\r
+                "bec05d4a.4c7b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19927cce.f2a7f3",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.8094863891602,\r
+        "y": 268.5239009857178,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "ff0b4bca.7ccaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c8ad773.ef9d68",\r
+        "type": "outcome",\r
+        "name": "unassign",\r
+        "xml": "<outcome value='unassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 730.8571090698242,\r
+        "y": 398.7146244049072,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "34401634.f821aa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4205ab8c.75bdf4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 724.142744064331,\r
+        "y": 484.3332748413086,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "fa0f4334.3fb5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa0f4334.3fb5",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$pnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 910.3331890106201,\r
+        "y": 484.3333396911621,\r
+        "z": "304db441.66b4dc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1bd90137.06db9f",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-pnf-input",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-pnf-input' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 633.8452301025391,\r
+        "y": 227.38104057312012,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff0b4bca.7ccaa8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-assign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-assign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1068.9523391723633,\r
+        "y": 268.0953617095947,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "90a49ca8.b5074",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1080.2856063842773,\r
+        "y": 352.4287099838257,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "34401634.f821aa",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-unassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-unassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1075.952205657959,\r
+        "y": 398.42875576019287,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0c10c00.06af18",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 735.9522476196289,\r
+        "y": 353.09538555145264,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "90a49ca8.b5074"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38e4cbe2.ef1884",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.0951843261719,\r
+        "y": 309.9999933242798,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5cc63376.4006fc",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 729.7618255615234,\r
+        "y": 310.66666889190674,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "38e4cbe2.ef1884"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bec05d4a.4c7b6",\r
+        "type": "outcome",\r
+        "name": "changeassign",\r
+        "xml": "<outcome value='changeassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 745.7143363952637,\r
+        "y": 441.42855644226074,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "27aa457b.765b8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "27aa457b.765b8a",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-changeassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-changeassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1086.5237045288086,\r
+        "y": 441.1427230834961,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-assign.json
new file mode 100644 (file)
index 0000000..2c57c17
--- /dev/null
@@ -0,0 +1,1375 @@
+[\r
+    {\r
+        "id": "ecff213c.e8aaa",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 137.5,\r
+        "y": 90,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "23b17adc.1c80e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6160663.8edf48",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 167.9761962890625,\r
+        "y": 212.2777862548828,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "f97d0f53.e9029",\r
+                "2d2db8c6.748ba8",\r
+                "ff2d06ee.623348",\r
+                "ca8257f6.464808",\r
+                "b9417a96.c89598",\r
+                "97cbe59f.102fe8",\r
+                "71acdeef.4b572",\r
+                "b26b3f10.8cd93",\r
+                "2c0f97dd.67d808",\r
+                "192a8a0a.311bd6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bdd8af6.d4d404",\r
+        "type": "method",\r
+        "name": "method self-serve-pnf-assign",\r
+        "xml": "<method rpc='self-serve-pnf-assign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 254.26190948486328,\r
+        "y": 144.70635509490967,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "e6160663.8edf48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "23b17adc.1c80e6",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 412.73819732666016,\r
+        "y": 90.19049263000488,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "7bdd8af6.d4d404"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d2db8c6.748ba8",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-parameters-data.param_length",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 449.0357971191406,\r
+        "y": 1492.5120153427124,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "eb4e37ba.25e208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb4e37ba.25e208",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 711.0358276367188,\r
+        "y": 1492.5120153427124,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ed282b71.ede0f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21ad94d1.be148c",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:self-serve-pnf-ra-assignment",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-ra-assignment' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1226.3214874267578,\r
+        "y": 1542.0834465026855,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ffcba76.e3a6658"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "afb8d713.9ea788",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get RA assignments: ' + $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1698.0357284545898,\r
+        "y": 1541.6548500061035,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f90ee45.cde4f",\r
+        "type": "for",\r
+        "name": "foreach pnf-parameters-data.param[]",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 681.3574600219727,\r
+        "y": 1800.0120840072632,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "c123dce6.984a6",\r
+                "a008f4ce.816ac8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f97d0f53.e9029",\r
+        "type": "set",\r
+        "name": "set ss.capability.execution-order[]",\r
+        "xml": "<set>\n<parameter name='ss.capability.execution-order[0]' value='aai-get' />\n<parameter name='ss.capability.execution-order[1]' value='generate-name' />\n<parameter name='ss.capability.execution-order[2]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[6]' value='eipam-ip-assignment' />\n<parameter name='ss.capability.execution-order[7]' value='eipam-create-pool' />\n<parameter name='ss.capability.execution-order[8]' value='netbox-ip-assign' />\n<parameter name='ss.capability.execution-order[9]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[10]' value='mS-mac-address-assign' />\n<parameter name='ss.capability.execution-order[11]' value='create-vpe-pool' />\n<parameter name='ss.capability.execution-order[12]' value='unresolved-composite-data' />\n<parameter name='ss.capability.execution-order[13]' value='aai-pnf-put' />\n<parameter name='ss.capability.execution-order_length' value='14' />\n",\r
+        "comments": "",\r
+        "x": 430.02384185791016,\r
+        "y": 1271.0001401901245,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ff2d06ee.623348",\r
+        "type": "for",\r
+        "name": "foreach capability[]",\r
+        "xml": "<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 381.14300537109375,\r
+        "y": 1644.4049034118652,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "34d7033c.1d850c",\r
+                "bcdcac9e.1dcf8",\r
+                "6f90ee45.cde4f",\r
+                "7e8acf11.757ce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a008f4ce.816ac8",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 985.7502822875977,\r
+        "y": 1845.6548767089844,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "fbc7d0d6.d0f9a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbc7d0d6.d0f9a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1176.2502822875977,\r
+        "y": 1845.9048767089844,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1d5ac87a.53fd58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ffcba76.e3a6658",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1543.8928337097168,\r
+        "y": 1541.5120401382446,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "afb8d713.9ea788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "34d7033c.1d850c",\r
+        "type": "set",\r
+        "name": "set ss.capability-name",\r
+        "xml": "<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n<!--\nss.capability.execution-order[]\n-->",\r
+        "comments": "",\r
+        "x": 637.5000610351562,\r
+        "y": 1644.3573551177979,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c123dce6.984a6",\r
+        "type": "set",\r
+        "name": "tmp.param.capability-name",\r
+        "xml": "<set>\n<parameter name='tmp.param.capability-name' \n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />",\r
+        "comments": "",\r
+        "x": 997.107307434082,\r
+        "y": 1800.2620868682861,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bcdcac9e.1dcf8",\r
+        "type": "set",\r
+        "name": "set ss.capability-action = assign",\r
+        "xml": "<set>\n<parameter name='ss.capability-action' value='assign' />\n",\r
+        "comments": "",\r
+        "x": 666.2142028808594,\r
+        "y": 1691.2739391326904,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7e8acf11.757ce",\r
+        "type": "set",\r
+        "name": "set capability-dg with 'self-serve-' + capability-name",\r
+        "xml": "<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n",\r
+        "comments": "",\r
+        "x": 728.7262954711914,\r
+        "y": 1744.7501831054688,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ca8257f6.464808",\r
+        "type": "set",\r
+        "name": "set sdnc-generated-cloud-resources = true",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.sdnc-generated-cloud-resources' value='true' />\n",\r
+        "comments": "",\r
+        "x": 458.9881362915039,\r
+        "y": 1324.7501487731934,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9217be7a.bbdb1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 715.428539276123,\r
+        "y": 605.4643030166626,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "3723f166.b9d03e",\r
+                "74858ef1.51481",\r
+                "a4d6abfb.adbf88",\r
+                "7c366e89.adcd7",\r
+                "16c17b92.58b8f4",\r
+                "2ef35e2.ce87ea2",\r
+                "25981633.c7dc4a",\r
+                "152546f0.c6dac9",\r
+                "6f7c97df.b99708"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3723f166.b9d03e",\r
+        "type": "set",\r
+        "name": "set pnf-topology data",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-id'\n value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-type'\n value='`$pnf-topology-operation-input.pnf-details.pnf-type`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.tenant'\n value='`$pnf-topology-operation-input.pnf-request-input.tenant`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.aic-cloud-region'\n value='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`' />",\r
+        "comments": "",\r
+        "x": 930.9284820556641,\r
+        "y": 606.523811340332,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ca44a755.ad1c68",\r
+        "type": "set",\r
+        "name": "set pnf-parameters-data",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.'\n  value='pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.' />\n",\r
+        "comments": "",\r
+        "x": 1117.3217163085938,\r
+        "y": 1492.380844116211,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a4d6abfb.adbf88",\r
+        "type": "set",\r
+        "name": "set pnf-level-oper-status to PendingCreate",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-rpc-action' value='`$pnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-action' value='`$pnf-topology-operation-input.request-information.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 996.2184371948242,\r
+        "y": 1180.504020690918,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74858ef1.51481",\r
+        "type": "set",\r
+        "name": "copy input data",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.'\n        value='$pnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.'\n        value='$pnf-topology-operation-input.request-information.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.'\n        value='$pnf-topology-operation-input.service-information.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.'\n        value='$pnf-topology-operation-input.pnf-details.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.'\n        value='$pnf-topology-operation-input.pnf-request-input.' />",\r
+        "comments": "",\r
+        "x": 913.5953521728516,\r
+        "y": 1130.3096599578857,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b0cbcbbb.b2c498",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.pnf-model.invariant-uuid`' />",\r
+        "comments": "",\r
+        "x": 1327.9286727905273,\r
+        "y": 718.8810405731201,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c366e89.adcd7",\r
+        "type": "switchNode",\r
+        "name": "switch input model-invariant-uuid",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 968.7857475280762,\r
+        "y": 741.7054843902588,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ae90c040.3cc39",\r
+                "5f2c6ed0.29635"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae90c040.3cc39",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1177.4524192810059,\r
+        "y": 718.8484477996826,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "b0cbcbbb.b2c498"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f2c6ed0.29635",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1178.881015777588,\r
+        "y": 763.1340389251709,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "f383b18b.bfab9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f383b18b.bfab9",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`' />",\r
+        "comments": "",\r
+        "x": 1333.1667518615723,\r
+        "y": 762.5626111030579,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d3a329b.f2f90c",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\n  value='`$db.pnf-model.uuid`' />",\r
+        "comments": "",\r
+        "x": 1328.8809432983398,\r
+        "y": 807.419716835022,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "16c17b92.58b8f4",\r
+        "type": "switchNode",\r
+        "name": "switch input model-uuid",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 938.4047660827637,\r
+        "y": 830.2442216873169,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "59c0725a.54805c",\r
+                "bfa95def.afc74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "59c0725a.54805c",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1178.4047393798828,\r
+        "y": 807.3871536254883,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "4d3a329b.f2f90c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bfa95def.afc74",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1179.8333358764648,\r
+        "y": 851.6727447509766,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "f2189dfb.909da"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f2189dfb.909da",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`' />",\r
+        "comments": "",\r
+        "x": 1334.1190719604492,\r
+        "y": 851.1013169288635,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "24e86468.e8cd5c",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\n  value='`$db.pnf-model.version`' />",\r
+        "comments": "",\r
+        "x": 1326.0238761901855,\r
+        "y": 896.2769241333008,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2ef35e2.ce87ea2",\r
+        "type": "switchNode",\r
+        "name": "switch input model-version",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 949.5476379394531,\r
+        "y": 919.1013689041138,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "9b0d0090.c86a6",\r
+                "43470848.9d99c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b0d0090.c86a6",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1175.547622680664,\r
+        "y": 896.2443313598633,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "24e86468.e8cd5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "43470848.9d99c8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1176.976219177246,\r
+        "y": 940.5299224853516,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1db4f705.93ccc9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1db4f705.93ccc9",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`' />\n",\r
+        "comments": "",\r
+        "x": 1331.2619552612305,\r
+        "y": 939.9584946632385,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1dc78c79.a450c4",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\n  value='`$db.pnf-model.name`' />\n",\r
+        "comments": "",\r
+        "x": 1326.0238761901855,\r
+        "y": 983.4197463989258,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "25981633.c7dc4a",\r
+        "type": "switchNode",\r
+        "name": "switch input model-name",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 944.5476379394531,\r
+        "y": 1006.2441911697388,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "443be686.54dde8",\r
+                "f6a73c6d.1c44a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "443be686.54dde8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1175.547622680664,\r
+        "y": 983.3871536254883,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1dc78c79.a450c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6a73c6d.1c44a",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1176.976219177246,\r
+        "y": 1027.6727447509766,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "963f984e.4e1598"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "963f984e.4e1598",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`' />\n",\r
+        "comments": "",\r
+        "x": 1331.2619552612305,\r
+        "y": 1027.1013169288635,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "152546f0.c6dac9",\r
+        "type": "set",\r
+        "name": "set pnf-id",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-id'\n   value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\n",\r
+        "comments": "",\r
+        "x": 894.9047088623047,\r
+        "y": 658.0388488769531,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f7c97df.b99708",\r
+        "type": "set",\r
+        "name": "set model-customization-uuid",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-customization-uuid' \n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`' />\n",\r
+        "comments": "",\r
+        "x": 957.3332252502441,\r
+        "y": 1079.0863952636719,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b26b3f10.8cd93",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.pnfs.pnf_length",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 441.58329010009766,\r
+        "y": 292.4285001754761,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "548784a8.6fc1bc",\r
+                "97bdaa3b.0e9cb8",\r
+                "f611eac6.477cc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "548784a8.6fc1bc",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.7976760864258,\r
+        "y": 230.98793125152588,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "d33ee57f.a3ecb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c98dcd.f3b3f23",\r
+        "type": "set",\r
+        "name": "set pnf-index=0",\r
+        "xml": "<set>\n<parameter name='pnf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1019.083381652832,\r
+        "y": 230.48800563812256,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "97bdaa3b.0e9cb8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 684.976203918457,\r
+        "y": 352.607120513916,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "231e0e98.80a622"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6ac25c2c.af1c14",\r
+        "type": "switchNode",\r
+        "name": "switch resource-resolution-data.status",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 843.3693580627441,\r
+        "y": 2105.3293199539185,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "3502dbdf.32a874",\r
+                "cc3acc09.1c768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3502dbdf.32a874",\r
+        "type": "other",\r
+        "name": "PENDING",\r
+        "xml": "<outcome value='PENDING'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1112.7265739440918,\r
+        "y": 2105.3292760849,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "829e3fb9.d93a7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc3acc09.1c768",\r
+        "type": "other",\r
+        "name": "FAILED",\r
+        "xml": "<outcome value='FAILED'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1106.2623901367188,\r
+        "y": 2156.2936067581177,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "829e3fb9.d93a7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "829e3fb9.d93a7",\r
+        "type": "call",\r
+        "name": "call ss.capability-dg",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1321.3811225891113,\r
+        "y": 2157.0554580688477,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "3962ddfe.4c5df2",\r
+                "3e772b22.e1c734"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdafebf6.f2fbb8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1888.9286193847656,\r
+        "y": 2413.532018661499,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3962ddfe.4c5df2",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1506.2736320495605,\r
+        "y": 2157.055519104004,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "c929724.d0d769"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c929724.d0d769",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1669.5477485656738,\r
+        "y": 2156.3650598526,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "bdafebf6.f2fbb8",\r
+                "b6818d14.aad68",\r
+                "ae39be90.d76b7",\r
+                "60ef7bf2.fa7a14",\r
+                "e7c0edc.af4641"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae39be90.d76b7",\r
+        "type": "execute",\r
+        "name": "generate ss-pnf url replace service-instance-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-pnf-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-pnf-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1992.8808403015137,\r
+        "y": 2209.88161945343,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7c0edc.af4641",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode - PUT pnf",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.pnf.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-pnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-pnf\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1962.3451347351074,\r
+        "y": 2312.7388410568237,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "2aae309b.44db4",\r
+                "6c63be99.6e9df"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2aae309b.44db4",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2236.9388008117676,\r
+        "y": 2366.736994743347,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "47b71a3e.97bf84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6c63be99.6e9df",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2229.3674354553223,\r
+        "y": 2313.237014770508,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "47b71a3e.97bf84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6818d14.aad68",\r
+        "type": "set",\r
+        "name": "set pf data for restapi-call-node",\r
+        "xml": "<set>\n<parameter name='pf.pnf-id'\n    value='`$service-data.pnfs.pnf[$pnf-index].pnf-id`' />\n<parameter name='pf.pnf-data.sdnc-request-header.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.`' />\n<parameter name='pf.pnf-data.request-information.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.`' />\n<parameter name='pf.pnf-data.service-information.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.`' />\n<parameter name='pf.pnf-data.pnf-details.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.`' />\n<parameter name='pf.pnf-data.pnf-topology.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.`' />\n<parameter name='pf.pnf-data.pnf-level-oper-status.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.`' />\n<parameter name='pf.pnf-data.pnf-request-input.pnf-input-parameters.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-input-parameters.`' />\n<parameter name='pf.pnf-data.pnf-request-input.request-version'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.request-version`' />\n<parameter name='pf.pnf-data.pnf-request-input.pnf-name'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-name`' />\n<parameter name='pf.pnf-data.pnf-request-input.tenant'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.tenant`' />\n<parameter name='pf.pnf-data.pnf-request-input.aic-cloud-region'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-cloud-region`' />\n<parameter name='pf.pnf-data.pnf-request-input.aic-clli'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-clli`' />",\r
+        "comments": "",\r
+        "x": 1945.3331413269043,\r
+        "y": 2155.976131439209,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60ef7bf2.fa7a14",\r
+        "type": "execute",\r
+        "name": "generate ss-pnf url - replace pnf-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-pnf-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-pnf-url\"/>\n    <parameter name=\"target\" value=\"{pnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1957.16654586792,\r
+        "y": 2260.69038772583,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "97cbe59f.102fe8",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-pnf-assign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 344.42456817626953,\r
+        "y": 2600.920820236206,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9417a96.c89598",\r
+        "type": "set",\r
+        "name": "set ss.capability-type = pnf",\r
+        "xml": "<set>\n<parameter name='ss.capability-type' value='pnf' />\n",\r
+        "comments": "",\r
+        "x": 409.89292907714844,\r
+        "y": 1375.5357942581177,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ed282b71.ede0f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 875.8927993774414,\r
+        "y": 1492.892912864685,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ca44a755.ad1c68",\r
+                "21ad94d1.be148c",\r
+                "31272402.ad905c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b109eefc.1d872",\r
+        "type": "for",\r
+        "name": "for each existing PNF",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.pnfs.pnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1032.0357284545898,\r
+        "y": 352.78579807281494,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "b986a80e.96c248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b986a80e.96c248",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-id: input vs service-data",\r
+        "xml": "<switch test='`$pf-topology-operation-input.pnf-details.pnf-id == $service-data.pnfs.pnf[$idx].pnf-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1309.321434020996,\r
+        "y": 352.85728549957275,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "cb09cf77.62df4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb09cf77.62df4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1532.1072006225586,\r
+        "y": 352.4287576675415,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "747e7c3c.174b44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "747e7c3c.174b44",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1664.5714530944824,\r
+        "y": 352.46431827545166,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "2a95ccf.7794434",\r
+                "8c6ecdd5.9e28b",\r
+                "4b25e8bd.e53158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a95ccf.7794434",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 1832.464241027832,\r
+        "y": 438.4642963409424,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "923b1ffd.af18b",\r
+        "type": "set",\r
+        "name": "set new pnf_length = 1",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf_length' value='1' />\n",\r
+        "comments": "",\r
+        "x": 1042.642951965332,\r
+        "y": 275.82148838043213,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c6ecdd5.9e28b",\r
+        "type": "set",\r
+        "name": "set pnf-index = idx",\r
+        "xml": "<set>\n<parameter name='pnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1863.0357971191406,\r
+        "y": 395.2499752044678,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71acdeef.4b572",\r
+        "type": "set",\r
+        "name": "set is-new-pnf = true",\r
+        "xml": "<set>\n<parameter name='is-new-pnf' value='true' />\n",\r
+        "comments": "",\r
+        "x": 395.8929214477539,\r
+        "y": 212.32144355773926,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4b25e8bd.e53158",\r
+        "type": "set",\r
+        "name": "set is-new-pnf = false",\r
+        "xml": "<set>\n<parameter name='is-new-pnf' value='false' />\n",\r
+        "comments": "",\r
+        "x": 1871.0714836120605,\r
+        "y": 351.9643201828003,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "231e0e98.80a622",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 822.2500228881836,\r
+        "y": 352.2500162124634,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "b109eefc.1d872",\r
+                "12659093.1463bf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12659093.1463bf",\r
+        "type": "switchNode",\r
+        "name": "switch is-new-pnf",\r
+        "xml": "<switch test='`$is-new-pnf`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1019.7500152587891,\r
+        "y": 438.8214178085327,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "273b5e8f.735eb2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "273b5e8f.735eb2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1199.6071701049805,\r
+        "y": 438.39286518096924,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "35d2b6f5.5b532a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d33ee57f.a3ecb8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.7499923706055,\r
+        "y": 230.99999713897705,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1c98dcd.f3b3f23",\r
+                "923b1ffd.af18b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f611eac6.477cc8",\r
+        "type": "other",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682.2499923706055,\r
+        "y": 290.7499990463257,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "d33ee57f.a3ecb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c0f97dd.67d808",\r
+        "type": "switchNode",\r
+        "name": "switch is-new-pnf",\r
+        "xml": "<switch test='`$is-new-pnf`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 383.75000381469727,\r
+        "y": 606.2500057220459,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "a0d4e067.649e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0d4e067.649e6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 563.6071586608887,\r
+        "y": 605.8214530944824,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "9217be7a.bbdb1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42f65de7.c91174",\r
+        "type": "set",\r
+        "name": "set new pnf_length++",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf_length' value='`$service-data.pnfs.pnf_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1547.5,\r
+        "y": 485,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35d2b6f5.5b532a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1345.4999771118164,\r
+        "y": 437.99996185302734,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "42f65de7.c91174",\r
+                "5e6b2c5e.23b7b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e6b2c5e.23b7b4",\r
+        "type": "set",\r
+        "name": "set pnf-index = pnf_length",\r
+        "xml": "<set>\n<parameter name='pnf-index' value='`$service-data.pnfs.pnf_length`' />\n",\r
+        "comments": "",\r
+        "x": 1556.9999809265137,\r
+        "y": 437.49996185302734,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47b71a3e.97bf84",\r
+        "type": "set",\r
+        "name": "set error-message",\r
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve pnf assignments during assign in MD-SAL\" />",\r
+        "comments": "",\r
+        "x": 2449.285758972168,\r
+        "y": 2312.107021331787,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d5ac87a.53fd58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 577.5000228881836,\r
+        "y": 2105.142770767212,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "6ac25c2c.af1c14",\r
+                "cb3f6813.5ca268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb3f6813.5ca268",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 741.7857627868652,\r
+        "y": 2481.4284267425537,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e772b22.e1c734",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1517.5000228881836,\r
+        "y": 2277.5000324249268,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "7440700b.da7e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7440700b.da7e",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'EXECUTION DONE: ' + $ss.capability-dg`\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1661.2500228881836,\r
+        "y": 2276.2500324249268,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "31272402.ad905c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"DONE with pnf-ra-assigment\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1054.1071319580078,\r
+        "y": 1592.5000228881836,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "45a102ef.9c38fc",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 817.5000381469727,\r
+        "y": 1432.4286422729492,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "192a8a0a.311bd6",\r
+        "type": "switchNode",\r
+        "name": "switch prop.controller.user",\r
+        "xml": "<switch test='`$prop.controller.user`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 406.21427372523704,\r
+        "y": 1432.8572630201065,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "98f24d4.445dfb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98f24d4.445dfb",\r
+        "type": "failure",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 606.0713691711426,\r
+        "y": 1432.428677558899,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "45a102ef.9c38fc"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.json
new file mode 100644 (file)
index 0000000..616ca73
--- /dev/null
@@ -0,0 +1,1074 @@
+[\r
+    {\r
+        "id": "81013586.72b878",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 152.5,\r
+        "y": 73.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "16d29a69.fd75d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "16d29a69.fd75d6",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 428.5,\r
+        "y": 74.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "fb8a3acf.eacc88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb8a3acf.eacc88",\r
+        "type": "method",\r
+        "name": "self-serve-pnf-ra-assignment",\r
+        "xml": "<method rpc='self-serve-pnf-ra-assignment' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 745.5,\r
+        "y": 74.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "11ad89b0.4aa4c6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11ad89b0.4aa4c6",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 241.66664123535156,\r
+        "y": 155.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "6a8abb82.762c24",\r
+                "d5ddf680.bc1228",\r
+                "d7d846c4.3b1898",\r
+                "62bc77a8.9608f8",\r
+                "ef795e5f.2b62e",\r
+                "cd9ccb1d.ad27d8",\r
+                "e4653dfe.029a3",\r
+                "ed802b4f.e3de88",\r
+                "4ae0bbb3.7d20c4",\r
+                "3049bbb0.b6b734",\r
+                "9eebb178.0f2de",\r
+                "507cc1d.a43bf4",\r
+                "22187a30.f13be6",\r
+                "c7fb6ab.3a33598",\r
+                "7905fcc3.ff7874"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5ddf680.bc1228",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"request-id\" value=\"`$tmp.return.generate.pnf-se-serv-uuid`\"/>\n   <parameter name=\"resource-type\" value=\"`$pnf-topology-operation-input.pnf-details.pnf-type`\" />  \n   <parameter name=\"resource-id\" value=\"`$pnf-topology-operation-input.pnf-details.pnf-id`\" />   \n   <parameter name=\"action-name\" value=\"resource-assignment\"/> \n   <parameter name=\"responsePrefix\" value=\"raAssign\" />\n",\r
+        "comments": "",\r
+        "x": 427.4166603088379,\r
+        "y": 199.83333015441895,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1893855c.d16e5b",\r
+        "type": "get-resource",\r
+        "name": "get-resource VF_MODEL",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\n  pfx='db1.vf-model'>\n  \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 966.3094635009766,\r
+        "y": 591.3689861297607,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "a87dd4cc.178e18",\r
+                "ba66fea4.81fad",\r
+                "c6434f37.1962d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a87dd4cc.178e18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1211.3095626831055,\r
+        "y": 540.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "ab46b2b3.a771c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab46b2b3.a771c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1384.3095626831055,\r
+        "y": 539.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "879b8f8b.c19ed",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name, tmp.sdnc-model-version, tmp.sdnc-artifact-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\n<parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\n<parameter name='tmp.sdnc-artifact-name' value='`$db1.vf-model.sdnc-artifact-name`' />\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 1586.7380638122559,\r
+        "y": 640.797513961792,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c7b5dfc8.8b235",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No VF_MODEL found where customization_uuid = ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`\" />\n",\r
+        "comments": "",\r
+        "x": 1386.3095626831055,\r
+        "y": 588.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ef795e5f.2b62e",\r
+        "type": "switchNode",\r
+        "name": "switch: model info == NULL",\r
+        "xml": "<switch test=\"`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.sdnc-artifact-name == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 487.30946350097656,\r
+        "y": 592.3689861297607,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "e98bb0b9.b2422"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba66fea4.81fad",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1217.3095626831055,\r
+        "y": 589.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "c7b5dfc8.8b235"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e98bb0b9.b2422",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 736.3094635009766,\r
+        "y": 592.3689861297607,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "1893855c.d16e5b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62bc77a8.9608f8",\r
+        "type": "for",\r
+        "name": "for pnf-topology-operation-input",\r
+        "xml": "<for silentFailure='true' index='i' start='0' end='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 503.16664123535156,\r
+        "y": 392.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "72f58635.66b448"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72f58635.66b448",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 725.1666412353516,\r
+        "y": 391.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "86d3f258.93e3b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d041de83.d9577",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\n",\r
+        "comments": "",\r
+        "x": 1376.1666412353516,\r
+        "y": 324.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2a96bf97.393f3",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_name",\r
+        "xml": "<outcome value='sdnc_model_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.1666412353516,\r
+        "y": 324.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "d041de83.d9577"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86d3f258.93e3b",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name`'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 884.1666412353516,\r
+        "y": 391.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "2a96bf97.393f3",\r
+                "ff1ab59.1eb4148",\r
+                "733b67e2.c4f3c8",\r
+                "e6ecce71.c3cfb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff1ab59.1eb4148",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_version",\r
+        "xml": "<outcome value='sdnc_model_version'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.1666412353516,\r
+        "y": 370.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "9cc66f84.f4ee2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "733b67e2.c4f3c8",\r
+        "type": "outcome",\r
+        "name": "sdnc_artifact_name",\r
+        "xml": "<outcome value='sdnc_artifact_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1124.1666412353516,\r
+        "y": 419.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f2663e84.97046"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cc66f84.f4ee2",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-version",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-version' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1380.1666412353516,\r
+        "y": 370.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f2663e84.97046",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-artifact-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-artifact-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1376.1666412353516,\r
+        "y": 419.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ab5de2cd.b8552",\r
+        "type": "set",\r
+        "name": "set name-value other JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-other-payload\" value=\"`$tmp.config-name-value-other-payload + '&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name + '&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value + '&quot;,'`\"/>\n\n",\r
+        "comments": "",\r
+        "x": 1293.416648864746,\r
+        "y": 470.58335041999817,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e6ecce71.c3cfb",\r
+        "type": "outcome",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1084.166648864746,\r
+        "y": 468.6547546386719,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "ab5de2cd.b8552"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd9ccb1d.ad27d8",\r
+        "type": "set",\r
+        "name": "set configAssignment JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-payload4\" value=\"`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $pnf-topology-operation-input.service-information.service-instance-id   + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload5\" value=\"`$tmp.config-name-value-payload4 + '&quot;pnf-model-customization-uuid&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload6\" value=\"`$tmp.config-name-value-payload5 + '&quot;pnf-id&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.pnf-id + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload7\" value=\"`$tmp.config-name-value-payload6 + '&quot;aic-cloud-region&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.aic-cloud-region + '&quot;'`\"/>\n<parameter name=\"tmp.json-payload\" value=\"`'{' + $tmp.config-name-value-payload7 + '}'`\" />",\r
+        "comments": "",\r
+        "x": 497.16664123535156,\r
+        "y": 711.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e4653dfe.029a3",\r
+        "type": "execute",\r
+        "name": "execute BlueprintProcessingClient",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.grpc.cds.BlueprintProcessingClient' method='sendRequest'>\n <parameter name='blueprint_name' value='`$tmp.sdnc-model-name`' />\n <parameter name='blueprint_version' value='`$tmp.sdnc-model-version`' />\n <parameter name='action' value='`$action-name`' />\n <parameter name='mode' value='sync' />\n <parameter name='force' value='false' />\n <parameter name='ttl' value='0' />\n <parameter name='prefix' value='`$responsePrefix`' />\n <parameter name='payload' value=\"`'{\n  &quot;resource-assignment-request&quot;: {\n    &quot;template-prefix&quot;: [\n      &quot;' + $tmp.sdnc-artifact-name + '&quot;\n    ],\n    &quot;resource-assignment-properties&quot;: \n        ' + $tmp.json-payload + '\n  }\n}'`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 504.83331298828125,\r
+        "y": 865.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "e9f0b05a.ea9a7",\r
+                "9906e0de.d8aa9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9f0b05a.ea9a7",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.8333129882812,\r
+        "y": 839.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f76d9cc.08daa6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f76d9cc.08daa6",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from BlueprintProcessingClient\" />\n",\r
+        "comments": "",\r
+        "x": 926.8333129882812,\r
+        "y": 860.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4ae0bbb3.7d20c4",\r
+        "type": "for",\r
+        "name": "for resource-accumulator-resolved-data loop",\r
+        "xml": "<for silentFailure='true'  index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 529.1666412353516,\r
+        "y": 1083.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f7dcae4c.80d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a560f52e.73b478",\r
+        "type": "set",\r
+        "name": "set from resource-accumulator-resolved-data",\r
+        "xml": "<set>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='RA Resolved'/>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='SUCCESS'/>\n",\r
+        "comments": "",\r
+        "x": 1759.1666412353516,\r
+        "y": 1135.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3049bbb0.b6b734",\r
+        "type": "for",\r
+        "name": "for capability-data",\r
+        "xml": "<for silentFailure='true' index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 454.16664123535156,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "c321b6db.f91618"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c321b6db.f91618",\r
+        "type": "for",\r
+        "name": "for key-mapping",\r
+        "xml": "<for silentFailure='true' index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 663.1666412353516,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "4bdfbe92.58a07"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed802b4f.e3de88",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"`'raAssign.payload.resource-assignment-params.' + $tmp.sdnc-artifact-name`\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 473.16664123535156,\r
+        "y": 1004.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a8abb82.762c24",\r
+        "type": "execute",\r
+        "name": "execute generateUUID",\r
+        "xml": " <execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" > \n <parameter name=\"ctx-destination\" value=\"tmp.return.generate.pnf-se-serv-uuid\" /> \n ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 479.16664123535156,\r
+        "y": 155.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "da110978.037e18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da110978.037e18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 657.1666412353516,\r
+        "y": 153.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "25f8a570.76c1ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "25f8a570.76c1ea",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"generateUUID is failed\" />\n",\r
+        "comments": "",\r
+        "x": 804.1666412353516,\r
+        "y": 154.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b8f9dea4.7ec9d",\r
+        "type": "for",\r
+        "name": "for pnf-parameters-data.param[]",\r
+        "xml": "<for silentFailure='true' index='cnt' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1502.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "9d5dafdb.8e745"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7dcae4c.80d6",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 808.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "4b875a14.db0584",\r
+                "a6645a90.aff8b8",\r
+                "ac27262.137afd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7d846c4.3b1898",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-parameters-data.param_length",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 531.1666412353516,\r
+        "y": 253.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "270f1448.0f808c",\r
+                "df2ab314.6f53a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "270f1448.0f808c",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 769.1666412353516,\r
+        "y": 221.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "bc1bcfe4.47473"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df2ab314.6f53a",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 768.1666412353516,\r
+        "y": 285.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "6ae0c2e2.e112ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc1bcfe4.47473",\r
+        "type": "set",\r
+        "name": "set pre service param len as 0",\r
+        "xml": "<set>\n   <parameter name='highnum' value='0' />\n   <parameter name='prehighnum' value='0'/>\n",\r
+        "comments": "",\r
+        "x": 982.1666412353516,\r
+        "y": 221.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6ae0c2e2.e112ec",\r
+        "type": "set",\r
+        "name": "set pre service param len",\r
+        "xml": "<set>\n   <parameter name='highnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />\n   <parameter name='prehighnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />",\r
+        "comments": "",\r
+        "x": 967.1666412353516,\r
+        "y": 285.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9d5dafdb.8e745",\r
+        "type": "switchNode",\r
+        "name": "switch param[].name - input vs. jsonContextPrefix",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1881.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "d54adb3d.c51348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d54adb3d.c51348",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2165.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "bf4269c.812a398"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf4269c.812a398",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n<parameter name='tmp.mso.param.found' value='true' />\n",\r
+        "comments": "",\r
+        "x": 2375.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac27262.137afd8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.mso.param.found",\r
+        "xml": "<switch test='`$tmp.mso.param.found`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1050.1666412353516,\r
+        "y": 1136.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "80869ef9.b42b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80869ef9.b42b6",\r
+        "type": "not-found",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1284.1666412353516,\r
+        "y": 1135.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "aa6d15b3.b54808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b875a14.db0584",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='tmp.mso.param.found' value='false' />\n",\r
+        "comments": "",\r
+        "x": 1031.6666412353516,\r
+        "y": 1022.5833282470703,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a6645a90.aff8b8",\r
+        "type": "switchNode",\r
+        "name": "switch check length > 0",\r
+        "xml": "<switch test='`$prehighnum &gt; 0`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1026.6666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "3e9847d7.a9a428"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e9847d7.a9a428",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1273.6666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "b8f9dea4.7ec9d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b72432c2.1cb81",\r
+        "type": "for",\r
+        "name": "for payload",\r
+        "xml": "<for silentFailure='true' index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1845.1666412353516,\r
+        "y": 1443.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "8a6d87a5.167378"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "993132bf.1fc03",\r
+        "type": "set",\r
+        "name": "set resource-key",\r
+        "xml": "<set>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\n\n",\r
+        "comments": "",\r
+        "x": 2194.1666412353516,\r
+        "y": 1379.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "92dd255a.846018",\r
+        "type": "set",\r
+        "name": "set output-data ",\r
+        "xml": "<set>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='PENDING'/>\n<parameter name='num' value='0' />",\r
+        "comments": "",\r
+        "x": 1418.1666412353516,\r
+        "y": 1323.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4bdfbe92.58a07",\r
+        "type": "for",\r
+        "name": "for output-key-mapping",\r
+        "xml": "<for silentFailure='true' index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.1666412353516,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "c7cc9512.4faa18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7cc9512.4faa18",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1137.1666412353516,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "92dd255a.846018",\r
+                "17ff9631.56b25a",\r
+                "72c5b1f7.aa391",\r
+                "69144068.7c5f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17ff9631.56b25a",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' value='`$highnum + 1`'/>\n",\r
+        "comments": "",\r
+        "x": 1406.1666412353516,\r
+        "y": 1461.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9906e0de.d8aa9",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 749.8333129882812,\r
+        "y": 901.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f76d9cc.08daa6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72c5b1f7.aa391",\r
+        "type": "switchNode",\r
+        "name": "switch payload_length",\r
+        "xml": "<switch test=\"`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1442.1666412353516,\r
+        "y": 1394.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "4ffaaf1f.506fd",\r
+                "797447ba.d290d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ffaaf1f.506fd",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1663.1666412353516,\r
+        "y": 1325.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "797447ba.d290d8",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1670.1666412353516,\r
+        "y": 1443.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "b72432c2.1cb81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6434f37.1962d",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.4523658752441,\r
+        "y": 640.6546821594238,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "879b8f8b.c19ed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "831efa97.1c0588",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\n",\r
+        "comments": "",\r
+        "x": 2183.1666412353516,\r
+        "y": 1443.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "da21f5c1.b6dc88",\r
+        "type": "set",\r
+        "name": "increment length",\r
+        "xml": "<set>\n\t<parameter name='num' value='`$num + 1`' />\n",\r
+        "comments": "",\r
+        "x": 2201.1666412353516,\r
+        "y": 1517.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69144068.7c5f8",\r
+        "type": "set",\r
+        "name": "increment length",\r
+        "xml": "<set>\n\t<parameter name='highnum' value='`$highnum + 1`' />\n\n",\r
+        "comments": "",\r
+        "x": 1427.1666412353516,\r
+        "y": 1528.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aa6d15b3.b54808",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1461.1666412353516,\r
+        "y": 1134.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "a560f52e.73b478",\r
+                "2dccbddc.c39b12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dccbddc.c39b12",\r
+        "type": "set",\r
+        "name": "increment length",\r
+        "xml": "<set>\n\t<parameter name='highnum' value='`$highnum + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1676.1666412353516,\r
+        "y": 1194.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8a6d87a5.167378",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2001.1666412353516,\r
+        "y": 1444.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "993132bf.1fc03",\r
+                "831efa97.1c0588",\r
+                "da21f5c1.b6dc88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9eebb178.0f2de",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"BEFORE BlueprintProcessingClient\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 427.4999809265137,\r
+        "y": 787.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "507cc1d.a43bf4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"AFTER BlueprintProcessingClient\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 424.1666488647461,\r
+        "y": 942.0833320617676,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7fb6ab.3a33598",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='`$pathname`' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 432.50000762939453,\r
+        "y": 1746.2500267028809,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "22187a30.f13be6",\r
+        "type": "set",\r
+        "name": "set pathname",\r
+        "xml": "<set>\n<parameter name='pathname' \n\tvalue=\"`'/var/tmp/ss-pnf-ra-assignment-' + \n\t$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.pnf-id + '.log'`\" />\n",\r
+        "comments": "",\r
+        "x": 438.75000762939453,\r
+        "y": 1693.7500247955322,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7905fcc3.ff7874",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"DONE: pnf-ra-assignment\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 416.25000381469727,\r
+        "y": 1647.5000247955322,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-pnf-input.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-pnf-input.json
new file mode 100644 (file)
index 0000000..1305467
--- /dev/null
@@ -0,0 +1,573 @@
+[\r
+    {\r
+        "id": "94367b34.4993c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 244.44442749023438,\r
+        "y": 363.3055624961853,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "e96f0aba.6a2158",\r
+                "145655c7.5c421a",\r
+                "740fde80.5f9e8",\r
+                "a75da30.d5ab06",\r
+                "6154264e.c73678",\r
+                "4710ed3d.659744"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e96f0aba.6a2158",\r
+        "type": "switchNode",\r
+        "name": "switch svc-request-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502.20633697509766,\r
+        "y": 321.13589811325073,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "b12a28ac.b7b9b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b12a28ac.b7b9b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 727.9206314086914,\r
+        "y": 321.135901927948,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "8cc94a69.eb44f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cc94a69.eb44f8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 879.3491973876953,\r
+        "y": 321.13590002059937,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "145655c7.5c421a",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 490.7777001517161,\r
+        "y": 279.7073296819415,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "35e01edd.5783a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "35e01edd.5783a2",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.4920518057688,\r
+        "y": 278.27872746331354,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "6beabba6.32f4f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6beabba6.32f4f4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 876.492025102888,\r
+        "y": 278.2787370000567,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "740fde80.5f9e8",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 500.7777535574778,\r
+        "y": 363.9930447850909,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "ef526c4a.39c59"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef526c4a.39c59",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 727.9206270490376,\r
+        "y": 363.99305568422596,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "c2c067b2.6d5ab8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2c067b2.6d5ab8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 879.3491930280416,\r
+        "y": 363.99305377687733,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "79e4afb1.99cc8",\r
+        "type": "switchNode",\r
+        "name": "switch model-customization-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1119.242275238037,\r
+        "y": 511.4218182563782,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "e37ed67.814bf28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e37ed67.814bf28",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1324.242275238037,\r
+        "y": 511.4218010902405,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "d757cb77.2c7958"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d757cb77.2c7958",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"pnf-details.onap-model-information.model-customization-uuid is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1475.670841217041,\r
+        "y": 511.42179918289185,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a14b5bac.e97828",\r
+        "type": "switchNode",\r
+        "name": "switch tenant",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.tenant`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1065.0993537902832,\r
+        "y": 552.8503289222717,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9f4a40d4.27fdf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f4a40d4.27fdf",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1322.8136711120605,\r
+        "y": 552.8503632545471,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "21e1ea3d.d3d876"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21e1ea3d.d3d876",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"pnf-request-input.tenant is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1474.2422370910645,\r
+        "y": 552.8503613471985,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c290417a.999bd",\r
+        "type": "comment",\r
+        "name": "Validation of required fields",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 650.7777099609375,\r
+        "y": 235.42161226272583,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a75da30.d5ab06",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 484.7658462524414,\r
+        "y": 553.1003041267395,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "ade91738.c2dee8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ade91738.c2dee8",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 661.8491668701172,\r
+        "y": 552.6836438179016,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9de99c30.2439d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9de99c30.2439d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 858.5157775878906,\r
+        "y": 552.6836438179016,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "79e4afb1.99cc8",\r
+                "a14b5bac.e97828",\r
+                "5a47ef2e.17f48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "621027e3.a05c68",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 163.19443729945579,\r
+        "y": 107.9692120552063,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "fd592892.32a8c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd592892.32a8c8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 276.48014286586204,\r
+        "y": 148.20732355117798,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "80133c43.3b152"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80133c43.3b152",\r
+        "type": "method",\r
+        "name": "method validate-pnf-input",\r
+        "xml": "<method rpc='validate-pnf-input' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 211.87306431361594,\r
+        "y": 189.21920824050903,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "94367b34.4993c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8dbb90e.a422b8",\r
+        "type": "comment",\r
+        "name": "validate-pnf-input",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 557.5392935616628,\r
+        "y": 55.55555582046509,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6154264e.c73678",\r
+        "type": "switchNode",\r
+        "name": "switch service-instance-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.service-information.service-instance-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 513.8015845162527,\r
+        "y": 408.05557107925415,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "2ce54a7d.5835b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2ce54a7d.5835b6",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.2301657540456,\r
+        "y": 408.0555672645569,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "53191b49.840e74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53191b49.840e74",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 877.6587317330495,\r
+        "y": 408.05556535720825,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4710ed3d.659744",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.pnf-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 471.3015937805176,\r
+        "y": 451.555561542511,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "a413f663.792248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a413f663.792248",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.5873031616211,\r
+        "y": 450.12699365615845,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9bbe7c79.3b76c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9bbe7c79.3b76c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"pnf-details.pnf-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 878.015869140625,\r
+        "y": 450.1269917488098,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5a47ef2e.17f48",\r
+        "type": "switchNode",\r
+        "name": "switch aic-cloud-region",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1094.444435119629,\r
+        "y": 595.1269860267639,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "38bfd2ff.c329ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38bfd2ff.c329ae",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1321.1587524414062,\r
+        "y": 595.1270203590393,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "be8a7d3e.b1956"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "be8a7d3e.b1956",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"pnf-request-input.aic-cloud-region is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1472.5873184204102,\r
+        "y": 595.1270184516907,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cbe7b870.eb2778",\r
+        "type": "switchNode",\r
+        "name": "switch model-customization-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1089.9205780029297,\r
+        "y": 710.317467212677,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "a468752f.474808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a468752f.474808",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1294.9205780029297,\r
+        "y": 710.3174500465393,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "b9bc06be.f3a6e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9bc06be.f3a6e8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"pnf-details.onap-model-information.model-customization-uuid is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1446.3491439819336,\r
+        "y": 710.3174481391907,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "23854a15.854736",\r
+        "type": "outcome",\r
+        "name": "changeassign",\r
+        "xml": "<outcome value='changeassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.8607978820801,\r
+        "y": 710.2460265159607,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9784e04d.64388"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9784e04d.64388",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 859.8607864379883,\r
+        "y": 710.2459931373596,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "cbe7b870.eb2778"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc3011b2.e59d9",\r
+        "type": "comment",\r
+        "name": "model-customization-uuid validation moved to changeassign DG",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 739.4444274902344,\r
+        "y": 675.5555663108826,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation-assign.xml
new file mode 100644 (file)
index 0000000..f25087e
--- /dev/null
@@ -0,0 +1,71 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='pnf-topology-operation-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='prop.cloud-region.cloud-owner' value='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreatePnfInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreatePnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-model'>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error reading VF_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for VF customization UUID ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <block atomic="true">\r
+                <call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-assign' mode='sync' >\r
+                    <outcome value='failure'>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`'Failed to create self-serve assignment for pnf with pnf-id=' + $pnf-topology-operation-input.pnf-details.pnf-id + ' with error: ' + $error-message`" />\r
+                        </return>\r
+                    </outcome>\r
+                </call>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                    <parameter name='filename' value='/var/tmp/ss-pnf-assign.log' />\r
+                </execute>\r
+                <return status='success'>\r
+                    <parameter name="ack-final-indicator" value="Y" />\r
+                    <parameter name="error-code" value="200" />\r
+                    <parameter name="error-message" value="`$error-message`" />\r
+                </return>\r
+            </block>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation.xml
new file mode 100644 (file)
index 0000000..8ab8729
--- /dev/null
@@ -0,0 +1,38 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='pnf-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-pnf-input' mode='sync' ></call>\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-assign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-activate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-deactivate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-unassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-changeassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$pnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-assign.xml
new file mode 100644 (file)
index 0000000..55d851c
--- /dev/null
@@ -0,0 +1,400 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='self-serve-pnf-assign' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name='is-new-pnf' value='true' />\r
+            </set>\r
+            <switch test='`$service-data.pnfs.pnf_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='pnf-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf_length' value='1' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='pnf-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf_length' value='1' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <for index='idx' start='0' end='`$service-data.pnfs.pnf_length`' >\r
+                            <switch test='`$pf-topology-operation-input.pnf-details.pnf-id == $service-data.pnfs.pnf[$idx].pnf-id`'>\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='is-new-pnf' value='false' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='pnf-index' value='`$idx`' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$is-new-pnf`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='pnf-index' value='`$service-data.pnfs.pnf_length`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.pnfs.pnf_length' value='`$service-data.pnfs.pnf_length + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$is-new-pnf`'>\r
+                <outcome value='true'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-id'\r
+ value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-type'\r
+ value='`$pnf-topology-operation-input.pnf-details.pnf-type`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.tenant'\r
+ value='`$pnf-topology-operation-input.pnf-request-input.tenant`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.aic-cloud-region'\r
+ value='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-id'\r
+   value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\r
+                        </set>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$db.pnf-model.invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\r
+  value='`$db.pnf-model.uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\r
+  value='`$db.pnf-model.version`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\r
+  value='`$db.pnf-model.name`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-customization-uuid' \r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.'\r
+        value='$pnf-topology-operation-input.sdnc-request-header.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.'\r
+        value='$pnf-topology-operation-input.request-information.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.'\r
+        value='$pnf-topology-operation-input.service-information.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.'\r
+        value='$pnf-topology-operation-input.pnf-details.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.'\r
+        value='$pnf-topology-operation-input.pnf-request-input.' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.order-status' value='PendingCreate' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-rpc-action' value='`$pnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-action' value='`$pnf-topology-operation-input.request-information.request-action`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='ss.capability.execution-order[0]' value='aai-get' />\r
+                <parameter name='ss.capability.execution-order[1]' value='generate-name' />\r
+                <parameter name='ss.capability.execution-order[2]' value='alts-entitlement-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\r
+                <parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[6]' value='eipam-ip-assignment' />\r
+                <parameter name='ss.capability.execution-order[7]' value='eipam-create-pool' />\r
+                <parameter name='ss.capability.execution-order[8]' value='netbox-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[9]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[10]' value='mS-mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[11]' value='create-vpe-pool' />\r
+                <parameter name='ss.capability.execution-order[12]' value='unresolved-composite-data' />\r
+                <parameter name='ss.capability.execution-order[13]' value='aai-pnf-put' />\r
+                <parameter name='ss.capability.execution-order_length' value='14' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.sdnc-generated-cloud-resources' value='true' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ss.capability-type' value='pnf' />\r
+            </set>\r
+            <switch test='`$prop.controller.user`'>\r
+                <outcome value=''>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                        <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                        <parameter name='contextPrefix' value='prop' />\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.'\r
+  value='pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-ra-assignment' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'Failed to get RA assignments: ' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="DONE with pnf-ra-assigment"/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
+                <set>\r
+                    <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
+                    <!--\r
+ss.capability.execution-order[]\r
+-->\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-action' value='assign' />\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-dg' value="`'self-serve-' + $ss.capability.execution-order[$cidx]`" />\r
+                </set>\r
+                <for index='pidx' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\r
+                    <set>\r
+                        <parameter name='tmp.param.capability-name' \r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\r
+                    </set>\r
+                    <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
+                        <outcome value='true'>\r
+                            <block atomic='true'>\r
+                                <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\r
+                                    <outcome value='PENDING'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='pf.pnf-id'\r
+    value='`$service-data.pnfs.pnf[$pnf-index].pnf-id`' />\r
+                                                        <parameter name='pf.pnf-data.sdnc-request-header.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.`' />\r
+                                                        <parameter name='pf.pnf-data.request-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.`' />\r
+                                                        <parameter name='pf.pnf-data.service-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-details.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-topology.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-level-oper-status.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-input-parameters.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-input-parameters.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.request-version'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.request-version`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-name'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-name`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.tenant'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.tenant`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-cloud-region'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-cloud-region`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-clli'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-clli`' />\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.ss-pnf-assignments`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-pnf-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{pnf-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.pnf.templatefile`" />\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-pnf-url`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='PUT' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-ss-pnf" />\r
+                                                        <outcome value='failure'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'EXECUTION DONE: ' + $ss.capability-dg`"/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                    <outcome value='FAILED'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='pf.pnf-id'\r
+    value='`$service-data.pnfs.pnf[$pnf-index].pnf-id`' />\r
+                                                        <parameter name='pf.pnf-data.sdnc-request-header.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.`' />\r
+                                                        <parameter name='pf.pnf-data.request-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.`' />\r
+                                                        <parameter name='pf.pnf-data.service-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-details.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-topology.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-level-oper-status.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-input-parameters.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-input-parameters.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.request-version'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.request-version`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-name'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-name`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.tenant'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.tenant`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-cloud-region'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-cloud-region`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-clli'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-clli`' />\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.ss-pnf-assignments`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-pnf-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{pnf-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.pnf.templatefile`" />\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-pnf-url`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='PUT' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-ss-pnf" />\r
+                                                        <outcome value='failure'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'EXECUTION DONE: ' + $ss.capability-dg`"/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <break/>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-pnf-assign.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.xml
new file mode 100644 (file)
index 0000000..707de84
--- /dev/null
@@ -0,0 +1,234 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='self-serve-pnf-ra-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate.pnf-se-serv-uuid" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="generateUUID is failed" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name="request-id" value="`$tmp.return.generate.pnf-se-serv-uuid`"/>\r
+                <parameter name="resource-type" value="`$pnf-topology-operation-input.pnf-details.pnf-type`" />\r
+                <parameter name="resource-id" value="`$pnf-topology-operation-input.pnf-details.pnf-id`" />\r
+                <parameter name="action-name" value="resource-assignment"/>\r
+                <parameter name="responsePrefix" value="raAssign" />\r
+            </set>\r
+            <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='highnum' value='0' />\r
+                        <parameter name='prehighnum' value='0'/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='highnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />\r
+                        <parameter name='prehighnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='true' index='i' start='0' end='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name`'>\r
+                        <outcome value='sdnc_model_name'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_model_version'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-version' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_artifact_name'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-artifact-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name="tmp.config-name-value-other-payload" value="`$tmp.config-name-value-other-payload + '&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name + '&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value + '&quot;,'`"/>\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test="`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.sdnc-artifact-name == ''`">\r
+                <outcome value='true'>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\r
+  pfx='db1.vf-model'>\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="Error reading VF_MODEL table" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'No VF_MODEL found where customization_uuid = ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\r
+                                <parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\r
+                                <parameter name='tmp.sdnc-artifact-name' value='`$db1.vf-model.sdnc-artifact-name`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="tmp.config-name-value-payload4" value="`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $pnf-topology-operation-input.service-information.service-instance-id   + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload5" value="`$tmp.config-name-value-payload4 + '&quot;pnf-model-customization-uuid&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload6" value="`$tmp.config-name-value-payload5 + '&quot;pnf-id&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.pnf-id + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload7" value="`$tmp.config-name-value-payload6 + '&quot;aic-cloud-region&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.aic-cloud-region + '&quot;'`"/>\r
+                <parameter name="tmp.json-payload" value="`'{' + $tmp.config-name-value-payload7 + '}'`" />\r
+            </set>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="BEFORE BlueprintProcessingClient"/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.adaptors.grpc.cds.BlueprintProcessingClient' method='sendRequest'>\r
+                <parameter name='blueprint_name' value='`$tmp.sdnc-model-name`' />\r
+                <parameter name='blueprint_version' value='`$tmp.sdnc-model-version`' />\r
+                <parameter name='action' value='`$action-name`' />\r
+                <parameter name='mode' value='sync' />\r
+                <parameter name='force' value='false' />\r
+                <parameter name='ttl' value='0' />\r
+                <parameter name='prefix' value='`$responsePrefix`' />\r
+                <parameter name='payload' value="`'{\r
+  &quot;resource-assignment-request&quot;: {\r
+    &quot;template-prefix&quot;: [\r
+      &quot;' + $tmp.sdnc-artifact-name + '&quot;\r
+    ],\r
+    &quot;resource-assignment-properties&quot;: \r
+        ' + $tmp.json-payload + '\r
+  }\r
+}'`"/>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error from BlueprintProcessingClient" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error from BlueprintProcessingClient" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="AFTER BlueprintProcessingClient"/>\r
+            </record>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                <parameter name="source" value="`'raAssign.payload.resource-assignment-params.' + $tmp.sdnc-artifact-name`" />\r
+                <parameter name="outputPath" value="jsonContextPrefix" />\r
+                <parameter name="isEscaped" value="false" />\r
+            </execute>\r
+            <for silentFailure='true'  index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='tmp.mso.param.found' value='false' />\r
+                    </set>\r
+                    <switch test='`$prehighnum &gt; 0`'>\r
+                        <outcome value='true'>\r
+                            <for silentFailure='true' index='cnt' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\r
+                                <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                            <parameter name='tmp.mso.param.found' value='true' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.mso.param.found`'>\r
+                        <outcome value='false'>\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='RA Resolved'/>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='SUCCESS'/>\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='highnum' value='`$highnum + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <for silentFailure='true' index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\r
+                <for silentFailure='true' index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >\r
+                    <for silentFailure='true' index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='PENDING'/>\r
+                                <parameter name='num' value='0' />\r
+                            </set>\r
+                            <switch test="`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`">\r
+                                <outcome value='true'></outcome>\r
+                                <outcome value='false'>\r
+                                    <for silentFailure='true' index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\r
+                                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='num' value='`$num + 1`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </for>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' value='`$highnum + 1`'/>\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='highnum' value='`$highnum + 1`' />\r
+                            </set>\r
+                        </block>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="DONE: pnf-ra-assignment"/>\r
+            </record>\r
+            <set>\r
+                <parameter name='pathname' \r
+       value="`'/var/tmp/ss-pnf-ra-assignment-' + \r
+       $service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.pnf-id + '.log'`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='`$pathname`' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-pnf-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-pnf-input.xml
new file mode 100644 (file)
index 0000000..3c1ae0d
--- /dev/null
@@ -0,0 +1,86 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='validate-pnf-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.service-information.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.pnf-details.pnf-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="pnf-details.pnf-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="pnf-details.onap-model-information.model-customization-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-request-input.tenant`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="pnf-request-input.tenant is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="pnf-request-input.aic-cloud-region is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/restapi-templates/src/main/json/self-serve-pnf-assignments.json b/platform-logic/restapi-templates/src/main/json/self-serve-pnf-assignments.json
new file mode 100644 (file)
index 0000000..4e15e91
--- /dev/null
@@ -0,0 +1,112 @@
+{
+    "pnf": [{
+        "pnf-id": ${pf.pnf-id},
+        "pnf-data": {
+            "sdnc-request-header": {
+                "svc-request-id": ${pf.pnf-data.sdnc-request-header.svc-request-id},
+                "svc-action": ${pf.pnf-data.sdnc-request-header.svc-action},
+                "svc-notification-url": ${pf.pnf-data.sdnc-request-header.svc-notification-url}
+            },
+            "request-information": {
+                "request-id": ${pf.pnf-data.request-information.request-id},
+                "request-action": ${pf.pnf-data.request-information.request-action},
+                "source": ${pf.pnf-data.request-information.source},
+                "notification-url": ${pf.pnf-data.request-information.notification-url},
+                "order-number": ${pf.pnf-data.request-information.order-number},
+                "order-version": ${pf.pnf-data.request-information.order-version}
+            },
+            "service-information": {
+                "service-id": ${pf.pnf-data.service-information.service-id},
+                "subscription-service-type": ${pf.pnf-data.service-information.subscription-service-type},
+                "onap-model-information": {
+                    "model-invariant-uuid": ${pf.pnf-data.service-information.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${pf.pnf-data.service-information.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${pf.pnf-data.service-information.onap-model-information.model-uuid},
+                    "model-version": ${pf.pnf-data.service-information.onap-model-information.model-version},
+                    "model-name": ${pf.pnf-data.service-information.onap-model-information.model-name}
+                },
+                "service-instance-id": ${pf.pnf-data.service-information.service-instance-id},
+                "global-customer-id": ${pf.pnf-data.service-information.global-customer-id},
+                "subscriber-name": ${pf.pnf-data.service-information.subscriber-name}
+            },
+            "pnf-details": {
+                "pnf-id": ${pf.pnf-data.pnf-details.pnf-id},
+                "pnf-type": ${pf.pnf-data.pnf-details.pnf-type},
+                "pnf-name": ${pf.pnf-data.pnf-details.pnf-name},
+                "onap-model-information": {
+                    "model-invariant-uuid": ${pf.pnf-data.pnf-details.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${pf.pnf-data.pnf-details.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${pf.pnf-data.pnf-details.onap-model-information.model-uuid},
+                    "model-version": ${pf.pnf-data.pnf-details.onap-model-information.model-version},
+                    "model-name": ${pf.pnf-data.pnf-details.onap-model-information.model-name}
+                }
+            },
+            "pnf-request-input": {
+                "request-version": ${pf.pnf-data.pnf-request-input.request-version},
+                "pnf-name": ${pf.pnf-data.pnf-request-input.pnf-name},
+                "tenant": ${pf.pnf-data.pnf-request-input.tenant},
+                "aic-cloud-region": ${pf.pnf-data.pnf-request-input.aic-cloud-region},
+                "aic-clli": ${pf.pnf-data.pnf-request-input.aic-clli},
+                "pnf-input-parameters": {
+                    "param": [
+        ${repeat:pf.pnf-data.pnf-request-input.pnf-input-parameters.param_length:
+                        {
+                            "name": ${pf.pnf-data.pnf-request-input.pnf-input-parameters.param[${1}].name},
+                            "value": ${pf.pnf-data.pnf-request-input.pnf-input-parameters.param[${1}].value}
+                        },
+        }
+                    ]
+                }
+            },
+            "pnf-topology": {
+                "pnf-topology-identifier-structure": {
+                    "pnf-id": ${pf.pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-id},
+                    "pnf-name": ${pf.pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-name},
+                    "pnf-type": ${pf.pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-type}
+                },
+                "onap-model-information": {
+                    "model-invariant-uuid": ${pf.pnf-data.pnf-topology.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${pf.pnf-data.pnf-topology.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${pf.pnf-data.pnf-topology.onap-model-information.model-uuid},
+                    "model-version": ${pf.pnf-data.pnf-topology.onap-model-information.model-version},
+                    "model-name": ${pf.pnf-data.pnf-topology.onap-model-information.model-name}
+                },
+                "pnf-parameters-data": {
+                    "param": [
+        ${repeat:pf.pnf-data.pnf-topology.pnf-parameters-data.param_length:
+                        {
+                            "name": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].name},
+                            "value": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].value},
+                            "resource-resolution-data": {
+                                "resource-key": [
+                ${repeat:pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.resource-key_length:
+                                    {
+                                        "name": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.resource-key[${2}].name},
+                                        "value": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.resource-key[${2}].value}
+                                    },
+                }
+                                ],
+                                "status": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.status},
+                                "capability-name": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.capability-name}
+                            },
+                        },
+        }
+                    ]
+                },
+                "tenant": ${pf.pnf-data.pnf-topology.tenant},
+                "aic-cloud-region": ${pf.pnf-data.pnf-topology.aic-cloud-region},
+                "aic-clli": ${pf.pnf-data.pnf-topology.aic-clli}
+                "sdnc-generated-cloud-resources": ${pf.pnf-data.pnf-topology.sdnc-generated-cloud-resources}
+            },
+            "pnf-level-oper-status": {
+                "order-status": ${pf.pnf-data.pnf-level-oper-status.order-status},
+                "last-rpc-action": ${pf.pnf-data.pnf-level-oper-status.last-rpc-action},
+                "last-action": ${pf.pnf-data.pnf-level-oper-status.last-action},
+                "last-svc-request-id": ${pf.pnf-data.pnf-level-oper-status.last-svc-request-id},
+                "last-order-status": ${pf.pnf-data.pnf-level-oper-status.last-order-status},
+                "create-timestamp": ${pf.pnf-data.pnf-level-oper-status.create-timestamp},
+                "modify-timestamp": ${pf.pnf-data.pnf-level-oper-status.modify-timestamp}
+            }
+        }
+    }]
+}