Adding connectivity attachment Resource DG 65/57065/5
authorgaurav <gaurav.agrawal@huawei.com>
Fri, 20 Jul 2018 17:10:12 +0000 (22:40 +0530)
committerGaurav Agrawal <gaurav.agrawal@huawei.com>
Mon, 23 Jul 2018 17:42:21 +0000 (17:42 +0000)
Initial implementation of create DG for connectivity attachment resource.

Change-Id: Ibba56e5ec4af9da3565041085f83f7f01bafd201
Issue-ID: SDNC-356
Signed-off-by: Gaurav Agrawal <gaurav.agrawal@huawei.com>
Former-commit-id: 91d3ed86e4bb4596dc2a42095fb3a941117f9a27

installation/src/main/properties/generic-resource-api-dg.properties
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_connection-attachment-topology-operation.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-get-saved-ar-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-connection-attachment-input.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_connection-attachment-topology-operation.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-get-saved-ar-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-connection-attachment-input.xml [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sotn-attachment-allotted-resource.json [new file with mode: 0644]

index 3e1f166..0995af0 100644 (file)
@@ -23,6 +23,7 @@ restapi.network-ar.templatefile=network-provided-allotted-resources.json
 restapi.vnf-ar.templatefile=vnf-provided-allotted-resources.json
 restapi.services.templatefile=vcpe-services-service.json
 restapi.services.vnf.vfmodule.templatefile=vfmodule-vim-parameters.vgw.json
+restapi.sotn-attachment.templatefile=sotn-attachment-allotted-resource.json
 # URLs
 restapi.cr-allottedresource=/restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/{allotted-resource-id}/
 restapi.sz-allottedresource=/restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/{allotted-resource-id}/
@@ -39,3 +40,4 @@ restapi.parent-provided-resource=/restconf/config/GENERIC-RESOURCE-API:services/
 restapi.network-provided-resource=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/networks/network/{network-id}/network-data/network-provided-allotted-resources/
 restapi.services=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}
 restapi.service.vnf.vfmodule-resource=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/vnf-data/vf-modules/vf-module/{vf-module-id}
+restapi.connection-attachment-allottedresource=/restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/{allotted-resource-id}/
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_connection-attachment-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_connection-attachment-topology-operation.json
new file mode 100644 (file)
index 0000000..77d885a
--- /dev/null
@@ -0,0 +1,536 @@
+[
+  {
+    "id": "b2143086.a417",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 109.03125,
+    "y": 37.03125,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "7e88a37a.69419c"
+      ]
+    ]
+  },
+  {
+    "id": "7e88a37a.69419c",
+    "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": 247.03126525878906,
+    "y": 98.03124809265137,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "90bc847a.1e90f8"
+      ]
+    ]
+  },
+  {
+    "id": "90bc847a.1e90f8",
+    "type": "method",
+    "name": "connection-attachment-topology-operation",
+    "xml": "<method rpc='connection-attachment-topology-operation' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 282.0312805175781,
+    "y": 146.03127670288086,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "bf0dea50.c6f6f8"
+      ]
+    ]
+  },
+  {
+    "id": "bf0dea50.c6f6f8",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 207.03125,
+    "y": 224.03124237060547,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "4b652dbe.7deec4",
+        "976e09a7.a23c78",
+        "d692689.8b14098",
+        "f2e8c4be.f6edf8"
+      ]
+    ]
+  },
+  {
+    "id": "4b652dbe.7deec4",
+    "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": 421.40042877197266,
+    "y": 836.8741173744202,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "976e09a7.a23c78",
+    "type": "switchNode",
+    "name": "switch svc-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 428.0311737060547,
+    "y": 383.44496059417725,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "7df40438.8d552c",
+        "854b6002.a361e",
+        "d0a5f285.16e91",
+        "a7c210e.8aeb8f",
+        "d7a3669.7308f98"
+      ]
+    ]
+  },
+  {
+    "id": "d692689.8b14098",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:validate-connection-attachment-input",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-connection-attachment-input' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 619.6026916503906,
+    "y": 204.01640129089355,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "7df40438.8d552c",
+    "type": "other",
+    "name": "activate",
+    "xml": "<outcome value='activate'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 643.3169174194336,
+    "y": 392.58784008026123,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "c747bb59.396bf8"
+      ]
+    ]
+  },
+  {
+    "id": "854b6002.a361e",
+    "type": "other",
+    "name": "deactivate",
+    "xml": "<outcome value='deactivate'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 653.3169784545898,
+    "y": 673.5880031585693,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "5f2c7e54.e5319"
+      ]
+    ]
+  },
+  {
+    "id": "d0a5f285.16e91",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 642.6502876281738,
+    "y": 758.9214267730713,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "63b93e5c.700f6"
+      ]
+    ]
+  },
+  {
+    "id": "63b93e5c.700f6",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is invalid\" />\n",
+    "comments": "",
+    "x": 824.6502838134766,
+    "y": 757.9214363098145,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "f2e8c4be.f6edf8",
+    "type": "set",
+    "name": "Set final indicator to Y",
+    "xml": "<set>\n<parameter name=\"ack-final\" value=\"Y\"/>",
+    "comments": "",
+    "x": 440.4281234741211,
+    "y": 796.0324559211731,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a7c210e.8aeb8f",
+    "type": "other",
+    "name": "create",
+    "xml": "<outcome value='create'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 642.5576133728027,
+    "y": 257.19257259368896,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "8d1575e7.3d39d8"
+      ]
+    ]
+  },
+  {
+    "id": "d7a3669.7308f98",
+    "type": "other",
+    "name": "delete",
+    "xml": "<outcome value='delete'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 647.8909645080566,
+    "y": 533.8593759536743,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "347f7912.887506"
+      ]
+    ]
+  },
+  {
+    "id": "380d46d2.a08ada",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-create",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-create' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1537.1175537109375,
+    "y": 208.57203483581543,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "8d1575e7.3d39d8",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 833.5313034057617,
+    "y": 256.0312566757202,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "b4498aac.7cb2b8",
+        "ed77a730.056558"
+      ]
+    ]
+  },
+  {
+    "id": "b4498aac.7cb2b8",
+    "type": "outcome",
+    "name": "CreateSOTNAttachmentInstance",
+    "xml": "<outcome value='CreateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1088.864517211914,
+    "y": 208.03106307983398,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "380d46d2.a08ada"
+      ]
+    ]
+  },
+  {
+    "id": "ed77a730.056558",
+    "type": "outcome",
+    "name": "other",
+    "xml": "<outcome value='other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1018.8646240234375,
+    "y": 299.69779205322266,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "1b79383c.71b538"
+      ]
+    ]
+  },
+  {
+    "id": "1b79383c.71b538",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
+    "comments": "",
+    "x": 1184.5312881469727,
+    "y": 300.03125762939453,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "b97ace55.086d3",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-activate",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-activate' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1546.5312957763672,
+    "y": 343.03125953674316,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "a6785aab.86f948",
+    "type": "outcome",
+    "name": "ActivateSOTNAttachmentInstance",
+    "xml": "<outcome value='ActivateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1096.278335571289,
+    "y": 345.4902935028076,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "b97ace55.086d3"
+      ]
+    ]
+  },
+  {
+    "id": "d100865f.7e59f8",
+    "type": "outcome",
+    "name": "other",
+    "xml": "<outcome value='other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1026.2784423828125,
+    "y": 437.1570224761963,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "19062ead.ade691"
+      ]
+    ]
+  },
+  {
+    "id": "bbd40a3d.52a218",
+    "type": "outcome",
+    "name": "DeactivateSOTNAttachmentInstance",
+    "xml": "<outcome value='DeactivateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1115.8645477294922,
+    "y": 484.0310802459717,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "cdb50b2f.8ff328"
+      ]
+    ]
+  },
+  {
+    "id": "6647d681.d75a78",
+    "type": "outcome",
+    "name": "other",
+    "xml": "<outcome value='other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1030.8645706176758,
+    "y": 575.6977853775024,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "dab4a1b3.5c9b3"
+      ]
+    ]
+  },
+  {
+    "id": "cdb50b2f.8ff328",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-deactivate",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-deactivate' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1574.5313720703125,
+    "y": 484.03126335144043,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "8c01d720.070a78",
+    "type": "outcome",
+    "name": "DeleteSOTNAttachmentInstance",
+    "xml": "<outcome value='DeleteSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1104.8644638061523,
+    "y": 625.0310564041138,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "58c79286.6e607c"
+      ]
+    ]
+  },
+  {
+    "id": "aa83e7c.d9f1218",
+    "type": "outcome",
+    "name": "other",
+    "xml": "<outcome value='other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1034.8645706176758,
+    "y": 716.6977853775024,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "4e0c491c.1e9da8"
+      ]
+    ]
+  },
+  {
+    "id": "58c79286.6e607c",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-delete",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-delete' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1560.5313415527344,
+    "y": 626.0312671661377,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "c747bb59.396bf8",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 831.0313110351562,
+    "y": 397.03126335144043,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "a6785aab.86f948",
+        "d100865f.7e59f8"
+      ]
+    ]
+  },
+  {
+    "id": "347f7912.887506",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 845.03125,
+    "y": 538.03125,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "bbd40a3d.52a218",
+        "6647d681.d75a78"
+      ]
+    ]
+  },
+  {
+    "id": "5f2c7e54.e5319",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 848.03125,
+    "y": 673.03125,
+    "z": "efb71132.eba6e",
+    "wires": [
+      [
+        "8c01d720.070a78",
+        "aa83e7c.d9f1218"
+      ]
+    ]
+  },
+  {
+    "id": "19062ead.ade691",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
+    "comments": "",
+    "x": 1190.03125,
+    "y": 437.03125,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "dab4a1b3.5c9b3",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
+    "comments": "",
+    "x": 1198.03125,
+    "y": 577.03125,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "4e0c491c.1e9da8",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
+    "comments": "",
+    "x": 1203.03125,
+    "y": 716.03125,
+    "z": "efb71132.eba6e",
+    "wires": [
+
+    ]
+  }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.json
new file mode 100644 (file)
index 0000000..df8edd0
--- /dev/null
@@ -0,0 +1,1281 @@
+[
+  {
+    "id": "325842f8.71766e",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 107.03125,
+    "y": 44.03125,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "260e5d2a.9ebe72"
+      ]
+    ]
+  },
+  {
+    "id": "260e5d2a.9ebe72",
+    "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": 319.03125381469727,
+    "y": 116.0312671661377,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "aa492387.d875a"
+      ]
+    ]
+  },
+  {
+    "id": "aa492387.d875a",
+    "type": "method",
+    "name": "sotn-attachment-topology-operation-create",
+    "xml": "<method rpc='sotn-attachment-topology-operation-create' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 307.0313720703125,
+    "y": 204.03125,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "3ba2475a.82b468"
+      ]
+    ]
+  },
+  {
+    "id": "3ba2475a.82b468",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 227.03130340576172,
+    "y": 953.0314979553223,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "5b9fedc5.bb21a4",
+        "1c8d2bb9.f29f94",
+        "269db4cc.d4abfc",
+        "373e17e2.9acc38",
+        "5fd13a1.e2465c4",
+        "acb04fc4.b40f4",
+        "574b7ca7.0881c4",
+        "35a496d5.57302a",
+        "950a621f.7b821",
+        "5dbf4a35.fd12c4",
+        "5accbcde.210f64",
+        "de4bba44.8919f8",
+        "a1a37b4b.52c8a8",
+        "63023c8e.9fcb64",
+        "a6efd3b6.3278d",
+        "994d951b.a5b738",
+        "8ee1af3e.bbe67",
+        "ad95dda4.7a6dd",
+        "efc5e53d.5d75a8",
+        "72c54e75.d1648",
+        "850178e9.7d2408",
+        "d5054e0.23964b",
+        "acacc6b8.9b06e8"
+      ]
+    ]
+  },
+  {
+    "id": "741c9c3f.224ea4",
+    "type": "comment",
+    "name": "Set allotted resource id if not sent by SO",
+    "info": "",
+    "comments": "",
+    "x": 698.1079406738281,
+    "y": 128.46516609191895,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "5b9fedc5.bb21a4",
+    "type": "switchNode",
+    "name": "switch allotted-resource-id",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 657.0312805175781,
+    "y": 169.03124237060547,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "8be7a33f.276ac",
+        "503fc7ba.f0e4b8"
+      ]
+    ]
+  },
+  {
+    "id": "8be7a33f.276ac",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 908.0313301086426,
+    "y": 131.03122925758362,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "32f9a898.99bcd8"
+      ]
+    ]
+  },
+  {
+    "id": "503fc7ba.f0e4b8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 909.03125,
+    "y": 191.03123784065247,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "4eae44ec.25255c"
+      ]
+    ]
+  },
+  {
+    "id": "4eae44ec.25255c",
+    "type": "set",
+    "name": "set tmp.ar.allotted-resource-id",
+    "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n",
+    "comments": "",
+    "x": 1141.031234741211,
+    "y": 191.03124260902405,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "1c8d2bb9.f29f94",
+    "type": "set",
+    "name": "set tmp.ar.self-link",
+    "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/connection-attachment-topology/'` \" />\n\n",
+    "comments": "",
+    "x": 629.0311737060547,
+    "y": 404.031307220459,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "269db4cc.d4abfc",
+    "type": "execute",
+    "name": "execute Properties",
+    "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",
+    "comments": "",
+    "outputs": 1,
+    "x": 635.2930946350098,
+    "y": 489.69798469543457,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "373e17e2.9acc38",
+    "type": "execute",
+    "name": "generate allotted-resource tmp.ar-url",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.connection-attachment-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 682.2930755615234,
+    "y": 573.6979522705078,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "32f9a898.99bcd8",
+    "type": "execute",
+    "name": "execute tmp.ar.allotted-resource-id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"tmp.ar.allotted-resource-id\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1123.031307220459,
+    "y": 132.03123497962952,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "4b3e3360.e596bc"
+      ]
+    ]
+  },
+  {
+    "id": "4b3e3360.e596bc",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1341.031349182129,
+    "y": 132.0311987400055,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "a0c9c52c.3e6d68"
+      ]
+    ]
+  },
+  {
+    "id": "a0c9c52c.3e6d68",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while generation allotted resource ID\" />\n",
+    "comments": "",
+    "x": 1507.0313034057617,
+    "y": 132.03121304512024,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "5fd13a1.e2465c4",
+    "type": "get-resource",
+    "name": "get-resource connection-attachment-allotted-resource",
+    "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource' resource='GENERIC-RESOURCE-API' key='connection-attachment-allotted-resources/connection-attachment-allotted-resource/$tmp.ar.allotted-resource-id/' pfx='mdsal-ar' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 730.03125,
+    "y": 668.8090553283691,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "2117b9a.1971446"
+      ]
+    ]
+  },
+  {
+    "id": "2117b9a.1971446",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1050.0313301086426,
+    "y": 670.8090124130249,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "7534c2b3.76410c"
+      ]
+    ]
+  },
+  {
+    "id": "bd6696ff.0a7a78",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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: Existing connection attachment allotted resource\" />\n    \n",
+    "comments": "",
+    "x": 1783.5497093200684,
+    "y": 671.8750839233398,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "8d0e7e60.f9de9",
+    "type": "comment",
+    "name": "Check for non existence of allotted resource",
+    "info": "",
+    "comments": "",
+    "x": 694.0312881469727,
+    "y": 634.8091058731079,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "e79f21cd.1a744",
+    "type": "for",
+    "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+    "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1592.6979064941406,
+    "y": 867.0312929153442,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "e0cc70b5.ec5cb"
+      ]
+    ]
+  },
+  {
+    "id": "574b7ca7.0881c4",
+    "type": "switchNode",
+    "name": "switch service-data.consumed-allotted-resources_length",
+    "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 745.6972923278809,
+    "y": 827.7452943325043,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "d641745.a8dc988",
+        "10ab333.e534fcd"
+      ]
+    ]
+  },
+  {
+    "id": "d641745.a8dc988",
+    "type": "other",
+    "name": "outcome Null",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1067.840175628662,
+    "y": 830.6027162075043,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "7824e75b.697748"
+      ]
+    ]
+  },
+  {
+    "id": "10ab333.e534fcd",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1055.8401794433594,
+    "y": 873.6027176380157,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "c987fa4d.92cd08"
+      ]
+    ]
+  },
+  {
+    "id": "c987fa4d.92cd08",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1215.967269897461,
+    "y": 871.7286942005157,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "e79f21cd.1a744",
+        "bae4bbfe.22ddd8",
+        "de19c440.aed268"
+      ]
+    ]
+  },
+  {
+    "id": "7824e75b.697748",
+    "type": "set",
+    "name": "set cidx",
+    "xml": "<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n",
+    "comments": "",
+    "x": 1226.6971473693848,
+    "y": 830.3167788982391,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "35a496d5.57302a",
+    "type": "set",
+    "name": "set consumed allotted resources",
+    "xml": "<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n",
+    "comments": "",
+    "x": 671.554573059082,
+    "y": 900.31689453125,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "bae4bbfe.22ddd8",
+    "type": "switchNode",
+    "name": "switch tmp.found-cidx",
+    "xml": "<switch test='`$tmp.found-cidx`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1405.082317352295,
+    "y": 903.7402169704437,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "c9bdea6f.ae8408"
+      ]
+    ]
+  },
+  {
+    "id": "c9bdea6f.ae8408",
+    "type": "outcomeTrue",
+    "name": "false",
+    "xml": "<outcome value='false'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1595.0822715759277,
+    "y": 903.7401540279388,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "f4a1002.ec0e9"
+      ]
+    ]
+  },
+  {
+    "id": "f4a1002.ec0e9",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1761.0822715759277,
+    "y": 903.7401540279388,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "efdba6bf.3fa178"
+      ]
+    ]
+  },
+  {
+    "id": "e0cc70b5.ec5cb",
+    "type": "switchNode",
+    "name": "switch allotted-resource-id",
+    "xml": "<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2066.8093872070312,
+    "y": 867.0312767028809,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "cf1bcffb.5a97a"
+      ]
+    ]
+  },
+  {
+    "id": "cf1bcffb.5a97a",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2291.619115829468,
+    "y": 869.4956977367401,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "9a928449.d9e6c8"
+      ]
+    ]
+  },
+  {
+    "id": "efdba6bf.3fa178",
+    "type": "set",
+    "name": "set tmp.cidx",
+    "xml": "<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n",
+    "comments": "",
+    "x": 2006.955617904663,
+    "y": 904.2518508434296,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "69a27589.0e830c",
+    "type": "comment",
+    "name": "Add to consumed service consumed-allotted-resources in mdsal",
+    "info": "Prepare data and add to service-data",
+    "comments": "",
+    "x": 764.6984901428223,
+    "y": 757.0312271118164,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "b960d74c.b75ab8",
+    "type": "comment",
+    "name": "This set resource will be added to MDSAL by provider code",
+    "info": "Below we add to service-data.consumed-allotted-resource at last index",
+    "comments": "",
+    "x": 747.0313453674316,
+    "y": 864.8093509674072,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "d5054e0.23964b",
+    "type": "update",
+    "name": "update AAI allotted-resource",
+    "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"description\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid`\" />\n\t<parameter name=\"operational-status\" value=\"Created\" />\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 647.7220878601074,
+    "y": 1893.5631588697433,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "5db3e01e.d4ead",
+        "cde1c5f3.767a98"
+      ]
+    ]
+  },
+  {
+    "id": "5db3e01e.d4ead",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 903.4839973449707,
+    "y": 1876.5156625509262,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "3608fdb3.1050e2"
+      ]
+    ]
+  },
+  {
+    "id": "3608fdb3.1050e2",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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=\"AAI failed\" />\n",
+    "comments": "",
+    "x": 1070.0078773498535,
+    "y": 1888.134733557701,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "cde1c5f3.767a98",
+    "type": "failure",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 910.5792846679688,
+    "y": 1909.2776302099228,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "3608fdb3.1050e2"
+      ]
+    ]
+  },
+  {
+    "id": "c4afab5c.baa998",
+    "type": "comment",
+    "name": "Save Resource to AAI",
+    "info": "",
+    "comments": "",
+    "x": 622.5317115783691,
+    "y": 1858.865050792694,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "88151412.9744b8",
+    "type": "comment",
+    "name": "Set allotted resource type if not sent by SO",
+    "info": "",
+    "comments": "",
+    "x": 701.0312194824219,
+    "y": 248.0312442779541,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "acb04fc4.b40f4",
+    "type": "switchNode",
+    "name": "switch allotted-resource-type",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 661.9545211791992,
+    "y": 281.59730529785156,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "66623b13.496cd4",
+        "4d39f4a7.b07cdc"
+      ]
+    ]
+  },
+  {
+    "id": "66623b13.496cd4",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 906.9546241760254,
+    "y": 252.59730625152588,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "98a097ca.0fb138"
+      ]
+    ]
+  },
+  {
+    "id": "4d39f4a7.b07cdc",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 907.9545440673828,
+    "y": 312.5973148345947,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "487657c2.991598"
+      ]
+    ]
+  },
+  {
+    "id": "487657c2.991598",
+    "type": "set",
+    "name": "set tmp.ar.allotted-resource-type",
+    "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-type' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\n",
+    "comments": "",
+    "x": 1139.9545288085938,
+    "y": 312.5973196029663,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "45c27762.ed75b8",
+    "type": "comment",
+    "name": "For storage in AAI connection-attachment-topology",
+    "info": "",
+    "comments": "",
+    "x": 723.0312042236328,
+    "y": 372.03126525878906,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "9a37b9ec.57f5d8",
+    "type": "comment",
+    "name": "Obtain different URL, template location etc",
+    "info": "For saving resource information to MDSAL & for AAI",
+    "comments": "",
+    "x": 701.0312004089355,
+    "y": 454.92014598846436,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "92fc6e78.11aa",
+    "type": "comment",
+    "name": "Used for Put AR by id to MDSAL",
+    "info": "",
+    "comments": "",
+    "x": 665.0312347412109,
+    "y": 538.9201374053955,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "920f2559.59f028",
+    "type": "comment",
+    "name": "Obtain the last index in services",
+    "info": "ServiceData is added by Provider code",
+    "comments": "",
+    "x": 663.4757118225098,
+    "y": 792.9201095104218,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "78b042c2.3a757c",
+    "type": "comment",
+    "name": "TODO: Rework after confirmation from AAI",
+    "info": "",
+    "comments": "",
+    "x": 922.8906211853027,
+    "y": 1836.436089515686,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "850178e9.7d2408",
+    "type": "set",
+    "name": "set output to api handler",
+    "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='connection-attachment-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $connection-attachment-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+    "comments": "",
+    "x": 636.2993774414062,
+    "y": 1806.3904213905334,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "acacc6b8.9b06e8",
+    "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": 605.7124900817871,
+    "y": 1941.006284236908,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "98a097ca.0fb138",
+    "type": "set",
+    "name": "set tmp.ar.allotted-resource-type",
+    "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-type' value=\"SOTNAttachmentInstance\" />\n",
+    "comments": "",
+    "x": 1146.0313110351562,
+    "y": 253.0312328338623,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "ad95dda4.7a6dd",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sotn-get-request-input-param",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='connection-attachment-get-request-input-param' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 761.0254058837891,
+    "y": 1637.5250849723816,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "72c54e75.d1648",
+    "type": "execute",
+    "name": "execute RestApiCallNode - PUT AR by id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sotn-attachment.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 696.0314865112305,
+    "y": 1678.0312724113464,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "cee5ccdb.56f91",
+        "343b1a53.f93b56",
+        "d836f528.1e2818"
+      ]
+    ]
+  },
+  {
+    "id": "cee5ccdb.56f91",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 964.6728630065918,
+    "y": 1729.3626841530204,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "7a6b84bb.83fdac"
+      ]
+    ]
+  },
+  {
+    "id": "343b1a53.f93b56",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 955.6729125976562,
+    "y": 1697.862709902227,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "7a6b84bb.83fdac"
+      ]
+    ]
+  },
+  {
+    "id": "d836f528.1e2818",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 959.4229507446289,
+    "y": 1668.2198147773743,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "2a50bed0.d894a2"
+      ]
+    ]
+  },
+  {
+    "id": "7a6b84bb.83fdac",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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 updating md-sal for connection-attachment-allotted-resource\" />\n",
+    "comments": "",
+    "x": 1125.422950744629,
+    "y": 1698.6127337440848,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "2a50bed0.d894a2",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1101.0789184570312,
+    "y": 1664.4119839668274,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "de4bba44.8919f8",
+    "type": "execute",
+    "name": "execute RestApiCallNode - Update parent provided service AR",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 761.0312156677246,
+    "y": 1198.031394958496,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "193ed140.775b6f",
+        "5734aea.1129c5",
+        "1e7e5c60.a431d4"
+      ]
+    ]
+  },
+  {
+    "id": "193ed140.775b6f",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1083.3392333984375,
+    "y": 1243.0296125411987,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "f7734abc.a1eef8"
+      ]
+    ]
+  },
+  {
+    "id": "5734aea.1129c5",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1074.339282989502,
+    "y": 1211.5296382904053,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "f7734abc.a1eef8"
+      ]
+    ]
+  },
+  {
+    "id": "1e7e5c60.a431d4",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1078.0893211364746,
+    "y": 1181.8867431655526,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "850e7d60.6ac59"
+      ]
+    ]
+  },
+  {
+    "id": "f7734abc.a1eef8",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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 updating md-sal for connection-attachment-allotted-resource\" />\n",
+    "comments": "",
+    "x": 1244.0893211364746,
+    "y": 1212.2796621322632,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "850e7d60.6ac59",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1219.745288848877,
+    "y": 1178.0789123550057,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "34f114cf.2fe48c",
+    "type": "comment",
+    "name": "Put the parent allotted resource in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 685.0311508178711,
+    "y": 1166.0312938690186,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "63023c8e.9fcb64",
+    "type": "set",
+    "name": "set connection-attachment-ar-identifiers",
+    "xml": "<set>\n<parameter name='connection-attachment-ar-identifiers.consuming-service-instance-id' value=\"`$connection-attachment-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='connection-attachment-ar-identifiers.parent-service-instance-id' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='connection-attachment-ar-identifiers.allotted-resource-type' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='connection-attachment-ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n",
+    "comments": "",
+    "x": 685.3883056640625,
+    "y": 1400.6029052734375,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a1a37b4b.52c8a8",
+    "type": "set",
+    "name": "set ar-data",
+    "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='connection-attachment-ar.allotted-resource-status.action' value=\"`$connection-attachment-topology-operation-input.request-information.request-action` \" />\n<parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value=\"connection-attachment-topology-operation\" />\n<parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value=\"`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$connection-attachment-topology-operation-input.request-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$connection-attachment-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$connection-attachment-topology-operation-input.service-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.` \" />",
+    "comments": "",
+    "x": 596.2451171875,
+    "y": 1359.4122314453125,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a6efd3b6.3278d",
+    "type": "set",
+    "name": "set identifiers in overall structure",
+    "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.' \nvalue=\"`$connection-attachment-ar-identifiers.`\" />\n\n\n",
+    "comments": "",
+    "x": 662.1981048583984,
+    "y": 1442.698115348816,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "994d951b.a5b738",
+    "type": "execute",
+    "name": "execute getTime",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 613.5309715270996,
+    "y": 1525.0316753387451,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "8ee1af3e.bbe67",
+    "type": "set",
+    "name": "set allotted-resource-oper-status",
+    "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+    "comments": "",
+    "x": 664.5180320739746,
+    "y": 1560.9828262329102,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "efc5e53d.5d75a8",
+    "type": "set",
+    "name": "set model-data",
+    "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.` \" />",
+    "comments": "",
+    "x": 606.0866241455078,
+    "y": 1479.586974143982,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "21b74746.c42fa8",
+    "type": "comment",
+    "name": "Prepare data for allotted-resource addition to MDSAL",
+    "info": "This will add to allotted-resource which is present inside service.",
+    "comments": "",
+    "x": 723.4201202392578,
+    "y": 1319.5868339538574,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "5accbcde.210f64",
+    "type": "execute",
+    "name": "generate parent-ar url - replace allotted-resource-id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 726.5312461853027,
+    "y": 1129.0312910079956,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "5dbf4a35.fd12c4",
+    "type": "execute",
+    "name": "generate parent-ar url - replace service-instance-id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 727.5311851501465,
+    "y": 1091.03134059906,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "52e7ff5.9702d",
+    "type": "comment",
+    "name": "Prepare Parent AR URL",
+    "info": "Preparation to set provided-allotted-resource in parent service instance",
+    "comments": "",
+    "x": 634.5316009521484,
+    "y": 1019.0313377380371,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "950a621f.7b821",
+    "type": "set",
+    "name": "set tmp.ar.parent-service-instance-id",
+    "xml": "<set>\n<parameter name='tmp.ar.parent-service-instance-id' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n\n",
+    "comments": "",
+    "x": 679.5314331054688,
+    "y": 1055.53125,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "60a92f9f.3244e",
+    "type": "comment",
+    "name": "Required for filling template values",
+    "info": "This is done because connection-attachment is generic resource and doesn't have specific parameters",
+    "comments": "",
+    "x": 669.0316314697266,
+    "y": 1606.531012058258,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "9a928449.d9e6c8",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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 updating md-sal for connection-attachment-allotted-resource as cosumed allotted resource already exists.\" />\n",
+    "comments": "",
+    "x": 2479.7880859375,
+    "y": 867.6770629882812,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "de19c440.aed268",
+    "type": "set",
+    "name": "set tmp.found-cidx",
+    "xml": "<set>\n<parameter name='tmp.found-cidx' value=\"`false`\" />\n\n\n",
+    "comments": "",
+    "x": 1395.6773529052734,
+    "y": 824.3438148498535,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a7c16e9b.5cd68",
+    "type": "comment",
+    "name": "Add to parent services provided-allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 744.2327270507812,
+    "y": 980.0104694366455,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "d7647e1e.888aa",
+    "type": "comment",
+    "name": "Add to allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 664.9999465942383,
+    "y": 1287.0001356601715,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "7534c2b3.76410c",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1212.031150817871,
+    "y": 670.3089017868042,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "c557a49c.3881b8"
+      ]
+    ]
+  },
+  {
+    "id": "c557a49c.3881b8",
+    "type": "switchNode",
+    "name": "switch cr length",
+    "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1399.8885307312012,
+    "y": 670.9280371665955,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "3936a0.d4fa496"
+      ]
+    ]
+  },
+  {
+    "id": "3936a0.d4fa496",
+    "type": "other",
+    "name": "outcome 1",
+    "xml": "<outcome value='1'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1599.2216529846191,
+    "y": 670.9281158447266,
+    "z": "5611e7fd.31c9b8",
+    "wires": [
+      [
+        "bd6696ff.0a7a78"
+      ]
+    ]
+  }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-get-saved-ar-param.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sotn-get-saved-ar-param.json
new file mode 100644 (file)
index 0000000..f9a6bb1
--- /dev/null
@@ -0,0 +1,481 @@
+[
+  {
+    "id": "78c3c512.2a5cfc",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 113.03125,
+    "y": 43.03125,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "c8295f65.8fc4c"
+      ]
+    ]
+  },
+  {
+    "id": "c8295f65.8fc4c",
+    "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": 325.03125381469727,
+    "y": 115.0312671661377,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "cb959304.88093"
+      ]
+    ]
+  },
+  {
+    "id": "cb959304.88093",
+    "type": "method",
+    "name": "sotnt-get-saved-ar-param",
+    "xml": "<method rpc='sotn-get-saved-ar-param' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 313.0313720703125,
+    "y": 203.03125,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "f53a4fe7.e10d8"
+      ]
+    ]
+  },
+  {
+    "id": "f53a4fe7.e10d8",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 320.03126525878906,
+    "y": 289.0313081741333,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "cb3c00be.eadaf"
+      ]
+    ]
+  },
+  {
+    "id": "cb3c00be.eadaf",
+    "type": "for",
+    "name": "for each sotn-get-request-input-param",
+    "xml": "<for index='idx' start='0' end='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 356.6980285644531,
+    "y": 371.697904586792,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "9fceee94.c7352"
+      ]
+    ]
+  },
+  {
+    "id": "9fceee94.c7352",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 621.5315322875977,
+    "y": 281.03129625320435,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "ac9e17c4.666db8",
+        "68c68212.dc993c",
+        "66615c8e.b750a4",
+        "4a64e3ec.0803bc",
+        "d49b138b.9b447",
+        "1f7b915.12bc26f",
+        "fcc00482.9d4728",
+        "be269c99.3195",
+        "d97ebcd8.acf64"
+      ]
+    ]
+  },
+  {
+    "id": "ac9e17c4.666db8",
+    "type": "switchNode",
+    "name": "switch sotnVpnName",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'sotnVpnName'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 848.53125,
+    "y": 79.03128051757812,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "4f0e4c80.dde4f4"
+      ]
+    ]
+  },
+  {
+    "id": "4f0e4c80.dde4f4",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1035.53125,
+    "y": 75.03128051757812,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "ca00e2af.bb58d"
+      ]
+    ]
+  },
+  {
+    "id": "ca00e2af.bb58d",
+    "type": "set",
+    "name": "set sotnVpnName",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.sotnVpnName' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1203.53125,
+    "y": 75.63128662109375,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "68c68212.dc993c",
+    "type": "switchNode",
+    "name": "switch access-provider-id",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-provider-id'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 849.0416793823242,
+    "y": 138.03128051757812,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "a284600c.21032"
+      ]
+    ]
+  },
+  {
+    "id": "a284600c.21032",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1036.0416793823242,
+    "y": 134.03128051757812,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "226a73cd.788cbc"
+      ]
+    ]
+  },
+  {
+    "id": "226a73cd.788cbc",
+    "type": "set",
+    "name": "set access-provider-id",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.access-provider-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1204.0416793823242,
+    "y": 134.63128662109375,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "66615c8e.b750a4",
+    "type": "switchNode",
+    "name": "switch access-client-id",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-client-id'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 851.0417404174805,
+    "y": 191.04170036315918,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "2b01edeb.bc12c2"
+      ]
+    ]
+  },
+  {
+    "id": "2b01edeb.bc12c2",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1038.0417404174805,
+    "y": 187.04170036315918,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "ce9ed833.dd9e08"
+      ]
+    ]
+  },
+  {
+    "id": "ce9ed833.dd9e08",
+    "type": "set",
+    "name": "set access-client-id",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.access-client-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1206.0417404174805,
+    "y": 187.6417064666748,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "4a64e3ec.0803bc",
+    "type": "switchNode",
+    "name": "switch access-topology-id",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-topology-id'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 847.0417404174805,
+    "y": 257.0417003631592,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "cd0931d.fc24dd"
+      ]
+    ]
+  },
+  {
+    "id": "cd0931d.fc24dd",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1034.0417404174805,
+    "y": 253.04170036315918,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "ae46664c.2ac008"
+      ]
+    ]
+  },
+  {
+    "id": "ae46664c.2ac008",
+    "type": "set",
+    "name": "set access-topology-id",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.access-topology-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1202.0417404174805,
+    "y": 253.6417064666748,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "d49b138b.9b447",
+    "type": "switchNode",
+    "name": "switch access-node-id",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-node-id'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 852.0417404174805,
+    "y": 311.04169845581055,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "c9b215fc.9adfd8"
+      ]
+    ]
+  },
+  {
+    "id": "c9b215fc.9adfd8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1039.0417404174805,
+    "y": 307.04169845581055,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "faf7a4cf.251418"
+      ]
+    ]
+  },
+  {
+    "id": "faf7a4cf.251418",
+    "type": "set",
+    "name": "set access-node-id",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.access-node-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1207.0417404174805,
+    "y": 307.6417045593262,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "1f7b915.12bc26f",
+    "type": "switchNode",
+    "name": "switch access-ltp-id",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-ltp-id'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 854.0417404174805,
+    "y": 373.04165840148926,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "672f4f35.c2cfa"
+      ]
+    ]
+  },
+  {
+    "id": "672f4f35.c2cfa",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1041.0417404174805,
+    "y": 369.04165840148926,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "f006294d.d5f238"
+      ]
+    ]
+  },
+  {
+    "id": "f006294d.d5f238",
+    "type": "set",
+    "name": "set access-ltp-id",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.access-ltp-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1209.0417404174805,
+    "y": 369.6416645050049,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "fcc00482.9d4728",
+    "type": "switchNode",
+    "name": "switch clientSignal",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'clientSignal'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 858.0417404174805,
+    "y": 439.0416650772095,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "c5ace371.7d146"
+      ]
+    ]
+  },
+  {
+    "id": "c5ace371.7d146",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1045.0417404174805,
+    "y": 435.0416650772095,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "6652e4bd.26a58c"
+      ]
+    ]
+  },
+  {
+    "id": "6652e4bd.26a58c",
+    "type": "set",
+    "name": "set clientSignal",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.clientSignal' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1213.0417404174805,
+    "y": 435.6416711807251,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "be269c99.3195",
+    "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": 851.0313720703125,
+    "y": 553.031268119812,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "d97ebcd8.acf64",
+    "type": "switchNode",
+    "name": "switch cVLAN",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'cVLAN'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 857.03125,
+    "y": 491.0312194824219,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "b35b1b6b.cc2e38"
+      ]
+    ]
+  },
+  {
+    "id": "b35b1b6b.cc2e38",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1044.03125,
+    "y": 487.0312194824219,
+    "z": "be273250.67063",
+    "wires": [
+      [
+        "d9b42ffa.b44df"
+      ]
+    ]
+  },
+  {
+    "id": "d9b42ffa.b44df",
+    "type": "set",
+    "name": "set cVLAN",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.cVLAN' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1212.03125,
+    "y": 487.6312255859375,
+    "z": "be273250.67063",
+    "wires": [
+
+    ]
+  }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-connection-attachment-input.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-connection-attachment-input.json
new file mode 100644 (file)
index 0000000..fa77c6f
--- /dev/null
@@ -0,0 +1,993 @@
+[
+  {
+    "id": "193b8ebe.168931",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 133.03125,
+    "y": 58.03125,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "516b96b5.f39508"
+      ]
+    ]
+  },
+  {
+    "id": "516b96b5.f39508",
+    "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": 262.3169708251953,
+    "y": 153.26932334899902,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "d1fe8042.cc5a4"
+      ]
+    ]
+  },
+  {
+    "id": "d1fe8042.cc5a4",
+    "type": "method",
+    "name": "method validate-connection-attachment-input",
+    "xml": "<method rpc='validate-connection-attachment-input' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 258.94793701171875,
+    "y": 249.28427839279175,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b05ac558.fc0298"
+      ]
+    ]
+  },
+  {
+    "id": "b05ac558.fc0298",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 265.94799041748047,
+    "y": 367.28428649902344,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "11b2d666.19a8fa",
+        "a0f1dfee.c1db9",
+        "57efdb7e.7de474",
+        "e66639cf.56aa48"
+      ]
+    ]
+  },
+  {
+    "id": "11b2d666.19a8fa",
+    "type": "switchNode",
+    "name": "switch  svc-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 671.9479293823242,
+    "y": 24.28428077697754,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "563fe857.005428"
+      ]
+    ]
+  },
+  {
+    "id": "563fe857.005428",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 883.6623001098633,
+    "y": 24.28429126739502,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "bf9c002.703e6"
+      ]
+    ]
+  },
+  {
+    "id": "bf9c002.703e6",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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",
+    "comments": "",
+    "x": 1058.0908508300781,
+    "y": 23.28428363800049,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a0f1dfee.c1db9",
+    "type": "switchNode",
+    "name": "switch svc-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 656.9478225708008,
+    "y": 366.2843084335327,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "6b1eefd1.a4726",
+        "517bdb12.579b84",
+        "352e24a0.788a7c",
+        "92374a0f.2f7d98",
+        "eb87ceea.db236"
+      ]
+    ]
+  },
+  {
+    "id": "6b1eefd1.a4726",
+    "type": "outcome",
+    "name": "create",
+    "xml": "<outcome value='create'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 882.4479789733887,
+    "y": 194.28435230255127,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "2f04939.a9b436c"
+      ]
+    ]
+  },
+  {
+    "id": "517bdb12.579b84",
+    "type": "outcome",
+    "name": "delete",
+    "xml": "<outcome value='delete'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 884.4599838256836,
+    "y": 772.1745042800903,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "c9b924ac.aa4418"
+      ]
+    ]
+  },
+  {
+    "id": "352e24a0.788a7c",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 885.2218246459961,
+    "y": 958.6029243469238,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "313b0ba4.9277b4"
+      ]
+    ]
+  },
+  {
+    "id": "313b0ba4.9277b4",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",
+    "comments": "",
+    "x": 1068.793357849121,
+    "y": 959.2220649719238,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "c9b924ac.aa4418",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1066.6028099060059,
+    "y": 772.8409547805786,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "21ee0580.01132a"
+      ]
+    ]
+  },
+  {
+    "id": "72eb1342.c73a6c",
+    "type": "other",
+    "name": "DeleteSOTNAttachmentInstance",
+    "xml": "<outcome value='DeleteSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1380.3171997070312,
+    "y": 786.8409357070923,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "a0b8065a.68d4e8"
+      ]
+    ]
+  },
+  {
+    "id": "77510c5b.922da4",
+    "type": "other",
+    "name": "Other",
+    "xml": "<outcome value='Other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1313.3174514770508,
+    "y": 875.8410797119141,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "69dd5310.b0e50c"
+      ]
+    ]
+  },
+  {
+    "id": "69dd5310.b0e50c",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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 DeleteNetworkInstance for svc-action=delete\" />\n",
+    "comments": "",
+    "x": 1500.3174514770508,
+    "y": 876.8410797119141,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a0b8065a.68d4e8",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1743.3170852661133,
+    "y": 500.84095668792725,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "6c6e8419.13924c",
+        "d81b196b.de9bf8"
+      ]
+    ]
+  },
+  {
+    "id": "6c6e8419.13924c",
+    "type": "switchNode",
+    "name": "switch allotted-resource-id",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1994.3169059753418,
+    "y": 536.8409214019775,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "3455ba94.f30a46"
+      ]
+    ]
+  },
+  {
+    "id": "3455ba94.f30a46",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2005.3169212341309,
+    "y": 625.8409004211426,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "42c69ed2.4c6e3"
+      ]
+    ]
+  },
+  {
+    "id": "42c69ed2.4c6e3",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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",
+    "comments": "",
+    "x": 2161.745632171631,
+    "y": 624.8409004211426,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "d81b196b.de9bf8",
+    "type": "execute",
+    "name": "execute requiredParameter",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id\" value=\"$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id\"/>\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1997.0313415527344,
+    "y": 464.98375606536865,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "57efdb7e.7de474",
+    "type": "switchNode",
+    "name": "switch service-instance-id",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.service-information.service-instance-id`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 697.0312728881836,
+    "y": 67.99399757385254,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "85a4ddfa.563bf"
+      ]
+    ]
+  },
+  {
+    "id": "85a4ddfa.563bf",
+    "type": "other",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 913.4598617553711,
+    "y": 68.99399757385254,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "e5b10c87.6dcab"
+      ]
+    ]
+  },
+  {
+    "id": "e5b10c87.6dcab",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",
+    "comments": "",
+    "x": 1071.8883895874023,
+    "y": 67.99399757385254,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "2f04939.a9b436c",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1047.253620147705,
+    "y": 191.9940309524536,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "99cb6d0f.faec9"
+      ]
+    ]
+  },
+  {
+    "id": "99cb6d0f.faec9",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1142.4890975952148,
+    "y": 255.4991979598999,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "12b9b32c.a4b30d",
+        "46ff1495.b090cc"
+      ]
+    ]
+  },
+  {
+    "id": "12b9b32c.a4b30d",
+    "type": "outcome",
+    "name": "CreateSOTNAttachmentInstance",
+    "xml": "<outcome value='CreateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1397.8223190307617,
+    "y": 138.49896335601807,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "a1752dfc.73195"
+      ]
+    ]
+  },
+  {
+    "id": "46ff1495.b090cc",
+    "type": "outcome",
+    "name": "other",
+    "xml": "<outcome value='other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1330.8223152160645,
+    "y": 284.1656885147095,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "67468b53.41b5e4"
+      ]
+    ]
+  },
+  {
+    "id": "67468b53.41b5e4",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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.request-action is invalid\" />\n",
+    "comments": "",
+    "x": 1529.3781509399414,
+    "y": 283.61034536361694,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "a1752dfc.73195",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1653.6977615356445,
+    "y": 136.88288116455078,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "db455346.fe8d9"
+      ]
+    ]
+  },
+  {
+    "id": "db455346.fe8d9",
+    "type": "for",
+    "name": "for loop i - Sotn input param",
+    "xml": "<for index=\"i\" start=\"0\" end=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param_length`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1735.3287467956543,
+    "y": 197.18352508544922,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "250dfbd6.f87e24"
+      ]
+    ]
+  },
+  {
+    "id": "250dfbd6.f87e24",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1929.4120750427246,
+    "y": 161.93047618865967,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "6411a252.efa3dc",
+        "bd70a50a.f57aa8",
+        "bce7ba47.627aa8"
+      ]
+    ]
+  },
+  {
+    "id": "6411a252.efa3dc",
+    "type": "set",
+    "name": "clear tmp-data",
+    "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",
+    "comments": "",
+    "x": 2121.412136077881,
+    "y": 116.16857433319092,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "bd70a50a.f57aa8",
+    "type": "set",
+    "name": "set tmp-data",
+    "xml": "<set>\n<parameter name='tmp.name' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`\"/>\n",
+    "comments": "",
+    "x": 2110.4121322631836,
+    "y": 193.16857862472534,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "bce7ba47.627aa8",
+    "type": "switchNode",
+    "name": "switch name",
+    "xml": "<switch test=\"`$tmp.name`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2110.4122161865234,
+    "y": 275.16857862472534,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "9a3c6ac9.101328",
+        "b44b4e5e.93a68",
+        "c46018d4.cde2f8",
+        "bf279f01.56146",
+        "2718b920.5086d6",
+        "9dec1793.d77e58",
+        "6b903ba1.e89184",
+        "9610c6b4.d4b598"
+      ]
+    ]
+  },
+  {
+    "id": "9a3c6ac9.101328",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2312.4763164520264,
+    "y": 618.9942054748535,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "75de126c.4ad7cc"
+      ]
+    ]
+  },
+  {
+    "id": "75de126c.4ad7cc",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",
+    "comments": "",
+    "x": 2487.476665496826,
+    "y": 614.9942588806152,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "21ee0580.01132a",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$sotn-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1088.6980628967285,
+    "y": 851.994065284729,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "72eb1342.c73a6c",
+        "77510c5b.922da4"
+      ]
+    ]
+  },
+  {
+    "id": "b44b4e5e.93a68",
+    "type": "other",
+    "name": "sotnVpnName",
+    "xml": "<outcome value='sotnVpnName'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2327.4757356643677,
+    "y": 144.19395065307617,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b99955f0.4e5fc8"
+      ]
+    ]
+  },
+  {
+    "id": "b99955f0.4e5fc8",
+    "type": "switchNode",
+    "name": "switch value",
+    "xml": "<switch test=\"`$tmp.value`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2558.3922157287598,
+    "y": 333.20887565612793,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "79ab6adb.1f2014"
+      ]
+    ]
+  },
+  {
+    "id": "79ab6adb.1f2014",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2742.3921394348145,
+    "y": 329.208890914917,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "cf098d97.55fb"
+      ]
+    ]
+  },
+  {
+    "id": "cf098d97.55fb",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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=\"`'$tmp.name +' is a required input'`\" />\n",
+    "comments": "",
+    "x": 2750.821060180664,
+    "y": 403.2088851928711,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "c46018d4.cde2f8",
+    "type": "other",
+    "name": "clientSignal",
+    "xml": "<outcome value='clientSignal'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2333.475742340088,
+    "y": 213.19396114349365,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b99955f0.4e5fc8"
+      ]
+    ]
+  },
+  {
+    "id": "bf279f01.56146",
+    "type": "other",
+    "name": "access-provider-id",
+    "xml": "<outcome value='access-provider-id'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2335.3646812438965,
+    "y": 289.1939239501953,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b99955f0.4e5fc8"
+      ]
+    ]
+  },
+  {
+    "id": "2718b920.5086d6",
+    "type": "other",
+    "name": "access-client-id",
+    "xml": "<outcome value='access-client-id'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2332.3646812438965,
+    "y": 361.19392371177673,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b99955f0.4e5fc8"
+      ]
+    ]
+  },
+  {
+    "id": "9dec1793.d77e58",
+    "type": "other",
+    "name": "access-topology-id",
+    "xml": "<outcome value='access-topology-id'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2336.3646812438965,
+    "y": 423.1939239501953,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+
+      ]
+    ]
+  },
+  {
+    "id": "6b903ba1.e89184",
+    "type": "other",
+    "name": "access-node-id",
+    "xml": "<outcome value='access-node-id'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2338.3648529052734,
+    "y": 488.19395637512207,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b99955f0.4e5fc8"
+      ]
+    ]
+  },
+  {
+    "id": "9610c6b4.d4b598",
+    "type": "other",
+    "name": "cVLAN",
+    "xml": "<outcome value='cVLAN'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2316.3651542663574,
+    "y": 552.7496566772461,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "b99955f0.4e5fc8"
+      ]
+    ]
+  },
+  {
+    "id": "92374a0f.2f7d98",
+    "type": "outcome",
+    "name": "activate",
+    "xml": "<outcome value='activate'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 883.5312347412109,
+    "y": 364.53126430511475,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "40ca4bfa.dde754"
+      ]
+    ]
+  },
+  {
+    "id": "40ca4bfa.dde754",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1064.3369064331055,
+    "y": 365.24098110198975,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "38d46ef5.2515a2"
+      ]
+    ]
+  },
+  {
+    "id": "38d46ef5.2515a2",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1137.5723876953125,
+    "y": 445.74612522125244,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "bc03657f.d968f8",
+        "c7a46845.a20028"
+      ]
+    ]
+  },
+  {
+    "id": "bc03657f.d968f8",
+    "type": "outcome",
+    "name": "ActivateSOTNAttachmentInstance",
+    "xml": "<outcome value='ActivateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1393.9055290222168,
+    "y": 375.7458610534668,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "a0b8065a.68d4e8"
+      ]
+    ]
+  },
+  {
+    "id": "c7a46845.a20028",
+    "type": "outcome",
+    "name": "other",
+    "xml": "<outcome value='other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1310.905445098877,
+    "y": 484.41266107559204,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "62ba5aa1.e5bf54"
+      ]
+    ]
+  },
+  {
+    "id": "62ba5aa1.e5bf54",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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.request-action is invalid\" />\n",
+    "comments": "",
+    "x": 1509.461280822754,
+    "y": 483.8573179244995,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "eb87ceea.db236",
+    "type": "outcome",
+    "name": "deactivate",
+    "xml": "<outcome value='deactivate'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 881.5311889648438,
+    "y": 584.53125,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "10580d5c.7277e3"
+      ]
+    ]
+  },
+  {
+    "id": "10580d5c.7277e3",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1063.674015045166,
+    "y": 585.1977005004883,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "97009550.34e988"
+      ]
+    ]
+  },
+  {
+    "id": "a7478b0d.ac1368",
+    "type": "other",
+    "name": "DeactivateSOTNAttachmentInstance",
+    "xml": "<outcome value='DeactivateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1377.3884048461914,
+    "y": 599.197681427002,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "a0b8065a.68d4e8"
+      ]
+    ]
+  },
+  {
+    "id": "f5f85a41.420a68",
+    "type": "other",
+    "name": "Other",
+    "xml": "<outcome value='Other'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1310.388656616211,
+    "y": 688.1978254318237,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "e751aaad.be4338"
+      ]
+    ]
+  },
+  {
+    "id": "e751aaad.be4338",
+    "type": "returnFailure",
+    "name": "return failure",
+    "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 DeleteNetworkInstance for svc-action=delete\" />\n",
+    "comments": "",
+    "x": 1497.388656616211,
+    "y": 689.1978254318237,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  },
+  {
+    "id": "97009550.34e988",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$sotn-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1085.7692680358887,
+    "y": 664.3508110046387,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "a7478b0d.ac1368",
+        "f5f85a41.420a68"
+      ]
+    ]
+  },
+  {
+    "id": "e66639cf.56aa48",
+    "type": "switchNode",
+    "name": "switch parent-service-instance-id",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.service-information.parent-service-instance-id`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 713.0103988647461,
+    "y": 114.01042175292969,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "2f054da9.55b662"
+      ]
+    ]
+  },
+  {
+    "id": "2f054da9.55b662",
+    "type": "other",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 919.43896484375,
+    "y": 118.01041412353516,
+    "z": "548da231.570f2c",
+    "wires": [
+      [
+        "271d7aba.ca1876"
+      ]
+    ]
+  },
+  {
+    "id": "271d7aba.ca1876",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.parent-service-instance-id is a required input\" />\n",
+    "comments": "",
+    "x": 1077.8674926757812,
+    "y": 117.01041412353516,
+    "z": "548da231.570f2c",
+    "wires": [
+
+    ]
+  }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_connection-attachment-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_connection-attachment-topology-operation.xml
new file mode 100644 (file)
index 0000000..c5d1377
--- /dev/null
@@ -0,0 +1,82 @@
+<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='connection-attachment-topology-operation' mode='sync'>\r
+      <block atomic="true">\r
+         <call module='GENERIC-RESOURCE-API' rpc='validate-connection-attachment-input' mode='sync' ></call>\r
+         <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+            <outcome value='create'>\r
+               <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                  <outcome value='CreateSOTNAttachmentInstance'>\r
+                     <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-create' mode='sync' ></call>\r
+                  </outcome>\r
+                  <outcome value='other'>\r
+                     <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                     </return>\r
+                  </outcome>\r
+               </switch>\r
+            </outcome>\r
+            <outcome value='activate'>\r
+               <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                  <outcome value='ActivateSOTNAttachmentInstance'>\r
+                     <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-activate' mode='sync' ></call>\r
+                  </outcome>\r
+                  <outcome value='other'>\r
+                     <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                     </return>\r
+                  </outcome>\r
+               </switch>\r
+            </outcome>\r
+            <outcome value='delete'>\r
+               <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                  <outcome value='DeactivateSOTNAttachmentInstance'>\r
+                     <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-deactivate' mode='sync' ></call>\r
+                  </outcome>\r
+                  <outcome value='other'>\r
+                     <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                     </return>\r
+                  </outcome>\r
+               </switch>\r
+            </outcome>\r
+            <outcome value='deactivate'>\r
+               <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                  <outcome value='DeleteSOTNAttachmentInstance'>\r
+                     <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-delete' mode='sync' ></call>\r
+                  </outcome>\r
+                  <outcome value='other'>\r
+                     <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\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="sdnc-request-header.svc-action is invalid" />\r
+               </return>\r
+            </outcome>\r
+         </switch>\r
+         <set>\r
+            <parameter name="ack-final" value="Y"/>\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/GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.xml
new file mode 100644 (file)
index 0000000..50ab249
--- /dev/null
@@ -0,0 +1,250 @@
+<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='sotn-attachment-topology-operation-create' mode='sync'>\r
+      <block atomic="true">\r
+         <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+            <outcome value=''>\r
+               <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                  <parameter name="ctx-destination" value="tmp.ar.allotted-resource-id"/>\r
+                  <outcome value='failure'>\r
+                     <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while generation allotted resource ID" />\r
+                     </return>\r
+                  </outcome>\r
+               </execute>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+               <set>\r
+                  <parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+               </set>\r
+            </outcome>\r
+         </switch>\r
+         <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\r
+            <outcome value=''>\r
+               <set>\r
+                  <parameter name='tmp.ar.allotted-resource-type' value="SOTNAttachmentInstance" />\r
+               </set>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+               <set>\r
+                  <parameter name='tmp.ar.allotted-resource-type' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\r
+               </set>\r
+            </outcome>\r
+         </switch>\r
+         <set>\r
+            <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\r
+ + $tmp.ar.allotted-resource-id\r
+ + '/allotted-resource-data/connection-attachment-topology/'` " />\r
+         </set>\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
+         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+            <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+            <parameter name="outputPath" value="tmp.ar-url"/>\r
+            <parameter name="target" value="{allotted-resource-id}"/>\r
+            <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+         </execute>\r
+         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource' resource='GENERIC-RESOURCE-API' key='connection-attachment-allotted-resources/connection-attachment-allotted-resource/$tmp.ar.allotted-resource-id/' pfx='mdsal-ar' >\r
+            <outcome value='success'>\r
+               <block atomic="true">\r
+                  <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\r
+                     <outcome value='1'>\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: Existing connection attachment allotted resource" />\r
+                        </return>\r
+                     </outcome>\r
+                  </switch>\r
+               </block>\r
+            </outcome>\r
+         </get-resource>\r
+         <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
+            <outcome value=''>\r
+               <set>\r
+                  <parameter name='tmp.cidx' value="`0`" />\r
+                  <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />\r
+               </set>\r
+            </outcome>\r
+            <outcome value='Other'>\r
+               <block atomic="true">\r
+                  <set>\r
+                     <parameter name='tmp.found-cidx' value="`false`" />\r
+                  </set>\r
+                  <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                     <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-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="Error updating md-sal for connection-attachment-allotted-resource as cosumed allotted resource already exists." />\r
+                           </return>\r
+                        </outcome>\r
+                     </switch>\r
+                  </for>\r
+                  <switch test='`$tmp.found-cidx`'>\r
+                     <outcome value='false'>\r
+                        <block atomic="true">\r
+                           <set>\r
+                              <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\r
+                           </set>\r
+                        </block>\r
+                     </outcome>\r
+                  </switch>\r
+               </block>\r
+            </outcome>\r
+         </switch>\r
+         <set>\r
+            <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+            <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
+            <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />\r
+            <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\r
+         </set>\r
+         <set>\r
+            <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+         </set>\r
+         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+            <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>\r
+            <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
+            <parameter name="target" value="{service-instance-id}"/>\r
+            <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
+         </execute>\r
+         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+            <parameter name="source" value="`$tmp.parent-ar-url`"/>\r
+            <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
+            <parameter name="target" value="{allotted-resource-id}"/>\r
+            <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+         </execute>\r
+         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
+            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\r
+            <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+            <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+            <parameter name='format' value='json' />\r
+            <parameter name='httpMethod' value='PUT' />\r
+            <parameter name="responsePrefix" value="parent" />\r
+            <outcome value='success'>\r
+               <block></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 updating md-sal for connection-attachment-allotted-resource" />\r
+               </return>\r
+            </outcome>\r
+            <outcome value='not-found'>\r
+               <return status='failure'>\r
+                  <parameter name='ack-final' value='Y'/>\r
+                  <parameter name="error-code" value="500" />\r
+                  <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+               </return>\r
+            </outcome>\r
+         </execute>\r
+         <set>\r
+            <parameter name='connection-attachment-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-status.action' value="`$connection-attachment-topology-operation-input.request-information.request-action` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value="connection-attachment-topology-operation" />\r
+            <parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value="`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$connection-attachment-topology-operation-input.request-information.` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$connection-attachment-topology-operation-input.sdnc-request-header.` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$connection-attachment-topology-operation-input.service-information.` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$connection-attachment-topology-operation-input.allotted-resource-information.` " />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.` " />\r
+         </set>\r
+         <set>\r
+            <parameter name='connection-attachment-ar-identifiers.consuming-service-instance-id' value="`$connection-attachment-topology-operation-input.service-information.service-instance-id` " />\r
+            <parameter name='connection-attachment-ar-identifiers.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+            <parameter name='connection-attachment-ar-identifiers.allotted-resource-type' value="`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
+            <parameter name='connection-attachment-ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+         </set>\r
+         <set>\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.'\r
+                value="`$connection-attachment-ar-identifiers.`" />\r
+         </set>\r
+         <set>\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.' value="`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.` " />\r
+         </set>\r
+         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+            <parameter name="outputPath" value="tmp.current-time" />\r
+         </execute>\r
+         <set>\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`' />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
+            <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+         </set>\r
+         <call module='GENERIC-RESOURCE-API' rpc='connection-attachment-get-request-input-param' mode='sync' ></call>\r
+         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sotn-attachment.templatefile`" />\r
+            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+            <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+            <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+            <parameter name='format' value='json' />\r
+            <parameter name='httpMethod' value='PUT' />\r
+            <parameter name="responsePrefix" value="mdsal-ar" />\r
+            <outcome value='success'>\r
+               <block></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 updating md-sal for connection-attachment-allotted-resource" />\r
+               </return>\r
+            </outcome>\r
+            <outcome value='not-found'>\r
+               <return status='failure'>\r
+                  <parameter name='ack-final' value='Y'/>\r
+                  <parameter name="error-code" value="500" />\r
+                  <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+               </return>\r
+            </outcome>\r
+         </execute>\r
+         <set>\r
+            <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+            <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>\r
+            <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $connection-attachment-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+         </set>\r
+         <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+             resource="allotted-resource"\r
+             key="customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND\r
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
+             pfx='pfx' local-only='false' force='false'>\r
+            <parameter name="description" value="`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`" />\r
+            <parameter name="selflink" value="`$tmp.ar.self-link`" />\r
+            <parameter name="model-invariant-id" value="`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid`" />\r
+            <parameter name="model-version-id" value="`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid`" />\r
+            <parameter name="operational-status" value="Created" />\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="AAI failed" />\r
+               </return>\r
+            </outcome>\r
+            <outcome value='not-found'>\r
+               <return status='failure'>\r
+                  <parameter name='ack-final' value='Y'/>\r
+                  <parameter name="error-code" value="500" />\r
+                  <parameter name="error-message" value="AAI failed" />\r
+               </return>\r
+            </outcome>\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/GENERIC-RESOURCE-API_sotn-get-saved-ar-param.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sotn-get-saved-ar-param.xml
new file mode 100644 (file)
index 0000000..0aa82b7
--- /dev/null
@@ -0,0 +1,73 @@
+<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='sotn-get-saved-ar-param' mode='sync'>\r
+      <block atomic="true">\r
+         <for index='idx' start='0' end='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`' >\r
+            <block>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'sotnVpnName'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.sotnVpnName' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-provider-id'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.access-provider-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-client-id'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.access-client-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-topology-id'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.access-topology-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-node-id'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.access-node-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'access-ltp-id'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.access-ltp-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'clientSignal'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.clientSignal' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                     </set>\r
+                  </outcome>\r
+               </switch>\r
+               <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'cVLAN'`">\r
+                  <outcome value='true'>\r
+                     <set>\r
+                        <parameter name='prop.connection-attachment.cVLAN' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.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/GENERIC-RESOURCE-API_validate-connection-attachment-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-connection-attachment-input.xml
new file mode 100644 (file)
index 0000000..98762e9
--- /dev/null
@@ -0,0 +1,236 @@
+<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-connection-attachment-input' mode='sync'>\r
+      <block atomic="true">\r
+         <switch test='`$connection-attachment-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='`$connection-attachment-topology-operation-input.service-information.service-instance-id`'>\r
+            <outcome value=''>\r
+               <return status='failure'>\r
+                  <parameter name='ack-final' value='Y'/>\r
+                  <parameter name="error-code" value="500" />\r
+                  <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
+               </return>\r
+            </outcome>\r
+         </switch>\r
+         <switch test='`$connection-attachment-topology-operation-input.service-information.parent-service-instance-id`'>\r
+            <outcome value=''>\r
+               <return status='failure'>\r
+                  <parameter name='ack-final' value='Y'/>\r
+                  <parameter name="error-code" value="500" />\r
+                  <parameter name="error-message" value="service-information.parent-service-instance-id is a required input" />\r
+               </return>\r
+            </outcome>\r
+         </switch>\r
+         <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+            <outcome value='create'>\r
+               <block atomic="true">\r
+                  <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                     <outcome value='CreateSOTNAttachmentInstance'>\r
+                        <block atomic="true">\r
+                           <for index="i" start="0" end="`$connection-attachment-topology-operation-input.connection-attachment-request-input.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="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`"/>\r
+                                    <parameter name='tmp.value' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`"/>\r
+                                 </set>\r
+                                 <switch test="`$tmp.name`">\r
+                                    <outcome value='sotnVpnName'>\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="`'$tmp.name +' is a required input'`" />\r
+                                             </return>\r
+                                          </outcome>\r
+                                       </switch>\r
+                                    </outcome>\r
+                                    <outcome value='clientSignal'>\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="`'$tmp.name +' is a required input'`" />\r
+                                             </return>\r
+                                          </outcome>\r
+                                       </switch>\r
+                                    </outcome>\r
+                                    <outcome value='access-provider-id'>\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="`'$tmp.name +' is a required input'`" />\r
+                                             </return>\r
+                                          </outcome>\r
+                                       </switch>\r
+                                    </outcome>\r
+                                    <outcome value='access-client-id'>\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="`'$tmp.name +' is a required input'`" />\r
+                                             </return>\r
+                                          </outcome>\r
+                                       </switch>\r
+                                    </outcome>\r
+                                    <outcome value='access-topology-id'></outcome>\r
+                                    <outcome value='access-node-id'>\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="`'$tmp.name +' is a required input'`" />\r
+                                             </return>\r
+                                          </outcome>\r
+                                       </switch>\r
+                                    </outcome>\r
+                                    <outcome value='cVLAN'>\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="`'$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="`'network-topology-operation-input.network-request-input.network-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="sdnc-request-header.request-action is invalid" />\r
+                        </return>\r
+                     </outcome>\r
+                  </switch>\r
+               </block>\r
+            </outcome>\r
+            <outcome value='activate'>\r
+               <block atomic="true">\r
+                  <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                     <outcome value='ActivateSOTNAttachmentInstance'>\r
+                        <block atomic="true">\r
+                           <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                              <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                           </execute>\r
+                           <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-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
+                        </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="sdnc-request-header.request-action is invalid" />\r
+                        </return>\r
+                     </outcome>\r
+                  </switch>\r
+               </block>\r
+            </outcome>\r
+            <outcome value='deactivate'>\r
+               <block atomic="true">\r
+                  <switch test='`$sotn-topology-operation-input.request-information.request-action`'>\r
+                     <outcome value='DeactivateSOTNAttachmentInstance'>\r
+                        <block atomic="true">\r
+                           <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                              <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                           </execute>\r
+                           <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-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
+                        </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 DeleteNetworkInstance for svc-action=delete" />\r
+                        </return>\r
+                     </outcome>\r
+                  </switch>\r
+               </block>\r
+            </outcome>\r
+            <outcome value='delete'>\r
+               <block atomic="true">\r
+                  <switch test='`$sotn-topology-operation-input.request-information.request-action`'>\r
+                     <outcome value='DeleteSOTNAttachmentInstance'>\r
+                        <block atomic="true">\r
+                           <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                              <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                           </execute>\r
+                           <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-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
+                        </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 DeleteNetworkInstance for svc-action=delete" />\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="`$network-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/restapi-templates/src/main/json/sotn-attachment-allotted-resource.json b/platform-logic/restapi-templates/src/main/json/sotn-attachment-allotted-resource.json
new file mode 100644 (file)
index 0000000..59ff8a4
--- /dev/null
@@ -0,0 +1,153 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - CCSDK
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+{
+    "connection-attachment-allotted-resource": [{
+        "allotted-resource-id": ${connection-attachment-ar.allotted-resource-id},
+        "allotted-resource-data": {
+            "connection-attachment-topology": {
+                "allotted-resource-identifiers": {
+                    "consuming-service-instance-id": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.consuming-service-instance-id},
+                    "allotted-resource-name": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.allotted-resource-name},
+                    "allotted-resource-id": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.allotted-resource-id},
+                    "parent-service-instance-id": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.parent-service-instance-id},
+                    "allotted-resource-type": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.allotted-resource-type}
+                },
+                "onap-model-information": {
+                    "model-invariant-uuid": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.model-uuid},
+                    "model-version": ${connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.model-version}
+                },
+                "connection-attachment-parameters": {
+                    "param": [
+                        {
+                            "name": "sotnVpnName",
+                            "value": ${prop.connection-attachment.sotnVpnName}
+                        },
+                        {
+                            "name": "access-provider-id",
+                            "value": ${prop.connection-attachment.access-provider-id}
+                        },
+                        {
+                            "name": "access-client-id",
+                            "value": ${prop.connection-attachment.access-client-id}
+                        },
+                        {
+                            "name": "access-topology-id",
+                            "value": ${prop.connection-attachment.access-topology-id}
+                        },
+                        {
+                            "name": "access-node-id",
+                            "value": ${prop.connection-attachment.access-node-id}
+                        },
+                        {
+                            "name": "access-ltp-id",
+                            "value": ${prop.connection-attachment.access-ltp-id}
+                        },
+                        {
+                            "name": "clientSignal",
+                            "value": ${prop.connection-attachment.clientSignal}
+                        },
+                        {
+                            "name": "cVLAN",
+                            "value": ${prop.connection-attachment.cVLAN}
+                        }
+                    ]
+                }
+            },
+            "allotted-resource-operation-information": {
+                "allotted-resource-information": {
+                    "allotted-resource-id": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.allotted-resource-id},
+                    "allotted-resource-type": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.allotted-resource-type},
+                    "parent-service-instance-id": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id},
+                    "onap-model-information": {
+                        "model-invariant-uuid": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.onap-model-information.model-invariant-uuid},
+                        "model-customization-uuid": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.onap-model-information.model-customization-uuid},
+                        "model-uuid": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.onap-model-information.model-uuid},
+                        "model-version": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.onap-model-information.model-version}
+                    }
+                },
+                "sdnc-request-header": {
+                    "svc-request-id": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id},
+                    "svc-action": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-action}
+                },
+                "request-information": {
+                    "request-id": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-id},
+                    "source": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.source},
+                    "order-version": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.order-version},
+                    "order-number": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.order-number},
+                    "notification-url": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.notification-url},
+                    "request-action": ${connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action}
+                },
+                "connection-attachment-request-input": {
+                    "param": [
+                        {
+                            "name": "sotnVpnName",
+                            "value": ${prop.connection-attachment.sotnVpnName}
+                        },
+                        {
+                            "name": "access-provider-id",
+                            "value": ${prop.connection-attachment.access-provider-id}
+                        },
+                        {
+                            "name": "access-client-id",
+                            "value": ${prop.connection-attachment.access-client-id}
+                        },
+                        {
+                            "name": "access-topology-id",
+                            "value": ${prop.connection-attachment.access-topology-id}
+                        },
+                        {
+                            "name": "access-node-id",
+                            "value": ${prop.connection-attachment.access-node-id}
+                        },
+                        {
+                            "name": "access-ltp-id",
+                            "value": ${prop.connection-attachment.access-ltp-id}
+                        },
+                        {
+                            "name": "clientSignal",
+                            "value": ${prop.connection-attachment.clientSignal}
+                        },
+                        {
+                            "name": "cVLAN",
+                            "value": ${prop.connection-attachment.cVLAN}
+                        }
+                    ]
+                },
+                "allotted-resource-oper-status": {
+                    "last-action": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action},
+                    "modify-timestamp": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.modify-timestamp},
+                    "last-order-status": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-order-status},
+                    "create-timestamp": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp},
+                    "order-status": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status},
+                    "last-rpc-action": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action},
+                    "last-svc-request-id": ${connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id}
+                }
+            },
+            "allotted-resource-status" : {
+                "action": ${connection-attachment-ar.allotted-resource-status.action},
+                "rpc-name": ${connection-attachment-ar.allotted-resource-status.rpc-name},
+                "rpc-action": ${connection-attachment-ar.allotted-resource-status.rpc-action}
+            }
+        }
+    }]
+}