summaryrefslogtreecommitdiffstats
path: root/platform-logic/generic-resource-api/src
diff options
context:
space:
mode:
Diffstat (limited to 'platform-logic/generic-resource-api/src')
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-create.json1
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-network-input-parameters.json1
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-create.xml142
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input-parameters.xml114
4 files changed, 258 insertions, 0 deletions
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-create.json
new file mode 100644
index 00000000..15d44cea
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-create.json
@@ -0,0 +1 @@
+[{"id":"cb36df78.f09e28","type":"dgstart","name":"DGSTART","outputs":1,"x":106.5,"y":39,"z":"d42722f8.3eccb8","wires":[["6b493f20.dd05b8"]]},{"id":"6b493f20.dd05b8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":318.50000381469727,"y":111.0000171661377,"z":"d42722f8.3eccb8","wires":[["d4f64c43.9c54f8"]]},{"id":"d4f64c43.9c54f8","type":"method","name":"method network-topology-operation-create","xml":"<method rpc='network-topology-operation-create' mode='sync'>\n","comments":"","outputs":1,"x":306.5001220703125,"y":199,"z":"d42722f8.3eccb8","wires":[["99d71b60.bc486"]]},{"id":"99d71b60.bc486","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":582.5000305175781,"y":207.00001335144043,"z":"d42722f8.3eccb8","wires":[["5ed245d4.4281d4","e7933c58.1edee","975efc4b.99298","8ceec6eb.76071","31aa6d85.42f682","afab8693.c68c8","2004d097.f3cbc"]]},{"id":"e7933c58.1edee","type":"execute","name":"execute REST NETCONF MOUNT CREATE VPN","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"$prop.sdncRestApi.tempDir +'/l3smvpntemplate.json'\"/>\n<parameter name=\"restapiUrl\" value=\"$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services'\"/>\n<parameter name=\"restapiUser\" value=\"$prop.sdncRestApi.thirdpartySdnc.user\"/>\n<parameter name=\"restapiPassword\" value=\"$prop.sdncRestApi.thirdpartySdnc.password\"/>\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"restapi-result\"/>","comments":"","outputs":1,"x":898.5001831054688,"y":552,"z":"d42722f8.3eccb8","wires":[[]]},{"id":"5ed245d4.4281d4","type":"set","name":"set controller data","xml":"<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.serviceUrl`\" />\n<parameter name='prop.sdncRestApi.templateDir' value='/opt/onap/sdnc/data' />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.password`\" />\n","comments":"","x":810.5000610351562,"y":279,"z":"d42722f8.3eccb8","wires":[]},{"id":"2004d097.f3cbc","type":"for","name":"for each network-input-parameters","xml":"<for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":868.1666259765625,"y":375.6666564941406,"z":"d42722f8.3eccb8","wires":[["3cc59ee4.5e9a4a"]]},{"id":"975efc4b.99298","type":"execute","name":"execute REST NETCONF MOUNT CREATE SITE","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"$prop.sdncRestApi.tempDir +'/l3smsitetemplate.json'\"/>\n<parameter name=\"restapiUrl\" value=\"$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites'\"/>\n<parameter name=\"restapiUser\" value=\"$prop.sdncRestApi.thirdpartySdnc.user\"/>\n<parameter name=\"restapiPassword\" value=\"$prop.sdncRestApi.thirdpartySdnc.password\"/>\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"restapi-result\"/>","comments":"","outputs":1,"x":902.1668510437012,"y":606.6666851043701,"z":"d42722f8.3eccb8","wires":[[]]},{"id":"afab8693.c68c8","type":"execute","name":"execute vpn-policy-id","xml":"<execute plugin='com.att.sdnctl.sli.SliPluginUtils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.l3vpn.vpn-policy-id\"/>\n","comments":"","outputs":1,"x":834.1666259765625,"y":470.66668701171875,"z":"d42722f8.3eccb8","wires":[["6d3b3d21.9f9b94"]]},{"id":"6d3b3d21.9f9b94","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1053.1666316986084,"y":469.6666669845581,"z":"d42722f8.3eccb8","wires":[["77780ce8.b6a42c"]]},{"id":"77780ce8.b6a42c","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 vpn policy ID\" />\n","comments":"","x":1238.1666412353516,"y":469.66667079925537,"z":"d42722f8.3eccb8","wires":[]},{"id":"8ceec6eb.76071","type":"call","name":"call GENERIC-RESOURCE-API:validate-network-input-parameters","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-network-input-parameters' mode='sync' >\n","comments":"","outputs":1,"x":880,"y":76,"z":"d42722f8.3eccb8","wires":[[]]},{"id":"31aa6d85.42f682","type":"get-resource","name":"get-resource esr-thirdparty-sdnc","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = $tmp.thirdparty-sdnc-id AND \n\t\t depth = '1'\"\n pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n","comments":"","outputs":1,"x":850,"y":193,"z":"d42722f8.3eccb8","wires":[["2c613739.98afa8","1da11a52.1c786e","969f047a.9bdca"]]},{"id":"2c613739.98afa8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1175,"y":124,"z":"d42722f8.3eccb8","wires":[["a9af7dde.3eae3"]]},{"id":"1da11a52.1c786e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1178.490966796875,"y":171.57403564453125,"z":"d42722f8.3eccb8","wires":[["9fcc2997.c4db48"]]},{"id":"969f047a.9bdca","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1173.823974609375,"y":212.9073486328125,"z":"d42722f8.3eccb8","wires":[["b55105c.cece0f8"]]},{"id":"9fcc2997.c4db48","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 model is_bound_to_vpn=true but no vpn_binding is present\" />\n\n","comments":"","x":1355.0623779296875,"y":159.85977172851562,"z":"d42722f8.3eccb8","wires":[]},{"id":"b55105c.cece0f8","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=\"Unexpected error retrieving vpn binding\" />\n\n","comments":"","x":1361.5965309143066,"y":208.34654140472412,"z":"d42722f8.3eccb8","wires":[]},{"id":"a9af7dde.3eae3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1353.205322265625,"y":116.57403564453125,"z":"d42722f8.3eccb8","wires":[[]]},{"id":"3cc59ee4.5e9a4a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1354,"y":340,"z":"d42722f8.3eccb8","wires":[["88aa924c.540ec8","bb5cb51b.59506","2544c74d.97ee18","b7871d3d.25fad8","fe408f02.5f753","a83a85a7.171548","24a49d0f.d882f2","6e6d25b6.396474","631fc211.5012a4","6118a340.6202bc","36b08791.59ad9","34e1c7d4.0648","b6ef6a39.4f99a","57ff81fd.d7eb5","45e9f15b.b00ef","f194b0b0.06c4a","db1b22e2.44ac28","40dbf064.599ad8","f83e78ff.bcb19","953ea88f.9f4a18","1b0d7ad2.7c73cd","503fb0c2.118f08","abda3944.6cc14"]]},{"id":"88aa924c.540ec8","type":"switchNode","name":"switch name","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`\">\n","comments":"","outputs":1,"x":1600,"y":150.00003051757812,"z":"d42722f8.3eccb8","wires":[["f6a31b1b.e5d5"]]},{"id":"bb5cb51b.59506","type":"switchNode","name":"switch service-type","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'service-type'`\">\n","comments":"","outputs":1,"x":1603.9999389648438,"y":211.60000610351562,"z":"d42722f8.3eccb8","wires":[["b138ae61.44dfc"]]},{"id":"f6a31b1b.e5d5","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1787,"y":150.00003051757812,"z":"d42722f8.3eccb8","wires":[["4d5c9007.14735"]]},{"id":"b138ae61.44dfc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1788.9999389648438,"y":209.60000610351562,"z":"d42722f8.3eccb8","wires":[["6c1d6803.8f8aa8"]]},{"id":"4d5c9007.14735","type":"set","name":"set name","xml":"<set>\n<parameter name='prop.l3vpn.name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1955,"y":150.60003662109375,"z":"d42722f8.3eccb8","wires":[]},{"id":"6c1d6803.8f8aa8","type":"set","name":"set service-type","xml":"<set>\n<parameter name='prop.l3vpn.service-type' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1957.9999389648438,"y":207.60000610351562,"z":"d42722f8.3eccb8","wires":[]},{"id":"2544c74d.97ee18","type":"switchNode","name":"switch topology","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'topology'`\">\n","comments":"","outputs":1,"x":1603,"y":273,"z":"d42722f8.3eccb8","wires":[["67a5441.72b6abc"]]},{"id":"b7871d3d.25fad8","type":"switchNode","name":"switch technology","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'technology'`\">\n","comments":"","outputs":1,"x":1606,"y":326,"z":"d42722f8.3eccb8","wires":[["b0d9aff3.b00fa8"]]},{"id":"fe408f02.5f753","type":"switchNode","name":"switch site1_name","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_name'`\">\n","comments":"","outputs":1,"x":1611,"y":388,"z":"d42722f8.3eccb8","wires":[["4d154733.c71d7"]]},{"id":"a83a85a7.171548","type":"switchNode","name":"switch site2_name","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_name'`\">\n","comments":"","outputs":1,"x":1606,"y":451,"z":"d42722f8.3eccb8","wires":[["a3d4aaaa.5e75f8"]]},{"id":"24a49d0f.d882f2","type":"switchNode","name":"switch sna1_name","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna1_name'`\">\n","comments":"","outputs":1,"x":1611,"y":511,"z":"d42722f8.3eccb8","wires":[["ee77e877.444dc"]]},{"id":"6e6d25b6.396474","type":"switchNode","name":"switch sna2_name","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna2_name'`\">\n","comments":"","outputs":1,"x":1606,"y":575,"z":"d42722f8.3eccb8","wires":[["177ebd38.639203"]]},{"id":"631fc211.5012a4","type":"switchNode","name":"switch pe1_id","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe1_id'`\">\n","comments":"","outputs":1,"x":1611,"y":637,"z":"d42722f8.3eccb8","wires":[["bc4514aa.bff8b"]]},{"id":"6118a340.6202bc","type":"switchNode","name":"switch pe2_id","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe2_id'`\">\n","comments":"","outputs":1,"x":1626,"y":697,"z":"d42722f8.3eccb8","wires":[["1007421c.7d0e8e"]]},{"id":"36b08791.59ad9","type":"switchNode","name":"switch ac1_id","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_id'`\">\n","comments":"","outputs":1,"x":1621,"y":769,"z":"d42722f8.3eccb8","wires":[["a19c0d54.dae6"]]},{"id":"34e1c7d4.0648","type":"switchNode","name":"switch ac2_id","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_id'`\">\n","comments":"","outputs":1,"x":1620,"y":828,"z":"d42722f8.3eccb8","wires":[["84e52060.75ef7"]]},{"id":"b6ef6a39.4f99a","type":"switchNode","name":"switch ac1_ip","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_ip'`\">\n","comments":"","outputs":1,"x":1621,"y":879,"z":"d42722f8.3eccb8","wires":[["2bc62aa7.ef22ee"]]},{"id":"57ff81fd.d7eb5","type":"switchNode","name":"switch ac2_ip","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_ip'`\">\n","comments":"","outputs":1,"x":1624,"y":936,"z":"d42722f8.3eccb8","wires":[["99127b02.b296b8"]]},{"id":"45e9f15b.b00ef","type":"switchNode","name":"switch ac1_peer_ip","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_peer_ip'`\">\n","comments":"","outputs":1,"x":1630,"y":988,"z":"d42722f8.3eccb8","wires":[["99742acf.29058"]]},{"id":"f194b0b0.06c4a","type":"switchNode","name":"switch ac2_peer_ip","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_peer_ip'`\">\n","comments":"","outputs":1,"x":1631,"y":1043,"z":"d42722f8.3eccb8","wires":[["80ed9287.14c0b"]]},{"id":"db1b22e2.44ac28","type":"switchNode","name":"switch ac1_svlan","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_svlan'`\">\n","comments":"","outputs":1,"x":1643,"y":1092,"z":"d42722f8.3eccb8","wires":[["7e8264fe.9a4184"]]},{"id":"40dbf064.599ad8","type":"switchNode","name":"switch ac2_svlan","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_svlan'`\">\n","comments":"","outputs":1,"x":1636,"y":1143,"z":"d42722f8.3eccb8","wires":[["b90636ea.ed4c38"]]},{"id":"f83e78ff.bcb19","type":"switchNode","name":"switch ac1_protocol","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol'`\">\n","comments":"","outputs":1,"x":1629,"y":1201,"z":"d42722f8.3eccb8","wires":[["bacf2339.37a91"]]},{"id":"953ea88f.9f4a18","type":"switchNode","name":"switch ac2_protocol","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol'`\">\n","comments":"","outputs":1,"x":1630,"y":1261,"z":"d42722f8.3eccb8","wires":[["97f3e1d.1c8072"]]},{"id":"1b0d7ad2.7c73cd","type":"switchNode","name":"switch ac1_protocol_bgp_as","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol_bgp_as'`\">\n","comments":"","outputs":1,"x":1631,"y":1307,"z":"d42722f8.3eccb8","wires":[["e29f2e84.29cc98"]]},{"id":"503fb0c2.118f08","type":"switchNode","name":"switch ac2_protocol_bgp_as","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol_bgp_as'`\">\n","comments":"","outputs":1,"x":1637,"y":1358,"z":"d42722f8.3eccb8","wires":[["cba6eaf7.a3e0f"]]},{"id":"abda3944.6cc14","type":"switchNode","name":"switch af_type","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'af_type'`\">\n","comments":"","outputs":1,"x":1628,"y":1412,"z":"d42722f8.3eccb8","wires":[["285638b5.acb86"]]},{"id":"67a5441.72b6abc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1778,"y":269,"z":"d42722f8.3eccb8","wires":[["db3c5d8c.944588"]]},{"id":"b0d9aff3.b00fa8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1784,"y":322,"z":"d42722f8.3eccb8","wires":[["e1dcf81.cf81f08"]]},{"id":"4d154733.c71d7","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1793,"y":384,"z":"d42722f8.3eccb8","wires":[["88926751.4fb388"]]},{"id":"a3d4aaaa.5e75f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1791,"y":447,"z":"d42722f8.3eccb8","wires":[["b6c53efa.cf8ae"]]},{"id":"ee77e877.444dc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1796,"y":509,"z":"d42722f8.3eccb8","wires":[["d30f9440.cd7a9"]]},{"id":"177ebd38.639203","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1788,"y":567,"z":"d42722f8.3eccb8","wires":[["9cf0b05d.8daa98"]]},{"id":"bc4514aa.bff8b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1789,"y":630,"z":"d42722f8.3eccb8","wires":[["68b22e8f.d45fc"]]},{"id":"1007421c.7d0e8e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1788,"y":699,"z":"d42722f8.3eccb8","wires":[["ae6ba13f.09e0d"]]},{"id":"a19c0d54.dae6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1785,"y":767,"z":"d42722f8.3eccb8","wires":[["8027371b.40f6c8"]]},{"id":"84e52060.75ef7","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1784,"y":831,"z":"d42722f8.3eccb8","wires":[["327b55cc.8c9f6a"]]},{"id":"2bc62aa7.ef22ee","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1781,"y":877,"z":"d42722f8.3eccb8","wires":[["456d6e39.b277b"]]},{"id":"99127b02.b296b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1783,"y":934,"z":"d42722f8.3eccb8","wires":[["ba2a56e4.37da1"]]},{"id":"99742acf.29058","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1819,"y":985,"z":"d42722f8.3eccb8","wires":[["8b3ca584.be477"]]},{"id":"80ed9287.14c0b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1824,"y":1048,"z":"d42722f8.3eccb8","wires":[["5e28eb3d.fcfbfc"]]},{"id":"7e8264fe.9a4184","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1820,"y":1097,"z":"d42722f8.3eccb8","wires":[["9799c154.0a7f08"]]},{"id":"b90636ea.ed4c38","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1804,"y":1146,"z":"d42722f8.3eccb8","wires":[["d9366dce.978858"]]},{"id":"bacf2339.37a91","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1801,"y":1199,"z":"d42722f8.3eccb8","wires":[["d0174fbe.4dfc9"]]},{"id":"97f3e1d.1c8072","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1814,"y":1258,"z":"d42722f8.3eccb8","wires":[["cdf18661.8284a"]]},{"id":"e29f2e84.29cc98","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1839,"y":1304,"z":"d42722f8.3eccb8","wires":[["c85e7fd9.cd69c"]]},{"id":"cba6eaf7.a3e0f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1846,"y":1354,"z":"d42722f8.3eccb8","wires":[["2c7d8d12.1b8f3a"]]},{"id":"285638b5.acb86","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1814,"y":1413,"z":"d42722f8.3eccb8","wires":[["541bf067.78e77"]]},{"id":"db3c5d8c.944588","type":"set","name":"set topology","xml":"<set>\n<parameter name='prop.l3vpn.topology' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1973,"y":270,"z":"d42722f8.3eccb8","wires":[]},{"id":"e1dcf81.cf81f08","type":"set","name":"set technology","xml":"<set>\n<parameter name='prop.l3vpn.technology' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1963,"y":324,"z":"d42722f8.3eccb8","wires":[]},{"id":"88926751.4fb388","type":"set","name":"set site1_name","xml":"<set>\n<parameter name='prop.l3vpn.site1_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1967,"y":381,"z":"d42722f8.3eccb8","wires":[]},{"id":"b6c53efa.cf8ae","type":"set","name":"set site2_name","xml":"<set>\n<parameter name='prop.l3vpn.site2_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1970,"y":440,"z":"d42722f8.3eccb8","wires":[]},{"id":"d30f9440.cd7a9","type":"set","name":"set sna1_name","xml":"<set>\n<parameter name='prop.l3vpn.sna1_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1978,"y":502,"z":"d42722f8.3eccb8","wires":[]},{"id":"9cf0b05d.8daa98","type":"set","name":"set sna2_name","xml":"<set>\n<parameter name='prop.l3vpn.sna2_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1970,"y":562,"z":"d42722f8.3eccb8","wires":[]},{"id":"68b22e8f.d45fc","type":"set","name":"set pe1_id","xml":"<set>\n<parameter name='prop.l3vpn.pe1_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1967,"y":622,"z":"d42722f8.3eccb8","wires":[]},{"id":"ae6ba13f.09e0d","type":"set","name":"set pe2_id","xml":"<set>\n<parameter name='prop.l3vpn.pe2_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1963,"y":693,"z":"d42722f8.3eccb8","wires":[]},{"id":"8027371b.40f6c8","type":"set","name":"set ac1_id","xml":"<set>\n<parameter name='prop.l3vpn.ac1_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1956,"y":759,"z":"d42722f8.3eccb8","wires":[]},{"id":"327b55cc.8c9f6a","type":"set","name":"set ac2_id","xml":"<set>\n<parameter name='prop.l3vpn.ac2_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1959,"y":826,"z":"d42722f8.3eccb8","wires":[]},{"id":"456d6e39.b277b","type":"set","name":"set ac1_ip","xml":"<set>\n<parameter name='prop.l3vpn.ac1_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1959,"y":880,"z":"d42722f8.3eccb8","wires":[]},{"id":"ba2a56e4.37da1","type":"set","name":"set ac2_ip","xml":"<set>\n<parameter name='prop.l3vpn.ac2_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1963,"y":934,"z":"d42722f8.3eccb8","wires":[]},{"id":"8b3ca584.be477","type":"set","name":"set ac1_peer_ip","xml":"<set>\n<parameter name='prop.l3vpn.ac1_peer_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2011,"y":989,"z":"d42722f8.3eccb8","wires":[]},{"id":"5e28eb3d.fcfbfc","type":"set","name":"set ac2_peer_ip","xml":"<set>\n<parameter name='prop.l3vpn.ac2_peer_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2007,"y":1044,"z":"d42722f8.3eccb8","wires":[]},{"id":"9799c154.0a7f08","type":"set","name":"set ac1_svlan","xml":"<set>\n<parameter name='prop.l3vpn.ac1_svlan' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2001,"y":1099,"z":"d42722f8.3eccb8","wires":[]},{"id":"d9366dce.978858","type":"set","name":"set ac2_svlan","xml":"<set>\n<parameter name='prop.l3vpn.ac2_svlan' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1998,"y":1152,"z":"d42722f8.3eccb8","wires":[]},{"id":"d0174fbe.4dfc9","type":"set","name":"set ac1_protocol","xml":"<set>\n<parameter name='prop.l3vpn.ac1_protocol' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":1996,"y":1209,"z":"d42722f8.3eccb8","wires":[]},{"id":"cdf18661.8284a","type":"set","name":"set ac2_protocol","xml":"<set>\n<parameter name='prop.l3vpn.name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2005,"y":1261,"z":"d42722f8.3eccb8","wires":[]},{"id":"c85e7fd9.cd69c","type":"set","name":"set ac1_protocol_bgp_as","xml":"<set>\n<parameter name='prop.l3vpn.ac1_protocol_bgp_as' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2016,"y":1312,"z":"d42722f8.3eccb8","wires":[]},{"id":"2c7d8d12.1b8f3a","type":"set","name":"set ac1_protocol_bgp_as","xml":"<set>\n<parameter name='prop.l3vpn.ac1_protocol_bgp_as' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2021,"y":1367,"z":"d42722f8.3eccb8","wires":[]},{"id":"541bf067.78e77","type":"set","name":"set af_type","xml":"<set>\n<parameter name='prop.l3vpn.af_type' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />\n","comments":"","x":2019,"y":1425,"z":"d42722f8.3eccb8","wires":[]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-network-input-parameters.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-network-input-parameters.json
new file mode 100644
index 00000000..29ccea5b
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-network-input-parameters.json
@@ -0,0 +1 @@
+[{"id":"12b79dd.fcf1ae2","type":"dgstart","name":"DGSTART","outputs":1,"x":80,"y":85.76192092895508,"z":"c6f0d3f1.455d9","wires":[["45289095.8730c"]]},{"id":"45289095.8730c","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":325.2857131958008,"y":85,"z":"c6f0d3f1.455d9","wires":[["54e5c542.fd5504"]]},{"id":"54e5c542.fd5504","type":"method","name":"method validate-network-input-parameters","xml":"<method rpc='validate-network-input-parameters' mode='sync'>\n","comments":"","outputs":1,"x":282.91668701171875,"y":160.0149383544922,"z":"c6f0d3f1.455d9","wires":[["4aa39923.928d98"]]},{"id":"4aa39923.928d98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":566.9166946411133,"y":148.0149631500244,"z":"c6f0d3f1.455d9","wires":[["588fd95a.bd649","3dc5112.e6e5c6e"]]},{"id":"588fd95a.bd649","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":847.9166946411133,"y":143.01494884490967,"z":"c6f0d3f1.455d9","wires":[["bea9cc02.adf488"]]},{"id":"bea9cc02.adf488","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1038.6309967041016,"y":144.01494979858398,"z":"c6f0d3f1.455d9","wires":[["c0743608.2f921"]]},{"id":"c0743608.2f921","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":1213.0595474243164,"y":143.01494216918945,"z":"c6f0d3f1.455d9","wires":[]},{"id":"3dc5112.e6e5c6e","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":148.91664123535156,"y":419.0149631500244,"z":"c6f0d3f1.455d9","wires":[["3acc66b9.f1e56a","69b2a932.e384a","48c30fe1.37ee2","3a0a08f8.ab065"]]},{"id":"3acc66b9.f1e56a","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":350.4167251586914,"y":419.0149631500244,"z":"c6f0d3f1.455d9","wires":[["3f05f182.7a112e"]]},{"id":"3f05f182.7a112e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":516.4167327880859,"y":419.0149631500244,"z":"c6f0d3f1.455d9","wires":[["4000702f.bf217"]]},{"id":"b0353d83.d95fc8","type":"for","name":"for loop i - Network input parameters","xml":"<for index=\"i\" start=\"0\" end=\"`$network-topology-information.network-request-input.network-input-parameters.param_length`\">\n","comments":"","outputs":1,"x":839.9165649414062,"y":457.01495361328125,"z":"c6f0d3f1.455d9","wires":[["4b65836a.da71a4"]]},{"id":"314ef392.5c55f4","type":"switchNode","name":"switch value","xml":"<switch test=\"`$tmp.value`\">\n","comments":"","outputs":1,"x":1434.9166259765625,"y":831.0149536132812,"z":"c6f0d3f1.455d9","wires":[["43c9362d.7e85f8"]]},{"id":"43c9362d.7e85f8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1651.9165992736816,"y":830.0149593353271,"z":"c6f0d3f1.455d9","wires":[["ca90525c.72c9e"]]},{"id":"ca90525c.72c9e","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":1830.345314025879,"y":831.0149593353271,"z":"c6f0d3f1.455d9","wires":[]},{"id":"69b2a932.e384a","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":356.9999771118164,"y":495.76191806793213,"z":"c6f0d3f1.455d9","wires":[[]]},{"id":"48c30fe1.37ee2","type":"outcome","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":343.5715103149414,"y":551.0478391647339,"z":"c6f0d3f1.455d9","wires":[[]]},{"id":"3a0a08f8.ab065","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":345.6190757751465,"y":606.9047303199768,"z":"c6f0d3f1.455d9","wires":[["1c01820.787e0fe"]]},{"id":"1c01820.787e0fe","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":499.1906509399414,"y":609.5238742828369,"z":"c6f0d3f1.455d9","wires":[]},{"id":"4b65836a.da71a4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":717.9999389648438,"y":603.7619018554688,"z":"c6f0d3f1.455d9","wires":[["c0a12daa.de711","79c7c0f2.75db1","70c07e94.b958b"]]},{"id":"4000702f.bf217","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":472,"y":307,"z":"c6f0d3f1.455d9","wires":[["7fc21ed9.84ecc","2b594f42.596858"]]},{"id":"7fc21ed9.84ecc","type":"other","name":"CreateNetworkInstance","xml":"<outcome value='CreateNetworkInstance'>","comments":"","outputs":1,"x":738,"y":266,"z":"c6f0d3f1.455d9","wires":[["b93efadc.2a7b98"]]},{"id":"2b594f42.596858","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":692,"y":316,"z":"c6f0d3f1.455d9","wires":[["38f5f946.300656"]]},{"id":"38f5f946.300656","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 CreateNetworkInstance for svc-action=assign\" />\n","comments":"","x":861,"y":316,"z":"c6f0d3f1.455d9","wires":[]},{"id":"b93efadc.2a7b98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":963,"y":255,"z":"c6f0d3f1.455d9","wires":[["b0353d83.d95fc8"]]},{"id":"2b9e6137.bb0cbe","type":"comment","name":"TODO: need to identify underlay or overlay","info":"","comments":"","x":969,"y":219,"z":"c6f0d3f1.455d9","wires":[]},{"id":"c0a12daa.de711","type":"set","name":"clear tmp-data","xml":"<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n","comments":"","x":910,"y":558,"z":"c6f0d3f1.455d9","wires":[]},{"id":"79c7c0f2.75db1","type":"set","name":"set tmp-data","xml":"<set>\n<parameter name='tmp.name' value=\"'$network-topology-operation-input.network-request-input.network-input-parameters.param[i].name'\"/>\n<parameter name='tmp.value' value=\"'$network-topology-operation-input.network-request-input.network-input-parameters.param[i].value'\"/>\n","comments":"","x":899,"y":648,"z":"c6f0d3f1.455d9","wires":[]},{"id":"70c07e94.b958b","type":"switchNode","name":"switch name","xml":"<switch test=\"'$tmp.name'\">\n","comments":"","outputs":1,"x":878,"y":742,"z":"c6f0d3f1.455d9","wires":[["b4dc69ff.a7ed1","bbb21dd0.0748a","646ea6b1.a2f9c8","439d167a.8c5ac","c1518ab4.108de8","b9d1292c.a326b","2a37f01.a563d1","1df27ff7.9e57b8","eb7c110.2f93df","f3eead68.9da5e","6b17cb91.28e614","3b3dd1c9.f1275e","6e7d7d1.8e50d04","e757b031.dd60f8","c7f4e328.7b4c7","55fe09c4.76bd78","5b95ca17.0b84a4"]]},{"id":"b4dc69ff.a7ed1","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1159,"y":1365,"z":"c6f0d3f1.455d9","wires":[["72bd50f1.643c"]]},{"id":"72bd50f1.643c","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":1334,"y":1364,"z":"c6f0d3f1.455d9","wires":[]},{"id":"bbb21dd0.0748a","type":"other","name":"name","xml":"<outcome value='name'>","comments":"","outputs":1,"x":1136,"y":487,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"646ea6b1.a2f9c8","type":"other","name":"service-type","xml":"<outcome value='service-type'>","comments":"","outputs":1,"x":1139,"y":554,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"2a37f01.a563d1","type":"other","name":"sna2_name","xml":"<outcome value='sna2_name'>","comments":"","outputs":1,"x":1143,"y":783,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"439d167a.8c5ac","type":"other","name":"site1-name","xml":"<outcome value='site1-name'>","comments":"","outputs":1,"x":1140,"y":615,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"c1518ab4.108de8","type":"other","name":"site2-name","xml":"<outcome value='site2-name'>","comments":"","outputs":1,"x":1136,"y":672,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"b9d1292c.a326b","type":"other","name":"sna1_name","xml":"<outcome value='sna1_name'>","comments":"","outputs":1,"x":1139,"y":729,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"1df27ff7.9e57b8","type":"other","name":"pe1_id","xml":"<outcome value='pe1_id'>","comments":"","outputs":1,"x":1143,"y":834,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"eb7c110.2f93df","type":"other","name":"pe2_id","xml":"<outcome value='pe2_id'>","comments":"","outputs":1,"x":1146,"y":882,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"f3eead68.9da5e","type":"other","name":"ac1-id","xml":"<outcome value='ac1-id'>","comments":"","outputs":1,"x":1151,"y":931,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"6b17cb91.28e614","type":"other","name":"ac2-id","xml":"<outcome value='ac2-id'>","comments":"","outputs":1,"x":1153,"y":986,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"3b3dd1c9.f1275e","type":"other","name":"ac1-ip","xml":"<outcome value='ac1-ip'>","comments":"","outputs":1,"x":1153,"y":1038,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"6e7d7d1.8e50d04","type":"other","name":"ac2-ip","xml":"<outcome value='ac2-ip'>","comments":"","outputs":1,"x":1155,"y":1099,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"e757b031.dd60f8","type":"other","name":"ac1_peer_ip","xml":"<outcome value='ac1_peer_ip'>","comments":"","outputs":1,"x":1157,"y":1149,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"c7f4e328.7b4c7","type":"other","name":"ac2_peer_ip","xml":"<outcome value='ac2_peer_ip'>","comments":"","outputs":1,"x":1153,"y":1197,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"55fe09c4.76bd78","type":"other","name":"ac1_svlan","xml":"<outcome value='ac1_svlan'>","comments":"","outputs":1,"x":1155,"y":1250,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]},{"id":"5b95ca17.0b84a4","type":"other","name":"ac2_svlan","xml":"<outcome value='ac2_svlan'>","comments":"","outputs":1,"x":1157,"y":1311,"z":"c6f0d3f1.455d9","wires":[["314ef392.5c55f4"]]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-create.xml
new file mode 100644
index 00000000..e24a9ef3
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-create.xml
@@ -0,0 +1,142 @@
+<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='network-topology-operation-create' mode='sync'>
+<block atomic="true">
+<call module='GENERIC-RESOURCE-API' rpc='validate-network-input-parameters' mode='sync' >
+</call><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="esr-thirdparty-sdnc"
+ key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $tmp.thirdparty-sdnc-id AND
+ depth = '1'"
+ pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >
+
+<outcome value='success'>
+<block atomic="true"></block></outcome><outcome value='not-found'>
+<return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Network model is_bound_to_vpn=true but no vpn_binding is present" />
+
+</return></outcome><outcome value='Other'>
+<return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Unexpected error retrieving vpn binding" />
+
+</return></outcome></get-resource><set>
+<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.serviceUrl`" />
+<parameter name='prop.sdncRestApi.templateDir' value='/opt/onap/sdnc/data' />
+<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.user-name`" />
+<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.password`" />
+</set><for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+<block>
+<switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'service-type'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.service-type' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'topology'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.topology' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'technology'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.technology' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_name'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.site1_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_name'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.site2_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna1_name'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.sna1_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna2_name'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.sna2_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe1_id'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.pe1_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe2_id'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.pe2_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_id'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_id'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac2_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_ip'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_ip'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac2_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_peer_ip'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_peer_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_peer_ip'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac2_peer_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_svlan'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_svlan' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_svlan'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac2_svlan' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_protocol' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol_bgp_as'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_protocol_bgp_as' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol_bgp_as'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.ac1_protocol_bgp_as' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'af_type'`">
+<outcome value='true'>
+<set>
+<parameter name='prop.l3vpn.af_type' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
+</set></outcome></switch></block></for><execute plugin='com.att.sdnctl.sli.SliPluginUtils.SliPluginUtils' method='generateUUID' >
+<parameter name="ctx-destination" value="prop.l3vpn.vpn-policy-id"/>
+<outcome value='failure'>
+<return status='failure'>
+<parameter name='error-code' value='' />
+<parameter name='error-message' value="An error occured while generation vpn policy ID" />
+</return></outcome></execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+<parameter name="templateFileName" value="$prop.sdncRestApi.tempDir +'/l3smvpntemplate.json'"/>
+<parameter name="restapiUrl" value="$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services'"/>
+<parameter name="restapiUser" value="$prop.sdncRestApi.thirdpartySdnc.user"/>
+<parameter name="restapiPassword" value="$prop.sdncRestApi.thirdpartySdnc.password"/>
+<parameter name="format" value="json"/>
+<parameter name="httpMethod" value="post"/>
+<parameter name="responsePrefix" value="restapi-result"/></execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+<parameter name="templateFileName" value="$prop.sdncRestApi.tempDir +'/l3smsitetemplate.json'"/>
+<parameter name="restapiUrl" value="$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites'"/>
+<parameter name="restapiUser" value="$prop.sdncRestApi.thirdpartySdnc.user"/>
+<parameter name="restapiPassword" value="$prop.sdncRestApi.thirdpartySdnc.password"/>
+<parameter name="format" value="json"/>
+<parameter name="httpMethod" value="post"/>
+<parameter name="responsePrefix" value="restapi-result"/></execute></block></method></service-logic> \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input-parameters.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input-parameters.xml
new file mode 100644
index 00000000..e865258c
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input-parameters.xml
@@ -0,0 +1,114 @@
+<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='validate-network-input-parameters' mode='sync'>
+<block atomic="true"><switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />
+</return></outcome></switch><switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>
+<outcome value='assign'>
+<block atomic="true"><switch test='`$network-topology-operation-input.request-information.request-action`'>
+<outcome value='CreateNetworkInstance'><block atomic="true"><for index="i" start="0" end="`$network-topology-information.network-request-input.network-input-parameters.param_length`">
+<block>
+<set>
+<parameter name='tmp.name' value='' />
+<parameter name='tmp.value' value='' />
+</set><set>
+<parameter name='tmp.name' value="'$network-topology-operation-input.network-request-input.network-input-parameters.param[i].name'"/>
+<parameter name='tmp.value' value="'$network-topology-operation-input.network-request-input.network-input-parameters.param[i].value'"/>
+</set><switch test="'$tmp.name'">
+<outcome value='name'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='service-type'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='site1-name'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='site2-name'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='sna1_name'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='sna2_name'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='pe1_id'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='pe2_id'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac1-id'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac2-id'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac1-ip'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac2-ip'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac1_peer_ip'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac2_peer_ip'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac1_svlan'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value='ac2_svlan'><switch test="`$tmp.value`">
+<outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
+</return></outcome></switch></outcome><outcome value=''><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
+</return></outcome></switch></block></for></block></outcome><outcome value='Other'><return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="request-information.request-action is required to be CreateNetworkInstance for svc-action=assign" />
+</return></outcome></switch></block></outcome><outcome value='deactivate'>
+</outcome><outcome value='delete'>
+</outcome><outcome value='Other'>
+<return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
+</return></outcome></switch></block></method></service-logic> \ No newline at end of file