CCVPN extension site resource DGs 31/83431/5
authorprakash.e <prakash.e@huawei.com>
Wed, 27 Mar 2019 03:55:28 +0000 (09:25 +0530)
committerprakash.e <prakash.e@huawei.com>
Thu, 28 Mar 2019 04:53:09 +0000 (10:23 +0530)
DEVICE and SITE VF-topology-operation DGs

Change-Id: Ieb9fdfed7918489ce56d10e848663f81e56445e7
Issue-ID: SDNC-659
Signed-off-by: Prakash.E <prakash.e@huawei.com>
Former-commit-id: 11f5aef76dcff7ceadaa240c068c727793c7d64a

44 files changed:
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-tenant-auth.json
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-wan-param.json
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_vf-module-topology-operation.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-tenant-auth.xml
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-wan-param.xml
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_vf-module-topology-operation.xml [new file with mode: 0644]

index d088858..8a5d8f9 100644 (file)
 [\r
-  {\r
-    "id": "b8581db5.dbca7",\r
-    "type": "get-resource",\r
-    "name": "get-resource service-subscription",\r
-    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.global-customer-id'\n      force=\"true\" pfx=\"tmp.AnAI-data-tenant\">\n      \n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 597,\r
-    "y": 418.09522092342377,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "1a771e75.f79d12",\r
-        "ac62029.181ce"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "5d45ba87.92c374",\r
-    "type": "switchNode",\r
-    "name": "switch temp-ub-sub-account-id",\r
-    "xml": "<switch test='`$tmp.AnAI-data-tenant.temp-ub-sub-account-id`'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 1009.0000915527344,\r
-    "y": 382.84530198574066,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "5358b5db.d1e49c",\r
-        "28c300d9.7fa36"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "5358b5db.d1e49c",\r
-    "type": "outcome",\r
-    "name": "NULL",\r
-    "xml": "<outcome value=''>",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 1201.714542388916,\r
-    "y": 356.84534299373627,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "831b80bb.e08e8"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "28c300d9.7fa36",\r
-    "type": "other",\r
-    "name": "Other",\r
-    "xml": "<outcome value='Other'>",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 1202.0001068115234,\r
-    "y": 411.8453058004379,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "e1a74ece.52f65"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "1a771e75.f79d12",\r
-    "type": "success",\r
-    "name": "success",\r
-    "xml": "<outcome value='success'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 807.4998626708984,\r
-    "y": 390.84127938747406,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "5d45ba87.92c374"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "ac62029.181ce",\r
-    "type": "failure",\r
-    "name": "failure",\r
-    "xml": "<outcome value='failure'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 801.1784515380859,\r
-    "y": 443.0555909872055,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "f81e2009.7dbd5"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "f81e2009.7dbd5",\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 executing get token rest api\" />\n",\r
-    "comments": "",\r
-    "x": 953.9284515380859,\r
-    "y": 442.80565202236176,\r
-    "z": "a703782b.2992b8",\r
-    "wires": []\r
-  },\r
-  {\r
-    "id": "4bd31b43.411d14",\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": 177,\r
-    "y": 145.23810708522797,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "d79d2c6f.11854"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "c863bd10.503ce",\r
-    "type": "dgstart",\r
-    "name": "DGSTART",\r
-    "outputs": 1,\r
-    "x": 97.71429443359375,\r
-    "y": 82.99999749660492,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "4bd31b43.411d14"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "5dc11f37.9dd37",\r
-    "type": "block",\r
-    "name": "block : atomic",\r
-    "xml": "<block atomic=\"true\">",\r
-    "atomic": "true",\r
-    "outputs": 1,\r
-    "x": 330.95240020751953,\r
-    "y": 381.8095315694809,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "b8581db5.dbca7",\r
-        "c8c0bf77.157a7"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "d79d2c6f.11854",\r
-    "type": "method",\r
-    "name": "method sdwan-get-tenant-auth",\r
-    "xml": "<method rpc='sdwan-get-tenant-auth' mode='sync'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 188.71429443359375,\r
-    "y": 239.58633935451508,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "5dc11f37.9dd37"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "e1a74ece.52f65",\r
-    "type": "set",\r
-    "name": "set prop.tenant-id",\r
-    "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tmp.AnAI-data-tenant.temp-ub-sub-account-id`' />\n",\r
-    "comments": "",\r
-    "x": 1379.857177734375,\r
-    "y": 410.9523614645004,\r
-    "z": "a703782b.2992b8",\r
-    "wires": []\r
-  },\r
-  {\r
-    "id": "c8c0bf77.157a7",\r
-    "type": "execute",\r
-    "name": "execute RestApiCallNode Create tenant auth",\r
-    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenants/authorization/' + $prop.tenant-id`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 624.5000305175781,\r
-    "y": 520.9880307912827,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      []\r
-    ]\r
-  },\r
-  {\r
-    "id": "831b80bb.e08e8",\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 executing get token rest api\" />\n",\r
-    "comments": "",\r
-    "x": 1384.1427841186523,\r
-    "y": 356.6666520833969,\r
-    "z": "a703782b.2992b8",\r
-    "wires": []\r
-  }\r
-]\r
+    {\r
+        "id": "3eca748a.ef817c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 123,\r
+        "y": 75,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "350fb0d5.88723"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "350fb0d5.88723",\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": 368.2857131958008,\r
+        "y": 74.23807907104492,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7fecfee8.d291b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7fecfee8.d291b",\r
+        "type": "method",\r
+        "name": "validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<method rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 451.9166946411133,\r
+        "y": 209.25301837921143,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "8f6f1f8b.897a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f6f1f8b.897a9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 735.9167022705078,\r
+        "y": 197.25304317474365,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "634b7128.2e84d",\r
+                "adb8eda0.ca986",\r
+                "bc20a4d8.66ea78",\r
+                "376a189c.5eea28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "634b7128.2e84d",\r
+        "type": "switchNode",\r
+        "name": "switch  svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.916633605957,\r
+        "y": 45.25303936004639,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "183ac3e9.257bcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "183ac3e9.257bcc",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1186.6309356689453,\r
+        "y": 46.2530403137207,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "65be383e.39b058"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65be383e.39b058",\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": 1361.0594863891602,\r
+        "y": 45.25303268432617,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adb8eda0.ca986",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 332.9166564941406,\r
+        "y": 468.2530336380005,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "83c4de98.01196",\r
+                "ce7e74f7.3c86c8",\r
+                "147fd5d9.68de3a",\r
+                "1561519f.abda0e",\r
+                "d7c5bf00.510dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83c4de98.01196",\r
+        "type": "outcome",\r
+        "name": "create",\r
+        "xml": "<outcome value='create'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 526.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "363f7231.506cbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "363f7231.506cbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 687.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "46be34f.5b2c7cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce7e74f7.3c86c8",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 499.4920120239258,\r
+        "y": 906.428539276123,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aec7db3f.798358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "147fd5d9.68de3a",\r
+        "type": "outcome",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 503.20639419555664,\r
+        "y": 1077.1430969238281,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c7708172.24701"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1561519f.abda0e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502.9682846069336,\r
+        "y": 1250.571382522583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6252f6e.c1321"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6252f6e.c1321",\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=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 686.5398178100586,\r
+        "y": 1251.190523147583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "46be34f.5b2c7cc",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 888,\r
+        "y": 295.6666797399521,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3528f63.34e230a",\r
+                "82048a2c.348118"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3528f63.34e230a",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.4999923706055,\r
+        "y": 323.66667652130127,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3198409.3ebdec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3198409.3ebdec",\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 required to be SOTN CreateVPNNetworkInstance for svc-action=create\" />\n",\r
+        "comments": "",\r
+        "x": 1224.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ee1459dc.d090c8",\r
+        "type": "other",\r
+        "name": "DeleteSDWANVpnInstance",\r
+        "xml": "<outcome value='DeleteSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 945.0634384155273,\r
+        "y": 1073.698395729065,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "773b0668.3dfda8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "640b4312.a9c5ac",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.6189804077148,\r
+        "y": 1149.920636177063,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "20eafb56.ca5e14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "20eafb56.ca5e14",\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 required to be SOTN DeleteVPNNetworkInstance for svc-action=delete\" />\n",\r
+        "comments": "",\r
+        "x": 1020.9524002075195,\r
+        "y": 1152.0317735671997,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "773b0668.3dfda8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1168.9523086547852,\r
+        "y": 1079.9206190109253,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "eb92e3d.8a6ff2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7c5bf00.510dc",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520.4285774230957,\r
+        "y": 560.7143135070801,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aa89a015.4408d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa89a015.4408d",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 703.2857437133789,\r
+        "y": 557.8571634292603,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c1f6d379.b3eef",\r
+                "89075fc5.672ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c1f6d379.b3eef",\r
+        "type": "other",\r
+        "name": "ActivateSDWANVpnInstance",\r
+        "xml": "<outcome value='ActivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 956.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ce665d03.3901d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89075fc5.672ae",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c6e2911c.5f916"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6e2911c.5f916",\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 required to be SOTN ActivateVPNNetworkInstance for svc-action=activate\" />\n",\r
+        "comments": "",\r
+        "x": 1044.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ce665d03.3901d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1187.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b3df3a7b.216bd8",\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "57bd5824.2497c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c598159a.7423c8",\r
+        "type": "other",\r
+        "name": "DeactivateSDWANVpnInstance",\r
+        "xml": "<outcome value='DeactivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 942.9206390380859,\r
+        "y": 908.1429328918457,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "50af0272.e02a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e01173d7.fe6b9",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.9206314086914,\r
+        "y": 977.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d14295e9.c68018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d14295e9.c68018",\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 required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate\" />\n",\r
+        "comments": "",\r
+        "x": 1038.9206466674805,\r
+        "y": 978.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aec7db3f.798358",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.7776947021484,\r
+        "y": 910.6188039779663,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c598159a.7423c8",\r
+                "e01173d7.fe6b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7708172.24701",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.5554962158203,\r
+        "y": 1076.9523208141327,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ee1459dc.d090c8",\r
+                "640b4312.a9c5ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50af0272.e02a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1202.888786315918,\r
+        "y": 910.9523277282715,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "c2db488a.b105a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "82048a2c.348118",\r
+        "type": "other",\r
+        "name": "CreateSDWANVpnInstance",\r
+        "xml": "<outcome value='CreateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1172.499984741211,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7a0b5551.c75d9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a0b5551.c75d9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1407.49995803833,\r
+        "y": 275.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3f52a78f.7ab728"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f52a78f.7ab728",\r
+        "type": "for",\r
+        "name": "for loop i - vpn vf input parameters",\r
+        "xml": "<for index=\"i\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.000015258789,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d37b6b2c.71fb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d37b6b2c.71fb38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1846.5000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ec108e6.32a3b8",\r
+                "a16aa1da.005f3",\r
+                "3a20c40b.dcc4cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ec108e6.32a3b8",\r
+        "type": "set",\r
+        "name": "clear tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",\r
+        "comments": "",\r
+        "x": 2029.5000228881836,\r
+        "y": 237.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a16aa1da.005f3",\r
+        "type": "set",\r
+        "name": "set tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`\"/>\n",\r
+        "comments": "",\r
+        "x": 2024.0000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a20c40b.dcc4cc",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$tmp.name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2024.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3280408b.66ab3",\r
+                "63ad3611.30c718",\r
+                "2eab978e.1492a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d22ab892.eef718",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$tmp.value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2484.0001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b07f67fa.6ab208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2eab978e.1492a8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 335.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "5967794c.72e8b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5967794c.72e8b8",\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=\"`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2418.5003623962402,\r
+        "y": 334.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3280408b.66ab3",\r
+        "type": "other",\r
+        "name": "name",\r
+        "xml": "<outcome value='name'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 219.66667330265045,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63ad3611.30c718",\r
+        "type": "other",\r
+        "name": "topology",\r
+        "xml": "<outcome value='topology'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2255.500114440918,\r
+        "y": 273.333335518837,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b07f67fa.6ab208",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2627.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3ecabf5c.8d652"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ecabf5c.8d652",\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=\"`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2785.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b3df3a7b.216bd8",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.3889541625977,\r
+        "y": 576.9999761581421,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "37913775.d258a8",\r
+                "8c9e338f.0d83c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37913775.d258a8",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.0000228881836,\r
+        "y": 556.666711807251,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7c4231f0.9cbb7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c4231f0.9cbb7",\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=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1924.0000228881836,\r
+        "y": 557.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c9e338f.0d83c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1726.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6f61e8c.9dd35"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6f61e8c.9dd35",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1887.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9317c153.6ccad",\r
+                "bdedbaa4.65e588"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9317c153.6ccad",\r
+        "type": "for",\r
+        "name": "for nidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2150.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1fade275.78b10e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fade275.78b10e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n    \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2436.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "99a1d82a.9dd8c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99a1d82a.9dd8c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2606.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "39ae6a67.1c8296"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70e3cfee.6e895",\r
+        "type": "set",\r
+        "name": "set tmp.nidx and ctx.network-data",\r
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 3007.50008392334,\r
+        "y": 574.6667140722275,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1412cffb.8d463",\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=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 2364.0000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fbeeeb3e.43c3b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2226.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1412cffb.8d463"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdedbaa4.65e588",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.nidx ",\r
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2072.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "fbeeeb3e.43c3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57bd5824.2497c8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1451.6667098999023,\r
+        "y": 656.5555486679077,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "719dd138.28ef4",\r
+                "2dca8a18.a65586"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "719dd138.28ef4",\r
+        "type": "outcome",\r
+        "name": "outcome Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.5001258850098,\r
+        "y": 656.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "94e9cf1a.6c399"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dca8a18.a65586",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1716.5001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2c8432e2.7a0b8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c8432e2.7a0b8e",\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=\"`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1874.0001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4bebf6c.2b4fa",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1398.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ad9b806.2c19b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ad9b806.2c19b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1626.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b7b28733.f37c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7b28733.f37c08",\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=\"network-request-input.network-input-parameters.name is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1764.0000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30507c3b.465aa4",\r
+        "type": "execute",\r
+        "name": "execute requiredParameters",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"vf-module-topology-operation-input.vf-module-information.vf-module-id\" value=\"$vf-module-topology-operation-input.vf-module-information.vf-module-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1433.0000228881836,\r
+        "y": 477.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2db488a.b105a8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.8332748413086,\r
+        "y": 906.5555257797241,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "cf4b307b.b1b04",\r
+                "acc49742.fd0df8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf4b307b.b1b04",\r
+        "type": "outcome",\r
+        "name": "outcome Active",\r
+        "xml": "<outcome value='Active'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1753.166648864746,\r
+        "y": 880.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e31a54a2.3ff1f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acc49742.fd0df8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1723.166648864746,\r
+        "y": 920.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "bc3125bf.c135a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc3125bf.c135a8",\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=\"`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n    ",\r
+        "comments": "",\r
+        "x": 1889.166648864746,\r
+        "y": 922.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb92e3d.8a6ff2",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1468.7221908569336,\r
+        "y": 1077.6666097640991,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "4005e1e5.db606",\r
+                "3f0b16e4.30f1ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4005e1e5.db606",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1768.7222518920898,\r
+        "y": 1045.444405555725,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e99f233c.ef676"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f0b16e4.30f1ca",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1712.055564880371,\r
+        "y": 1092.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "26e244b4.b2362c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26e244b4.b2362c",\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=\"`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1878.055564880371,\r
+        "y": 1094.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "94e9cf1a.6c399",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1940.5001029968262,\r
+        "y": 657.6666488647461,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e31a54a2.3ff1f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1953.1665267944336,\r
+        "y": 879.1481161117554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e99f233c.ef676",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1984.277732849121,\r
+        "y": 1045.8147420883179,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "39ae6a67.1c8296",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2756.666534423828,\r
+        "y": 574.0000190734863,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "70e3cfee.6e895"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc20a4d8.66ea78",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.0065307617188,\r
+        "y": 121.24849605560303,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ae64d058.26533"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae64d058.26533",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1151.0065116882324,\r
+        "y": 120.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d4c5df8d.2e7e3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4c5df8d.2e7e3",\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=\"vnf entry not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1300.4352378845215,\r
+        "y": 121.39140319824219,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "376a189c.5eea28",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 951.0379104614258,\r
+        "y": 183.51763439178467,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "891fced5.d7d06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "891fced5.d7d06",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189.0065269470215,\r
+        "y": 183.2484917640686,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2828372d.9354b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2828372d.9354b8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1404.0065116882324,\r
+        "y": 181.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "56c573f0.8eef8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56c573f0.8eef8c",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1568.0065116882324,\r
+        "y": 176.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.json
new file mode 100644 (file)
index 0000000..8a96be9
--- /dev/null
@@ -0,0 +1,551 @@
+[\r
+    {\r
+        "id": "5f7afc20.704254",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 164.00390625,\r
+        "y": 81.99999871850014,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "d406ff84.ce98e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d406ff84.ce98e",\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": 309.00391006469727,\r
+        "y": 163.00001588463783,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "de9e8cab.e6f6e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de9e8cab.e6f6e",\r
+        "type": "method",\r
+        "name": "sdwan-get-vf-module-device-param",\r
+        "xml": "<method rpc='sdwan-get-vf-module-device-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 297.0040283203125,\r
+        "y": 250.99999871850014,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "d35337b3.c33088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d35337b3.c33088",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 304.00392150878906,\r
+        "y": 337.00005689263344,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "768c22f7.0cb24c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "768c22f7.0cb24c",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 340.6706848144531,\r
+        "y": 419.66665330529213,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "e9dd53c5.9b95c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9dd53c5.9b95c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 598.9982223510742,\r
+        "y": 415.99431481957436,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "32b23dbd.651cc2",\r
+                "a532fa29.a02ba8",\r
+                "a0a56af7.f42cf8",\r
+                "9b473841.95e738",\r
+                "6e94beb9.da533",\r
+                "f818f130.64cf3",\r
+                "833242d8.e1a62",\r
+                "463a228c.d26a9c",\r
+                "e732bba8.4d48f8",\r
+                "88a6e509.9d3208",\r
+                "b49703f2.4b839"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "32b23dbd.651cc2",\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": 806.4988403320312,\r
+        "y": 707.9948875010014,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a0a56af7.f42cf8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 834.4979286193848,\r
+        "y": 260.9942981302738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "46f8e7aa.98fa98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46f8e7aa.98fa98",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 976.4979286193848,\r
+        "y": 261.9942981302738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "f768ea22.72bf98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f768ea22.72bf98",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.device.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1110.4979286193848,\r
+        "y": 262.59430423378944,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a532fa29.a02ba8",\r
+        "type": "switchNode",\r
+        "name": "switch esn",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'esn'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 827.3376741409302,\r
+        "y": 297.99423709511757,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "12a81e82.d1a6f1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12a81e82.d1a6f1",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.3376741409302,\r
+        "y": 297.99423709511757,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "a977ec3e.312ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a977ec3e.312ec",\r
+        "type": "set",\r
+        "name": "set esn",\r
+        "xml": "<set>\n<parameter name='prop.device.esn' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1091.6710481643677,\r
+        "y": 297.45541873574257,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b473841.95e738",\r
+        "type": "switchNode",\r
+        "name": "switch type",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.3930940628052,\r
+        "y": 372.9571887552738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "3ec28d96.e420a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e94beb9.da533",\r
+        "type": "switchNode",\r
+        "name": "switch systemIp",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'systemIp'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.3931522369385,\r
+        "y": 464.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "2adae6a4.285e7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ec28d96.e420a2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.3930940628052,\r
+        "y": 372.9571887552738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "45b1ca2c.89f074"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45b1ca2c.89f074",\r
+        "type": "set",\r
+        "name": "set type",\r
+        "xml": "<set>\n<parameter name='prop.device.deviceModel' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1092.3930940628052,\r
+        "y": 372.55719485878944,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2adae6a4.285e7a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.3931522369385,\r
+        "y": 461.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "a141079c.b2f848"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a141079c.b2f848",\r
+        "type": "set",\r
+        "name": "set systemIp",\r
+        "xml": "<set>\n<parameter name='prop.device.systemIP' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1104.3931522369385,\r
+        "y": 460.55721202492714,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c177b296.16b4e",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.3931522369385,\r
+        "y": 497.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "1718a85d.d8d638"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f818f130.64cf3",\r
+        "type": "switchNode",\r
+        "name": "switch description",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 817.3931522369385,\r
+        "y": 500.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "c177b296.16b4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1718a85d.d8d638",\r
+        "type": "set",\r
+        "name": "set description",\r
+        "xml": "<set>\n<parameter name='prop.device.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1114.3931522369385,\r
+        "y": 496.55721202492714,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "833242d8.e1a62",\r
+        "type": "switchNode",\r
+        "name": "switch vendor",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vendor'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 804.7264375686646,\r
+        "y": 547.9572402536869,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "633adfee.bdc3d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "633adfee.bdc3d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972.7263956069946,\r
+        "y": 544.9571811258793,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "630caf06.a577a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "630caf06.a577a",\r
+        "type": "set",\r
+        "name": "set vendor",\r
+        "xml": "<set>\n<parameter name='prop.device.vendor' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1115.7263956069946,\r
+        "y": 543.5571872293949,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "463a228c.d26a9c",\r
+        "type": "switchNode",\r
+        "name": "switch class",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'class'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 828.4978942871094,\r
+        "y": 334.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "b2250b2e.750348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2250b2e.750348",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972.4978942871094,\r
+        "y": 334.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "810d94ea.a48138"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "810d94ea.a48138",\r
+        "type": "set",\r
+        "name": "set class",\r
+        "xml": "<set>\n<parameter name='prop.device.class' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1092.8312683105469,\r
+        "y": 334.45542445778847,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e732bba8.4d48f8",\r
+        "type": "switchNode",\r
+        "name": "switch version",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'version'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 826.4978942871094,\r
+        "y": 418.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "3d7ee8b7.466ab8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d7ee8b7.466ab8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972.4978942871094,\r
+        "y": 415.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "314ae7d6.dc68d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "314ae7d6.dc68d8",\r
+        "type": "set",\r
+        "name": "set version",\r
+        "xml": "<set>\n<parameter name='prop.device.version' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1115.4978942871094,\r
+        "y": 414.5942489206791,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "88a6e509.9d3208",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 818.4979629516602,\r
+        "y": 594.9942914545536,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "46303600.72a7ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46303600.72a7ac",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 974.4980506896973,\r
+        "y": 590.9943362772465,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "ba71d8b.57ad228"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba71d8b.57ad228",\r
+        "type": "set",\r
+        "name": "set deviceId",\r
+        "xml": "<set>\n<parameter name='prop.device.deviceId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1112.8317985534668,\r
+        "y": 579.4554721415043,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b49703f2.4b839",\r
+        "type": "switchNode",\r
+        "name": "switch sdncCreate",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'sdncCreate'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 813.497917175293,\r
+        "y": 640.9942537844181,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "7e203582.a2c85c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e203582.a2c85c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 978.4979782104492,\r
+        "y": 637.9943148195744,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "840a186.e7a4be8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "840a186.e7a4be8",\r
+        "type": "set",\r
+        "name": "set sdncCreate",\r
+        "xml": "<set>\n<parameter name='prop.device.sdncCreate' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1127.8317184448242,\r
+        "y": 636.4554354250431,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.json
new file mode 100644 (file)
index 0000000..4565c4d
--- /dev/null
@@ -0,0 +1,910 @@
+[\r
+    {\r
+        "id": "484180f6.294fb",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 121.00390625,\r
+        "y": 54.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "39a32e97.7d2bf2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "39a32e97.7d2bf2",\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": 299.00391006469727,\r
+        "y": 119.0039234161377,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "cdd33b78.958888"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdd33b78.958888",\r
+        "type": "method",\r
+        "name": "sdwan-get-vf-module-site-param",\r
+        "xml": "<method rpc='sdwan-get-vf-module-site-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 287.0040283203125,\r
+        "y": 207.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "3b8b7ba0.ba9d74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b8b7ba0.ba9d74",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 294.00392150878906,\r
+        "y": 293.0039644241333,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "cf281c73.11274"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf281c73.11274",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 330.6706848144531,\r
+        "y": 375.670560836792,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f885ce18.55215"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f885ce18.55215",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617.5042343139648,\r
+        "y": 293.00400829315186,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "4a5ce4fc.97fe0c",\r
+                "f4cc368c.35bde8",\r
+                "70d53de2.3d5724",\r
+                "b1d10119.2f141",\r
+                "6aa3af3.d91fd5",\r
+                "3a7c3a06.65f626",\r
+                "50debd23.9a1de4",\r
+                "4dc3fc8d.6fd204",\r
+                "b069280b.7f4bd8",\r
+                "5aa9fa90.43fe74",\r
+                "db390dd0.a9e2a",\r
+                "fd28eb0c.be3ba8",\r
+                "8406a399.f2e3e",\r
+                "b6ec51e3.02bd9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a5ce4fc.97fe0c",\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": 819.005012512207,\r
+        "y": 726.0046715736389,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f4cc368c.35bde8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.0039443969727,\r
+        "y": 89.003981590271,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "34b7e315.1a243c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "34b7e315.1a243c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 979.0039443969727,\r
+        "y": 90.003981590271,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "b4b588e9.e7c4f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b4b588e9.e7c4f8",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1113.0039443969727,\r
+        "y": 90.60398769378662,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "70d53de2.3d5724",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 833.0040512084961,\r
+        "y": 180.00393962860107,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "bd7892f2.73131"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd7892f2.73131",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1011.0040645599365,\r
+        "y": 183.00393962860107,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "a01e32db.c7d83"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a01e32db.c7d83",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1158.0040740966797,\r
+        "y": 182.60393524169922,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5aa9fa90.43fe74",\r
+        "type": "switchNode",\r
+        "name": "switch type",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 811.8997230529785,\r
+        "y": 477.9773893356323,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "1b07ddd4.378392"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69d26327.61da0c",\r
+        "type": "set",\r
+        "name": "set type",\r
+        "xml": "<set>\n<parameter name='prop.site.type' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n<parameter name='prop.site.sdwan' value='true' />",\r
+        "comments": "",\r
+        "x": 1463.8997840881348,\r
+        "y": 531.5773239135742,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "db390dd0.a9e2a",\r
+        "type": "switchNode",\r
+        "name": "switch role",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'role'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 810.8994369506836,\r
+        "y": 585.9774322509766,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "e69860a9.0015d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e69860a9.0015d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.8994445800781,\r
+        "y": 595.9773950576782,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "9cd4ca73.3ac2d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1d10119.2f141",\r
+        "type": "switchNode",\r
+        "name": "switch location-name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'location-name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 855.8992385864258,\r
+        "y": 221.9772481918335,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "8a7e81ba.e5188"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8a7e81ba.e5188",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1019.8994102478027,\r
+        "y": 221.9772491455078,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f5bb619c.343e3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5bb619c.343e3",\r
+        "type": "set",\r
+        "name": "set location-name",\r
+        "xml": "<set>\n<parameter name='prop.site.location-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1181.8994216918945,\r
+        "y": 221.5773057937622,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6aa3af3.d91fd5",\r
+        "type": "switchNode",\r
+        "name": "switch address",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'address'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.8992385864258,\r
+        "y": 257.97725200653076,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "3614458a.d4ba8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3614458a.d4ba8a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1008.8990859985352,\r
+        "y": 265.97725105285645,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "8230e765.9acfa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8230e765.9acfa8",\r
+        "type": "set",\r
+        "name": "set location-address",\r
+        "xml": "<set>\n<parameter name='prop.site.location-address' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1196.8992614746094,\r
+        "y": 261.57722663879395,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a7c3a06.65f626",\r
+        "type": "switchNode",\r
+        "name": "switch postcode",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'postcode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 839.8992385864258,\r
+        "y": 299.9772129058838,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "17049263.1424ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17049263.1424ae",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1004.8994102478027,\r
+        "y": 298.9772129058838,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "6c71f682.a61eb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6c71f682.a61eb8",\r
+        "type": "set",\r
+        "name": "set location-postcode",\r
+        "xml": "<set>\n<parameter name='prop.site.location-postcode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1191.8992614746094,\r
+        "y": 300.5772294998169,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fd28eb0c.be3ba8",\r
+        "type": "switchNode",\r
+        "name": "switch controlPoint",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'controlPoint'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 829.7826614379883,\r
+        "y": 646.0042333602905,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "e84b540.ad3b8b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e84b540.ad3b8b",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 991.782585144043,\r
+        "y": 642.0042562484741,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "6a601537.4b319c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2a19a82.68d928",\r
+        "type": "set",\r
+        "name": "set role",\r
+        "xml": "<set>\n<parameter name='prop.site.role' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1363.7827529907227,\r
+        "y": 570.0042057037354,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f2bf7a.aeab3088",\r
+        "type": "set",\r
+        "name": "set controlPoint",\r
+        "xml": "<set>\n<parameter name='prop.site.controlPoint' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1737.7825927734375,\r
+        "y": 689.0043344497681,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a54dec2e.97d4",\r
+        "type": "execute",\r
+        "name": "execute split roles",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.site.role`'/>\n<parameter name=\"regex\" value=\",\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"prop.site.roles\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1391.448959350586,\r
+        "y": 619.0040884017944,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cd4ca73.3ac2d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1138.4490966796875,\r
+        "y": 599.0040884017944,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "b2a19a82.68d928",\r
+                "a54dec2e.97d4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba801506.77df48",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1555.4490089416504,\r
+        "y": 709.0040903091431,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f2bf7a.aeab3088",\r
+                "7b2bb6bb.83c9d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b2bb6bb.83c9d8",\r
+        "type": "execute",\r
+        "name": "execute split control points",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.site.controlPoint`'/>\n<parameter name=\"regex\" value=\",\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"prop.site.controlpoints\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1762.4490699768066,\r
+        "y": 741.0041942596436,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "50debd23.9a1de4",\r
+        "type": "switchNode",\r
+        "name": "switch latitude",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'latitude'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 830.1155471801758,\r
+        "y": 344.00399017333984,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "58f650e6.ada6d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58f650e6.ada6d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.1153945922852,\r
+        "y": 339.00394916534424,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "536b62b7.33ab7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "536b62b7.33ab7c",\r
+        "type": "set",\r
+        "name": "set location-latitude",\r
+        "xml": "<set>\n<parameter name='prop.site.location-latitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1180.1154022216797,\r
+        "y": 337.60396575927734,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4dc3fc8d.6fd204",\r
+        "type": "switchNode",\r
+        "name": "switch longitude",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'longitude'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 833.1155471801758,\r
+        "y": 384.0040330886841,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f395b1da.86ab9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f395b1da.86ab9",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1005.1155548095703,\r
+        "y": 379.004075050354,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "7695df92.1105c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7695df92.1105c",\r
+        "type": "set",\r
+        "name": "set location-longitude",\r
+        "xml": "<set>\n<parameter name='prop.site.location-longitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1187.1154098510742,\r
+        "y": 382.60392665863037,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "650d8fc0.b6389",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 996.1155548095703,\r
+        "y": 429.00407791137695,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "8334f7f2.2699d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0f32787.0608d8",\r
+        "type": "set",\r
+        "name": "set emails",\r
+        "xml": "<set>\n<parameter name='prop.site.emails' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1354.115249633789,\r
+        "y": 397.6039299964905,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b069280b.7f4bd8",\r
+        "type": "switchNode",\r
+        "name": "switch emails",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'emails'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 823.1156234741211,\r
+        "y": 429.00407791137695,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "650d8fc0.b6389"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb890556.5aec68",\r
+        "type": "execute",\r
+        "name": "execute split emails",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.site.emails`'/>\n<parameter name=\"regex\" value=\",\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"prop.site.email\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1379.781593322754,\r
+        "y": 444.00383281707764,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8334f7f2.2699d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1158.1155624389648,\r
+        "y": 430.0039954185486,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "d0f32787.0608d8",\r
+                "cb890556.5aec68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8406a399.f2e3e",\r
+        "type": "switchNode",\r
+        "name": "switch description",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836.0039291381836,\r
+        "y": 133.0039103301242,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "df39a5b0.38ab18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df39a5b0.38ab18",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.00390625,\r
+        "y": 135.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "77e9385a.343e78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "77e9385a.343e78",\r
+        "type": "set",\r
+        "name": "set description",\r
+        "xml": "<set>\n<parameter name='prop.site.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1126.0039825439453,\r
+        "y": 135.60393619537354,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bbcae826.787888",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1353.00394821167,\r
+        "y": 483.00396156311035,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "b7d9fe5a.8e045"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4964090b.461a88",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1336.5042762756348,\r
+        "y": 531.0039215087891,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "69d26327.61da0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b07ddd4.378392",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 949.8996047973633,\r
+        "y": 477.97730827331543,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "dc18071d.1bddd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc18071d.1bddd8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1066.0039367675781,\r
+        "y": 480.00392055511475,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "46e35b04.b2e184"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46e35b04.b2e184",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1196.0039405822754,\r
+        "y": 512.0039196014404,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "bbcae826.787888",\r
+                "4964090b.461a88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7d9fe5a.8e045",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1492.0039520263672,\r
+        "y": 483.00391960144043,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a601537.4b319c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1129.00390625,\r
+        "y": 655.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f5a10a50.3b7ee8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5a10a50.3b7ee8",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1259.0039100646973,\r
+        "y": 687.0039052963257,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "9d775805.ce9a18",\r
+                "603a4c12.7819c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d775805.ce9a18",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1416.0039176940918,\r
+        "y": 658.0039472579956,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "73c6eb1d.a33c74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "603a4c12.7819c4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1399.5042457580566,\r
+        "y": 706.0039072036743,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "ba801506.77df48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73c6eb1d.a33c74",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1555.003921508789,\r
+        "y": 658.0039052963257,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6ec51e3.02bd9",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic2.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'vf-module-site-params'\"/>\n<parameter name=\"field3\" value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 824.0000228881836,\r
+        "y": 33,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
index dbd911b..30ccba9 100644 (file)
-[
-  {
-    "id": "439a8dde.a54294",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 95,
-    "y": 67,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "885d7f3c.d7635"
-      ]
-    ]
-  },
-  {
-    "id": "885d7f3c.d7635",
-    "type": "service-logic",
-    "name": "GENERIC-RESOURCE-API ${project.version}",
-    "module": "GENERIC-RESOURCE-API",
-    "version": "${project.version}",
-    "comments": "",
-    "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}'>",
-    "outputs": 1,
-    "x": 307.00000381469727,
-    "y": 139.0000171661377,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "715e2390.5052fc"
-      ]
-    ]
-  },
-  {
-    "id": "715e2390.5052fc",
-    "type": "method",
-    "name": "sdwan-get-wan-param",
-    "xml": "<method rpc='sdwan-get-wan-param' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 295.0001220703125,
-    "y": 227,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "9d4aea5e.ef6f48"
-      ]
-    ]
-  },
-  {
-    "id": "9d4aea5e.ef6f48",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 302.00001525878906,
-    "y": 313.0000581741333,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "6b944277.796b7c"
-      ]
-    ]
-  },
-  {
-    "id": "6b944277.796b7c",
-    "type": "for",
-    "name": "for each sdwan-get-request-input-param",
-    "xml": "<for index='idx' start='0' end='`$vnf-request-input.vnf-input-parameters.param_length`' >\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 338.6667785644531,
-    "y": 395.666654586792,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "37470750.b03bb8"
-      ]
-    ]
-  },
-  {
-    "id": "37470750.b03bb8",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 603.5002822875977,
-    "y": 305.00004625320435,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "7ac07f9d.deb5a",
-        "f51dc11b.c63d",
-        "390047c.48de9b8",
-        "19863ae8.c2ed05",
-        "a84af135.691bc",
-        "40a2ce76.5acb8",
-        "743ccae1.1d4ed4",
-        "da2a6768.0f1b08",
-        "937e7e7c.abe2b",
-        "d7a63229.55ffb",
-        "52f8113f.08404",
-        "dd33b364.8ca5b",
-        "edbcab35.7a44e8",
-        "d34e678f.eeed98",
-        "54c67966.b6a9c8"
-      ]
-    ]
-  },
-  {
-    "id": "7ac07f9d.deb5a",
-    "type": "returnSuccess",
-    "name": "return success",
-    "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",
-    "comments": "",
-    "x": 837.0006408691406,
-    "y": 671.0003890991211,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "a84af135.691bc",
-    "type": "switchNode",
-    "name": "switch deviceName",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'deviceName'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 836.0000877380371,
-    "y": 220.00005626678467,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "e491e463.e045e8"
-      ]
-    ]
-  },
-  {
-    "id": "e491e463.e045e8",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1038.000494003296,
-    "y": 221.00012683868408,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "946002ca.03b1f"
-      ]
-    ]
-  },
-  {
-    "id": "946002ca.03b1f",
-    "type": "set",
-    "name": "set deviceName",
-    "xml": "<set>\n<parameter name='prop.wan.deviceName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1190.0005569458008,
-    "y": 218.60021209716797,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "d7a63229.55ffb",
-    "type": "switchNode",
-    "name": "switch vlanId",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'vlanId'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 828.8402290344238,
-    "y": 406.00011920928955,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "d3962f14.7c3b3"
-      ]
-    ]
-  },
-  {
-    "id": "d3962f14.7c3b3",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1013.8403167724609,
-    "y": 404.0001497268677,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "1b718234.ee52ce"
-      ]
-    ]
-  },
-  {
-    "id": "1b718234.ee52ce",
-    "type": "set",
-    "name": "set vlanId",
-    "xml": "<set>\n<parameter name='prop.wan.vlanId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1161.1742248535156,
-    "y": 401.4614086151123,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "390047c.48de9b8",
-    "type": "switchNode",
-    "name": "switch name",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 833.8951606750488,
-    "y": 149.97332763671875,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "eba68f46.eff61"
-      ]
-    ]
-  },
-  {
-    "id": "eba68f46.eff61",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1021.8952484130859,
-    "y": 150.97335720062256,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "7dfe338e.aacb9c"
-      ]
-    ]
-  },
-  {
-    "id": "7dfe338e.aacb9c",
-    "type": "set",
-    "name": "set name",
-    "xml": "<set>\n<parameter name='prop.wan.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1171.8954982757568,
-    "y": 145.57343292236328,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "da2a6768.0f1b08",
-    "type": "switchNode",
-    "name": "switch ipAddress",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'ipAddress'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 832.8954048156738,
-    "y": 332.37682247161865,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "d6f71f04.c7866"
-      ]
-    ]
-  },
-  {
-    "id": "d6f71f04.c7866",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1026.895652770996,
-    "y": 333.37677097320557,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "65be0cd2.03f094"
-      ]
-    ]
-  },
-  {
-    "id": "65be0cd2.03f094",
-    "type": "set",
-    "name": "set ipAddress",
-    "xml": "<set>\n<parameter name='prop.wan.ipAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1179.2295608520508,
-    "y": 331.8380317687988,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "937e7e7c.abe2b",
-    "type": "switchNode",
-    "name": "switch providerIpAddress",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'providerIpAddress'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 864.895565032959,
-    "y": 367.3767442703247,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "d6c02774.fd7328"
-      ]
-    ]
-  },
-  {
-    "id": "d6c02774.fd7328",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1040.8958168029785,
-    "y": 367.3766899108887,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "86d16286.a90f7"
-      ]
-    ]
-  },
-  {
-    "id": "86d16286.a90f7",
-    "type": "set",
-    "name": "set providerIpAddress",
-    "xml": "<set>\n<parameter name='prop.wan.providerIpAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1207.2294006347656,
-    "y": 367.8378715515137,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "dd33b364.8ca5b",
-    "type": "switchNode",
-    "name": "switch inputBandwidth",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'inputBandwidth'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 855.8953742980957,
-    "y": 479.3765506744385,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "8c8b118b.1a16e"
-      ]
-    ]
-  },
-  {
-    "id": "8c8b118b.1a16e",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1032.8955726623535,
-    "y": 478.376615524292,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "52559144.3d725"
-      ]
-    ]
-  },
-  {
-    "id": "52559144.3d725",
-    "type": "set",
-    "name": "set inputBandwidth",
-    "xml": "<set>\n<parameter name='prop.wan.inputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1240.2293224334717,
-    "y": 472.8377799987793,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "edbcab35.7a44e8",
-    "type": "switchNode",
-    "name": "switch outputBandwidth",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'outputBandwidth'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 861.8953742980957,
-    "y": 518.3765506744385,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "9785a401.84f478"
-      ]
-    ]
-  },
-  {
-    "id": "9785a401.84f478",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1045.8955707550049,
-    "y": 518.3766593933105,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "29877f00.328f52"
-      ]
-    ]
-  },
-  {
-    "id": "29877f00.328f52",
-    "type": "set",
-    "name": "set outputBandwidth",
-    "xml": "<set>\n<parameter name='prop.wan.outputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1242.2293453216553,
-    "y": 511.8377628326416,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "19863ae8.c2ed05",
-    "type": "switchNode",
-    "name": "switch description",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'description'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 840.8953132629395,
-    "y": 183.3767032623291,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "c907441.ebe9bb8"
-      ]
-    ]
-  },
-  {
-    "id": "c907441.ebe9bb8",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1032.8955574035645,
-    "y": 184.3767328262329,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "1126e041.4a24d"
-      ]
-    ]
-  },
-  {
-    "id": "1126e041.4a24d",
-    "type": "set",
-    "name": "set description",
-    "xml": "<set>\n<parameter name='prop.wan.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1183.2295608520508,
-    "y": 183.8379421234131,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "743ccae1.1d4ed4",
-    "type": "switchNode",
-    "name": "switch portNumber",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portNumber'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 844.228572845459,
-    "y": 291.9943332672119,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "ebcd50b1.0b3d6"
-      ]
-    ]
-  },
-  {
-    "id": "ebcd50b1.0b3d6",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1035.228744506836,
-    "y": 294.9943628311157,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "a1a449ce.d26a18"
-      ]
-    ]
-  },
-  {
-    "id": "a1a449ce.d26a18",
-    "type": "set",
-    "name": "set portNumber",
-    "xml": "<set>\n<parameter name='prop.wan.portNumber' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1189.2290725708008,
-    "y": 294.5943775177002,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "40a2ce76.5acb8",
-    "type": "switchNode",
-    "name": "switch portType",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portType'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 834.1236763000488,
-    "y": 255.96763801574707,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "6ea5c966.7c8868"
-      ]
-    ]
-  },
-  {
-    "id": "6ea5c966.7c8868",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1029.123764038086,
-    "y": 255.96766757965088,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "f40a6475.4548d8"
-      ]
-    ]
-  },
-  {
-    "id": "f40a6475.4548d8",
-    "type": "set",
-    "name": "set portType",
-    "xml": "<set>\n<parameter name='prop.wan.portType' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1176.1240921020508,
-    "y": 256.56768226623535,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "90cd2791.ea5778",
-    "type": "set",
-    "name": "set transportnetworkName",
-    "xml": "<set>\n<parameter name='prop.wan.transportNetworkName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1288.9998302459717,
-    "y": 437.38701152801514,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "c9247859.1c5528",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1077.6659240722656,
-    "y": 438.92592906951904,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "90cd2791.ea5778"
-      ]
-    ]
-  },
-  {
-    "id": "52f8113f.08404",
-    "type": "switchNode",
-    "name": "switch transportnetworkName",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'transportNetworkName'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 878.6657485961914,
-    "y": 442.9256591796875,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "c9247859.1c5528"
-      ]
-    ]
-  },
-  {
-    "id": "f51dc11b.c63d",
-    "type": "switchNode",
-    "name": "switch id",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'id'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 825.999340057373,
-    "y": 117.38670539855957,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "ebf6555a.abbb88"
-      ]
-    ]
-  },
-  {
-    "id": "ebf6555a.abbb88",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1026.9994812011719,
-    "y": 115.3867359161377,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "1a802dda.2caca2"
-      ]
-    ]
-  },
-  {
-    "id": "1a802dda.2caca2",
-    "type": "set",
-    "name": "set id",
-    "xml": "<set>\n<parameter name='prop.wan.id' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1168.999828338623,
-    "y": 110.98684310913086,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "d34e678f.eeed98",
-    "type": "switchNode",
-    "name": "switch devicePortId",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'devicePortId'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 847.0000610351562,
-    "y": 563.0000381469727,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "67b4d68f.872058"
-      ]
-    ]
-  },
-  {
-    "id": "67b4d68f.872058",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1046.0002269744873,
-    "y": 557.000114440918,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "8e605ff5.22a2d"
-      ]
-    ]
-  },
-  {
-    "id": "8e605ff5.22a2d",
-    "type": "set",
-    "name": "set devicePortId",
-    "xml": "<set>\n<parameter name='prop.wan.devicePortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1245.3339710235596,
-    "y": 556.4612121582031,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "54c67966.b6a9c8",
-    "type": "switchNode",
-    "name": "switch wanPortId",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'wanPortId'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 837.0000610351562,
-    "y": 599.0000400543213,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "cda45636.504778"
-      ]
-    ]
-  },
-  {
-    "id": "cda45636.504778",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1048.0002250671387,
-    "y": 592.0001173019409,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "651ea7f2.7fd2a8"
-      ]
-    ]
-  },
-  {
-    "id": "651ea7f2.7fd2a8",
-    "type": "set",
-    "name": "set wanPortId",
-    "xml": "<set>\n<parameter name='prop.wan.wanPortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1245.3339710235596,
-    "y": 596.4612121582031,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  }
-]
+[\r
+    {\r
+        "id": "818160d.1a87aa",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 116.01041412353516,\r
+        "y": 49.010414123535156,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "2c87f750.9ff0e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c87f750.9ff0e8",\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": 253.01041793823242,\r
+        "y": 154.0104274749756,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "ff163fb7.14832"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff163fb7.14832",\r
+        "type": "method",\r
+        "name": "sdwan-get-wan-param",\r
+        "xml": "<method rpc='sdwan-get-wan-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 241.01053619384766,\r
+        "y": 242.0104103088379,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "352c95ce.453cea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "352c95ce.453cea",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 248.01042938232422,\r
+        "y": 328.0104684829712,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "52293f30.d5b77"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "52293f30.d5b77",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 284.6771926879883,\r
+        "y": 410.6770648956299,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "e8d20d4.02e64f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8d20d4.02e64f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 549.5106964111328,\r
+        "y": 320.01045656204224,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "2847b0ea.9ebb",\r
+                "d4feaef6.6438f",\r
+                "3e47338e.c3ab3c",\r
+                "91d20588.adacd8",\r
+                "43f318cb.2f4418",\r
+                "49351eca.09882",\r
+                "a41eaf2.439f75",\r
+                "9005e8e9.34f768",\r
+                "a55d2183.cf6a",\r
+                "c8c85e46.4f10f",\r
+                "286e48cc.e48988",\r
+                "383fea5a.143066",\r
+                "18a75045.9bb5e",\r
+                "60fcaabc.ca5bf4",\r
+                "d17b4c90.52ccd",\r
+                "2a13a6a0.eb644a",\r
+                "19ce9dfd.f8a2f2",\r
+                "a399cdca.37b7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2847b0ea.9ebb",\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": 781.0111198425293,\r
+        "y": 804.0109233856201,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "43f318cb.2f4418",\r
+        "type": "switchNode",\r
+        "name": "switch deviceName",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.0105018615723,\r
+        "y": 235.01046657562256,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "510fde76.25775"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "510fde76.25775",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 984.010908126831,\r
+        "y": 236.01053714752197,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "bacc1950.a6e0e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bacc1950.a6e0e8",\r
+        "type": "set",\r
+        "name": "set deviceName",\r
+        "xml": "<set>\n<parameter name='prop.wan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1148.0111656188965,\r
+        "y": 232.6106538772583,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c8c85e46.4f10f",\r
+        "type": "switchNode",\r
+        "name": "switch vlanId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 763.8506278991699,\r
+        "y": 465.01052474975586,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "5ea3c659.f0cd28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ea3c659.f0cd28",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 948.850715637207,\r
+        "y": 463.010555267334,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "a7e47063.77624"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7e47063.77624",\r
+        "type": "set",\r
+        "name": "set vlanId",\r
+        "xml": "<set>\n<parameter name='prop.wan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1096.1846237182617,\r
+        "y": 460.4718141555786,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e47338e.c3ab3c",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 779.905574798584,\r
+        "y": 164.98373794555664,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "69feffe1.51e2a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69feffe1.51e2a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967.9056625366211,\r
+        "y": 165.98376750946045,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "8d991bb4.b45f18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d991bb4.b45f18",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.wan.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1117.905912399292,\r
+        "y": 160.58384323120117,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9005e8e9.34f768",\r
+        "type": "switchNode",\r
+        "name": "switch ipAddress",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 767.9058036804199,\r
+        "y": 391.38722801208496,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "cf4b6fa5.dfd8b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf4b6fa5.dfd8b",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.9060516357422,\r
+        "y": 392.3871765136719,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "abac1fea.19c24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abac1fea.19c24",\r
+        "type": "set",\r
+        "name": "set ipAddress",\r
+        "xml": "<set>\n<parameter name='prop.wan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1114.2399597167969,\r
+        "y": 390.84843730926514,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a55d2183.cf6a",\r
+        "type": "switchNode",\r
+        "name": "switch providerIpAddress",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'providerIpAddress'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799.9059638977051,\r
+        "y": 426.387149810791,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "b70a8774.407208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b70a8774.407208",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975.9062156677246,\r
+        "y": 426.387095451355,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "a3935f63.e64dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a3935f63.e64dc",\r
+        "type": "set",\r
+        "name": "set providerIpAddress",\r
+        "xml": "<set>\n<parameter name='prop.wan.providerIpAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1142.2397994995117,\r
+        "y": 426.84827709198,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "383fea5a.143066",\r
+        "type": "switchNode",\r
+        "name": "switch inputBandwidth",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'inputBandwidth'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 790.9057731628418,\r
+        "y": 538.3869562149048,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "45b075bc.f36a3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45b075bc.f36a3c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967.9059715270996,\r
+        "y": 537.3870210647583,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "7f4d1606.062148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f4d1606.062148",\r
+        "type": "set",\r
+        "name": "set inputBandwidth",\r
+        "xml": "<set>\n<parameter name='prop.wan.inputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1175.2397212982178,\r
+        "y": 531.8481855392456,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18a75045.9bb5e",\r
+        "type": "switchNode",\r
+        "name": "switch outputBandwidth",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'outputBandwidth'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 796.9057731628418,\r
+        "y": 577.3869562149048,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "2be3aa98.e7daa6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2be3aa98.e7daa6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.905969619751,\r
+        "y": 577.3870649337769,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "7e2e3a9b.578594"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e2e3a9b.578594",\r
+        "type": "set",\r
+        "name": "set outputBandwidth",\r
+        "xml": "<set>\n<parameter name='prop.wan.outputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1177.2397441864014,\r
+        "y": 570.8481683731079,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "91d20588.adacd8",\r
+        "type": "switchNode",\r
+        "name": "switch description",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'description'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 786.9057273864746,\r
+        "y": 198.387113571167,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "8acddcca.d85a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8acddcca.d85a2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 978.9059715270996,\r
+        "y": 199.3871431350708,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "f82affc6.722b5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f82affc6.722b5",\r
+        "type": "set",\r
+        "name": "set description",\r
+        "xml": "<set>\n<parameter name='prop.wan.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1129.239974975586,\r
+        "y": 198.84835243225098,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a41eaf2.439f75",\r
+        "type": "switchNode",\r
+        "name": "switch portNumber",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 779.2389717102051,\r
+        "y": 351.0047388076782,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "9190cac8.65bcb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9190cac8.65bcb8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 970.239143371582,\r
+        "y": 354.00476837158203,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "bc0c9c4f.ffd6c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc0c9c4f.ffd6c",\r
+        "type": "set",\r
+        "name": "set portNumber",\r
+        "xml": "<set>\n<parameter name='prop.wan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1124.2394714355469,\r
+        "y": 353.6047830581665,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49351eca.09882",\r
+        "type": "switchNode",\r
+        "name": "switch portType",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 780.134090423584,\r
+        "y": 270.97804832458496,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "9c7436d2.ff2978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c7436d2.ff2978",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975.1341781616211,\r
+        "y": 270.97807788848877,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "45817322.3ae1fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45817322.3ae1fc",\r
+        "type": "set",\r
+        "name": "set portType",\r
+        "xml": "<set>\n<parameter name='prop.wan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1122.134506225586,\r
+        "y": 271.57809257507324,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9e43e20.584a3",\r
+        "type": "set",\r
+        "name": "set transportnetworkName",\r
+        "xml": "<set>\n<parameter name='prop.wan.transportNetworkName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1224.0102291107178,\r
+        "y": 496.39741706848145,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "878c2a18.4ab5f8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1012.6763229370117,\r
+        "y": 497.93633460998535,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "c9e43e20.584a3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "286e48cc.e48988",\r
+        "type": "switchNode",\r
+        "name": "switch transportnetworkName",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'transportNetworkName'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 813.6761474609375,\r
+        "y": 501.9360647201538,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "878c2a18.4ab5f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4feaef6.6438f",\r
+        "type": "switchNode",\r
+        "name": "switch id",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772.0097541809082,\r
+        "y": 132.39711570739746,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "c4e97c71.2edee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c4e97c71.2edee",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 973.009895324707,\r
+        "y": 130.3971462249756,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "fa0065d4.357e68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa0065d4.357e68",\r
+        "type": "set",\r
+        "name": "set id",\r
+        "xml": "<set>\n<parameter name='prop.wan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1115.0102424621582,\r
+        "y": 125.99725341796875,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60fcaabc.ca5bf4",\r
+        "type": "switchNode",\r
+        "name": "switch devicePortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.0104598999023,\r
+        "y": 622.010443687439,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "642147fe.576a98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "642147fe.576a98",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.0106258392334,\r
+        "y": 616.0105199813843,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "fd4863f3.2dd12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd4863f3.2dd12",\r
+        "type": "set",\r
+        "name": "set devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1180.3443698883057,\r
+        "y": 615.4716176986694,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d17b4c90.52ccd",\r
+        "type": "switchNode",\r
+        "name": "switch wanPortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'wanPortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772.0104598999023,\r
+        "y": 658.0104455947876,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "f3f82bbf.a22db8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3f82bbf.a22db8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983.0106239318848,\r
+        "y": 651.0105228424072,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "9cec917d.42e1c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cec917d.42e1c",\r
+        "type": "set",\r
+        "name": "set wanPortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.wanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1180.3443698883057,\r
+        "y": 655.4716176986694,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e6f5b113.db834",\r
+        "type": "set",\r
+        "name": "set apn",\r
+        "xml": "<set>\n<parameter name='prop.wan.apn-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1121.0000076293945,\r
+        "y": 310.01041412353516,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2a13a6a0.eb644a",\r
+        "type": "switchNode",\r
+        "name": "switch apn",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'apn'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 770.0000076293945,\r
+        "y": 309.01041412353516,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "cd547003.96af2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd547003.96af2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 965.0000953674316,\r
+        "y": 309.01044368743896,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "e6f5b113.db834"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19ce9dfd.f8a2f2",\r
+        "type": "switchNode",\r
+        "name": "switch publicIP",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'publicIP'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 768.0000305175781,\r
+        "y": 701.0104351043701,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "fadc805c.91335"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fadc805c.91335",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977.0002021789551,\r
+        "y": 696.010516166687,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "bda8c6bd.b7ac88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bda8c6bd.b7ac88",\r
+        "type": "set",\r
+        "name": "set publicIP",\r
+        "xml": "<set>\n<parameter name='prop.wan.publicIP' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1182.3338661193848,\r
+        "y": 694.4716167449951,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a399cdca.37b7a",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.0000305175781,\r
+        "y": 742.0104360580444,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "728b6eda.0249c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "728b6eda.0249c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977.0002822875977,\r
+        "y": 741.0105991363525,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "43404525.61dcfc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "43404525.61dcfc",\r
+        "type": "set",\r
+        "name": "set IPMode",\r
+        "xml": "<set>\n<parameter name='prop.wan.IPMode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1188.3339176177979,\r
+        "y": 739.471586227417,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.json
new file mode 100644 (file)
index 0000000..d02748c
--- /dev/null
@@ -0,0 +1,1123 @@
+[\r
+    {\r
+        "id": "66d617ca.7974e8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 166.00390625,\r
+        "y": 42.000000953674316,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "ec960184.8c747"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec960184.8c747",\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": 245.28961181640625,\r
+        "y": 104.23811054229736,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "b566667e.9703e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b566667e.9703e8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-device-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 257.00390625,\r
+        "y": 198.58634281158447,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "48de3c23.140fd4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "48de3c23.140fd4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 243.6705780029297,\r
+        "y": 383.6667146682739,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "9b8b15e3.9d27d8",\r
+                "22c945bf.bff90a",\r
+                "7a7ac9c1.d1c088",\r
+                "3bb5998d.d31786",\r
+                "6b9873c1.ed3cac",\r
+                "496cf1c2.09334",\r
+                "ab75124f.85f25",\r
+                "b9df134a.f3234",\r
+                "ad243b23.84cc68",\r
+                "d63a100a.4fb85",\r
+                "fba80bcb.537e38",\r
+                "45830f23.d0369",\r
+                "d2ac70a8.01bbc",\r
+                "104a605b.c517a",\r
+                "2b5c22d1.d99c1e",\r
+                "673290e1.c0902",\r
+                "4d09bded.34c944",\r
+                "d9f0bb67.a6d688"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22c945bf.bff90a",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 589.035270690918,\r
+        "y": 278.2691421508789,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "936d4e00.f8f0f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b8b15e3.9d27d8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 594.0039253234863,\r
+        "y": 217.0000114440918,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e59760b9.c5416"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e59760b9.c5416",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 774.00390625,\r
+        "y": 216.00000095367432,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "76bc4811.c948a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76bc4811.c948a8",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 923.4326324462891,\r
+        "y": 217.14291858673096,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "936d4e00.f8f0f",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 812.0039215087891,\r
+        "y": 279.0000071525574,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "70d6072a.9e11d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70d6072a.9e11d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1027.00390625,\r
+        "y": 277.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "ea0a9e13.79435"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea0a9e13.79435",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1191.00390625,\r
+        "y": 272.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7a7ac9c1.d1c088",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 639.0039138793945,\r
+        "y": 349.99999141693115,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "f88f2a92.99e738",\r
+                "cbbc80b7.cd82",\r
+                "d281c228.3bb21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbbc80b7.cd82",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.00390625,\r
+        "y": 384.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "3e09921b.36399e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f88f2a92.99e738",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 866.0039024353027,\r
+        "y": 331,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "3e09921b.36399e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e09921b.36399e",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1024.00390625,\r
+        "y": 344.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d281c228.3bb21",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.00390625,\r
+        "y": 445.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "8e3c57a1.dadbf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8c0936c1.7617c8",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1215.003921508789,\r
+        "y": 443.0000149011612,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8e3c57a1.dadbf8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1022.0039520263672,\r
+        "y": 441.99999237060547,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "8c0936c1.7617c8",\r
+                "28692055.9016f",\r
+                "a8eb8c24.f4a0f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28692055.9016f",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1234.003890991211,\r
+        "y": 495.99999141693115,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "73f639ab.d244b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73f639ab.d244b8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1477.00390625,\r
+        "y": 491.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "fdba254c.4c6898"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fdba254c.4c6898",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1675.0039348602295,\r
+        "y": 478.00000762939453,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e324ecda.ee495"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e324ecda.ee495",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1827.00390625,\r
+        "y": 480.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "a7ad0572.bfda18",\r
+                "1d9eaeb3.112c31",\r
+                "96aaf259.9b5e1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7ad0572.bfda18",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vf-module-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2076.004005432129,\r
+        "y": 474.0000033378601,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d9eaeb3.112c31",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2065.004005432129,\r
+        "y": 525.000036239624,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96aaf259.9b5e1",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2096.0042114257812,\r
+        "y": 572.0000371932983,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6b9873c1.ed3cac",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Provided alloted resource length\"/>\n<parameter name=\"field3\" value=\"'parameters length'\"/>\n<parameter name=\"field4\" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 554.0039806365967,\r
+        "y": 576.0000066757202,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3bb5998d.d31786",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.0351257324219,\r
+        "y": 523.016074180603,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "68156871.093ed8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68156871.093ed8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 725.4637680053711,\r
+        "y": 522.5874843597412,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "749cf44f.03bbfc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "749cf44f.03bbfc",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 874.8924942016602,\r
+        "y": 523.7304019927979,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b9df134a.f3234",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 585.0351448059082,\r
+        "y": 625.0160593986511,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa016c6e.8bda5",\r
+        "type": "comment",\r
+        "name": "make sure this VNF doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1307.4205932617188,\r
+        "y": 1212.2502059936523,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b5c22d1.d99c1e",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create Devcie Instance",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-device.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"deviceResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 673.0080718994141,\r
+        "y": 1216.424148797989,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "9ca787d1.dfba38",\r
+                "a187483b.9fc538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69b97572.5eed5c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1074.6745147705078,\r
+        "y": 1186.3128004074097,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d59ec52f.21c8f8",\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 executing Activate Device rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1076.1190948486328,\r
+        "y": 1236.868332862854,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a187483b.9fc538",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 923.1189384460449,\r
+        "y": 1239.8682870864868,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "d59ec52f.21c8f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ca787d1.dfba38",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 922.5634536743164,\r
+        "y": 1183.5349988937378,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "69b97572.5eed5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "104a605b.c517a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 590.0001373291016,\r
+        "y": 1160.5913829803467,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab75124f.85f25",\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": 552.0041103363037,\r
+        "y": 1641.5002851486206,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "496cf1c2.09334",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 597.3373680114746,\r
+        "y": 1531.8336429595947,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5763663a.274778",\r
+        "type": "save",\r
+        "name": "update deviceInstance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \n      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\n<parameter name='operational-status' value='Active' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 632.6708755493164,\r
+        "y": 1584.722743988037,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fba80bcb.537e38",\r
+        "type": "set",\r
+        "name": "set deviceId to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value=\"deviceId\" />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$deviceResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 593.6709938049316,\r
+        "y": 1315.7538223266602,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ad243b23.84cc68",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 576.0041046142578,\r
+        "y": 1474.2504119873047,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d9f0bb67.a6d688",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 620.0086822509766,\r
+        "y": 725.8936567306519,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "24c130a1.06544",\r
+                "1c6d2fc3.9d47f",\r
+                "d711f941.efb278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24c130a1.06544",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 865.008659362793,\r
+        "y": 668.8936103284359,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e6538e05.e2e95"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c6d2fc3.9d47f",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 868.499626159668,\r
+        "y": 716.4676459729671,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "8c8ed57c.0ce668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d711f941.efb278",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 863.832633972168,\r
+        "y": 757.8009589612484,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "37c7dcba.fd9d34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6538e05.e2e95",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1062.5087203979492,\r
+        "y": 656.8936103284359,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c8ed57c.0ce668",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1045.0710372924805,\r
+        "y": 704.7533820569515,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37c7dcba.fd9d34",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1051.6051902770996,\r
+        "y": 753.24015173316,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d09bded.34c944",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 628.008659362793,\r
+        "y": 833.893609046936,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "68b0f825.949708",\r
+                "3ec68637.c0dbea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68b0f825.949708",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 867.008731842041,\r
+        "y": 811.8936405181885,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "ea7ef978.26d9b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ec68637.c0dbea",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 859.258731842041,\r
+        "y": 865.5365238189697,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "6b38fd7f.9697a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea7ef978.26d9b8",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1017.008659362793,\r
+        "y": 812.893609046936,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6b38fd7f.9697a4",\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 executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1012.008731842041,\r
+        "y": 865.286584854126,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d2ac70a8.01bbc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 549.7587051391602,\r
+        "y": 1079.8937320709229,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "c50d0af9.6eaaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c50d0af9.6eaaa8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create network orchestration",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-network-orchestration.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"orchestration-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 868.2587966918945,\r
+        "y": 1082.8938932418823,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "673290e1.c0902",\r
+        "type": "get-resource",\r
+        "name": "get-resource service-subscription",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'\n      force=\"true\" pfx=\"tmp.AnAI-data\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 604.0802001953125,\r
+        "y": 984.5722246170044,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "3dede820.fe1e48",\r
+                "221b4119.4d74ce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a417e40c.ac4638",\r
+        "type": "switchNode",\r
+        "name": "switch temp-ub-sub-account-id",\r
+        "xml": "<switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1016.0802917480469,\r
+        "y": 949.3223056793213,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "d1aef225.461ff",\r
+                "30bdca8a.d90ec6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1aef225.461ff",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1208.794750213623,\r
+        "y": 923.322338104248,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "b031c826.3fa048"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "30bdca8a.d90ec6",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209.080307006836,\r
+        "y": 978.3223094940186,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "85a88d68.7da4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "927bbae7.3f69d8",\r
+        "type": "set",\r
+        "name": "set prop.tenant-id",\r
+        "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\n",\r
+        "comments": "",\r
+        "x": 1456.5088996887207,\r
+        "y": 1063.4651098251343,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b031c826.3fa048",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1348.2586479187012,\r
+        "y": 923.6436066627502,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e230776c.5a9d58",\r
+                "3aed4c7a.4aaa14",\r
+                "be32cece.2100a",\r
+                "e41ff38c.c7009",\r
+                "93c1362e.aa2c78",\r
+                "a9cddfc0.c31fc",\r
+                "7328f02d.f9128"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e41ff38c.c7009",\r
+        "type": "set",\r
+        "name": "set prop.customer-id",\r
+        "xml": "<set>\n<parameter name='prop.customer-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id`' />\n",\r
+        "comments": "",\r
+        "x": 1559.901756286621,\r
+        "y": 734.2151670455933,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e230776c.5a9d58",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create tenant",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-tenant.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1618.9015731811523,\r
+        "y": 864.7864580154419,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3aed4c7a.4aaa14",\r
+        "type": "set",\r
+        "name": "set prop.tenant-id",\r
+        "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\n",\r
+        "comments": "",\r
+        "x": 1561.7588653564453,\r
+        "y": 962.6436986923218,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be32cece.2100a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create tenant auth",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1637.2588348388672,\r
+        "y": 1013.3937277793884,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "93c1362e.aa2c78",\r
+        "type": "get-resource",\r
+        "name": "update-resource customer-id in service-subscription",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'>\n<parameter name='temp-ub-sub-account-id' value='`$tenant-result.data.tenantId`' />\n<!--parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' /-->\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1660.1873016357422,\r
+        "y": 915.7865858078003,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3dede820.fe1e48",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 814.5800628662109,\r
+        "y": 957.3182830810547,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "a417e40c.ac4638"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "221b4119.4d74ce",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 808.2586517333984,\r
+        "y": 1009.5325946807861,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "13b27219.75f72e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "13b27219.75f72e",\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 executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 961.0086517333984,\r
+        "y": 1009.2826557159424,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "85a88d68.7da4e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1267.7310638427734,\r
+        "y": 1061.4693012237549,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "927bbae7.3f69d8",\r
+                "cc5300b4.c716d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc5300b4.c716d",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create tenant auth",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1539.1596603393555,\r
+        "y": 1110.0407037734985,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a9cddfc0.c31fc",\r
+        "type": "set",\r
+        "name": "set prop.userAccount",\r
+        "xml": "<set>\n<parameter name='prop.userAccount' value='`$tmp.userAccountEmail`' />\n<parameter name='prop.userEmail' value='`$tmp.userAccountEmail`' />",\r
+        "comments": "",\r
+        "x": 1571.008659362793,\r
+        "y": 816.889702796936,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7328f02d.f9128",\r
+        "type": "execute",\r
+        "name": "execute concat customer-id and @test.com",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\n    <parameter name=\"source\" value='`$prop.customer-id`'/>\n    <parameter name=\"outputPath\" value=\"tmp.userAccountEmail\"/>\n    <parameter name=\"target\" value=\"@test.com\"/>\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1635.0125350952148,\r
+        "y": 775.8936452865601,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8eb8c24.f4a0f",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic1.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"vf-module-id-input\"/>\n<parameter name=\"field3\" value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1182.3333740234375,\r
+        "y": 378,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d63a100a.4fb85",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 597.0001373291016,\r
+        "y": 1410.3333740234375,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "45830f23.d0369",\r
+        "type": "set",\r
+        "name": "increment param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 580.0000553131104,\r
+        "y": 1360.0000801086426,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.json
new file mode 100644 (file)
index 0000000..d7e57be
--- /dev/null
@@ -0,0 +1,531 @@
+[\r
+    {\r
+        "id": "b9b83207.589ec",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1124.8294982910156,\r
+        "y": 251.16278839111328,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "8cae152d.7cd218"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1800fba.baf5f",\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": 414.5,\r
+        "y": 144.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "6d32e66a.a8bcf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d32e66a.a8bcf8",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-device-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 413.5,\r
+        "y": 244.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "1cc250f1.53fd7f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c8db0b.eb2055",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 244,\r
+        "y": 56,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "e1800fba.baf5f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1cc250f1.53fd7f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 572.4999847412109,\r
+        "y": 361.0000009536743,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "3397e2d.64c521e",\r
+                "92ec911d.95b14",\r
+                "fa9c393f.4d0eb8",\r
+                "1192cb09.4cd2d5",\r
+                "3e5eeaad.69c6b6",\r
+                "7e451b6c.fd6624",\r
+                "f6264050.f42d5",\r
+                "9e2c8c11.572dc",\r
+                "407f8a81.546654",\r
+                "f1088162.3598e",\r
+                "4489ad98.445654",\r
+                "860ccaf0.19f1e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3397e2d.64c521e",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 872.8294067382812,\r
+        "y": 252.49612522125244,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "b9b83207.589ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1913a60e.b7faaa",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1496.4959869384766,\r
+        "y": 253.16279125213623,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8cae152d.7cd218",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1343.1628150939941,\r
+        "y": 253.16277027130127,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "1913a60e.b7faaa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1192cb09.4cd2d5",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 946.7501907348633,\r
+        "y": 474.66665840148926,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "f80594ca.7a0348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f80594ca.7a0348",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1161.5285339355469,\r
+        "y": 472.2222423553467,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "99d262e0.f0c14",\r
+                "9b7ec3.98d4c14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99d262e0.f0c14",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1357.7847366333008,\r
+        "y": 449.97038078308105,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b7ec3.98d4c14",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1327.2291641235352,\r
+        "y": 486.97049713134766,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1ce3af0c.391b61",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1330.7503929138184,\r
+        "y": 409.33332681655884,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "92ec911d.95b14",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 887.25,\r
+        "y": 207.9999942779541,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "1b06d72a.f85559"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b06d72a.f85559",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.9166793823242,\r
+        "y": 207.3332920074463,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "7e3909f0.27dd48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e3909f0.27dd48",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1255.5833053588867,\r
+        "y": 207.3332920074463,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fa9c393f.4d0eb8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 928.4999895095825,\r
+        "y": 327.9999952316284,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "fe3884f5.3db408",\r
+                "f43025e1.350458"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe3884f5.3db408",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1159.5,\r
+        "y": 303.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "ec84c7cd.2c42f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f43025e1.350458",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1159.5,\r
+        "y": 343.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "3d425c4c.b021a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec84c7cd.2c42f8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1302,\r
+        "y": 303.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3d425c4c.b021a4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1303.8570442199707,\r
+        "y": 343.9365043640137,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "30d4aa0b.cee996",\r
+                "8e933b3.56987c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e933b3.56987c8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1456.555519104004,\r
+        "y": 313.5556030566804,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30d4aa0b.cee996",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1512.9840240478516,\r
+        "y": 366.7777328491211,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "40a39312.e2cd5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f966e582.bd5968",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1736.6347541809082,\r
+        "y": 325.03179025650024,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40a39312.e2cd5c",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1788.2697448730469,\r
+        "y": 366.34923553466797,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "d61c18df.dc4958"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d61c18df.dc4958",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1688.999942779541,\r
+        "y": 424.9206666946411,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "d629e081.56166"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d629e081.56166",\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1836.7500457763672,\r
+        "y": 424.7778587634675,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "407f8a81.546654",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.device-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<!--parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' /-->\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n\n",\r
+        "comments": "",\r
+        "x": 940.3531951904297,\r
+        "y": 754.4962153434753,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9e2c8c11.572dc",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.device-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 948.6866912841797,\r
+        "y": 701.1629481315613,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6264050.f42d5",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 922.6866683959961,\r
+        "y": 647.162841796875,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e5eeaad.69c6b6",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 937.6863288879395,\r
+        "y": 537.1542224884033,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7e451b6c.fd6624",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 963.6867065429688,\r
+        "y": 593.1544561386108,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1088162.3598e",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.device-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 935.5000877380371,\r
+        "y": 805.0000605583191,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4489ad98.445654",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 943.0001907348633,\r
+        "y": 853.0000247955322,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a1ffaa29.5bb868",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \n      key='site-resource.site-resource-id = $prop.site-vf-index' >\n<parameter name='site-resource-id' value='`$prop.site-vf-index`' />\n<parameter name='site-resource-name' value='`$prop.site.name`' />\n<parameter name='description' value='`$prop.site.description`' />\n<parameter name='type' value='`$prop.site.type`' />\n<parameter name='role' value='`$prop.site.role`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 947.5000419616699,\r
+        "y": 899.4999761581421,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "503ce76b.44e798",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 946.4999847412109,\r
+        "y": 946.5000238418579,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "860ccaf0.19f1e8",\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": 895.2225151062012,\r
+        "y": 992.6738667488098,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.json
new file mode 100644 (file)
index 0000000..592f18e
--- /dev/null
@@ -0,0 +1,790 @@
+[\r
+    {\r
+        "id": "eab12fb4.9470c",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-device-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 247.00390625,\r
+        "y": 208.58633995056152,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "88bd5bad.58a838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "173d417d.3d9d4f",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 156.00390625,\r
+        "y": 51.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "49f08769.af3e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49f08769.af3e38",\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": 235.28961181640625,\r
+        "y": 114.23810768127441,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "eab12fb4.9470c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88bd5bad.58a838",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 233.6705780029297,\r
+        "y": 393.666711807251,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "8b416f25.fd742",\r
+                "913862a1.5a856",\r
+                "4cb8dc52.180e74",\r
+                "fc24eafd.9fc4a8",\r
+                "4138123c.14d7fc",\r
+                "4970f16c.dac46",\r
+                "895129ed.754e48",\r
+                "365ea8c0.8e5e88",\r
+                "3a024eed.b847b2",\r
+                "b57ebaec.796048",\r
+                "f96bfa0c.8df2e8",\r
+                "c52a640a.528f08",\r
+                "f35fbdc0.23293",\r
+                "8adce6c1.0054d8",\r
+                "c93c3cc4.3e059",\r
+                "2b4abdb6.03e172"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "913862a1.5a856",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 579.035270690918,\r
+        "y": 288.26913928985596,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "efd4ecd6.bbb91"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b416f25.fd742",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 584.0039253234863,\r
+        "y": 227.00000858306885,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "d471cf9c.3d2c3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d471cf9c.3d2c3",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 764.00390625,\r
+        "y": 225.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "50f0a620.2f6168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50f0a620.2f6168",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 913.4326324462891,\r
+        "y": 227.142915725708,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "efd4ecd6.bbb91",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 802.0039215087891,\r
+        "y": 289.0000042915344,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "ddc6fec5.e8104"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ddc6fec5.e8104",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1017.00390625,\r
+        "y": 286.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "b9cc7318.0324"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9cc7318.0324",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1181.00390625,\r
+        "y": 281.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4cb8dc52.180e74",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 608.0039138793945,\r
+        "y": 388.99999046325684,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "e6e168ae.5922f8",\r
+                "fd79ee10.1cfe",\r
+                "a16175c1.4d7fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd79ee10.1cfe",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.00390625,\r
+        "y": 393.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a7f74d79.37951"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6e168ae.5922f8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.0039024353027,\r
+        "y": 340.99999713897705,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a7f74d79.37951"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7f74d79.37951",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1014.00390625,\r
+        "y": 353.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a16175c1.4d7fe8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.00390625,\r
+        "y": 454.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "29b73225.fee79e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a42153a.0e1ba8",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1205.003921508789,\r
+        "y": 453.00001204013824,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "29b73225.fee79e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1012.0039520263672,\r
+        "y": 451.9999895095825,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "9a42153a.0e1ba8",\r
+                "a90f8236.4cea3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a90f8236.4cea3",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1224.003890991211,\r
+        "y": 505.9999885559082,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "9531aa2b.7d82e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9531aa2b.7d82e8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1467.00390625,\r
+        "y": 500.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "50f86cda.3bbd84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50f86cda.3bbd84",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1665.0039348602295,\r
+        "y": 488.0000047683716,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "1f4f69b5.ee4bf6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f4f69b5.ee4bf6",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1817.00390625,\r
+        "y": 489.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "31d234fd.985a5c",\r
+                "fba615aa.7b1928",\r
+                "1bbdb98.9d83a47"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "31d234fd.985a5c",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2042.003978729248,\r
+        "y": 485.00000762939453,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fba615aa.7b1928",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2045.00390625,\r
+        "y": 534.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1bbdb98.9d83a47",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2073.0041275024414,\r
+        "y": 583.0000038146973,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc24eafd.9fc4a8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 568.0351257324219,\r
+        "y": 533.0160713195801,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "f7322d10.91c7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7322d10.91c7",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 715.4637680053711,\r
+        "y": 532.5874814987183,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "aba11941.c41518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aba11941.c41518",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 864.8924942016602,\r
+        "y": 533.7303991317749,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4138123c.14d7fc",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 575.0351448059082,\r
+        "y": 635.0160565376282,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8adce6c1.0054d8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 620.00390625,\r
+        "y": 814.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "21e717d4.e526d8",\r
+                "beac382b.708d18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21e717d4.e526d8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.00390625,\r
+        "y": 794.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "ab96a06a.0fe99"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "beac382b.708d18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 844.25390625,\r
+        "y": 836.6428813934326,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "d406c325.c6945"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab96a06a.0fe99",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 989.00390625,\r
+        "y": 794.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d406c325.c6945",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 970.33740234375,\r
+        "y": 836.8889141082764,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f35fbdc0.23293",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 614.5595703125,\r
+        "y": 719.2222194671631,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "bbf3791.82cae88",\r
+                "5c78e46.37fed1c",\r
+                "6cb7b96f.bcb5f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c78e46.37fed1c",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 847.050464630127,\r
+        "y": 692.7962417602539,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "dee4ec51.1a644"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dee4ec51.1a644",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1020.6218757629395,\r
+        "y": 681.0819778442383,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6cb7b96f.bcb5f8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 839.383472442627,\r
+        "y": 734.1295547485352,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "af4faa3a.89fcb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af4faa3a.89fcb8",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1027.1560287475586,\r
+        "y": 729.5687475204468,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bbf3791.82cae88",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 855.559627532959,\r
+        "y": 644.2221937179565,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a080fe09.3fe2b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a080fe09.3fe2b",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1032.059669494629,\r
+        "y": 635.2221827507019,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c93c3cc4.3e059",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 601.0000190734863,\r
+        "y": 869.5910816192627,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "365ea8c0.8e5e88",\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": 570.0039882659912,\r
+        "y": 1320.5000076293945,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4970f16c.dac46",\r
+        "type": "set",\r
+        "name": "set vf-module-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 655.4840393066406,\r
+        "y": 1183.8372745513916,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "895129ed.754e48",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 612.3372573852539,\r
+        "y": 1089.8334884643555,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c52a640a.528f08",\r
+        "type": "save",\r
+        "name": "update deviceInstance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \n      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\n<parameter name='operational-status' value='PendingDelete' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 648.6707305908203,\r
+        "y": 1248.7224197387695,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a024eed.b847b2",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 599.00390625,\r
+        "y": 1135.2501430511475,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f96bfa0c.8df2e8",\r
+        "type": "set",\r
+        "name": "set device Id length and deviceId",\r
+        "xml": "<set>\n<parameter name='prop.devices[0]' value='`$prop.device.deviceId`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 617.00390625,\r
+        "y": 977.5039043426514,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b57ebaec.796048",\r
+        "type": "set",\r
+        "name": "set device Id length and deviceId",\r
+        "xml": "<set>\n<parameter name='prop.devices_length' value='1' />\n\n\n",\r
+        "comments": "",\r
+        "x": 621.0038833618164,\r
+        "y": 935.503867149353,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "12cd00be.9dffef",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.0039329528809,\r
+        "y": 1011.2539529800415,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "f39a352.055c0c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f39a352.055c0c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1132.114948272705,\r
+        "y": 1010.0317735671997,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5670b097.b1ca5",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 957.5594863891602,\r
+        "y": 1064.587239265442,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a7ade3fe.220b3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7ade3fe.220b3",\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 executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1102.5594863891602,\r
+        "y": 1067.587239265442,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b4abdb6.03e172",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode delete Devcie Instance",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-device-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"delete\"/>\n<parameter name=\"responsePrefix\" value=\"deviceResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 667.4798164367676,\r
+        "y": 1034.1741046905518,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "12cd00be.9dffef",\r
+                "5670b097.b1ca5"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.json
new file mode 100644 (file)
index 0000000..ad4c6ef
--- /dev/null
@@ -0,0 +1,707 @@
+[\r
+    {\r
+        "id": "c6fed7ba.2e5e18",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-device-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 255.00390625,\r
+        "y": 216.58634042739868,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "4804312d.8867d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e5478a26.0a9688",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 164.00390625,\r
+        "y": 59.999998569488525,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "3b2be231.ea30ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b2be231.ea30ae",\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": 243.28961181640625,\r
+        "y": 122.23810815811157,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "c6fed7ba.2e5e18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4804312d.8867d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 271.6706085205078,\r
+        "y": 450.66671800613403,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "f36d7165.5e774",\r
+                "9c192f6.d32f3d",\r
+                "edf648d0.949e68",\r
+                "68b5e9b8.2b0318",\r
+                "370fd9d.4d0a826",\r
+                "e73ad2e7.ff301",\r
+                "61a4bf49.6ae31",\r
+                "4b0a719b.ddb45",\r
+                "77882cba.d66624",\r
+                "75517c95.ffb8a4",\r
+                "b631e163.c5869",\r
+                "22f84c9a.3b1234"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c192f6.d32f3d",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 587.035270690918,\r
+        "y": 296.2691397666931,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "a9bd8416.007568"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f36d7165.5e774",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 592.0039253234863,\r
+        "y": 235.000009059906,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "ca4b0462.04ea28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ca4b0462.04ea28",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772.00390625,\r
+        "y": 233.99999856948853,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "6923c8a0.a21e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6923c8a0.a21e38",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 921.4326324462891,\r
+        "y": 235.14291620254517,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a9bd8416.007568",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 810.0039215087891,\r
+        "y": 297.0000047683716,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "cd0a501b.5bef4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd0a501b.5bef4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1025.00390625,\r
+        "y": 294.9999985694885,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "48bd1058.cd2f6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "48bd1058.cd2f6",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1189.00390625,\r
+        "y": 289.9999985694885,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "edf648d0.949e68",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 658.0039405822754,\r
+        "y": 373.00002336502075,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "428796e8.82f0e8",\r
+                "dc937af3.d44e48",\r
+                "71d8961.8097f68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc937af3.d44e48",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.0039329528809,\r
+        "y": 407.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "f5d99ed7.a4a21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "428796e8.82f0e8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 885.0039291381836,\r
+        "y": 354.0000319480896,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "f5d99ed7.a4a21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5d99ed7.a4a21",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1043.0039329528809,\r
+        "y": 367.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71d8961.8097f68",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.0039329528809,\r
+        "y": 468.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "d086ad92.da44d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ece4dd8.f577c2",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1234.00394821167,\r
+        "y": 466.0000468492508,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d086ad92.da44d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1041.003978729248,\r
+        "y": 465.00002431869507,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "1ece4dd8.f577c2",\r
+                "85d68297.b6351"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85d68297.b6351",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1253.0039176940918,\r
+        "y": 519.0000233650208,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "22a0d6f0.bf05ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22a0d6f0.bf05ea",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1496.0039329528809,\r
+        "y": 514.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "158cf966.e07057"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "158cf966.e07057",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1737.0040607452393,\r
+        "y": 507.00003004074097,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "66a900a3.a3c07"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "66a900a3.a3c07",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1889.0040321350098,\r
+        "y": 509.00002336502075,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "e303b920.69ef18",\r
+                "94649a24.085df8",\r
+                "2718f6a1.d8c36a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e303b920.69ef18",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2111.0040321350098,\r
+        "y": 505.00002336502075,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "94649a24.085df8",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2117.0040321350098,\r
+        "y": 554.0000233650208,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2718f6a1.d8c36a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2145.004253387451,\r
+        "y": 602.0000290870667,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "68b5e9b8.2b0318",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 597.0351524353027,\r
+        "y": 546.0161061286926,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "99df81ad.4b936"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99df81ad.4b936",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.463794708252,\r
+        "y": 545.5875163078308,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "5487274c.85e858"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5487274c.85e858",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 893.892520904541,\r
+        "y": 546.7304339408875,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "370fd9d.4d0a826",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 641.3333129882812,\r
+        "y": 616.3333115577698,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "8d4cefb5.e8f04",\r
+                "d9412eaf.21b64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d4cefb5.e8f04",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 932.1665802001953,\r
+        "y": 620.4444346427917,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "d8669fbd.c1c02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d9412eaf.21b64",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 899.1667175292969,\r
+        "y": 672.4444873332977,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "dfeaa117.eea9d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dfeaa117.eea9d",\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=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1058.6664848327637,\r
+        "y": 675.4444863796234,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d8669fbd.c1c02",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1129.4729804992676,\r
+        "y": 630.7695889472961,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b631e163.c5869",\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": 619.4445152282715,\r
+        "y": 995.2221984863281,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "22f84c9a.3b1234",\r
+        "type": "switchNode",\r
+        "name": "switch prop.device.sdncCreate",\r
+        "xml": "<switch test=\"`$prop.device.sdncCreate`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 659.0948181152344,\r
+        "y": 937.5949177742004,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "44543bd3.4c8bf4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e73ad2e7.ff301",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 615.5311832427979,\r
+        "y": 690.3333535194397,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61a4bf49.6ae31",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 695.5310974121094,\r
+        "y": 741.3333554267883,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "da9431cc.52513"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b0a719b.ddb45",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 619.6324615478516,\r
+        "y": 792.1375555992126,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "77882cba.d66624",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 656.5311431884766,\r
+        "y": 844.3333582878113,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "da9431cc.52513",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 955.5310878753662,\r
+        "y": 748.3332152366638,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "18a9693d.650b17"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "44543bd3.4c8bf4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 870.094669342041,\r
+        "y": 936.5945897102356,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "33a69b5b.9a15c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33a69b5b.9a15c4",\r
+        "type": "delete",\r
+        "name": "delete wan port instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='device' \n        key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1136.5314407348633,\r
+        "y": 934.5948338508606,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "18a9693d.650b17",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1141.5311546325684,\r
+        "y": 748.3333759307861,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "3ab3fce3.adf244"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ab3fce3.adf244",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1310.531162261963,\r
+        "y": 747.3332133293152,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "9c7fc57d.2e0378"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c7fc57d.2e0378",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1464.5310010910034,\r
+        "y": 739.3332142829895,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "3c3fb736.ab7c18",\r
+                "3d45148.2511eec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c3fb736.ab7c18",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1629.531096458435,\r
+        "y": 714.3333697319031,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3d45148.2511eec",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1651.531096458435,\r
+        "y": 770.333333492279,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "75517c95.ffb8a4",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 643.3333511352539,\r
+        "y": 889.6666932106018,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.json
new file mode 100644 (file)
index 0000000..8744128
--- /dev/null
@@ -0,0 +1,1231 @@
+[\r
+    {\r
+        "id": "a0039ac7.2c7d88",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-site-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 265.00390625,\r
+        "y": 238.9999939496629,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c22d3a60.7ddaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "27e9fc06.1c68a4",\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": 266.00390625,\r
+        "y": 138.9999939496629,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a0039ac7.2c7d88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5e4bca4.474e7",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 107.50391006469727,\r
+        "y": 52.999998688697815,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "27e9fc06.1c68a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c22d3a60.7ddaa8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 321.00390625,\r
+        "y": 394.9999939496629,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "f1b7432.96d6cc",\r
+                "4d30068b.cb8248",\r
+                "a5fa8ed1.f351a",\r
+                "81999ef9.7a265",\r
+                "9e668e87.35152",\r
+                "c78d235f.ab387",\r
+                "887e324d.70c37",\r
+                "bbecde3.6ca5b2",\r
+                "4023f188.867be",\r
+                "536ee31e.2dbb9c",\r
+                "8570b81.0d01d48",\r
+                "a5bc4e1c.1202d",\r
+                "d5f9133b.45a0f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1b7432.96d6cc",\r
+        "type": "set",\r
+        "name": "set prop.site.sdwan false",\r
+        "xml": "<set>\n<parameter name='prop.site.sdwan' value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "x": 712.5078086853027,\r
+        "y": 178.0039163827896,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a5fa8ed1.f351a",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674.0078315734863,\r
+        "y": 296.00391483306885,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "35074f40.98b9b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "35074f40.98b9b",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 927.0079040527344,\r
+        "y": 287.67056906223297,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "501cda7c.262744"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58a08191.616f9",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1298.6743927001953,\r
+        "y": 289.6705719232559,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "501cda7c.262744",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1145.341220855713,\r
+        "y": 289.67055094242096,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "58a08191.616f9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d30068b.cb8248",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 689.4284057617188,\r
+        "y": 244.5077749490738,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7bd5f4ce.76777c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bd5f4ce.76777c",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 876.095085144043,\r
+        "y": 243.84107267856598,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7b0f629c.5a07fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b0f629c.5a07fc",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1057.7617111206055,\r
+        "y": 243.84107267856598,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a81de15.ac0e82",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1328.0078201293945,\r
+        "y": 459.0038963262923,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7b05dd5f.af6d94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "25ac2ea9.1fa992",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1603.2935409545898,\r
+        "y": 458.5753990118392,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "ac802e50.23445"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50990900.1946a8",\r
+        "type": "set",\r
+        "name": "set vf-module-length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1314.579444885254,\r
+        "y": 422.781782746315,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "39f64e9a.4cae32",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1118.8808403015137,\r
+        "y": 436.1626678411849,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a81de15.ac0e82",\r
+                "50990900.1946a8",\r
+                "6433e94c.b18f68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c412715b.35f49",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 974.523796081543,\r
+        "y": 436.2261558477767,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "39f64e9a.4cae32"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "81999ef9.7a265",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 738.523777961731,\r
+        "y": 363.22616827487946,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c412715b.35f49",\r
+                "c7523305.ecaa5",\r
+                "87107744.973288"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7523305.ecaa5",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.0078144073486,\r
+        "y": 335.0038973093033,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c77fefd.df0431"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "87107744.973288",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 982.0390033721924,\r
+        "y": 372.03520834445953,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c77fefd.df0431"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c77fefd.df0431",\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=\"vf-module-operation-input.vf-module-request-input.vf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1139.8165187835693,\r
+        "y": 352.9241567850113,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac802e50.23445",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1807.0077819824219,\r
+        "y": 457.003905415535,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "62b8a185.3b8a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62b8a185.3b8a2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1977.3510780334473,\r
+        "y": 461.0900408029556,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "d0800c3d.a149d",\r
+                "c55d54ef.05e398",\r
+                "934abf0d.9c8f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0800c3d.a149d",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2219.2377700805664,\r
+        "y": 431.43245470523834,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c55d54ef.05e398",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2222.6840286254883,\r
+        "y": 476.0900937318802,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "934abf0d.9c8f4",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-site-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2252.324935913086,\r
+        "y": 519.5395450592041,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e56ea967.0d64a8",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANDeviceInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1635.5079193115234,\r
+        "y": 525.0039278268814,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7a4ace3.f95e93"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a4ace3.f95e93",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1864.507667541504,\r
+        "y": 524.0039049386978,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7ca1b13d.5aea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ca1b13d.5aea",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1819.920581817627,\r
+        "y": 586.0000458955765,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "3b148280.e830fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b148280.e830fe",\r
+        "type": "for",\r
+        "name": "for loop deviceidx - Get deviceId from servicedata",\r
+        "xml": "<for index=\"deviceidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2101.2543354034424,\r
+        "y": 596.0000663995743,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c30dfd09.aeccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c30dfd09.aeccc",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2217.254119873047,\r
+        "y": 647.0002518892288,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "81c39ef4.3376e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "81c39ef4.3376e",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2377.2543754577637,\r
+        "y": 649.0001050233841,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "52222e22.86b7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "52222e22.86b7",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2529.2545471191406,\r
+        "y": 648.0001050233841,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "86b2a0ab.20409"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86b2a0ab.20409",\r
+        "type": "set",\r
+        "name": "set deviceId",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\n<parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 2669.254550933838,\r
+        "y": 647.6000596284866,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b05dd5f.af6d94",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1390.5078125,\r
+        "y": 504.00390589237213,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "25ac2ea9.1fa992",\r
+                "e56ea967.0d64a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b93cb489.5e32b8",\r
+        "type": "comment",\r
+        "name": "Get devices",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1627.5078125,\r
+        "y": 495.00390589237213,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6433e94c.b18f68",\r
+        "type": "set",\r
+        "name": "set prop.site.deviceId_length",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId_length' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1341.0078125,\r
+        "y": 387.00390589237213,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9e668e87.35152",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 690.0078582763672,\r
+        "y": 452.00391256809235,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b14da696.802af8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1486.0043601989746,\r
+        "y": 868.7539058923721,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "715b60bd.6f62c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "715b60bd.6f62c",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1674.5044555664062,\r
+        "y": 862.7539155483246,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cda4261b.975c18",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1489.4953269958496,\r
+        "y": 916.3279415369034,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "5d5ef9c3.e66358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d5ef9c3.e66358",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1663.066738128662,\r
+        "y": 904.6136776208878,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15ce450b.53d72b",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1481.8283348083496,\r
+        "y": 957.6612545251846,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "10b242b1.35021d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "10b242b1.35021d",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1669.6008911132812,\r
+        "y": 953.1004472970963,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e838c5da.a148e8",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1219.0042724609375,\r
+        "y": 916.7539117336273,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "b14da696.802af8",\r
+                "cda4261b.975c18",\r
+                "15ce450b.53d72b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef61bc2f.e72cb",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create  SDWAN site",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-site-' + $template.site.role + '.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"site-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1246.5043334960938,\r
+        "y": 1106.7538763284683,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "1bbca445.afcd4c",\r
+                "dd7810f4.d9827"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4382528a.72cf7c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1662.1709098815918,\r
+        "y": 1075.642806649208,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4a16c90.a1073",\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 executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1647.615493774414,\r
+        "y": 1135.198154091835,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dd7810f4.d9827",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1502.615484237671,\r
+        "y": 1132.1981521844864,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "e4a16c90.a1073"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1bbca445.afcd4c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1503.0598220825195,\r
+        "y": 1075.8649603128433,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "4382528a.72cf7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28c40fdc.d8ec",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1220.2583694458008,\r
+        "y": 1009.7579724788666,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "745b648e.d351dc",\r
+                "de446705.d7ff98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "745b648e.d351dc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1485.2582511901855,\r
+        "y": 994.7578675746918,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7f55ea12.ac1244"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de446705.d7ff98",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1477.5082511901855,\r
+        "y": 1036.400750875473,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a8040204.8ea56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8040204.8ea56",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1603.5917472839355,\r
+        "y": 1036.6467835903168,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f55ea12.ac1244",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1622.2582511901855,\r
+        "y": 994.7578675746918,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d0e6b60f.9d8498",\r
+        "type": "comment",\r
+        "name": "tmp.thirdparty-sdnc-id is hardcoded value?",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1267.508171081543,\r
+        "y": 870.7578836679459,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f3e2e0b8.aff3b",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 943.5041809082031,\r
+        "y": 845.4204959869385,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "fdcbc7bd.a13598",\r
+                "49ca1a6b.47d2b4",\r
+                "e838c5da.a148e8",\r
+                "28c40fdc.d8ec",\r
+                "e1072ab4.4292c8",\r
+                "ef61bc2f.e72cb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fdcbc7bd.a13598",\r
+        "type": "set",\r
+        "name": "set siteId",\r
+        "xml": "<set>\n<parameter name='prop.site.siteId' value=\"\" />\n\n",\r
+        "comments": "",\r
+        "x": 1160.5041847229004,\r
+        "y": 831.753604888916,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47307892.eb80f8",\r
+        "type": "for",\r
+        "name": "for cpidx..prop.site.controlpoints",\r
+        "xml": "<for index='cpidx' start='0' end='`$prop.site.controlpoints_length`' >\n\t\t\t\t\t\t\t\t\t\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1236.504379272461,\r
+        "y": 781.7848201990128,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "6433e5be.2bdc0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6433e5be.2bdc0c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1443.50390625,\r
+        "y": 711.7847648859024,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "9d85c0cd.f74a",\r
+                "6f1b0298.c2014c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dddca1ae.0aa96",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1885.500316619873,\r
+        "y": 705.7535845041275,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "5f3e8ab6.51b064"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26937b29.826f14",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1887.7501602172852,\r
+        "y": 744.3964706659317,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a5bc087a.7a1fa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d85c0cd.f74a",\r
+        "type": "set",\r
+        "name": "set prop.controlPtId",\r
+        "xml": "<set>\n<parameter name='prop.controlPtId' value='`$prop.site.controlpoints[$cpidx]`' />\n\n",\r
+        "comments": "",\r
+        "x": 1632.5000076293945,\r
+        "y": 684.7535415887833,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1072ab4.4292c8",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1198.7894897460938,\r
+        "y": 1054.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "49ca1a6b.47d2b4",\r
+        "type": "switchNode",\r
+        "name": "switch prop.site.controlpoints ",\r
+        "xml": "<switch test=\"`$prop.site.controlPoint`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1093.7894897460938,\r
+        "y": 664.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "1e813b9c.d1bb24",\r
+                "5e874fed.35cf3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e874fed.35cf3",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1281.7894897460938,\r
+        "y": 686.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "8ca15cae.d821b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85141f25.2d6e",\r
+        "type": "comment",\r
+        "name": "should be null in request",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1330.5040740966797,\r
+        "y": 824.7535778284073,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8ca15cae.d821b",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1090.7933807373047,\r
+        "y": 729.7574154138565,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "47307892.eb80f8",\r
+                "5fd810ad.7ad7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5fd810ad.7ad7a",\r
+        "type": "set",\r
+        "name": "set template file spoke",\r
+        "xml": "<set>\n<parameter name='template.site.role' value=\"spoke\" />\n\n",\r
+        "comments": "",\r
+        "x": 1269.7933959960938,\r
+        "y": 748.7574754953384,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e813b9c.d1bb24",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1289.7894897460938,\r
+        "y": 637.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "41d50201.d63e2c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "41d50201.d63e2c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1427.7894897460938,\r
+        "y": 639.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "aa5fa9ea.6d1fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa5fa9ea.6d1fe8",\r
+        "type": "set",\r
+        "name": "set template file hub",\r
+        "xml": "<set>\n<parameter name='template.site.role' value=\"hub\" />\n\n",\r
+        "comments": "",\r
+        "x": 1596.7934875488281,\r
+        "y": 642.7574306726456,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c26bdc53.ff98c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 775.5039558410645,\r
+        "y": 825.4201318025589,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "f3e2e0b8.aff3b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c78d235f.ab387",\r
+        "type": "switchNode",\r
+        "name": "switch prop.site.sdwan",\r
+        "xml": "<switch test=\"`$prop.site.sdwan`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 681.5039215087891,\r
+        "y": 708.4201065301895,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c26bdc53.ff98c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f3e8ab6.51b064",\r
+        "type": "set",\r
+        "name": "set siteId in control point",\r
+        "xml": "<set>\n<parameter name='prop.site.controlpoints[$cpidx]' value='`$tmp.aai.controlPoints.generated-site-id`' />\n\n",\r
+        "comments": "",\r
+        "x": 2064.1666679382324,\r
+        "y": 706.75370657444,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a5bc087a.7a1fa8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2028.1665077209473,\r
+        "y": 742.7535272836685,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bbecde3.6ca5b2",\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": 675.5079383850098,\r
+        "y": 1382.2541280984879,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "887e324d.70c37",\r
+        "type": "set",\r
+        "name": "set siteId to service data",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='siteId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$site-result.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 713.1783866882324,\r
+        "y": 1060.9140511751175,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4023f188.867be",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 763.5078964233398,\r
+        "y": 1211.7539602518082,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8570b81.0d01d48",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 729.5078964233398,\r
+        "y": 1260.2539612054825,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d5f9133b.45a0f",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \n      key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='site-resource-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='generated-site-id' value='`$site-result.success[0].id`' /> \n<parameter name='operational-status' value='Active' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 734.6154022216797,\r
+        "y": 1314.8460041284561,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "536ee31e.2dbb9c",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 727.5078506469727,\r
+        "y": 1164.003914740868,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f1b0298.c2014c",\r
+        "type": "get-resource",\r
+        "name": "get-resource control pts for sideId",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"site-resource\" \n\t\tkey=\"site-resource.site-resource-name = $prop.controlPtId AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.controlPoints' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1670.8334999084473,\r
+        "y": 748.7536220550537,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "dddca1ae.0aa96",\r
+                "26937b29.826f14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a5bc4e1c.1202d",\r
+        "type": "set",\r
+        "name": "increment param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 717.6667060852051,\r
+        "y": 1112.6666584014893,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.json
new file mode 100644 (file)
index 0000000..833563e
--- /dev/null
@@ -0,0 +1,531 @@
+[\r
+    {\r
+        "id": "39688a3a.06a796",\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.00390625,\r
+        "y": 145.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "921891f8.416e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "921891f8.416e5",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-site-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 264.00390625,\r
+        "y": 245.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "22a013b4.ab58dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "695e0384.f33d9c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 94.50390625,\r
+        "y": 56.999998569488525,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "39688a3a.06a796"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22a013b4.ab58dc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 423.00389099121094,\r
+        "y": 361.99999952316284,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "4325b612.73e1e8",\r
+                "a6c02374.2dca",\r
+                "40ba27b5.057bf8",\r
+                "d6478b6b.a2b888",\r
+                "59e1bfa3.d11e4",\r
+                "1c5585c5.9cdc3a",\r
+                "a7e8dd90.c6661",\r
+                "2f9ca627.c38e7a",\r
+                "40436b2a.16f614",\r
+                "64771e44.2196d",\r
+                "bb863987.8db5d8",\r
+                "462de6d9.81f588"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4325b612.73e1e8",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 723.3333129882812,\r
+        "y": 253.49612379074097,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "63fc0005.8f2ee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63fc0005.8f2ee",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975.3334045410156,\r
+        "y": 252.1627869606018,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "c555201.0223fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fae689f.7fef88",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1346.9998931884766,\r
+        "y": 254.16278982162476,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c555201.0223fe",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1193.6667213439941,\r
+        "y": 254.1627688407898,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "6fae689f.7fef88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6478b6b.a2b888",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.2540969848633,\r
+        "y": 475.6666569709778,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "e10e6c76.58a1d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e10e6c76.58a1d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1012.0324401855469,\r
+        "y": 473.2222409248352,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "9a3f095b.53aca8",\r
+                "454b0ff.c77c1f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a3f095b.53aca8",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1208.2886428833008,\r
+        "y": 450.9703793525696,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "454b0ff.c77c1f",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1177.7330703735352,\r
+        "y": 487.9704957008362,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1b7ed90b.0ee057",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1181.2542991638184,\r
+        "y": 410.33332538604736,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a6c02374.2dca",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 737.75390625,\r
+        "y": 208.99999284744263,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "698329a9.119718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "698329a9.119718",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 924.4205856323242,\r
+        "y": 208.33329057693481,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "f31a5878.bf4fd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f31a5878.bf4fd8",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1106.0872116088867,\r
+        "y": 208.33329057693481,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40ba27b5.057bf8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 779.0038957595825,\r
+        "y": 328.99999380111694,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "51b4cfc4.d81ec",\r
+                "9cba331b.ccedc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "51b4cfc4.d81ec",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1010.00390625,\r
+        "y": 304.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "3f2cb9e5.051a76"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cba331b.ccedc",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1010.00390625,\r
+        "y": 344.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "e0c33286.cb104"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f2cb9e5.051a76",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1152.50390625,\r
+        "y": 304.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e0c33286.cb104",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1154.3609504699707,\r
+        "y": 344.9365029335022,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "8b8b9efa.275ce",\r
+                "1791a391.e4fccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1791a391.e4fccc",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1307.059425354004,\r
+        "y": 314.55560162616894,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8b8b9efa.275ce",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1363.4879302978516,\r
+        "y": 367.7777314186096,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "aaa91538.94bcc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd3d2242.9164e",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1587.1386604309082,\r
+        "y": 326.03178882598877,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aaa91538.94bcc8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.7736511230469,\r
+        "y": 367.3492341041565,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "a84edb80.0d80e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a84edb80.0d80e8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1539.503849029541,\r
+        "y": 425.92066526412964,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "7ca646fd.066d78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ca646fd.066d78",\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1687.2539520263672,\r
+        "y": 425.77785733295605,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40436b2a.16f614",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n\n",\r
+        "comments": "",\r
+        "x": 790.8571014404297,\r
+        "y": 755.4962139129639,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2f9ca627.c38e7a",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.site-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799.1905975341797,\r
+        "y": 702.1629467010498,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7e8dd90.c6661",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 773.1905746459961,\r
+        "y": 648.1628403663635,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "59e1bfa3.d11e4",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 788.1902351379395,\r
+        "y": 538.1542210578918,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1c5585c5.9cdc3a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-site-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 804.190544128418,\r
+        "y": 590.154402256012,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "64771e44.2196d",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.site-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 786.0039939880371,\r
+        "y": 806.0000591278076,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bb863987.8db5d8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 795.5040130615234,\r
+        "y": 854.9999685287476,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "670cd372.9429ec",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \n      key='site-resource.site-resource-id = $prop.site-vf-index' >\n<parameter name='site-resource-id' value='`$prop.site-vf-index`' />\n<parameter name='site-resource-name' value='`$prop.site.name`' />\n<parameter name='description' value='`$prop.site.description`' />\n<parameter name='type' value='`$prop.site.type`' />\n<parameter name='role' value='`$prop.site.role`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 798.0039482116699,\r
+        "y": 900.4999747276306,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d453124.5225e",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.0038909912109,\r
+        "y": 947.5000224113464,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "462de6d9.81f588",\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": 745.7264213562012,\r
+        "y": 993.6738653182983,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.json
new file mode 100644 (file)
index 0000000..581bad7
--- /dev/null
@@ -0,0 +1,1066 @@
+[\r
+    {\r
+        "id": "5c29a6ba.038668",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-site-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 236.00390625,\r
+        "y": 176.58634185791016,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "c10a5ef9.eb1cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b112072.6efee",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 145.00390625,\r
+        "y": 20,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "c6cd33c4.247fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6cd33c4.247fe",\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": 224.28961181640625,\r
+        "y": 82.23810958862305,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "5c29a6ba.038668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c10a5ef9.eb1cc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 222.6705780029297,\r
+        "y": 361.6667137145996,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "987b6cfb.095a4",\r
+                "2421aa48.a967a6",\r
+                "a7501bce.e84ca8",\r
+                "c42c3129.16bb4",\r
+                "67b10f8d.c3d57",\r
+                "7db6c871.1ca638",\r
+                "5c7d3c9a.2071e4",\r
+                "7e398340.b85bfc",\r
+                "27be343.61169cc",\r
+                "4d4441d6.c778f",\r
+                "2c4e5cc7.b76554",\r
+                "f0d9af80.b3024",\r
+                "1cc606fc.7b90b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2421aa48.a967a6",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 568.035270690918,\r
+        "y": 256.2691411972046,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "f656e0b.31e062"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "987b6cfb.095a4",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 573.0039253234863,\r
+        "y": 195.00001049041748,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "d40e76d0.d5ce48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d40e76d0.d5ce48",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 753.00390625,\r
+        "y": 194,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "de4bbf24.9eba4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de4bbf24.9eba4",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 902.4326324462891,\r
+        "y": 195.14291763305664,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f656e0b.31e062",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 791.0039215087891,\r
+        "y": 257.00000619888306,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "4eea1b40.3a5ae4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4eea1b40.3a5ae4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.00390625,\r
+        "y": 255,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "efdee9f.d679018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "efdee9f.d679018",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1170.00390625,\r
+        "y": 250,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7501bce.e84ca8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 618.0039138793945,\r
+        "y": 327.99999046325684,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "ad789953.0300c8",\r
+                "a370bc16.16cab",\r
+                "be5b6663.110a88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a370bc16.16cab",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.00390625,\r
+        "y": 362,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "22440a59.760c56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ad789953.0300c8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 845.0039024353027,\r
+        "y": 308.9999990463257,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "22440a59.760c56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22440a59.760c56",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1003.00390625,\r
+        "y": 322,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be5b6663.110a88",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.00390625,\r
+        "y": 423,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "cb5b975f.044798"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da67128d.15fa1",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1194.003921508789,\r
+        "y": 421.0000139474869,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cb5b975f.044798",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1001.0039520263672,\r
+        "y": 419.99999141693115,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "da67128d.15fa1",\r
+                "8901c130.f196d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8901c130.f196d",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.003890991211,\r
+        "y": 473.99999046325684,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "332a4ae3.ad50b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "332a4ae3.ad50b6",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1456.00390625,\r
+        "y": 469,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "e0471cb4.f94dd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0471cb4.f94dd",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1654.0039348602295,\r
+        "y": 456.0000066757202,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "1ca5dda0.751ea2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ca5dda0.751ea2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1806.00390625,\r
+        "y": 458,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "3077bb99.f991c4",\r
+                "96d4f974.763d28",\r
+                "37f06523.6ef90a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3077bb99.f991c4",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2028.00390625,\r
+        "y": 454,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96d4f974.763d28",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2034.00390625,\r
+        "y": 503,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37f06523.6ef90a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-site-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2062.0041275024414,\r
+        "y": 551.0000057220459,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "67b10f8d.c3d57",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Provided alloted resource length\"/>\n<parameter name=\"field3\" value=\"'parameters length'\"/>\n<parameter name=\"field4\" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 533.0039806365967,\r
+        "y": 554.0000057220459,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c42c3129.16bb4",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 557.0351257324219,\r
+        "y": 501.0160732269287,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "288e4f16.fdb24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "288e4f16.fdb24",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 704.4637680053711,\r
+        "y": 500.5874834060669,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "6d758b04.419134"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d758b04.419134",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 853.8924942016602,\r
+        "y": 501.73040103912354,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7db6c871.1ca638",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 564.0351448059082,\r
+        "y": 603.0160584449768,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c7d3c9a.2071e4",\r
+        "type": "for",\r
+        "name": "for loop idx - VF-module input parameters",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 604.0039367675781,\r
+        "y": 678.4548873901367,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "f399c5e.d5b6e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f399c5e.d5b6e38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.8997802734375,\r
+        "y": 675.3768310546875,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "6f7dac79.02cc84",\r
+                "69380680.bf88e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f7dac79.02cc84",\r
+        "type": "switchNode",\r
+        "name": "switch type",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.0169830322266,\r
+        "y": 675.3502712249756,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "8d1befdb.32c39"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d1befdb.32c39",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1135.016990661621,\r
+        "y": 676.3502712249756,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "79096937.65ad98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "79096937.65ad98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1283.5666389465332,\r
+        "y": 677.3769645690918,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "50251b49.1faa44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50251b49.1faa44",\r
+        "type": "set",\r
+        "name": "set type and sdwan flag",\r
+        "xml": "<set>\n<parameter name='prop.site.type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n<parameter name='prop.site.sdwan' value=\"true\" />\n",\r
+        "comments": "",\r
+        "x": 1498.9000129699707,\r
+        "y": 677.3769731521606,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69380680.bf88e8",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'siteId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.0168800354004,\r
+        "y": 750.3503141403198,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "89a7d161.ebf8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89a7d161.ebf8a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1135.016887664795,\r
+        "y": 751.3503141403198,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "8cbeced8.b613d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cbeced8.b613d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1283.566535949707,\r
+        "y": 752.377007484436,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "5b3b802.4f9668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b3b802.4f9668",\r
+        "type": "set",\r
+        "name": "set siteId",\r
+        "xml": "<set>\n<parameter name='prop.site.siteId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1427.8998985290527,\r
+        "y": 753.3770246505737,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "db911ea5.5cc8d",\r
+        "type": "comment",\r
+        "name": "Get siteId to delete",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1007.0038642883301,\r
+        "y": 719.4549703598022,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7e398340.b85bfc",\r
+        "type": "switchNode",\r
+        "name": "switch prop.site.sdwan",\r
+        "xml": "<switch test=\"`$prop.site.sdwan`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 533.5116882324219,\r
+        "y": 845.1213359832764,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "c63fd2c7.67fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c63fd2c7.67fc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 714.5118217468262,\r
+        "y": 846.1213626861572,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "653ef686.4a6068"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69850da3.9c7b14",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1419.0118446350098,\r
+        "y": 814.1214170455933,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "ba061c2b.bf22f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba061c2b.bf22f",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1607.5119400024414,\r
+        "y": 808.1214267015457,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "85b7f6ac.e36598",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1422.5028114318848,\r
+        "y": 861.6954526901245,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "1b75ce4a.6d0092"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b75ce4a.6d0092",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1596.0742225646973,\r
+        "y": 849.9811887741089,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5b05b37.dea904c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1414.8358192443848,\r
+        "y": 903.0287656784058,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "fb9dc1ca.b519e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb9dc1ca.b519e",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1602.6083755493164,\r
+        "y": 898.4679584503174,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "31c7dfa0.a2acb",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1152.0117568969727,\r
+        "y": 862.1214228868484,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "69850da3.9c7b14",\r
+                "85b7f6ac.e36598",\r
+                "5b05b37.dea904c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c256fc10.56b7c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create  SDWAN site",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-site-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"site-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1180.5121002197266,\r
+        "y": 1060.121494293213,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "626ea124.c2d19",\r
+                "77fd4a1.6d0b0b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6007a527.cdf6fc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1576.1784210205078,\r
+        "y": 1040.0103092193604,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1facc57c.dbee2b",\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 executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1573.6229209899902,\r
+        "y": 1074.5656490325928,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b4696aa.b04baa",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1442.6230182647705,\r
+        "y": 1076.5657682418823,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "1facc57c.dbee2b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fb3f457.93c7fc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1434.0672721862793,\r
+        "y": 1039.2324876785278,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "6007a527.cdf6fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "199f525b.bab65e",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1418.2657356262207,\r
+        "y": 940.1253787279129,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "e85c3a39.e5bd58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6235f60.69d19",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1410.5157356262207,\r
+        "y": 981.7682620286942,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "429813db.05fa0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "429813db.05fa0c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1536.5992317199707,\r
+        "y": 982.0142947435379,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e85c3a39.e5bd58",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1555.2657356262207,\r
+        "y": 940.1253787279129,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cfb510cb.1323d",\r
+        "type": "comment",\r
+        "name": "tmp.thirdparty-sdnc-id is hardcoded value?",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1147.515609741211,\r
+        "y": 826.1253840923309,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "653ef686.4a6068",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 875.5117568969727,\r
+        "y": 846.7878704071045,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "31c7dfa0.a2acb",\r
+                "d00d4af5.3de678",\r
+                "f5120e80.4ebea",\r
+                "c256fc10.56b7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d00d4af5.3de678",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1168.654685974121,\r
+        "y": 963.1213312149048,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "199f525b.bab65e",\r
+                "b6235f60.69d19"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5120e80.4ebea",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1128.6546096801758,\r
+        "y": 1012.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "626ea124.c2d19",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1436.6546096801758,\r
+        "y": 1137.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "352b1b5f.73bb64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "352b1b5f.73bb64",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1592.6546096801758,\r
+        "y": 1137.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "77fd4a1.6d0b0b4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1436.6546096801758,\r
+        "y": 1186.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "a435af2d.1ebe4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a435af2d.1ebe4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1614.6546096801758,\r
+        "y": 1183.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "27be343.61169cc",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 558.4484710693359,\r
+        "y": 912.5660271644592,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d4441d6.c778f",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 542.1151275634766,\r
+        "y": 953.9827690124512,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c4e5cc7.b76554",\r
+        "type": "set",\r
+        "name": "set vf-module-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 597.5952453613281,\r
+        "y": 1003.5700263977051,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1cc606fc.7b90b9",\r
+        "type": "save",\r
+        "name": "update site instance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \n      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\n<parameter name='operational-status' value='PendingDelete' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 586.781982421875,\r
+        "y": 1052.4551830291748,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0d9af80.b3024",\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": 507.5597839355469,\r
+        "y": 1103.8992748260498,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.json
new file mode 100644 (file)
index 0000000..4b4448b
--- /dev/null
@@ -0,0 +1,674 @@
+[\r
+    {\r
+        "id": "187aa613.a5839a",\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": 235.00390625,\r
+        "y": 121.23810815811157,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "582fdd43.f9c334"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "582fdd43.f9c334",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-site-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 246.71820068359375,\r
+        "y": 215.58634042739868,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "5b1517bd.e6d538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd9a7d3b.c0b22",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 155.71820068359375,\r
+        "y": 58.999998569488525,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "187aa613.a5839a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b1517bd.e6d538",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 263.38490295410156,\r
+        "y": 449.66671800613403,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "9241d723.4c1768",\r
+                "583bedbe.114ce4",\r
+                "530fc00e.364a7",\r
+                "6080131a.3dc0dc",\r
+                "e87fa266.b6e36",\r
+                "809305f5.00af78",\r
+                "35360c23.e7bca4",\r
+                "f2c5088e.cdf1f8",\r
+                "8e537e93.b1e07",\r
+                "c5084158.dcae4",\r
+                "a42b62f1.2ca2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "583bedbe.114ce4",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.7495651245117,\r
+        "y": 295.2691397666931,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "54d8e288.9c571c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9241d723.4c1768",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 583.7182197570801,\r
+        "y": 234.000009059906,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "deee2c29.49f92"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "deee2c29.49f92",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 763.7182006835938,\r
+        "y": 232.99999856948853,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "c9ce5d0a.f9326"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c9ce5d0a.f9326",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 913.1469268798828,\r
+        "y": 234.14291620254517,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "54d8e288.9c571c",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 801.7182159423828,\r
+        "y": 296.0000047683716,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "60ddf1fc.3523e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "60ddf1fc.3523e",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1016.7182006835938,\r
+        "y": 293.9999985694885,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "3516b602.f2680a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3516b602.f2680a",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1180.7182006835938,\r
+        "y": 288.9999985694885,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "530fc00e.364a7",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 649.7182350158691,\r
+        "y": 372.00002336502075,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "8726f5fa.6a9e18",\r
+                "28d1ea9e.688d26",\r
+                "8ffcd1cb.2fcee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28d1ea9e.688d26",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.7182273864746,\r
+        "y": 406.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "ed85f484.f7f278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8726f5fa.6a9e18",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 876.7182235717773,\r
+        "y": 353.0000319480896,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "ed85f484.f7f278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed85f484.f7f278",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1034.7182273864746,\r
+        "y": 366.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8ffcd1cb.2fcee",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.7182273864746,\r
+        "y": 467.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "340e8678.09189a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "806cc3c4.ab426",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1225.7182426452637,\r
+        "y": 465.0000468492508,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "340e8678.09189a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1032.7182731628418,\r
+        "y": 464.00002431869507,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "806cc3c4.ab426",\r
+                "f59f2884.04cee8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f59f2884.04cee8",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1244.7182121276855,\r
+        "y": 518.0000233650208,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "2f51cfde.50b1e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f51cfde.50b1e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1487.7182273864746,\r
+        "y": 513.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "b1049a4.b276d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1049a4.b276d68",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1728.718355178833,\r
+        "y": 506.00003004074097,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "30dc082a.0a5cd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "30dc082a.0a5cd8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1880.7183265686035,\r
+        "y": 508.00002336502075,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "68ce9aa6.9cbee4",\r
+                "6fd91070.2784d",\r
+                "83965509.802248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68ce9aa6.9cbee4",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2102.7183265686035,\r
+        "y": 504.00002336502075,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6fd91070.2784d",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2108.7183265686035,\r
+        "y": 553.0000233650208,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "83965509.802248",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2136.718547821045,\r
+        "y": 601.0000290870667,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6080131a.3dc0dc",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 588.7494468688965,\r
+        "y": 545.0161061286926,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "73f1e922.5bcb58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73f1e922.5bcb58",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 736.1780891418457,\r
+        "y": 544.5875163078308,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "a8c19777.b80838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8c19777.b80838",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 885.6068153381348,\r
+        "y": 545.7304339408875,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e87fa266.b6e36",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 633.047607421875,\r
+        "y": 615.3333115577698,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "f563296b.c51508",\r
+                "5df5c282.7498ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f563296b.c51508",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 923.8808746337891,\r
+        "y": 619.4444346427917,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "def8fb03.8e15e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5df5c282.7498ac",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 890.8810119628906,\r
+        "y": 671.4444873332977,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "2bb9155.57a22ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2bb9155.57a22ea",\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=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1050.3807792663574,\r
+        "y": 674.4444863796234,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "def8fb03.8e15e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1121.1872749328613,\r
+        "y": 629.7695889472961,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a42b62f1.2ca2",\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": 611.1588096618652,\r
+        "y": 994.2221984863281,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "809305f5.00af78",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 607.2454776763916,\r
+        "y": 689.3333535194397,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35360c23.e7bca4",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 687.2453918457031,\r
+        "y": 740.3333554267883,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "37a5b897.303c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f2c5088e.cdf1f8",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 611.3467636108398,\r
+        "y": 793.1375732421875,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8e537e93.b1e07",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 648.2454376220703,\r
+        "y": 843.3333582878113,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37a5b897.303c08",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 947.24538230896,\r
+        "y": 747.3332152366638,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "28df8155.45a17e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b54d3819.c1f898",\r
+        "type": "delete",\r
+        "name": "delete site vf instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='site-resource' \n        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 693.2457847595215,\r
+        "y": 941.59490442276,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "28df8155.45a17e",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1133.245449066162,\r
+        "y": 747.3333759307861,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "b11e0659.68c598"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b11e0659.68c598",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1302.2454566955566,\r
+        "y": 746.3332133293152,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "8c9a4a2b.2a6988"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8c9a4a2b.2a6988",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1456.2452955245972,\r
+        "y": 738.3332142829895,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "9c4fcf43.faebd",\r
+                "f51761cb.90c27"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c4fcf43.faebd",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1621.2453908920288,\r
+        "y": 713.3333697319031,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f51761cb.90c27",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1643.2453908920288,\r
+        "y": 769.333333492279,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c5084158.dcae4",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 635.0476455688477,\r
+        "y": 888.6666932106018,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.json
new file mode 100644 (file)
index 0000000..b51105e
--- /dev/null
@@ -0,0 +1,556 @@
+[\r
+    {\r
+        "id": "5781857d.34f10c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 188.03125,\r
+        "y": 43.031253814697266,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "34ea5d13.adf2e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "34ea5d13.adf2e2",\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": 267.31695556640625,\r
+        "y": 105.26936340332031,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "7a350033.439ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a350033.439ec",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-vpn-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 279.03125,\r
+        "y": 199.61759567260742,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "eae20948.900428"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eae20948.900428",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 265.6979217529297,\r
+        "y": 384.6979675292969,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "94df5008.7b42f",\r
+                "7ed34394.611e1c",\r
+                "23e3b0bc.99c9d",\r
+                "3dc91e9a.3f3102",\r
+                "f95e37c5.b5e148",\r
+                "fc6cc049.08c93",\r
+                "b58620d0.ff986",\r
+                "b6f2d919.b74fa8",\r
+                "9597930d.e038d",\r
+                "ef79430c.f091e",\r
+                "fc543198.c0c2e",\r
+                "a41eacc.0c7475",\r
+                "d46578bf.5e8e58",\r
+                "21b0010b.c0a22e",\r
+                "5d9f4d8a.00ca04",\r
+                "48cf7750.d184d8",\r
+                "4efe1671.fc4788",\r
+                "d6a9c738.cde808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "94df5008.7b42f",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 805.6980133056641,\r
+        "y": 222.03141355514526,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "23e3b0bc.99c9d",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 637.0625152587891,\r
+        "y": 310.06250381469727,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ed34394.611e1c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SDWAN-Activate\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 601.7603912353516,\r
+        "y": 266.0624761581421,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f983045.d243a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 924.486083984375,\r
+        "y": 360.04166173934937,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "875bfb0c.99b4c8",\r
+                "fda7ec02.f4fa3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "875bfb0c.99b4c8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1108.4861907958984,\r
+        "y": 322.0416889190674,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "2605efbe.66ab7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2605efbe.66ab7",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1282.4863166809082,\r
+        "y": 322.04169273376465,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "dadb2cf7.2ff69"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dadb2cf7.2ff69",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1445.4862022399902,\r
+        "y": 321.6416873931885,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fda7ec02.f4fa3",\r
+        "type": "switchNode",\r
+        "name": "switch topology",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1118.9026908874512,\r
+        "y": 369.70831775665283,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "3ae5ca3b.f74cc6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ae5ca3b.f74cc6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1292.902816772461,\r
+        "y": 369.7083215713501,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "4b92911a.56168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b92911a.56168",\r
+        "type": "set",\r
+        "name": "set topology",\r
+        "xml": "<set>\n<parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1455.902702331543,\r
+        "y": 369.3083162307739,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3dc91e9a.3f3102",\r
+        "type": "for",\r
+        "name": "for each network-input-parameters",\r
+        "xml": "<for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 672.6526527404785,\r
+        "y": 369.708309173584,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "7f983045.d243a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4efe1671.fc4788",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 669.4862022399902,\r
+        "y": 496.04168128967285,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "46f8b46c.58115c",\r
+                "a1d7d554.010ed8",\r
+                "21d4ff8e.d6051"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46f8b46c.58115c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 931.486083984375,\r
+        "y": 449.04166159033775,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "df26ddf3.952"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a1d7d554.010ed8",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 934.97705078125,\r
+        "y": 496.615697234869,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "c96d1e93.137b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21d4ff8e.d6051",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930.31005859375,\r
+        "y": 537.9490102231503,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "29af3383.039eac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c96d1e93.137b6",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1111.5484619140625,\r
+        "y": 484.9014333188534,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "29af3383.039eac",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1118.0826148986816,\r
+        "y": 533.3882029950619,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "48cf7750.d184d8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 689.4861221313477,\r
+        "y": 615.0416851043701,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "47bd8a4e.743ee4",\r
+                "5c5772a6.eeb8ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47bd8a4e.743ee4",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 933.486156463623,\r
+        "y": 592.0416917800903,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "91c9ef14.b46a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c5772a6.eeb8ac",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 925.736156463623,\r
+        "y": 645.6845750808716,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "b75502f5.e09e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "91c9ef14.b46a4",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1083.486083984375,\r
+        "y": 593.0416603088379,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b75502f5.e09e5",\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 executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1078.486156463623,\r
+        "y": 645.4346361160278,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "df26ddf3.952",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1128.9861450195312,\r
+        "y": 437.04166159033775,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d9f4d8a.00ca04",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create vpn",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-create.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 695.2254638671875,\r
+        "y": 728.721978187561,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f95e37c5.b5e148",\r
+        "type": "set",\r
+        "name": "set prop.vpn-id and prop.vpn1Id",\r
+        "xml": "<set>\n<parameter name='prop.vpn-id' value='`$vpn-result.success[0].id`' />\n<parameter name='prop.vpn1Id' value='`$vpn-result.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 680.2256622314453,\r
+        "y": 782.7221002578735,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "21b0010b.c0a22e",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create vpn topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-topology-create.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 728.7254638671875,\r
+        "y": 825.7219481468201,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc6cc049.08c93",\r
+        "type": "set",\r
+        "name": "set tenant-id to service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='tenant-id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.tenant-id`' />\n",\r
+        "comments": "",\r
+        "x": 670.7255401611328,\r
+        "y": 877.4720306396484,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b58620d0.ff986",\r
+        "type": "set",\r
+        "name": "set  vpn-id to service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='vpn-id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.vpn-id`' />\n",\r
+        "comments": "",\r
+        "x": 660.9754791259766,\r
+        "y": 976.2218685150146,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b6f2d919.b74fa8",\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": 618.0352668762207,\r
+        "y": 1336.5354351997375,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d6a9c738.cde808",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='Active' />\n<parameter name='tenanat-id' value='`$prop.tenant-id`' />\n<parameter name='vpn-id' value='`$prop.vpn-id`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 687.3649978637695,\r
+        "y": 1230.905207157135,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc543198.c0c2e",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 684.0000152587891,\r
+        "y": 1174.0000378815457,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ef79430c.f091e",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 718.0000152587891,\r
+        "y": 1125.5000369278714,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9597930d.e038d",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 681.9999694824219,\r
+        "y": 1077.7499914169312,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a41eacc.0c7475",\r
+        "type": "set",\r
+        "name": "set  param-length + 1",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />",\r
+        "comments": "",\r
+        "x": 657.0000476837158,\r
+        "y": 1026.0000734329224,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d46578bf.5e8e58",\r
+        "type": "set",\r
+        "name": "set param length + 1",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 652.0000152587891,\r
+        "y": 922.0000267028809,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.json
new file mode 100644 (file)
index 0000000..e8db0bf
--- /dev/null
@@ -0,0 +1,654 @@
+[\r
+    {\r
+        "id": "5892697a.9c21d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 482.03125,\r
+        "y": 382.00000220537186,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "3419ca3e.28a196",\r
+                "18fb5a27.0012c6",\r
+                "987ea69b.4f3758",\r
+                "6b48247.18bfcdc",\r
+                "12914a5f.e6b036",\r
+                "5fd7b0fa.16e31",\r
+                "623a4487.e99e9c",\r
+                "4156b8b2.c36818",\r
+                "9723e968.8650b8",\r
+                "7be42a51.991f94",\r
+                "4a04380d.9f4fa8",\r
+                "ea1ae816.a77cc8",\r
+                "43b512b5.67ddbc",\r
+                "64fa1f85.6660d",\r
+                "37949d89.629082"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "309bc096.5fac7",\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": 324.03126525878906,\r
+        "y": 165.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "1f3522ef.5a48ed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f3522ef.5a48ed",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-vpn-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 323.03126525878906,\r
+        "y": 265.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "5892697a.9c21d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3582a035.23289",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 153.53126525878906,\r
+        "y": 77.00000125169754,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "309bc096.5fac7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3419ca3e.28a196",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.3606719970703,\r
+        "y": 273.49612647295,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "e71de9cd.25e818"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e71de9cd.25e818",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1034.3607635498047,\r
+        "y": 272.1627896428108,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "637c1185.e9ab2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46c73b2c.401b84",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n\n",\r
+        "comments": "",\r
+        "x": 1406.0272521972656,\r
+        "y": 274.16279250383377,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "637c1185.e9ab2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1252.6940803527832,\r
+        "y": 274.1627715229988,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "46c73b2c.401b84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6b48247.18bfcdc",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.2814559936523,\r
+        "y": 495.6666596531868,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "de525177.578e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de525177.578e5",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1071.059799194336,\r
+        "y": 493.2222436070442,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "f754a25f.6ce5b",\r
+                "a4e3fb1c.255518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f754a25f.6ce5b",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1267.3160018920898,\r
+        "y": 470.9703820347786,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a4e3fb1c.255518",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1236.7604293823242,\r
+        "y": 507.9704983830452,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "af1423f9.97927",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1240.2816581726074,\r
+        "y": 430.3333280682564,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18fb5a27.0012c6",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 796.7812652587891,\r
+        "y": 228.99999552965164,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "f110968e.0e58a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f110968e.0e58a8",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983.4479446411133,\r
+        "y": 228.33329325914383,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "241d819c.c8566e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "241d819c.c8566e",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1165.1145706176758,\r
+        "y": 228.33329325914383,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "987ea69b.4f3758",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.0312547683716,\r
+        "y": 348.99999648332596,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "f6ea0a95.1bfcf8",\r
+                "7969b2ec.a074ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6ea0a95.1bfcf8",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1069.031265258789,\r
+        "y": 324.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "95e71927.be46c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7969b2ec.a074ec",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1069.031265258789,\r
+        "y": 364.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "53dfed7f.4e81b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "95e71927.be46c8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1211.531265258789,\r
+        "y": 324.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "53dfed7f.4e81b4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.3883094787598,\r
+        "y": 364.9365056157112,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "bd7a9ede.140ae",\r
+                "804dd88d.6a51d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "804dd88d.6a51d8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1366.086784362793,\r
+        "y": 334.55560430837795,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bd7a9ede.140ae",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1422.5152893066406,\r
+        "y": 387.77773410081863,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "549e64ff.4f02fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "96b53f57.6e1a2",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1646.1660194396973,\r
+        "y": 346.0317915081978,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "549e64ff.4f02fc",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1697.801010131836,\r
+        "y": 387.3492367863655,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "789deb75.f505c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "789deb75.f505c4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1598.53120803833,\r
+        "y": 445.92066794633865,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "60c9009a.34691"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "60c9009a.34691",\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1746.2813110351562,\r
+        "y": 445.77786001516506,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4156b8b2.c36818",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.vpn-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 851.8844451904297,\r
+        "y": 798.4962475895882,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "623a4487.e99e9c",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.vpn-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 863.218017578125,\r
+        "y": 751.162949860096,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5fd7b0fa.16e31",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 835.2180786132812,\r
+        "y": 702.162949860096,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "12914a5f.e6b036",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 835.2176055908203,\r
+        "y": 648.1542380452156,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9723e968.8650b8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 845.5314331054688,\r
+        "y": 896.0000686645508,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "64fa1f85.6660d",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.sdwan-vpn-id = $prop.vpn-vf-index' >\n<parameter name='sdwan-vpn-id' value='`$prop.vpn-vf-index`' />\n<parameter name='sdwan-vpn-name' value='`$prop.name`' />\n<parameter name='topology' value='`$prop.topology`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.vpn-vf-index + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.0312938690186,\r
+        "y": 941.5000165104866,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "37949d89.629082",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.vpn-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.vpn-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 849.0312213897705,\r
+        "y": 987.500047981739,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7be42a51.991f94",\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": 799.7537670135498,\r
+        "y": 1034.6739071011543,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4a04380d.9f4fa8",\r
+        "type": "for",\r
+        "name": "for loop i - Network input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 863.2851715087891,\r
+        "y": 584.5039075016975,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "b830a75.ba7e858"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b830a75.ba7e858",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1150.5080490112305,\r
+        "y": 584.726221382618,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "e85749e.f646cb8",\r
+                "44026e82.c4236"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e85749e.f646cb8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1338.729892730713,\r
+        "y": 567.0595255494118,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "b01f15f5.803658"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "44026e82.c4236",\r
+        "type": "switchNode",\r
+        "name": "switch topology",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1349.5695533752441,\r
+        "y": 607.0595236420631,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "9f894ed7.8915b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b01f15f5.803658",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1525.729892730713,\r
+        "y": 563.0595255494118,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "e28f739a.4fef3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f894ed7.8915b",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1519.5695533752441,\r
+        "y": 603.0595236420631,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "3dd20fe.b268ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e28f739a.4fef3",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1675.73002243042,\r
+        "y": 561.6595321297646,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3dd20fe.b268ef",\r
+        "type": "set",\r
+        "name": "set topology",\r
+        "xml": "<set>\n<parameter name='prop.topology' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1706.9029941558838,\r
+        "y": 601.5206804871559,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ea1ae816.a77cc8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 964.5351715087891,\r
+        "y": 174.00390750169754,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "43b512b5.67ddbc",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.vpn-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 837.5313110351562,\r
+        "y": 847.0312881469727,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.json
new file mode 100644 (file)
index 0000000..1426383
--- /dev/null
@@ -0,0 +1,599 @@
+[\r
+    {\r
+        "id": "702b97b3.8ee378",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 767.03125,\r
+        "y": 208.03125,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "32955a69.c89b66",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 149.36448669433594,\r
+        "y": 29.031090259552002,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "6d10fa5f.ef1ca4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d10fa5f.ef1ca4",\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": 228.6501922607422,\r
+        "y": 91.26919984817505,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "90ef259f.4465b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "90ef259f.4465b8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-vpn-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 240.36448669433594,\r
+        "y": 185.61743211746216,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "36593f98.16e3d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36593f98.16e3d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 227.03115844726562,\r
+        "y": 370.6978039741516,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "702b97b3.8ee378",\r
+                "2f3304e5.d7fd4c",\r
+                "6be98d9b.539ff4",\r
+                "a0c4b3e9.994a9",\r
+                "b323d31c.acd57",\r
+                "5f46d882.04a158",\r
+                "621066a9.944e88",\r
+                "e3e4d1bd.80fd7",\r
+                "b9de2d65.c5979",\r
+                "7f24be05.1cd31",\r
+                "c30bc7b4.1dd508",\r
+                "5edb2470.30880c",\r
+                "c2f4c0be.85e67",\r
+                "637b40e9.05bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6be98d9b.539ff4",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 598.395751953125,\r
+        "y": 296.062340259552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f3304e5.d7fd4c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SDWAN-Activate\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 563.0936279296875,\r
+        "y": 252.06231260299683,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5ced122.5325a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 874.8193664550781,\r
+        "y": 379.04149866104126,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "3739b39c.50fc6c",\r
+                "ac6efceb.fbae4",\r
+                "f4c9064c.3cb418",\r
+                "6663d5f5.4132fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3739b39c.50fc6c",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1069.8194274902344,\r
+        "y": 308.0415253639221,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "5651b769.f6f788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5651b769.f6f788",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1243.8195533752441,\r
+        "y": 308.0415291786194,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "8feb29dd.764fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8feb29dd.764fe8",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1406.8194389343262,\r
+        "y": 307.6415238380432,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac6efceb.fbae4",\r
+        "type": "switchNode",\r
+        "name": "switch topology",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1080.235927581787,\r
+        "y": 355.70815420150757,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "fffcbfb8.f2fa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fffcbfb8.f2fa",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1254.2360534667969,\r
+        "y": 355.70815801620483,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "aba521f0.c2f18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aba521f0.c2f18",\r
+        "type": "set",\r
+        "name": "set topology",\r
+        "xml": "<set>\n<parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1417.235939025879,\r
+        "y": 355.30815267562866,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a0c4b3e9.994a9",\r
+        "type": "for",\r
+        "name": "for each network-input-parameters",\r
+        "xml": "<for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.9858703613281,\r
+        "y": 381.70817041397095,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "d5ced122.5325a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9de2d65.c5979",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 649.8194122314453,\r
+        "y": 619.0415069162846,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "962e611e.d3b8",\r
+                "d1b437fc.b72478",\r
+                "76cb6a63.2b7384"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "962e611e.d3b8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 894.8194122314453,\r
+        "y": 565.0415081977844,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "61f20284.b32c7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1b437fc.b72478",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898.3103790283203,\r
+        "y": 612.6155438423157,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "d289f55.a1fa308"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76cb6a63.2b7384",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 893.6433868408203,\r
+        "y": 653.9488568305969,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "7041e417.d417bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d289f55.a1fa308",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1074.8817901611328,\r
+        "y": 600.9012799263,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7041e417.d417bc",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1081.415943145752,\r
+        "y": 649.3880496025085,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7f24be05.1cd31",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 657.8194122314453,\r
+        "y": 730.0415069162846,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "4afad198.25387",\r
+                "f3670767.c4d1d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4afad198.25387",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 896.8194847106934,\r
+        "y": 708.041538387537,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "7f06af8d.b7446"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3670767.c4d1d8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 889.0694847106934,\r
+        "y": 761.6844216883183,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "5cfe33a1.e2bc8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f06af8d.b7446",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1046.8194122314453,\r
+        "y": 709.0415069162846,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5cfe33a1.e2bc8c",\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 executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1041.8194847106934,\r
+        "y": 761.4344827234745,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61f20284.b32c7c",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1092.3194732666016,\r
+        "y": 553.0415081977844,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b323d31c.acd57",\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": 592.3685722351074,\r
+        "y": 1226.5350461006165,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f4c9064c.3cb418",\r
+        "type": "switchNode",\r
+        "name": "switch vpn-id",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vpn-id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1077.368392944336,\r
+        "y": 405.284996509552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "7073b26f.c2162c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7073b26f.c2162c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1259.3684253692627,\r
+        "y": 405.2849953174591,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "ec43e2d2.05e58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec43e2d2.05e58",\r
+        "type": "set",\r
+        "name": "set prop.vpn-id",\r
+        "xml": "<set>\n<parameter name='prop.vpn-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1424.3683586120605,\r
+        "y": 407.88499689102173,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6663d5f5.4132fc",\r
+        "type": "switchNode",\r
+        "name": "switch tenant-id",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tenant-id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1088.1182556152344,\r
+        "y": 449.284996509552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "b0ecdc75.e86fd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0ecdc75.e86fd",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1257.1184558868408,\r
+        "y": 448.28499841690063,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "aa1766f9.85f0b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa1766f9.85f0b8",\r
+        "type": "set",\r
+        "name": "set prop.tenant-id",\r
+        "xml": "<set>\n<parameter name='prop.tenant-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1420.1183414459229,\r
+        "y": 447.88499307632446,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c30bc7b4.1dd508",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 626.3644866943359,\r
+        "y": 816.031090259552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5edb2470.30880c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode delete vpn topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"delete\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 685.364501953125,\r
+        "y": 874.6978039741516,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2f4c0be.85e67",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode delete vpn",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-delete.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 662.8645172119141,\r
+        "y": 931.6980247497559,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "637b40e9.05bd1",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='PendingDelete' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 658.5832214355469,\r
+        "y": 1156.734342098236,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f46d882.04a158",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 645,\r
+        "y": 998,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "621066a9.944e88",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 628.6666564941406,\r
+        "y": 1039.416741847992,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e3e4d1bd.80fd7",\r
+        "type": "set",\r
+        "name": "set vf-module-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 684.1467742919922,\r
+        "y": 1089.0039992332458,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.json
new file mode 100644 (file)
index 0000000..eb28774
--- /dev/null
@@ -0,0 +1,159 @@
+[\r
+    {\r
+        "id": "dbaa41e6.046bf",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-vpn-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 347.03125,\r
+        "y": 269.99999737739563,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "2654c2fb.11dfbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8578b02a.61d67",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 147.0311279296875,\r
+        "y": 109.99999737739563,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "de304501.e706b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de304501.e706b8",\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": 359.03113174438477,\r
+        "y": 182.00001454353333,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "dbaa41e6.046bf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2654c2fb.11dfbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 517.4755821228027,\r
+        "y": 332.4444534778595,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "d773525e.57dfe",\r
+                "7dccf11a.58654",\r
+                "f366cb35.f14868",\r
+                "1458597e.bb0697",\r
+                "38c53cd1.7984d4",\r
+                "6bc9b9bd.b7c0e8",\r
+                "a3fafa89.e43bc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d773525e.57dfe",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-vf-module-operation-delete\"/>\n<parameter name=\"field3\" value=\"SDWAN-Delete\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.8088531494141,\r
+        "y": 193.3333694934845,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7dccf11a.58654",\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": 806.586784362793,\r
+        "y": 504.9796769618988,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1458597e.bb0697",\r
+        "type": "set",\r
+        "name": "set new vpn-vf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`\"/>\n",\r
+        "comments": "",\r
+        "x": 836.1082077026367,\r
+        "y": 318.89519906044006,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f366cb35.f14868",\r
+        "type": "set",\r
+        "name": "Remove networks from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 876.732364654541,\r
+        "y": 366.8631408214569,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a3fafa89.e43bc8",\r
+        "type": "delete",\r
+        "name": "delete SDWAN VPNInstance connectivity in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='sdwan-vpn' \n        key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 914.6637077331543,\r
+        "y": 260.00628304481506,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "38c53cd1.7984d4",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 997.0312805175781,\r
+        "y": 131.99999928474426,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6bc9b9bd.b7c0e8",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 845.0000305175781,\r
+        "y": 431.00001335144043,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.json
new file mode 100644 (file)
index 0000000..bf765d8
--- /dev/null
@@ -0,0 +1,2281 @@
+[\r
+    {\r
+        "id": "aa1b72bf.43103",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 394.03125,\r
+        "y": 423.0742139816284,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7552c12f.99edc",\r
+                "298f83f7.59d8fc",\r
+                "c6091bc8.bb5b78",\r
+                "6d78088c.cbfc88",\r
+                "e1a9bec.bd0de4",\r
+                "a2c6a4a4.2e00b8",\r
+                "c63182d3.fbcc4",\r
+                "409701be.1a03c",\r
+                "9e802733.d722c8",\r
+                "7362e1fa.b1592",\r
+                "46743c8f.b3fd84",\r
+                "8679bf14.4ac1",\r
+                "7f799175.fb047",\r
+                "131a2ffd.3a8e5",\r
+                "92451c4e.ffaad",\r
+                "a7fe1093.6d40a",\r
+                "e9b4c90b.c4ce98",\r
+                "7c031fb.d5948e",\r
+                "e28c61da.26a12",\r
+                "555b730f.2ad3ec",\r
+                "103790c7.a4e84f",\r
+                "726be50f.6f16fc",\r
+                "e2c4dac5.6f39e8",\r
+                "675842c8.f4343c",\r
+                "86ffb9d1.271bf8",\r
+                "7a2f98d7.5ecea8",\r
+                "83739943.858e68",\r
+                "93891afe.aeea78",\r
+                "bc9fd33d.1cf95"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ef2c8ad.bc5ff8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 118.50391006469727,\r
+        "y": 72,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "988b9fb.b96a56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "988b9fb.b96a56",\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": 249.78960037231445,\r
+        "y": 121.23810863494873,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "db46e718.9e34f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db46e718.9e34f8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-wanport-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 252.9325294494629,\r
+        "y": 206.00003242492676,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "aa1b72bf.43103"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "298f83f7.59d8fc",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 823.0351600646973,\r
+        "y": 221.07811641693115,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "d5c2444e.40f148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5c2444e.40f148",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1075.0352516174316,\r
+        "y": 219.744779586792,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "2d2f666f.01836a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cffa7667.9fa518",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1446.7017402648926,\r
+        "y": 221.74478244781494,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2d2f666f.01836a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1293.3685684204102,\r
+        "y": 221.74476146697998,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "cffa7667.9fa518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7552c12f.99edc",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.455753326416,\r
+        "y": 176.5819854736328,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3a4ab2c5.34288e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a4ab2c5.34288e",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1024.1224327087402,\r
+        "y": 175.915283203125,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9c32c1a6.b8f8d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c32c1a6.b8f8d",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1205.7890586853027,\r
+        "y": 175.915283203125,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "90dd0a6d.b97718",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1476.0351676940918,\r
+        "y": 391.0781068508513,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6395826d.fca69c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9272b53d.a87e88",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1984.3210220336914,\r
+        "y": 358.64962673187256,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "e056b855.39d1d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e4a72fa.4d4f3c",\r
+        "type": "set",\r
+        "name": "set vf-module-length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1462.6067924499512,\r
+        "y": 354.855993270874,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f8dd3a29.d23a98",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1266.908187866211,\r
+        "y": 368.2368783657439,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "90dd0a6d.b97718",\r
+                "7e4a72fa.4d4f3c",\r
+                "e9fcde91.f8ee4",\r
+                "15ae932b.8eaafd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da9482b8.2c7db",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.5511436462402,\r
+        "y": 368.3003663723357,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f8dd3a29.d23a98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6091bc8.bb5b78",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.5511255264282,\r
+        "y": 295.3003787994385,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "da9482b8.2c7db",\r
+                "75404cd4.467764",\r
+                "b9120614.fcff58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "75404cd4.467764",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1128.035161972046,\r
+        "y": 267.0781078338623,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "73c9cf7f.c3fda"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9120614.fcff58",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1130.0663509368896,\r
+        "y": 304.10941886901855,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "73c9cf7f.c3fda"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73c9cf7f.c3fda",\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=\"vf-module-operation-input.vf-module-request-input.vf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1287.8438663482666,\r
+        "y": 284.9983673095703,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e056b855.39d1d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2188.0352630615234,\r
+        "y": 357.07813313556835,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3493694e.e41bb6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3493694e.e41bb6",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2358.378559112549,\r
+        "y": 361.164268522989,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "8b2508c0.364288",\r
+                "1dfeb945.730fd7",\r
+                "fe377f26.34769"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b2508c0.364288",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2609.2652130126953,\r
+        "y": 331.50668144226074,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1dfeb945.730fd7",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2603.71150970459,\r
+        "y": 376.16432145191357,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "33f87d4b.131732",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANDeviceInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1783.5352668762207,\r
+        "y": 457.07813835144043,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "19b41c70.4beab4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19b41c70.4beab4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2012.5350151062012,\r
+        "y": 456.07811546325684,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "1a6abe61.332a02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1a6abe61.332a02",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1967.9479293823242,\r
+        "y": 518.0742564201355,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4f4f0899.d407e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f4f0899.d407e8",\r
+        "type": "for",\r
+        "name": "for loop didx - Get deviceId from servicedata",\r
+        "xml": "<for index=\"didx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2249.2816829681396,\r
+        "y": 528.0742769241333,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3ef068c9.f46d98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6395826d.fca69c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1777.5352249145508,\r
+        "y": 362.0781407649629,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9272b53d.a87e88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c29879dc.c33238",\r
+        "type": "comment",\r
+        "name": "Get devices",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1775.5351600646973,\r
+        "y": 427.07811641693115,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e9fcde91.f8ee4",\r
+        "type": "set",\r
+        "name": "set prop.site.deviceId_length",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId_length' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1489.0351600646973,\r
+        "y": 319.07811641693115,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6d78088c.cbfc88",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 838.0352058410645,\r
+        "y": 384.07812309265137,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "58514bba.536ea4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2548.281505584717,\r
+        "y": 522.0744781494141,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6a60b8bf.296158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a60b8bf.296158",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2708.2817611694336,\r
+        "y": 524.0743312835693,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6bb682b3.a31adc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6bb682b3.a31adc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2860.2819328308105,\r
+        "y": 523.0743312835693,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6989c0f.96b544"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6989c0f.96b544",\r
+        "type": "set",\r
+        "name": "set deviceId",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\n<parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 3000.281936645508,\r
+        "y": 522.6742858886719,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fe377f26.34769",\r
+        "type": "call",\r
+        "name": "call sdwan-get-wan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2595.0079612731934,\r
+        "y": 423.00392010761425,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "48f81161.66243",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSiteInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1763.507797241211,\r
+        "y": 565.7539291381836,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "c8d462fc.6ddb3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8d462fc.6ddb3",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2005.5076446533203,\r
+        "y": 596.75390625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "92bd8825.90b9a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92bd8825.90b9a8",\r
+        "type": "set",\r
+        "name": "set tmp.siteVidx",\r
+        "xml": "<set>\n<parameter name='tmp.siteVidx' value='`$idx`' />\n<parameter name='ctx.site.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].`' />\n",\r
+        "comments": "",\r
+        "x": 2228.237594604492,\r
+        "y": 624.1824264526367,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3ef068c9.f46d98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2451.7578125,\r
+        "y": 617.0039043426514,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "a2711e1c.d6e09",\r
+                "113b21af.23a45e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2711e1c.d6e09",\r
+        "type": "switchNode",\r
+        "name": "switch name (DeviceName)",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2677.425521850586,\r
+        "y": 618.3374032974243,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "661373f5.be831c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "661373f5.be831c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2879.426013946533,\r
+        "y": 612.3374633789062,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "e8b03259.bbcb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8b03259.bbcb",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2697.7590560913086,\r
+        "y": 695.3374328613281,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4554c798.aa2dd8",\r
+                "bf88a576.7aa2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4554c798.aa2dd8",\r
+        "type": "switchNode",\r
+        "name": "switch deviceName match",\r
+        "xml": "<switch test=\"`$prop.wan.deviceName == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2903.42578125,\r
+        "y": 696.3374967575073,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "8f8b4c45.50538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f8b4c45.50538",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3086.7597618103027,\r
+        "y": 698.3375577926636,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "b9108ee7.e5b06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9108ee7.e5b06",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2986.0917205810547,\r
+        "y": 770.3373403549194,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4d1bca38.4b9934",\r
+                "ad38b737.99a528",\r
+                "d2df96f9.05ab08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ad38b737.99a528",\r
+        "type": "set",\r
+        "name": "set tmp.devicevidx",\r
+        "xml": "<set>\n<parameter name='tmp.devicevidx' value='`$idx`' />\n\n",\r
+        "comments": "",\r
+        "x": 3236.84765625,\r
+        "y": 891.0104351043701,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "26e95066.5bddc",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3535.515853881836,\r
+        "y": 831.677375793457,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "1f6de92a.592947"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f6de92a.592947",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3688.5162239074707,\r
+        "y": 832.6774530410767,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "49ba52e1.34347c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49ba52e1.34347c",\r
+        "type": "set",\r
+        "name": "set prop.wan.deviceId",\r
+        "xml": "<set>\n<parameter name='prop.wan.deviceId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 3857.516830444336,\r
+        "y": 831.2774877548218,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d1bca38.4b9934",\r
+        "type": "for",\r
+        "name": "for loop deviceidx - Get deviceId from servicedata",\r
+        "xml": "<for index=\"deviceidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">\n    \n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3279.045753479004,\r
+        "y": 766.0417041778564,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9729ab27.7939b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9729ab27.7939b8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 3356.046485900879,\r
+        "y": 830.0418033599854,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "26e95066.5bddc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6cd6d96e.5cd3a8",\r
+        "type": "comment",\r
+        "name": "Get siteId from site resource created for this service",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 936.7578377723694,\r
+        "y": 440.0039186477661,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1a9bec.bd0de4",\r
+        "type": "for",\r
+        "name": "for loop sidx - Get siteId from servicedata",\r
+        "xml": "<for index=\"sidx\" start=\"0\" end=\"`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">\n    \n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 899.7578353881836,\r
+        "y": 478.6705856323242,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "d8025975.c452c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d8025975.c452c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1161.7680282592773,\r
+        "y": 479.34741020202637,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7ae7755a.84d27c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ae7755a.84d27c",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].name == 'siteId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1330.7581634521484,\r
+        "y": 479.67071628570557,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6e34759a.33dd3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e34759a.33dd3c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1264.7586250305176,\r
+        "y": 546.6707553863525,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4cc37cb0.d42884"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4cc37cb0.d42884",\r
+        "type": "set",\r
+        "name": "set prop.wan.siteId",\r
+        "xml": "<set>\n<parameter name='prop.wan.siteId' value='`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].value`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1438.7585945129395,\r
+        "y": 543.2706317901611,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "83739943.858e68",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 807.7578125,\r
+        "y": 654.7539043426514,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "a8fa84ce.eb12f8",\r
+                "d18bc7f4.341358",\r
+                "3bf2ecab.90fcb4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8fa84ce.eb12f8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1039.7578964233398,\r
+        "y": 618.753927230835,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9b3d8e62.faaef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d18bc7f4.341358",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1042.248779296875,\r
+        "y": 654.3279638290405,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7795db23.93cf44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3bf2ecab.90fcb4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1037.581787109375,\r
+        "y": 690.661322593689,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "dde2f622.170a38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dde2f622.170a38",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1191.3542785644531,\r
+        "y": 688.1004095077515,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7795db23.93cf44",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1187.8201751708984,\r
+        "y": 652.6136512756348,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b3d8e62.faaef",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1195.2580108642578,\r
+        "y": 617.7538194656372,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "93891afe.aeea78",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 822.2679443359375,\r
+        "y": 742.4309062957764,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "5c43c4aa.9264cc",\r
+                "33df2014.cd50d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c43c4aa.9264cc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1057.2680702209473,\r
+        "y": 728.4308948516846,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "28f385cf.49854a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28f385cf.49854a",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1199.2680778503418,\r
+        "y": 727.4308958053589,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "112c2ecc.277fc1",\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 executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1205.2680778503418,\r
+        "y": 764.8238840103149,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "33df2014.cd50d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1056.5180702209473,\r
+        "y": 764.0738019943237,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "112c2ecc.277fc1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc9fd33d.1cf95",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.2676391601562,\r
+        "y": 797.7639751434326,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "addc3c45.8b358",\r
+        "type": "comment",\r
+        "name": "Create port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1084.7578392028809,\r
+        "y": 826.2539043426514,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7a2f98d7.5ecea8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.0918731689453,\r
+        "y": 883.8098802566528,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "fd994a2a.92c728",\r
+                "92fe968a.87b558"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92fe968a.87b558",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1105.091932296753,\r
+        "y": 859.8099217414856,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3a8360ac.8e93a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd994a2a.92c728",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.0919361114502,\r
+        "y": 897.8100881576538,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "c9adde1d.a5805"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a8360ac.8e93a",\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 executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1249.0922660827637,\r
+        "y": 858.8099212646484,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9adde1d.a5805",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1300.091947555542,\r
+        "y": 898.8099269866943,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2c6a4a4.2e00b8",\r
+        "type": "for",\r
+        "name": "for loop idx - VF-module input parameters",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.4032020568848,\r
+        "y": 1001.4548950195312,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "925ea7f2.d972f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "925ea7f2.d972f8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1105.2991561889648,\r
+        "y": 1000.3768668174744,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "47d44aef.50cf54"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47d44aef.50cf54",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1253.4164009094238,\r
+        "y": 1002.3503503799438,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "14cc8583.77380a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14cc8583.77380a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1401.4163856506348,\r
+        "y": 999.3503150939941,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "1dbcdc9e.2ab813"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1dbcdc9e.2ab813",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1562.4032516479492,\r
+        "y": 1001.2326736450195,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "193e5621.82d8aa",\r
+                "c01114ca.b0a928"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "193e5621.82d8aa",\r
+        "type": "switchNode",\r
+        "name": "switch portType GE match",\r
+        "xml": "<switch test=\"`GE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1764.0699272155762,\r
+        "y": 1002.2327299118042,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "bc174d71.6f73c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc174d71.6f73c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1949.4041366577148,\r
+        "y": 993.2328510284424,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "b0b3b2d7.c3aed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c01114ca.b0a928",\r
+        "type": "switchNode",\r
+        "name": "switch portType LTE match",\r
+        "xml": "<switch test=\"`LTE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1763.4032936096191,\r
+        "y": 1064.232717514038,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "acc83fa1.efe81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acc83fa1.efe81",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1964.4033832550049,\r
+        "y": 1068.2326908111572,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "30dfd74d.405928"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e31d4c6.c361fb",\r
+        "type": "comment",\r
+        "name": "set linkType as Ethernet",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2189.4034156799316,\r
+        "y": 946.2327260971069,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60995785.6141d8",\r
+        "type": "comment",\r
+        "name": "set linkType as Cellular",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2200.625476837158,\r
+        "y": 1033.2326751947403,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "86ffb9d1.271bf8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 877.5149421691895,\r
+        "y": 1130.7885818481445,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "fa0604ac.0f5bc8",\r
+                "2afd5b9a.0c9054"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2afd5b9a.0c9054",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1126.515001296997,\r
+        "y": 1106.7886233329773,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "fd5d5c5b.4f78f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa0604ac.0f5bc8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1126.515001296997,\r
+        "y": 1144.7887878417969,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "2654b242.f97d8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd5d5c5b.4f78f",\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 executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1270.5153350830078,\r
+        "y": 1105.7886228561401,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2654b242.f97d8e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1273.5150127410889,\r
+        "y": 1145.7886266708374,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0b3b2d7.c3aed",\r
+        "type": "set",\r
+        "name": "set prop.wan.linkType Ethernet",\r
+        "xml": "<set>\n<parameter name='prop.wan.linkType' value=\"Ethernet\" />\n\n",\r
+        "comments": "",\r
+        "x": 2176.1807975769043,\r
+        "y": 986.6770839691162,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30dfd74d.405928",\r
+        "type": "set",\r
+        "name": "set prop.wan.linkType Cellular",\r
+        "xml": "<set>\n<parameter name='prop.wan.linkType' value=\"Cellular\" />",\r
+        "comments": "",\r
+        "x": 2186.1808433532715,\r
+        "y": 1066.6770544052124,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e2c4dac5.6f39e8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode get transport network info",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"get\"/>\n<parameter name=\"responsePrefix\" value=\"transportNetworksResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 908.5352516174316,\r
+        "y": 1220.0782823562622,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7a45df8a.7903b",\r
+                "36ac3856.141338"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "555b730f.2ad3ec",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode wan port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-wan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"wanPortResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 881.5354232788086,\r
+        "y": 1604.078293800354,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3f91502c.081fa",\r
+                "6ca447f7.7cb2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb6170fa.31a46",\r
+        "type": "set",\r
+        "name": "set prop.wan.transportNetworkId",\r
+        "xml": "<set>\n<parameter name='prop.wan.transportNetworkId' value='`$transportNetworksResp.data.transportNetworks[$tidx].id`' />\n",\r
+        "comments": "",\r
+        "x": 1776.5262603759766,\r
+        "y": 1335.0683436393738,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "409701be.1a03c",\r
+        "type": "execute",\r
+        "name": "execute split ip and mask",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.wan.ipAddress`'/>\n<parameter name=\"regex\" value=\"/\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"ipandMask\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 828.5250358581543,\r
+        "y": 1396.4012417793274,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "33b19903.96b096",\r
+                "f243f0f3.7944c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f243f0f3.7944c",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1029.5250549316406,\r
+        "y": 1374.4012331962585,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f9bdce70.a5d11"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33b19903.96b096",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1029.525058746338,\r
+        "y": 1415.4012370109558,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7b17ef62.bca26"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9bdce70.a5d11",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.wan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.wan.prefixLength' value='`$ipandMask[1]`' />",\r
+        "comments": "",\r
+        "x": 1226.525074005127,\r
+        "y": 1372.4012331962585,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b17ef62.bca26",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 1184.5250663757324,\r
+        "y": 1412.4012360572815,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5dfad1bf.4368f",\r
+        "type": "switchNode",\r
+        "name": "switch transportNetworkName same",\r
+        "xml": "<switch test=\"`$transportNetworksResp.data.transportNetworks[$tidx].name == $prop.wan.transportNetworkName`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1364.5359382629395,\r
+        "y": 1287.7447051107883,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "2b9a741b.c318cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b9a741b.c318cc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1611.5355377197266,\r
+        "y": 1286.744643688202,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "cb6170fa.31a46"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "844b5fe4.d3379",\r
+        "type": "set",\r
+        "name": "set prop.wan.wanPortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.wanPortId' value='`$wanPortResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 1538.859546661377,\r
+        "y": 1622.735113143921,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c63182d3.fbcc4",\r
+        "type": "set",\r
+        "name": "set prop.wan.devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.devicePortId' value='`$portResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 823.526050567627,\r
+        "y": 1176.0681076049805,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d1467d26.a7bbb",\r
+        "type": "comment",\r
+        "name": "Get network id",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1016.5349006652832,\r
+        "y": 1185.411289215088,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4696daa4.7bc6d4",\r
+        "type": "comment",\r
+        "name": "Create wan port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 812.5349235534668,\r
+        "y": 1361.411374092102,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6ca447f7.7cb2c8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.5351524353027,\r
+        "y": 1578.077886581421,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6062b706.984518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f91502c.081fa",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1151.5350723266602,\r
+        "y": 1625.078049659729,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9419758e.c47e08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9419758e.c47e08",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1320.5350799560547,\r
+        "y": 1625.0778864622116,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "844b5fe4.d3379"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88101c47.a8c7e",\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 executing Create wan port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1492.535488128662,\r
+        "y": 1579.0778856277466,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "36ac3856.141338",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.534755706787,\r
+        "y": 1199.0777764320374,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "b8093d9a.685ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a45df8a.7903b",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.5347518920898,\r
+        "y": 1239.077941417694,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f5cec88.5afd738"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5cec88.5afd738",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1354.534767150879,\r
+        "y": 1238.077778339386,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8093d9a.685ef",\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 executing Get transport network info rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1352.5350875854492,\r
+        "y": 1198.0777764320374,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "86b35264.46fea",\r
+        "type": "comment",\r
+        "name": "TODO: split ip/mask",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1225.5347061157227,\r
+        "y": 1334.5815052986145,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "85c6d777.738908",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1114.5355415344238,\r
+        "y": 1286.411331653595,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "5dfad1bf.4368f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "675842c8.f4343c",\r
+        "type": "for",\r
+        "name": "for loop tidx - Get transportNetwork ID",\r
+        "xml": "<for index=\"tidx\" start=\"0\" end=\"`$transportNetworksResp.data.transportNetworks_length`\">\n    \n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 870.5352210998535,\r
+        "y": 1289.411153793335,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "85c6d777.738908"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6062b706.984518",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1313.5389022827148,\r
+        "y": 1576.5816287994385,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e802733.d722c8",\r
+        "type": "for",\r
+        "name": "for loop idx - VF-module input parameters",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.8372230529785,\r
+        "y": 1481.6666259765625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7d8af107.52b1d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d8af107.52b1d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1115.7331771850586,\r
+        "y": 1480.5885977745056,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "58ac9d77.f3c914"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58ac9d77.f3c914",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1263.8504219055176,\r
+        "y": 1482.562081336975,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "463d34c6.f0572c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "463d34c6.f0572c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1411.8504066467285,\r
+        "y": 1479.5620460510254,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f6e7d7b8.9804f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6e7d7b8.9804f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1568.8372230529785,\r
+        "y": 1481.4443969726562,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7986250.a52d3dc",\r
+                "80947f3.e50c28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7986250.a52d3dc",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode Static match",\r
+        "xml": "<switch test=\"`Static == $prop.wan.IPMode`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1774.50394821167,\r
+        "y": 1482.4444608688354,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "c5b82352.18946"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80947f3.e50c28",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode DHCP match",\r
+        "xml": "<switch test=\"`DHCP == $prop.wan.IPMode`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1773.837314605713,\r
+        "y": 1544.4444484710693,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "ca30d3ba.e4aa5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8679bf14.4ac1",\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": 798.4032974243164,\r
+        "y": 2124.5665798187256,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7362e1fa.b1592",\r
+        "type": "set",\r
+        "name": "set device PortId to service data",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.devicePortId`' />\n",\r
+        "comments": "",\r
+        "x": 858.0597534179688,\r
+        "y": 1779.222749710083,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "726be50f.6f16fc",\r
+        "type": "update",\r
+        "name": "update SDWAN wan port instance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \n      key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vnf-information.vnf-id' >\n<parameter name=\"wan-port-config-id\" value=\"`$vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n<parameter name='operational-status' value='Active' />\n<parameter name='device-port-id' value='`$prop.wan.devicePortId`' />\n<parameter name='wan-port-id' value='`$prop.wan.wanPortId`' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 925.7223663330078,\r
+        "y": 2090.3707427978516,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "46743c8f.b3fd84",\r
+        "type": "set",\r
+        "name": "set wan portId to service data",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='wanPortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.wanPortId`' />\n",\r
+        "comments": "",\r
+        "x": 864.0687103271484,\r
+        "y": 1869.4818668365479,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35191a02.d89a16",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.wan.ip-address' value=\"\" />\n<parameter name='prop.wan.prefixLength' value=\"\" />\n<parameter name='prop.wan.providerIpAddress' value=\"\" />\n<parameter name='prop.wan.IpMode' value=\"static\" />\n<parameter name='prop.route.nextHopType' value=\"ip-address\" />\n<parameter name='prop.route.ipAddress' value=\"`$prop.wan.ipAddress`\" />\n\n",\r
+        "comments": "",\r
+        "x": 2158.292377471924,\r
+        "y": 1476.8992538452148,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "103790c7.a4e84f",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode underlay route",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-underlay.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"underlayspokeResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 894.6254920959473,\r
+        "y": 1719.8992919921875,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "cb65e9dc.cb7d28",\r
+                "509b7bd.b23cb84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb65e9dc.cb7d28",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1144.6253185272217,\r
+        "y": 1704.8995790481567,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "aae088c9.6e82a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "509b7bd.b23cb84",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1146.625638961792,\r
+        "y": 1748.8995885849,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "537341f9.e0df6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aae088c9.6e82a8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1290.209774017334,\r
+        "y": 1694.2653658390045,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "537341f9.e0df6",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1291.2095317840576,\r
+        "y": 1741.2653667926788,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d38fbe54.6487b",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.route.nextHopType' value=\"outbound-interface\" />\n<parameter name='prop.wan.IpMode' value=\"DHCP\" />\n<parameter name='prop.route.ipAddress' value=\"\" />\n",\r
+        "comments": "",\r
+        "x": 2161.7539710998535,\r
+        "y": 1548.0000038146973,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15ae932b.8eaafd",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1469.5039100646973,\r
+        "y": 430,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "33f87d4b.131732",\r
+                "48f81161.66243"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "113b21af.23a45e",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic-device-param.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name'\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2628.8371620178223,\r
+        "y": 578,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf88a576.7aa2c8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic-device-name.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'prop.wan.deviceName'\"/>\n<parameter name=\"field3\" value='`$prop.wan.deviceName`'/>\n<parameter name=\"field4\" value=\"'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value'\"/>\n<parameter name=\"field5\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`'/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2880.8371620178223,\r
+        "y": 661,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2df96f9.05ab08",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic-last.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'tmp.devicevidx'\"/>\n<parameter name=\"field3\" value='`$tmp.devicevidx`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3216.8371620178223,\r
+        "y": 930,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5b82352.18946",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1973.5039100646973,\r
+        "y": 1476.6666259765625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "35191a02.d89a16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ca30d3ba.e4aa5",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1970.5039100646973,\r
+        "y": 1554.6666259765625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "d38fbe54.6487b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92451c4e.ffaad",\r
+        "type": "set",\r
+        "name": "hardcode device port resp",\r
+        "xml": "<set>\n<parameter name='portResp.success[0].id' value=\"12345\" />\n",\r
+        "comments": "",\r
+        "x": 806.5352172851562,\r
+        "y": 945.5313758850098,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7f799175.fb047",\r
+        "type": "set",\r
+        "name": "increment wan-port param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 866.5351791381836,\r
+        "y": 1824.0313453674316,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "131a2ffd.3a8e5",\r
+        "type": "set",\r
+        "name": "increment wan-port param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 874.5351791381836,\r
+        "y": 1909.0313472747803,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e9b4c90b.c4ce98",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 894.0352058410645,\r
+        "y": 2003.0313870636746,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c031fb.d5948e",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 860.0352058410645,\r
+        "y": 2051.531388017349,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7fe1093.6d40a",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 858.0351600646973,\r
+        "y": 1955.2813415527344,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b8751b7.f6ba8",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 2064.0351600646973,\r
+        "y": 2255.03125,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5ef5bb05.ba3244",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 2098.3383598327637,\r
+        "y": 2298.8343591690063,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b8dfcbe.827b44",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 2065.338394165039,\r
+        "y": 2337.8344264030457,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e28c61da.26a12",\r
+        "type": "set",\r
+        "name": "hardcode port resp",\r
+        "xml": "<set>\n<parameter name='portResp.success[0].id' value=\"12345\" />\n",\r
+        "comments": "",\r
+        "x": 779.5039901733398,\r
+        "y": 842.3333721160889,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.json
new file mode 100644 (file)
index 0000000..f862a2d
--- /dev/null
@@ -0,0 +1,533 @@
+[\r
+    {\r
+        "id": "bc28da2b.7303d8",\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": 323.0104064941406,\r
+        "y": 132.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "dad83918.445348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dad83918.445348",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-wanport-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 322.0104064941406,\r
+        "y": 232.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "ffb1ada3.8a76c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55cf0e90.e3564",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 179.51040267944336,\r
+        "y": 42,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "bc28da2b.7303d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ffb1ada3.8a76c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 481.01039123535156,\r
+        "y": 349.0000009536743,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "470949db.a87688",\r
+                "1946860c.52d49a",\r
+                "986d9d2e.d652e",\r
+                "176bae50.e7ba42",\r
+                "1c96aac1.62b6a5",\r
+                "d12731ca.f4e9a",\r
+                "ad8e03c8.3f99",\r
+                "99ca206c.689c4",\r
+                "45a27310.e17b0c",\r
+                "98b0c583.6fb0e8",\r
+                "f3463186.010ce",\r
+                "4efead29.a28254",\r
+                "187c318b.c5572e",\r
+                "29c03152.ef4a3e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "470949db.a87688",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 781.3398132324219,\r
+        "y": 240.49612522125244,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "4bf0f7e7.44aea8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4bf0f7e7.44aea8",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1033.3399047851562,\r
+        "y": 239.16278839111328,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "3d05a6f7.8cda9a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d918203.c2e31e",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1405.0063934326172,\r
+        "y": 241.16279125213623,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3d05a6f7.8cda9a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1251.6732215881348,\r
+        "y": 241.16277027130127,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "d918203.c2e31e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "176bae50.e7ba42",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 855.2605972290039,\r
+        "y": 462.66665840148926,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "18c22866.3fa9a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "18c22866.3fa9a8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1070.0389404296875,\r
+        "y": 460.2222423553467,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "f7311df1.3a06f",\r
+                "eb8b9c09.06311"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7311df1.3a06f",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1266.2951431274414,\r
+        "y": 437.97038078308105,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb8b9c09.06311",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1235.7395706176758,\r
+        "y": 474.97049713134766,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f77b19d7.8bb178",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1239.260799407959,\r
+        "y": 397.33332681655884,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1946860c.52d49a",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 795.7604064941406,\r
+        "y": 195.9999942779541,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "89c152d0.6fb2c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89c152d0.6fb2c",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 982.4270858764648,\r
+        "y": 195.3332920074463,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "869ba82c.b1cd68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "869ba82c.b1cd68",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1164.0937118530273,\r
+        "y": 195.3332920074463,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "986d9d2e.d652e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.0103960037231,\r
+        "y": 315.9999952316284,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "6d96cae7.544aa4",\r
+                "7b4aef1d.e8397"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d96cae7.544aa4",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1068.0104064941406,\r
+        "y": 291.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "8b1de33b.f87d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b4aef1d.e8397",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1068.0104064941406,\r
+        "y": 331.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "e6620c2c.848df"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b1de33b.f87d8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1210.5104064941406,\r
+        "y": 291.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e6620c2c.848df",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1212.3674507141113,\r
+        "y": 331.9365043640137,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "9a648de3.1f16d",\r
+                "8d5a09c0.be4698"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d5a09c0.be4698",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1365.0659255981445,\r
+        "y": 301.5556030566804,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9a648de3.1f16d",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1421.4944305419922,\r
+        "y": 354.7777328491211,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "35f2967d.f1236a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9105950c.e52f88",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1645.1451606750488,\r
+        "y": 313.03179025650024,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35f2967d.f1236a",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1696.7801513671875,\r
+        "y": 354.34923553466797,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "7879d3b9.a48b9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7879d3b9.a48b9c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1597.5103492736816,\r
+        "y": 412.9206666946411,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "d7b29734.9c35b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7b29734.9c35b8",\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1745.2604522705078,\r
+        "y": 412.7778587634675,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "99ca206c.689c4",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n",\r
+        "comments": "",\r
+        "x": 849.8635559082031,\r
+        "y": 742.4961910247803,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ad8e03c8.3f99",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.wan-port-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 862.1971206665039,\r
+        "y": 688.1629104614258,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d12731ca.f4e9a",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 834.1970672607422,\r
+        "y": 635.1628475189209,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1c96aac1.62b6a5",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 846.1967353820801,\r
+        "y": 525.1542224884033,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "45a27310.e17b0c",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.wan-port-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 838.0104808807373,\r
+        "y": 794.0000371932983,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "98b0c583.6fb0e8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 852.5105400085449,\r
+        "y": 843.9999303817749,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "187c318b.c5572e",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \n      key='wan-port-config.wan-port-config-id = $prop.vnf-index' >\n<parameter name=\"wan-port-config-id\" value=\"`$prop.vnf-index`\" />\n<parameter name=\"wan-port-config-name\" value=\"`$prop.wan.name`\" />\n<parameter name=\"device-id\" value=\"`$prop.wan.deviceName`\" />\n<parameter name='vlan-id' value=\"`$prop.wan.vlanId`\" />\n<parameter name=\"ip-address\" value=\"`$prop.wan.ipAddress`\" />\n<parameter name=\"provider-ip-address\" value=\"`$prop.wan.providerIpAddress`\" />\n<parameter name=\"input-bandwidth\" value=\"`$prop.wan.inputBandwidth`\" />\n<parameter name=\"output-bandwidth\" value=\"`$prop.wan.outputBandwidth`\" />\n<parameter name=\"description\" value=\"`$prop.wan.description`\" />\n<parameter name=\"port-type\" value=\"`$prop.wan.portType`\" />\n<parameter name=\"port-number\" value=\"`$prop.wan.portNumber`\" />\n<parameter name=\"transport-network-name\" value=\"`$prop.wan.transportNetworkName`\" />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.0104484558105,\r
+        "y": 887.4999761581421,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "29c03152.ef4a3e",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 853.0103759765625,\r
+        "y": 933.5000076293945,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3463186.010ce",\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": 803.7329216003418,\r
+        "y": 980.6738667488098,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4efead29.a28254",\r
+        "type": "call",\r
+        "name": "call sdwan-get-wan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 845.8992767333984,\r
+        "y": 587.8888759613037,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.json
new file mode 100644 (file)
index 0000000..04265aa
--- /dev/null
@@ -0,0 +1,834 @@
+[\r
+    {\r
+        "id": "e69423a5.584ae",\r
+        "type": "execute",\r
+        "name": "execute Properties",\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": 849.5312957763672,\r
+        "y": 366.07812881469727,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2e25c17.8e9c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 130,\r
+        "y": 54.0000057220459,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "3fa8aef8.7e3df2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3fa8aef8.7e3df2",\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": 261.2856903076172,\r
+        "y": 103.23811435699463,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "2162b779.2eb3a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2162b779.2eb3a8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-wanport-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 264.4286193847656,\r
+        "y": 188.00003814697266,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "832591c7.4ef99"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7df3c0c6.f5b88",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 834.53125,\r
+        "y": 203.07812213897705,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "112ac69c.661419"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "112ac69c.661419",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1086.5313415527344,\r
+        "y": 201.7447853088379,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "9fb48502.518d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e66ecc6.7152f3",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1458.1978302001953,\r
+        "y": 203.74478816986084,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9fb48502.518d68",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1304.864658355713,\r
+        "y": 203.74476718902588,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e66ecc6.7152f3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff28f3d.3169d1",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 848.9518432617188,\r
+        "y": 158.5819911956787,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "a6a2da6e.228e08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a6a2da6e.228e08",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1035.618522644043,\r
+        "y": 157.9152889251709,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "c0d198d3.426068"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c0d198d3.426068",\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=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1217.2851486206055,\r
+        "y": 157.9152889251709,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61f42e0f.accb4",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1487.5312576293945,\r
+        "y": 373.0781125728972,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "ce0facb9.acf8f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0cbbcf7.18e0c",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1906.8170928955078,\r
+        "y": 375.6496305465698,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "ada2f692.ece248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd278e04.68d68",\r
+        "type": "set",\r
+        "name": "set vf-module-length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1474.102882385254,\r
+        "y": 336.8559989929199,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4efb1646.df29b8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1278.4042778015137,\r
+        "y": 350.2368840877898,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "61f42e0f.accb4",\r
+                "bd278e04.68d68",\r
+                "49047f5d.3dde6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c241e5.3b7e6e2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1134.047233581543,\r
+        "y": 350.3003720943816,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "4efb1646.df29b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e428583.69a8e8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898.047215461731,\r
+        "y": 277.3003845214844,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "1c241e5.3b7e6e2",\r
+                "45b16795.1e16b8",\r
+                "5c72c52f.a612dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45b16795.1e16b8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1139.5312519073486,\r
+        "y": 249.0781135559082,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "b89d0343.04bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c72c52f.a612dc",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1141.5624408721924,\r
+        "y": 286.10942459106445,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "b89d0343.04bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b89d0343.04bd1",\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=\"vf-module-operation-input.vf-module-request-input.vf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1299.3399562835693,\r
+        "y": 266.9983730316162,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ada2f692.ece248",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2110.53133392334,\r
+        "y": 374.0781369502656,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "8cb3d733.8b9cc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cb3d733.8b9cc8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1872.8745422363281,\r
+        "y": 476.16428661346436,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e9572390.a2ce1",\r
+                "7be5423c.87235c",\r
+                "39502de7.a9fc62"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9572390.a2ce1",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2114.7612342834473,\r
+        "y": 446.50670051574707,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7be5423c.87235c",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2118.207492828369,\r
+        "y": 491.1643395423889,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ce0facb9.acf8f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1695.0313034057617,\r
+        "y": 373.07812118530273,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "d0cbbcf7.18e0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2948d13a.1b821e",\r
+        "type": "comment",\r
+        "name": "Get devices",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 848.0315361022949,\r
+        "y": 494.0781602859497,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49047f5d.3dde6",\r
+        "type": "set",\r
+        "name": "set prop.site.deviceId_length",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId_length' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1500.53125,\r
+        "y": 301.07812213897705,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "832591c7.4ef99",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 405.52733993530273,\r
+        "y": 405.0742197036743,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "ff28f3d.3169d1",\r
+                "7df3c0c6.f5b88",\r
+                "8e428583.69a8e8",\r
+                "e69423a5.584ae",\r
+                "ce0e4f49.1217b",\r
+                "16f0a729.f1f5a9",\r
+                "d2d93614.7c8ad8",\r
+                "2604b323.ea5f4c",\r
+                "9139c857.0718b8",\r
+                "c9d5923c.c3e6a",\r
+                "4a67f6d4.3597f8",\r
+                "7c127312.19825c",\r
+                "1954d3bb.e0ec6c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "39502de7.a9fc62",\r
+        "type": "call",\r
+        "name": "call sdwan-get-wan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2109.5039443969727,\r
+        "y": 538.0039381980896,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9139c857.0718b8",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 893.2539443969727,\r
+        "y": 444.75391960144043,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "679a2fa0.7fa24",\r
+                "db810e5a.69a4a",\r
+                "b796d6f.b8abb28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "679a2fa0.7fa24",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.2540283203125,\r
+        "y": 408.753942489624,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e1a99634.deb268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db810e5a.69a4a",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1127.7449111938477,\r
+        "y": 444.3279790878296,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "363ab1e2.2b5cce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b796d6f.b8abb28",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1123.0779190063477,\r
+        "y": 480.661337852478,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "cdf3743a.490b68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdf3743a.490b68",\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=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1276.8504104614258,\r
+        "y": 478.1004247665405,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "363ab1e2.2b5cce",\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=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1273.316307067871,\r
+        "y": 442.6136665344238,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1a99634.deb268",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1280.7541427612305,\r
+        "y": 407.75383472442627,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9d5923c.c3e6a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 907.7640762329102,\r
+        "y": 532.4309215545654,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "80be9352.04481",\r
+                "fdeb2c27.d10b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80be9352.04481",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142.76420211792,\r
+        "y": 518.4309101104736,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "303f14f3.7822fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "303f14f3.7822fc",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1284.7642097473145,\r
+        "y": 517.430911064148,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "de3334dd.87a328",\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 executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1290.7642097473145,\r
+        "y": 554.823899269104,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fdeb2c27.d10b4",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142.01420211792,\r
+        "y": 554.0738172531128,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "de3334dd.87a328"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a67f6d4.3597f8",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 884.7638244628906,\r
+        "y": 585.7639970779419,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2604b323.ea5f4c",\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": 849.8993644714355,\r
+        "y": 1030.5663061141968,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4c7ada40.e6d834",\r
+        "type": "update",\r
+        "name": "update SDWAN wan port instance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \n      key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vnf-information.vnf-id' >\n<parameter name=\"wan-port-config-id\" value=\"`$vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n<parameter name='operational-status' value='PendingDelete' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 969.2184829711914,\r
+        "y": 990.3698863983154,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce0e4f49.1217b",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 903.59619140625,\r
+        "y": 864.7630681991577,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "16f0a729.f1f5a9",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 937.8993911743164,\r
+        "y": 908.5661773681641,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d2d93614.7c8ad8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 904.8993911743164,\r
+        "y": 944.5661773681641,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1954d3bb.e0ec6c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-device-port-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 952.03125,\r
+        "y": 770.078145980835,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "5763133a.85c38c",\r
+                "e2a71559.3f3e88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5763133a.85c38c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1198.031234741211,\r
+        "y": 808.0782346725464,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "c730322d.384d7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e2a71559.3f3e88",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1194.0313148498535,\r
+        "y": 762.0781497955322,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "33e8f10d.25726e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33e8f10d.25726e",\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 executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1335.031406402588,\r
+        "y": 762.0781507492065,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c730322d.384d7",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1342.0311012268066,\r
+        "y": 806.0781536102295,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c127312.19825c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode wan port delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-wan-port-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 947.0314178466797,\r
+        "y": 664.0781440734863,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e0828ab7.60a978",\r
+                "3d0c4f43.fce4d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0828ab7.60a978",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1235.0315132141113,\r
+        "y": 696.0781135559082,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "aca8b9c6.d1fb58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d0c4f43.fce4d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1239.031593322754,\r
+        "y": 632.0781917572021,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "729b835e.b7b53c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "729b835e.b7b53c",\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 executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1384.0317649841309,\r
+        "y": 634.0781917572021,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aca8b9c6.d1fb58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1391.0313568115234,\r
+        "y": 694.0781135559082,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.json
new file mode 100644 (file)
index 0000000..d290e8e
--- /dev/null
@@ -0,0 +1,663 @@
+[\r
+    {\r
+        "id": "4c9b7636.16d1a8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-wanport-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 227.01040649414062,\r
+        "y": 192.58634161949158,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "ef9a78fa.b0f5b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae863831.900868",\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": 215.29611206054688,\r
+        "y": 98.23810935020447,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "4c9b7636.16d1a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c4c41bd.66b0ee",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 136.01040649414062,\r
+        "y": 35.99999976158142,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "ae863831.900868"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef9a78fa.b0f5b8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 246.67710876464844,\r
+        "y": 459.66673517227173,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "73502c25.0501b4",\r
+                "8ef64cba.b142",\r
+                "e7c6e1f4.291c4",\r
+                "5b7d49e0.41f2f8",\r
+                "8b01c2d1.84cd3",\r
+                "27503470.8bf84c",\r
+                "dce00f39.1d9f7",\r
+                "9d21b2cd.86c73",\r
+                "827a72ac.9aabf",\r
+                "67cd24d6.a0f83c",\r
+                "a35824b0.8bb6e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ef64cba.b142",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 559.0417709350586,\r
+        "y": 272.269140958786,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "11c14e91.a941a1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73502c25.0501b4",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 564.010425567627,\r
+        "y": 211.0000102519989,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "45acbb70.cf9d84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45acbb70.cf9d84",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.0104064941406,\r
+        "y": 209.99999976158142,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "1c305856.7d7878"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c305856.7d7878",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 893.4391326904297,\r
+        "y": 211.14291739463806,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "11c14e91.a941a1",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.0104217529297,\r
+        "y": 273.0000059604645,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "4a09a290.a75bbc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a09a290.a75bbc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 997.0104064941406,\r
+        "y": 270.9999997615814,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "57c73c18.c834a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57c73c18.c834a4",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1161.0104064941406,\r
+        "y": 265.9999997615814,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e7c6e1f4.291c4",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 630.010440826416,\r
+        "y": 349.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "8cdd0772.dbdbf8",\r
+                "d22fa0c4.8a1a8",\r
+                "b6f26649.6b92a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d22fa0c4.8a1a8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.0104331970215,\r
+        "y": 383.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "1ebe6a81.7b0665"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cdd0772.dbdbf8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.0104293823242,\r
+        "y": 330.0000331401825,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "1ebe6a81.7b0665"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ebe6a81.7b0665",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1015.0104331970215,\r
+        "y": 343.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b6f26649.6b92a8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.0104331970215,\r
+        "y": 444.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "5d0462e8.482a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98248461.3994b8",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1206.0104484558105,\r
+        "y": 442.0000480413437,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d0462e8.482a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1013.0104789733887,\r
+        "y": 441.00002551078796,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "98248461.3994b8",\r
+                "bb5716e5.5eb1d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb5716e5.5eb1d8",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1225.0104179382324,\r
+        "y": 495.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "56d74cea.fe48b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56d74cea.fe48b4",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1468.0104331970215,\r
+        "y": 490.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "2f21e786.1474c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f21e786.1474c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1709.0105609893799,\r
+        "y": 483.00003123283386,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "935557d5.b42b38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "935557d5.b42b38",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1861.0105323791504,\r
+        "y": 485.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "b801dc09.3262a",\r
+                "fd33c1ac.d18c2",\r
+                "49806a1a.1b29c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b801dc09.3262a",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2083.0105323791504,\r
+        "y": 481.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fd33c1ac.d18c2",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2089.0105323791504,\r
+        "y": 530.0000245571136,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49806a1a.1b29c4",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2117.010753631592,\r
+        "y": 578.0000302791595,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b7d49e0.41f2f8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 569.0416526794434,\r
+        "y": 522.0161073207855,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "93788503.77e6c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "93788503.77e6c8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 716.4702949523926,\r
+        "y": 521.5875174999237,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "70fed172.85f44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70fed172.85f44",\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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 865.8990211486816,\r
+        "y": 522.7304351329803,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8b01c2d1.84cd3",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 613.3398132324219,\r
+        "y": 592.3333127498627,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "223c17b4.64b778",\r
+                "e9d52081.e76dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "223c17b4.64b778",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 904.1730804443359,\r
+        "y": 596.4444358348846,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "814b2c34.1fd7f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9d52081.e76dc",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.1732177734375,\r
+        "y": 648.4444885253906,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "714ed175.ddb84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "714ed175.ddb84",\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=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1030.6729850769043,\r
+        "y": 651.4444875717163,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "814b2c34.1fd7f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1101.4794807434082,\r
+        "y": 606.769590139389,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "67cd24d6.a0f83c",\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": 562.031307220459,\r
+        "y": 966.0313129425049,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "27503470.8bf84c",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 644.1178894042969,\r
+        "y": 712.1424579620361,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "666e6c4f.f97484"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dce00f39.1d9f7",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 568.2192611694336,\r
+        "y": 764.9466757774353,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9d21b2cd.86c73",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 605.1179351806641,\r
+        "y": 815.1424608230591,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "666e6c4f.f97484",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 904.1178798675537,\r
+        "y": 719.1423177719116,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "46998b08.18a904"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a35824b0.8bb6e8",\r
+        "type": "delete",\r
+        "name": "delete wanport vf instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='site-resource' \n        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 654.1183090209961,\r
+        "y": 906.4041156768799,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "46998b08.18a904",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1090.1179466247559,\r
+        "y": 719.1424784660339,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "52431b6f.b34934"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "52431b6f.b34934",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1259.1179542541504,\r
+        "y": 718.142315864563,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "2b619a80.4a9f36"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b619a80.4a9f36",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1413.117793083191,\r
+        "y": 710.1423168182373,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "466caa7f.55c334",\r
+                "921821fe.9836b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "466caa7f.55c334",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1578.1178884506226,\r
+        "y": 685.1424722671509,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "921821fe.9836b",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1600.1178884506226,\r
+        "y": 741.1424360275269,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "827a72ac.9aabf",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 591.9201431274414,\r
+        "y": 860.4757957458496,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.json
new file mode 100644 (file)
index 0000000..8a5d8f9
--- /dev/null
@@ -0,0 +1,1305 @@
+[\r
+    {\r
+        "id": "3eca748a.ef817c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 123,\r
+        "y": 75,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "350fb0d5.88723"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "350fb0d5.88723",\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": 368.2857131958008,\r
+        "y": 74.23807907104492,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7fecfee8.d291b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7fecfee8.d291b",\r
+        "type": "method",\r
+        "name": "validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<method rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 451.9166946411133,\r
+        "y": 209.25301837921143,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "8f6f1f8b.897a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f6f1f8b.897a9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 735.9167022705078,\r
+        "y": 197.25304317474365,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "634b7128.2e84d",\r
+                "adb8eda0.ca986",\r
+                "bc20a4d8.66ea78",\r
+                "376a189c.5eea28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "634b7128.2e84d",\r
+        "type": "switchNode",\r
+        "name": "switch  svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.916633605957,\r
+        "y": 45.25303936004639,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "183ac3e9.257bcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "183ac3e9.257bcc",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1186.6309356689453,\r
+        "y": 46.2530403137207,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "65be383e.39b058"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65be383e.39b058",\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": 1361.0594863891602,\r
+        "y": 45.25303268432617,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adb8eda0.ca986",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 332.9166564941406,\r
+        "y": 468.2530336380005,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "83c4de98.01196",\r
+                "ce7e74f7.3c86c8",\r
+                "147fd5d9.68de3a",\r
+                "1561519f.abda0e",\r
+                "d7c5bf00.510dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83c4de98.01196",\r
+        "type": "outcome",\r
+        "name": "create",\r
+        "xml": "<outcome value='create'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 526.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "363f7231.506cbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "363f7231.506cbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 687.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "46be34f.5b2c7cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce7e74f7.3c86c8",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 499.4920120239258,\r
+        "y": 906.428539276123,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aec7db3f.798358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "147fd5d9.68de3a",\r
+        "type": "outcome",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 503.20639419555664,\r
+        "y": 1077.1430969238281,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c7708172.24701"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1561519f.abda0e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502.9682846069336,\r
+        "y": 1250.571382522583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6252f6e.c1321"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6252f6e.c1321",\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=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 686.5398178100586,\r
+        "y": 1251.190523147583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "46be34f.5b2c7cc",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 888,\r
+        "y": 295.6666797399521,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3528f63.34e230a",\r
+                "82048a2c.348118"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3528f63.34e230a",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.4999923706055,\r
+        "y": 323.66667652130127,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3198409.3ebdec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3198409.3ebdec",\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 required to be SOTN CreateVPNNetworkInstance for svc-action=create\" />\n",\r
+        "comments": "",\r
+        "x": 1224.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ee1459dc.d090c8",\r
+        "type": "other",\r
+        "name": "DeleteSDWANVpnInstance",\r
+        "xml": "<outcome value='DeleteSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 945.0634384155273,\r
+        "y": 1073.698395729065,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "773b0668.3dfda8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "640b4312.a9c5ac",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.6189804077148,\r
+        "y": 1149.920636177063,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "20eafb56.ca5e14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "20eafb56.ca5e14",\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 required to be SOTN DeleteVPNNetworkInstance for svc-action=delete\" />\n",\r
+        "comments": "",\r
+        "x": 1020.9524002075195,\r
+        "y": 1152.0317735671997,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "773b0668.3dfda8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1168.9523086547852,\r
+        "y": 1079.9206190109253,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "eb92e3d.8a6ff2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7c5bf00.510dc",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520.4285774230957,\r
+        "y": 560.7143135070801,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aa89a015.4408d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa89a015.4408d",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 703.2857437133789,\r
+        "y": 557.8571634292603,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c1f6d379.b3eef",\r
+                "89075fc5.672ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c1f6d379.b3eef",\r
+        "type": "other",\r
+        "name": "ActivateSDWANVpnInstance",\r
+        "xml": "<outcome value='ActivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 956.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ce665d03.3901d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89075fc5.672ae",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c6e2911c.5f916"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6e2911c.5f916",\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 required to be SOTN ActivateVPNNetworkInstance for svc-action=activate\" />\n",\r
+        "comments": "",\r
+        "x": 1044.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ce665d03.3901d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1187.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b3df3a7b.216bd8",\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "57bd5824.2497c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c598159a.7423c8",\r
+        "type": "other",\r
+        "name": "DeactivateSDWANVpnInstance",\r
+        "xml": "<outcome value='DeactivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 942.9206390380859,\r
+        "y": 908.1429328918457,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "50af0272.e02a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e01173d7.fe6b9",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.9206314086914,\r
+        "y": 977.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d14295e9.c68018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d14295e9.c68018",\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 required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate\" />\n",\r
+        "comments": "",\r
+        "x": 1038.9206466674805,\r
+        "y": 978.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aec7db3f.798358",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.7776947021484,\r
+        "y": 910.6188039779663,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c598159a.7423c8",\r
+                "e01173d7.fe6b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7708172.24701",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.5554962158203,\r
+        "y": 1076.9523208141327,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ee1459dc.d090c8",\r
+                "640b4312.a9c5ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50af0272.e02a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1202.888786315918,\r
+        "y": 910.9523277282715,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "c2db488a.b105a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "82048a2c.348118",\r
+        "type": "other",\r
+        "name": "CreateSDWANVpnInstance",\r
+        "xml": "<outcome value='CreateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1172.499984741211,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7a0b5551.c75d9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a0b5551.c75d9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1407.49995803833,\r
+        "y": 275.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3f52a78f.7ab728"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f52a78f.7ab728",\r
+        "type": "for",\r
+        "name": "for loop i - vpn vf input parameters",\r
+        "xml": "<for index=\"i\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.000015258789,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d37b6b2c.71fb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d37b6b2c.71fb38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1846.5000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ec108e6.32a3b8",\r
+                "a16aa1da.005f3",\r
+                "3a20c40b.dcc4cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ec108e6.32a3b8",\r
+        "type": "set",\r
+        "name": "clear tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",\r
+        "comments": "",\r
+        "x": 2029.5000228881836,\r
+        "y": 237.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a16aa1da.005f3",\r
+        "type": "set",\r
+        "name": "set tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`\"/>\n",\r
+        "comments": "",\r
+        "x": 2024.0000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a20c40b.dcc4cc",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$tmp.name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2024.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3280408b.66ab3",\r
+                "63ad3611.30c718",\r
+                "2eab978e.1492a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d22ab892.eef718",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$tmp.value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2484.0001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b07f67fa.6ab208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2eab978e.1492a8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 335.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "5967794c.72e8b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5967794c.72e8b8",\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=\"`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2418.5003623962402,\r
+        "y": 334.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3280408b.66ab3",\r
+        "type": "other",\r
+        "name": "name",\r
+        "xml": "<outcome value='name'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 219.66667330265045,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63ad3611.30c718",\r
+        "type": "other",\r
+        "name": "topology",\r
+        "xml": "<outcome value='topology'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2255.500114440918,\r
+        "y": 273.333335518837,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b07f67fa.6ab208",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2627.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3ecabf5c.8d652"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ecabf5c.8d652",\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=\"`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2785.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b3df3a7b.216bd8",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.3889541625977,\r
+        "y": 576.9999761581421,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "37913775.d258a8",\r
+                "8c9e338f.0d83c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37913775.d258a8",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.0000228881836,\r
+        "y": 556.666711807251,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7c4231f0.9cbb7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c4231f0.9cbb7",\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=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1924.0000228881836,\r
+        "y": 557.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c9e338f.0d83c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1726.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6f61e8c.9dd35"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6f61e8c.9dd35",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1887.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9317c153.6ccad",\r
+                "bdedbaa4.65e588"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9317c153.6ccad",\r
+        "type": "for",\r
+        "name": "for nidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2150.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1fade275.78b10e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fade275.78b10e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n    \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2436.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "99a1d82a.9dd8c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99a1d82a.9dd8c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2606.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "39ae6a67.1c8296"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70e3cfee.6e895",\r
+        "type": "set",\r
+        "name": "set tmp.nidx and ctx.network-data",\r
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 3007.50008392334,\r
+        "y": 574.6667140722275,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1412cffb.8d463",\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=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 2364.0000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fbeeeb3e.43c3b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2226.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1412cffb.8d463"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdedbaa4.65e588",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.nidx ",\r
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2072.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "fbeeeb3e.43c3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57bd5824.2497c8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1451.6667098999023,\r
+        "y": 656.5555486679077,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "719dd138.28ef4",\r
+                "2dca8a18.a65586"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "719dd138.28ef4",\r
+        "type": "outcome",\r
+        "name": "outcome Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.5001258850098,\r
+        "y": 656.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "94e9cf1a.6c399"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dca8a18.a65586",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1716.5001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2c8432e2.7a0b8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c8432e2.7a0b8e",\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=\"`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1874.0001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4bebf6c.2b4fa",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1398.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ad9b806.2c19b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ad9b806.2c19b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1626.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b7b28733.f37c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7b28733.f37c08",\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=\"network-request-input.network-input-parameters.name is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1764.0000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30507c3b.465aa4",\r
+        "type": "execute",\r
+        "name": "execute requiredParameters",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"vf-module-topology-operation-input.vf-module-information.vf-module-id\" value=\"$vf-module-topology-operation-input.vf-module-information.vf-module-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1433.0000228881836,\r
+        "y": 477.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2db488a.b105a8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.8332748413086,\r
+        "y": 906.5555257797241,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "cf4b307b.b1b04",\r
+                "acc49742.fd0df8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf4b307b.b1b04",\r
+        "type": "outcome",\r
+        "name": "outcome Active",\r
+        "xml": "<outcome value='Active'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1753.166648864746,\r
+        "y": 880.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e31a54a2.3ff1f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acc49742.fd0df8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1723.166648864746,\r
+        "y": 920.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "bc3125bf.c135a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc3125bf.c135a8",\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=\"`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n    ",\r
+        "comments": "",\r
+        "x": 1889.166648864746,\r
+        "y": 922.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb92e3d.8a6ff2",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1468.7221908569336,\r
+        "y": 1077.6666097640991,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "4005e1e5.db606",\r
+                "3f0b16e4.30f1ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4005e1e5.db606",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1768.7222518920898,\r
+        "y": 1045.444405555725,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e99f233c.ef676"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f0b16e4.30f1ca",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1712.055564880371,\r
+        "y": 1092.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "26e244b4.b2362c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26e244b4.b2362c",\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=\"`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1878.055564880371,\r
+        "y": 1094.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "94e9cf1a.6c399",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1940.5001029968262,\r
+        "y": 657.6666488647461,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e31a54a2.3ff1f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1953.1665267944336,\r
+        "y": 879.1481161117554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e99f233c.ef676",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1984.277732849121,\r
+        "y": 1045.8147420883179,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "39ae6a67.1c8296",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2756.666534423828,\r
+        "y": 574.0000190734863,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "70e3cfee.6e895"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc20a4d8.66ea78",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.0065307617188,\r
+        "y": 121.24849605560303,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ae64d058.26533"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae64d058.26533",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1151.0065116882324,\r
+        "y": 120.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d4c5df8d.2e7e3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4c5df8d.2e7e3",\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=\"vnf entry not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1300.4352378845215,\r
+        "y": 121.39140319824219,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "376a189c.5eea28",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 951.0379104614258,\r
+        "y": 183.51763439178467,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "891fced5.d7d06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "891fced5.d7d06",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189.0065269470215,\r
+        "y": 183.2484917640686,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2828372d.9354b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2828372d.9354b8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1404.0065116882324,\r
+        "y": 181.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "56c573f0.8eef8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56c573f0.8eef8c",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1568.0065116882324,\r
+        "y": 176.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_vf-module-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_vf-module-topology-operation.json
new file mode 100644 (file)
index 0000000..b1cc364
--- /dev/null
@@ -0,0 +1,1129 @@
+[\r
+    {\r
+        "id": "89e51e9a.af64e",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 107.00390625,\r
+        "y": 88.41365686058998,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "a0ef042f.2b7ad8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0ef042f.2b7ad8",\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": 220.28961181640625,\r
+        "y": 128.65176835656166,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "a57a3919.3af3c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a57a3919.3af3c8",\r
+        "type": "method",\r
+        "name": "method vf-module-topology-operation",\r
+        "xml": "<method rpc='vf-module-topology-operation' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 194.43253326416016,\r
+        "y": 168.41365113854408,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8614ae38.109ab"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38a58e7b.28bdc2",\r
+        "type": "comment",\r
+        "name": "vf-module-topology-operation",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 501.34876251220703,\r
+        "y": 36.00000062584877,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8614ae38.109ab",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 176.50394439697266,\r
+        "y": 407.7738291323185,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "53a601da.db57d",\r
+                "f371244d.9451a8",\r
+                "c9966ea2.57b1d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53a601da.db57d",\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": 462.0039367675781,\r
+        "y": 581.2712179720402,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f371244d.9451a8",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 472.9085464477539,\r
+        "y": 405.98505368828773,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "dc31bef9.f164b",\r
+                "1b121869.8a1878",\r
+                "320a19eb.21afb6",\r
+                "db7b02d4.3e117",\r
+                "b369a934.e11c08",\r
+                "8734e4a2.e72ad8",\r
+                "bcf05aca.9cd8e8",\r
+                "c7064bfe.3bb108"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc31bef9.f164b",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682.3848266601562,\r
+        "y": 296.27089086174965,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "d462656f.1ce878"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b121869.8a1878",\r
+        "type": "outcome",\r
+        "name": "unassign",\r
+        "xml": "<outcome value='unassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 690.765811920166,\r
+        "y": 442.46158280968666,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "52d55f39.2254f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "320a19eb.21afb6",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 643.4801177978516,\r
+        "y": 1599.985109001398,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "aa8c9f07.7e876"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa8c9f07.7e876",\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=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 837.6705436706543,\r
+        "y": 1599.9851776659489,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9966ea2.57b1d",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-vf-module-input",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 592.0871887207031,\r
+        "y": 245.79471364617348,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d462656f.1ce878",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-assign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1054.527660369873,\r
+        "y": 295.84235540032387,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1a8dc80f.d90c48",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1066.5276184082031,\r
+        "y": 392.50899854302406,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "52d55f39.2254f",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-unassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1060.8608894348145,\r
+        "y": 442.17571797966957,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3a2c358.113df",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 694.8609046936035,\r
+        "y": 393.1756722033024,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "1a8dc80f.d90c48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db7b02d4.3e117",\r
+        "type": "outcome",\r
+        "name": "changeassign",\r
+        "xml": "<outcome value='changeassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 705.3372268676758,\r
+        "y": 490.0803124010563,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "f258fd95.0fe79"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f258fd95.0fe79",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-changeassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1074.4322967529297,\r
+        "y": 489.7944485247135,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b369a934.e11c08",\r
+        "type": "outcome",\r
+        "name": "create",\r
+        "xml": "<outcome value='create'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 691.00390625,\r
+        "y": 688.41365686059,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "ba7564f.359ed98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c4e26db.d2576a",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 929.3375091552734,\r
+        "y": 696.0000200271606,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3d832a02.563396",\r
+                "1104c91d.350e07",\r
+                "f844d17c.4dd8f",\r
+                "48cd140e.14f35c",\r
+                "b370d981.a636e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1104c91d.350e07",\r
+        "type": "outcome",\r
+        "name": "CreateSiteInstance",\r
+        "xml": "<outcome value='CreateSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1187.8138885498047,\r
+        "y": 642.4793663024902,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "20db622e.dd2f7e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d832a02.563396",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1129.7182922363281,\r
+        "y": 779.8572832643986,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "66bc9e9c.1ac1f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba7564f.359ed98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 877.3374252319336,\r
+        "y": 616.0000216066837,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "2c4e26db.d2576a",\r
+                "b8d55366.a8f26"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "20db622e.dd2f7e",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1644.3377113342285,\r
+        "y": 640.0001487731934,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "66bc9e9c.1ac1f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1283.0039443969727,\r
+        "y": 779.9136797487736,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f844d17c.4dd8f",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANPortInstance",\r
+        "xml": "<outcome value='CreateSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1193.6706848144531,\r
+        "y": 738.2471739351749,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "b6270252.07dee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6270252.07dee",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1666.1943817138672,\r
+        "y": 737.7679258882999,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "48cd140e.14f35c",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANDeviceInstance",\r
+        "xml": "<outcome value='CreateSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1203.0350189208984,\r
+        "y": 695.4451179504395,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3b11278c.bb8c38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b11278c.bb8c38",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1658.5588073730469,\r
+        "y": 694.9659872055054,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b370d981.a636e8",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANVpnInstance",\r
+        "xml": "<outcome value='CreateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1233.0039367675781,\r
+        "y": 594.4136924743652,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "657379da.c01418"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "657379da.c01418",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1641.5277099609375,\r
+        "y": 591.9344596862793,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8734e4a2.e72ad8",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 681.00390625,\r
+        "y": 883.7469698488712,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "f1db3d76.89225"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdd2825f.5d09c",\r
+        "type": "outcome",\r
+        "name": "ActivateSiteInstance",\r
+        "xml": "<outcome value='ActivateSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1172.1469345092773,\r
+        "y": 883.6458899080753,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "2a41522d.67a51e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1db3d76.89225",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 861.6706771850586,\r
+        "y": 879.1666466295719,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "7f5f8826.961548"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a41522d.67a51e",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1545.6707382202148,\r
+        "y": 882.1666723787785,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3a84270.80d99",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANDeviceInstance",\r
+        "xml": "<outcome value='ActivateSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1200.3373947143555,\r
+        "y": 932.6667119562626,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "5a26eb28.451874"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5a26eb28.451874",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1635.8610916137695,\r
+        "y": 932.1874844133854,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a4f9d63b.494d98",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1640.3372268676758,\r
+        "y": 977.6666342318058,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8acd26d.1e739",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANPortInstance",\r
+        "xml": "<outcome value='ActivateSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1204.8135299682617,\r
+        "y": 978.145861774683,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "a4f9d63b.494d98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f5f8826.961548",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 938.00390625,\r
+        "y": 945.7469698488712,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "cdd2825f.5d09c",\r
+                "e3a84270.80d99",\r
+                "c8acd26d.1e739",\r
+                "58bf71df.40217",\r
+                "e2c3c98a.638358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58bf71df.40217",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1136.5753936767578,\r
+        "y": 1026.9584471285343,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "9491c86f.faa978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e2c3c98a.638358",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANVpnInstance",\r
+        "xml": "<outcome value='ActivateSDWANVpnInstance'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1214.00390625,\r
+        "y": 841.7469698488712,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3b1f1b03.8cdd84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b1f1b03.8cdd84",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1629.5277099609375,\r
+        "y": 835.2677465975285,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bcf05aca.9cd8e8",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 671.00390625,\r
+        "y": 1129.7470308840275,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "eace7410.b0c1f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e7397b3.dab7a8",\r
+        "type": "outcome",\r
+        "name": "DeactivateSiteInstance",\r
+        "xml": "<outcome value='DeactivateSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1162.1469345092773,\r
+        "y": 1129.6459509432316,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "21bb9b2a.ea8a34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eace7410.b0c1f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 851.6706771850586,\r
+        "y": 1125.1667076647282,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "c3ccf383.cfe88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21bb9b2a.ea8a34",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1535.6707382202148,\r
+        "y": 1128.1667334139347,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5379b130.c4fdc",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANDeviceInstance",\r
+        "xml": "<outcome value='DeactivateSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1190.3373947143555,\r
+        "y": 1178.6667729914188,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "84ada7ed.5abb58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "84ada7ed.5abb58",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1625.8610916137695,\r
+        "y": 1178.1875454485416,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "45330326.89c95c",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1630.3372268676758,\r
+        "y": 1223.666695266962,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "47362b0e.0aa804",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANPortInstance",\r
+        "xml": "<outcome value='DeactivateSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1194.8135299682617,\r
+        "y": 1224.1459228098392,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "45330326.89c95c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c3ccf383.cfe88",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 928.00390625,\r
+        "y": 1191.7470308840275,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "5e7397b3.dab7a8",\r
+                "5379b130.c4fdc",\r
+                "47362b0e.0aa804",\r
+                "63e6c1ce.d4cf5",\r
+                "4a02ebd5.071034"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63e6c1ce.d4cf5",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1130.5752639770508,\r
+        "y": 1273.958485275507,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "58fb4bd3.507344"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a02ebd5.071034",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANVpnInstance",\r
+        "xml": "<outcome value='DeactivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1204.00390625,\r
+        "y": 1087.7470308840275,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "fbad4fa4.97356"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbad4fa4.97356",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1619.5277099609375,\r
+        "y": 1081.2678076326847,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "58fb4bd3.507344",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1469.0039443969727,\r
+        "y": 1274.413695961237,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9491c86f.faa978",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1467.00390625,\r
+        "y": 1024.41365686059,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "45dbdd14.1c9594",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1059.00386428833,\r
+        "y": 343.41364446282387,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ddcd159.af7c5",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 687.003849029541,\r
+        "y": 344.08032193779945,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "45dbdd14.1c9594"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7064bfe.3bb108",\r
+        "type": "outcome",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 641.0038757324219,\r
+        "y": 1442.0803076326847,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "86fe3063.f5314"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8129346a.9a7028",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.3373947143555,\r
+        "y": 1442.666674286127,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "abdb2c6d.26329",\r
+                "1c9b503f.e869e",\r
+                "ebc11a5b.92e8f8",\r
+                "ed7bc3fc.a812b",\r
+                "f8972855.1982c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c9b503f.e869e",\r
+        "type": "outcome",\r
+        "name": "DeleteSiteInstance",\r
+        "xml": "<outcome value='DeleteSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1129.8138046264648,\r
+        "y": 1386.146000534296,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "491e32c9.2d52ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abdb2c6d.26329",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1079.71826171875,\r
+        "y": 1533.5239340364933,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8f601e81.71977"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86fe3063.f5314",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 827.3373947143555,\r
+        "y": 1369.6666723787785,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8129346a.9a7028"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "491e32c9.2d52ac",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1583.3375778198242,\r
+        "y": 1381.666752487421,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f601e81.71977",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1233.0039138793945,\r
+        "y": 1533.5803305208683,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ebc11a5b.92e8f8",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANPortInstance",\r
+        "xml": "<outcome value='DeleteSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1143.670654296875,\r
+        "y": 1491.9138247072697,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "f8f01738.a952f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8f01738.a952f8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1616.194351196289,\r
+        "y": 1491.4345766603947,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed7bc3fc.a812b",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANDeviceInstance",\r
+        "xml": "<outcome value='DeleteSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.0349960327148,\r
+        "y": 1438.1117407381535,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3f658e56.9d3b42"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f658e56.9d3b42",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1617.5587615966797,\r
+        "y": 1437.6325737535954,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8972855.1982c8",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANVpnInstance",\r
+        "xml": "<outcome value='DeleteSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1172.00390625,\r
+        "y": 1335.0803247988224,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "19b04dbd.6b60a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19b04dbd.6b60a2",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1579.5276794433594,\r
+        "y": 1336.6010767519474,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8d55366.a8f26",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"request-action\"/>\n<parameter name=\"field3\" value='`$vf-module-topology-operation-input.request-information.request-action`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1018.75390625,\r
+        "y": 565.00390625,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
index 7fffebd..2fc01cf 100644 (file)
@@ -5,8 +5,8 @@
         <block atomic="true">\r
             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="service-subscription" \r
-        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.subscription-service-type \r
-        AND customer.global-customer-id = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.global-customer-id'\r
+        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \r
+        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'\r
       force="true" pfx="tmp.AnAI-data-tenant">\r
                 <outcome value='success'>\r
                     <switch test='`$tmp.AnAI-data-tenant.temp-ub-sub-account-id`'>\r
@@ -48,4 +48,4 @@
             </execute>\r
         </block>\r
     </method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.xml
new file mode 100644 (file)
index 0000000..ddafa01
--- /dev/null
@@ -0,0 +1,87 @@
+<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='sdwan-get-vf-module-device-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'esn'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.esn' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'class'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.class' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.deviceModel' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'version'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.version' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'systemIp'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.systemIP' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vendor'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.vendor' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.deviceId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'sdncCreate'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.sdncCreate' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\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
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.xml
new file mode 100644 (file)
index 0000000..3317c6c
--- /dev/null
@@ -0,0 +1,147 @@
+<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='sdwan-get-vf-module-site-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic2.log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="'vf-module-site-params'"/>\r
+                        <parameter name="field3" value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                    </record>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'location-name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'address'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-address' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'postcode'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-postcode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'latitude'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-latitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'longitude'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-longitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'emails'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.emails' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                    <parameter name="original_string" value='`$prop.site.emails`'/>\r
+                                    <parameter name="regex" value=","/>\r
+                                    <parameter name="ctx_memory_result_key" value="prop.site.email"/>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`">\r
+                        <outcome value='true'>\r
+                            <block>\r
+                                <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`">\r
+                                    <outcome value=''>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <set>\r
+                                            <parameter name='prop.site.type' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                            <parameter name='prop.site.sdwan' value='true' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'role'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.role' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                    <parameter name="original_string" value='`$prop.site.role`'/>\r
+                                    <parameter name="regex" value=","/>\r
+                                    <parameter name="ctx_memory_result_key" value="prop.site.roles"/>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'controlPoint'`">\r
+                        <outcome value='true'>\r
+                            <block>\r
+                                <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`">\r
+                                    <outcome value=''>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='prop.site.controlPoint' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                            </set>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                <parameter name="original_string" value='`$prop.site.controlPoint`'/>\r
+                                                <parameter name="regex" value=","/>\r
+                                                <parameter name="ctx_memory_result_key" value="prop.site.controlpoints"/>\r
+                                            </execute>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\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
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 68980ec..e42b3bd 100644 (file)
     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='sdwan-get-wan-param' mode='sync'>\r
         <block atomic="true">\r
-            <for index='idx' start='0' end='`$vnf-request-input.vnf-input-parameters.param_length`' >\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
                 <block>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'id'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'id'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.id' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'description'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'description'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'deviceName'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.deviceName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portType'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.portType' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portNumber'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'apn'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.portNumber' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.apn-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'ipAddress'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.ipAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'providerIpAddress'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.providerIpAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'vlanId'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'providerIpAddress'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.vlanId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.providerIpAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'transportNetworkName'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.transportNetworkName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'inputBandwidth'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'transportNetworkName'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.inputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.transportNetworkName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'outputBandwidth'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'inputBandwidth'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.outputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.inputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'devicePortId'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'outputBandwidth'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.devicePortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.outputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'wanPortId'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.wanPortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'wanPortId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.wanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'publicIP'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.publicIP' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.IPMode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
             </for>\r
         </block>\r
     </method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.xml
new file mode 100644 (file)
index 0000000..3e57bbc
--- /dev/null
@@ -0,0 +1,316 @@
+<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='sdwan-vf-operation-device-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic1.log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="vf-module-id-input"/>\r
+                            <parameter name="field3" value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="Provided alloted resource length"/>\r
+                <parameter name="field3" value="'parameters length'"/>\r
+                <parameter name="field4" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\r
+            </record>\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
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\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 executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="service-subscription" \r
+        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \r
+        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'\r
+      force="true" pfx="tmp.AnAI-data">\r
+                <outcome value='success'>\r
+                    <switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.customer-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                    <parameter name="source" value='`$prop.customer-id`'/>\r
+                                    <parameter name="outputPath" value="tmp.userAccountEmail"/>\r
+                                    <parameter name="target" value="@test.com"/>\r
+                                </execute>\r
+                                <set>\r
+                                    <parameter name='prop.userAccount' value='`$tmp.userAccountEmail`' />\r
+                                    <parameter name='prop.userEmail' value='`$tmp.userAccountEmail`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-tenant.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants'`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="post"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="service-subscription" \r
+        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \r
+        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'>\r
+                                    <parameter name='temp-ub-sub-account-id' value='`$tenant-result.data.tenantId`' />\r
+                                    <!--parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' /-->\r
+                                </update>\r
+                                <set>\r
+                                    <parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="put"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="put"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\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 executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <block atomic="true">\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-network-orchestration.json'`" />\r
+                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`" />\r
+                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                    <parameter name="format" value="json"/>\r
+                    <parameter name="httpMethod" value="put"/>\r
+                    <parameter name="responsePrefix" value="orchestration-result"/>\r
+                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                </execute>\r
+            </block>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-device.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="deviceResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\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 executing Activate Device rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value="deviceId" />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$deviceResp.success[0].id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.xml
new file mode 100644 (file)
index 0000000..eed2f5f
--- /dev/null
@@ -0,0 +1,113 @@
+<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='sdwan-vf-operation-device-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.device-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.device-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <!--parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' /-->\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.device-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.xml
new file mode 100644 (file)
index 0000000..5a1bc3d
--- /dev/null
@@ -0,0 +1,196 @@
+<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='sdwan-vf-operation-device-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\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
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='prop.devices_length' value='1' />\r
+            </set>\r
+            <set>\r
+                <parameter name='prop.devices[0]' value='`$prop.device.deviceId`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-device-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="delete"/>\r
+                <parameter name="responsePrefix" value="deviceResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\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 executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \r
+      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+            </update>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.xml
new file mode 100644 (file)
index 0000000..995ecff
--- /dev/null
@@ -0,0 +1,142 @@
+<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='sdwan-vf-operation-device-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></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="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='prop.vnfidxLen' value='`0`' />\r
+            </set>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <switch test="`$prop.device.sdncCreate`">\r
+                <outcome value='true'>\r
+                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='device' \r
+        key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.xml
new file mode 100644 (file)
index 0000000..8ac5971
--- /dev/null
@@ -0,0 +1,260 @@
+<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='sdwan-vf-operation-site-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='prop.site.sdwan' value="false" />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='prop.site.deviceId_length' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$idx`' />\r
+                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <for index="deviceidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                                <block>\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\r
+                                                                <parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\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="`$prop.site.sdwan`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <switch test="`$prop.site.controlPoint`">\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='template.site.role' value="hub" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='template.site.role' value="spoke" />\r
+                                    </set>\r
+                                    <for index='cpidx' start='0' end='`$prop.site.controlpoints_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='prop.controlPtId' value='`$prop.site.controlpoints[$cpidx]`' />\r
+                                            </set>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="site-resource" \r
+               key="site-resource.site-resource-name = $prop.controlPtId AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.controlPoints' local-only='false' >\r
+                                                <outcome value='success'>\r
+                                                    <set>\r
+                                                        <parameter name='prop.site.controlpoints[$cpidx]' value='`$tmp.aai.controlPoints.generated-site-id`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='prop.site.siteId' value="" />\r
+                        </set>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                                </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="token-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-' + $template.site.role + '.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites'`" />\r
+                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="site-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                            <outcome value='success'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\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 executing Create vpn rest api" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='siteId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$site-result.success[0].id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \r
+      key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='site-resource-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='generated-site-id' value='`$site-result.success[0].id`' />\r
+                <parameter name='operational-status' value='Active' />\r
+            </update>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.xml
new file mode 100644 (file)
index 0000000..d13f680
--- /dev/null
@@ -0,0 +1,114 @@
+<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='sdwan-vf-operation-site-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.site-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.site-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.xml
new file mode 100644 (file)
index 0000000..1fcddf6
--- /dev/null
@@ -0,0 +1,222 @@
+<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='sdwan-vf-operation-site-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="Provided alloted resource length"/>\r
+                <parameter name="field3" value="'parameters length'"/>\r
+                <parameter name="field4" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\r
+            </record>\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
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
+                <block>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                    <parameter name='prop.site.sdwan' value="true" />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'siteId'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.siteId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test="`$prop.site.sdwan`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                                </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="token-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-del.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/action/batch-delete'`" />\r
+                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="site-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                            <outcome value='failure'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \r
+      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+            </update>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.xml
new file mode 100644 (file)
index 0000000..0c728d4
--- /dev/null
@@ -0,0 +1,136 @@
+<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='sdwan-vf-operation-site-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></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="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='prop.vnfidxLen' value='`0`' />\r
+            </set>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.xml
new file mode 100644 (file)
index 0000000..8e93f1a
--- /dev/null
@@ -0,0 +1,175 @@
+<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='sdwan-vf-operation-vpn-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="sdwan-network-topology-operation-activate"/>\r
+                <parameter name="field3" value="SDWAN-Activate"/>\r
+            </record>\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
+            <for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                <block>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\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 executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-create.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.vpn-id' value='`$vpn-result.success[0].id`' />\r
+                <parameter name='prop.vpn1Id' value='`$vpn-result.success[0].id`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-topology-create.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='tenant-id' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.tenant-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='vpn-id' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.vpn-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='Active' />\r
+                <parameter name='tenanat-id' value='`$prop.tenant-id`' />\r
+                <parameter name='vpn-id' value='`$prop.vpn-id`' />\r
+            </update>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.xml
new file mode 100644 (file)
index 0000000..f352d1d
--- /dev/null
@@ -0,0 +1,154 @@
+<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='sdwan-vf-operation-vpn-create' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.topology' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.vpn-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.vpn-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.vpn-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
+      key='sdwan-vpn.sdwan-vpn-id = $prop.vpn-vf-index' >\r
+                <parameter name='sdwan-vpn-id' value='`$prop.vpn-vf-index`' />\r
+                <parameter name='sdwan-vpn-name' value='`$prop.name`' />\r
+                <parameter name='topology' value='`$prop.topology`' />\r
+                <parameter name='operational-status' value='Created' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.vpn-vf-index + '/vf-module-data/'` " />\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \r
+      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.vpn-vf-index`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.vpn-vf-index`" />\r
+                <!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \r
+      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data"><parameter name="relationship-list.relationship[0].related-to" value="sdwan-site" /><parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.site-vf-index`" /-->\r
+            </save>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml
new file mode 100644 (file)
index 0000000..f28d9c2
--- /dev/null
@@ -0,0 +1,169 @@
+<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='sdwan-vf-operation-vpn-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="sdwan-network-topology-operation-activate"/>\r
+                <parameter name="field3" value="SDWAN-Activate"/>\r
+            </record>\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
+            <for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                <block>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vpn-id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.vpn-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tenant-id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.tenant-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\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 executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="delete"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-delete.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+            </update>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.xml
new file mode 100644 (file)
index 0000000..8b95c4c
--- /dev/null
@@ -0,0 +1,47 @@
+<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='sdwan-vf-operation-vpn-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="sdwan-vf-module-operation-delete"/>\r
+                <parameter name="field3" value="SDWAN-Delete"/>\r
+            </record>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='sdwan-vpn' \r
+        key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml
new file mode 100644 (file)
index 0000000..95f8369
--- /dev/null
@@ -0,0 +1,468 @@
+<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='sdwan-vf-operation-wanport-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='prop.site.deviceId_length' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$idx`' />\r
+                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <for index="didx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                            <block atomic="true">\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                    <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-device-param.log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name'"/>\r
+                                                    <parameter name="field3" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name`'/>\r
+                                                </record>\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name == 'name'`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-device-name.log"/>\r
+                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                <parameter name="field2" value="'prop.wan.deviceName'"/>\r
+                                                                <parameter name="field3" value='`$prop.wan.deviceName`'/>\r
+                                                                <parameter name="field4" value="'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value'"/>\r
+                                                                <parameter name="field5" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`'/>\r
+                                                            </record>\r
+                                                            <switch test="`$prop.wan.deviceName == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <for index="deviceidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                                                            <block atomic="true">\r
+                                                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.wan.deviceId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </block>\r
+                                                                        </for>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.devicevidx' value='`$idx`' />\r
+                                                                        </set>\r
+                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-last.log"/>\r
+                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                            <parameter name="field2" value="'tmp.devicevidx'"/>\r
+                                                                            <parameter name="field3" value='`$tmp.devicevidx`'/>\r
+                                                                        </record>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name='tmp.siteVidx' value='`$idx`' />\r
+                                        <parameter name='ctx.site.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\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
+            <for index="sidx" start="0" end="`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block atomic="true">\r
+                    <switch test="`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].name == 'siteId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.siteId' value='`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\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 executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='portResp.success[0].id' value="12345" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\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 executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='portResp.success[0].id' value="12345" />\r
+            </set>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
+                <block>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <switch test="`GE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.wan.linkType' value="Ethernet" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`LTE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.wan.linkType' value="Cellular" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\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 executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.wan.devicePortId' value='`$portResp.success[0].id`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="get"/>\r
+                <parameter name="responsePrefix" value="transportNetworksResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\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 executing Get transport network info rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <for index="tidx" start="0" end="`$transportNetworksResp.data.transportNetworks_length`">\r
+                <block>\r
+                    <switch test="`$transportNetworksResp.data.transportNetworks[$tidx].name == $prop.wan.transportNetworkName`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.transportNetworkId' value='`$transportNetworksResp.data.transportNetworks[$tidx].id`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$prop.wan.ipAddress`'/>\r
+                <parameter name="regex" value="/"/>\r
+                <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.wan.ip-address' value='`$ipandMask[0]`' />\r
+                        <parameter name='prop.wan.prefixLength' value='`$ipandMask[1]`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
+                <block>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <switch test="`Static == $prop.wan.IPMode`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.wan.ip-address' value="" />\r
+                                            <parameter name='prop.wan.prefixLength' value="" />\r
+                                            <parameter name='prop.wan.providerIpAddress' value="" />\r
+                                            <parameter name='prop.wan.IpMode' value="static" />\r
+                                            <parameter name='prop.route.nextHopType' value="ip-address" />\r
+                                            <parameter name='prop.route.ipAddress' value="`$prop.wan.ipAddress`" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`DHCP == $prop.wan.IPMode`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.route.nextHopType' value="outbound-interface" />\r
+                                            <parameter name='prop.wan.IpMode' value="DHCP" />\r
+                                            <parameter name='prop.route.ipAddress' value="" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="wanPortResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='prop.wan.wanPortId' value='`$wanPortResp.success[0].id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="underlayspokeResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.devicePortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='wanPortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.wanPortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \r
+      key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vnf-information.vnf-id' >\r
+                <parameter name="wan-port-config-id" value="`$vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+                <parameter name='operational-status' value='Active' />\r
+                <parameter name='device-port-id' value='`$prop.wan.devicePortId`' />\r
+                <parameter name='wan-port-id' value='`$prop.wan.wanPortId`' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
+            </update>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.xml
new file mode 100644 (file)
index 0000000..c849449
--- /dev/null
@@ -0,0 +1,144 @@
+<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='sdwan-vf-operation-wanport-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.wan-port-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.wan-port-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \r
+      key='wan-port-config.wan-port-config-id = $prop.vnf-index' >\r
+                <parameter name="wan-port-config-id" value="`$prop.vnf-index`" />\r
+                <parameter name="wan-port-config-name" value="`$prop.wan.name`" />\r
+                <parameter name="device-id" value="`$prop.wan.deviceName`" />\r
+                <parameter name='vlan-id' value="`$prop.wan.vlanId`" />\r
+                <parameter name="ip-address" value="`$prop.wan.ipAddress`" />\r
+                <parameter name="provider-ip-address" value="`$prop.wan.providerIpAddress`" />\r
+                <parameter name="input-bandwidth" value="`$prop.wan.inputBandwidth`" />\r
+                <parameter name="output-bandwidth" value="`$prop.wan.outputBandwidth`" />\r
+                <parameter name="description" value="`$prop.wan.description`" />\r
+                <parameter name="port-type" value="`$prop.wan.portType`" />\r
+                <parameter name="port-number" value="`$prop.wan.portNumber`" />\r
+                <parameter name="transport-network-name" value="`$prop.wan.transportNetworkName`" />\r
+                <parameter name='operational-status' value='Created' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` " />\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \r
+      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.site-vf-index`" />\r
+                <!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \r
+      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data"><parameter name="relationship-list.relationship[0].related-to" value="sdwan-site" /><parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.site-vf-index`" /-->\r
+            </save>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.xml
new file mode 100644 (file)
index 0000000..ab5d5b0
--- /dev/null
@@ -0,0 +1,208 @@
+<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='sdwan-vf-operation-wanport-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='prop.site.deviceId_length' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$idx`' />\r
+                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\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
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\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="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\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="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\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 executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\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 executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-device-port-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\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 executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\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/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.xml
new file mode 100644 (file)
index 0000000..587f6cc
--- /dev/null
@@ -0,0 +1,135 @@
+<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='sdwan-vf-operation-wanport-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></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="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='site-resource' \r
+        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\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/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.xml
new file mode 100644 (file)
index 0000000..de558b8
--- /dev/null
@@ -0,0 +1,323 @@
+<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-sdwan-vf-vpn-input-parameters' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-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-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\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="vnf entry not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='create'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='CreateSDWANVpnInstance'>\r
+                                <block atomic="true">\r
+                                    <for index="i" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value='' />\r
+                                                <parameter name='tmp.value' value='' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`"/>\r
+                                                <parameter name='tmp.value' value="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`"/>\r
+                                            </set>\r
+                                            <switch test="`$tmp.name`">\r
+                                                <outcome value='name'>\r
+                                                    <switch test="`$tmp.value`">\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="`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='topology'>\r
+                                                    <switch test="`$tmp.value`">\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="`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\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="`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                </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="request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='ActivateSDWANVpnInstance'>\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                    <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
+                                </execute>\r
+                                <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-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="network-request-input.network-input-parameters.name is a required input" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\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="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.nidx`">\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="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                                    <outcome value='Created'>\r
+                                        <block atomic="true"></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="`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </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="request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeactivateSDWANVpnInstance'>\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                    <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
+                                </execute>\r
+                                <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-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="network-request-input.network-input-parameters.name is a required input" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\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="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.nidx`">\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="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                                    <outcome value='Active'>\r
+                                        <block atomic="true"></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="`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </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="request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeleteSDWANVpnInstance'>\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                    <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
+                                </execute>\r
+                                <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-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="network-request-input.network-input-parameters.name is a required input" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\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="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.nidx`">\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="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                                    <outcome value='PendingDelete'>\r
+                                        <block atomic="true"></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="`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </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="request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\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="`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_vf-module-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_vf-module-topology-operation.xml
new file mode 100644 (file)
index 0000000..f8ee6d3
--- /dev/null
@@ -0,0 +1,122 @@
+<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='vf-module-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' ></call>\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='create'>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="request-action"/>\r
+                            <parameter name="field3" value='`$vf-module-topology-operation-input.request-information.request-action`'/>\r
+                        </record>\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='CreateSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='ActivateSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='DeactivateSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='DeleteSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </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="`$vnf-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