Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation.xml
old mode 100755 (executable)
new mode 100644 (file)
index cb82d32..51d6b6a
-<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}'><method rpc='network-topology-operation' mode='sync'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' >\r
-</call><switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' >\r
-</call></block></outcome><outcome value='activate'>\r
-<block atomic="true"><switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
-\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.nidx' value='`$nidx`' />\r
-<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
-</set></outcome></switch></for><switch test="`$tmp.nidx`">\r
-\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-id not found in service-data" />\r
-</return></outcome></switch></block></outcome></switch><switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
-<outcome value='PendingCreate'>\r
-<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' >\r
-</call></outcome><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 is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" /></return></outcome></switch></block></outcome><outcome value='deactivate'>\r
-<block atomic="true"><switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
-\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.nidx' value='`$nidx`' />\r
-<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
-</set></outcome></switch></for><switch test="`$tmp.nidx`">\r
-\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-id not found in service-data" />\r
-</return></outcome></switch></block></outcome></switch><switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' >\r
-</call></outcome><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 is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" /></return></outcome></switch></block></outcome><outcome value='unassign'>\r
-<block atomic="true"><switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
-\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.nidx' value='`$nidx`' />\r
-<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
-</set></outcome></switch></for><switch test="`$tmp.nidx`">\r
-\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-id not found in service-data" />\r
-</return></outcome></switch></block></outcome></switch><switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
-<outcome value='PendingCreate'>\r
-<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' >\r
-</call></outcome><outcome value='PendingDelete'>\r
-<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' >\r
-</call></outcome><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 is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" /></return></outcome></switch></block></outcome><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 a required input" />\r
-</return></outcome><outcome value='create'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' >\r
-</call></block></outcome><outcome value='delete'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' >\r
-</call></block></outcome></switch><set>\r
-<parameter name="ack-final" value="Y"/></set><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></block></method></service-logic>
+<?xml version="1.0" encoding="utf-8"?>
+
+<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}'>
+    <method rpc='network-topology-operation' mode='sync'>
+        <block atomic="true">
+            <call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' ></call>
+            <switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
+                            <outcome value='Created'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+                                </return>
+                            </outcome>
+                            <outcome value='PendingDelete'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+                                </return>
+                            </outcome>
+                            <outcome value='PendingCreate'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <switch test='`$network-topology-operation-input.request-information.request-action`'>
+                        <outcome value='ActivateSOTNConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-activate' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='ActivateDCINetworkInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-activate' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='ActivateSDWANConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-activate' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='other'>
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+                                <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+                                <parameter name="target" value="wan-connection"/>
+                                <outcome value='true'>
+                                    <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-activate' mode='sync' ></call>
+                                </outcome>
+                                <outcome value='false'>
+                                    <block atomic="true">
+                                        <switch test='`$service-data.networks.network_length`'>
+                                            <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.network-request-input.network-id not found in service-data" />
+                                                </return>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <block atomic="true">
+                                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+                                                            <outcome value='true'>
+                                                                <set>
+                                                                    <parameter name='tmp.nidx' value='`$nidx`' />
+                                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+                                                                </set>
+                                                            </outcome>
+                                                        </switch>
+                                                    </for>
+                                                    <switch test="`$tmp.nidx`">
+                                                        <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.network-request-input.network-id not found in service-data" />
+                                                            </return>
+                                                        </outcome>
+                                                        <outcome value='Other'>
+                                                            <set>
+                                                                <parameter name='nidx' value='`$tmp.nidx`' />
+                                                            </set>
+                                                        </outcome>
+                                                    </switch>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
+                                            <outcome value=''>
+                                                <return status='success'></return>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <block>
+                                                    <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
+                                                        <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.network-request-input.network-instance-group-id not found in service-data" />
+                                                            </return>
+                                                        </outcome>
+                                                        <outcome value='Other'>
+                                                            <block atomic="true">
+                                                                <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
+                                                                    <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">
+                                                                        <outcome value='true'>
+                                                                            <block atomic="true">
+                                                                                <set>
+                                                                                    <parameter name='tmp.ngidx' value='`$ngidx`' />
+                                                                                    <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
+                                                                                </set>
+                                                                            </block>
+                                                                        </outcome>
+                                                                    </switch>
+                                                                </for>
+                                                            </block>
+                                                        </outcome>
+                                                    </switch>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                        <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
+                                            <outcome value='PendingCreate'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>
+                                            </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 is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='changeassign'>
+                    <block atomic="true">
+                        <switch test='`$service-data.networks.network_length`'>
+                            <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.network-request-input.network-id not found in service-data" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+                                            <outcome value='true'>
+                                                <set>
+                                                    <parameter name='tmp.nidx' value='`$nidx`' />
+                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+                                                </set>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <switch test="`$tmp.nidx`">
+                                        <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.network-request-input.network-id not found in service-data" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <set>
+                                                <parameter name='nidx' value='`$tmp.nidx`' />
+                                            </set>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <switch test='`$network-topology-operation-input.request-information.request-action`'>
+                        <outcome value='DeactivateSOTNConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='DeActivateDCINetworkInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='DeactivateSDWANConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-deactivate' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='Other'>
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+                                <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+                                <parameter name="target" value="wan-connection"/>
+                                <outcome value='true'>
+                                    <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-deactivate' mode='sync' ></call>
+                                </outcome>
+                                <outcome value='false'>
+                                    <block atomic="true">
+                                        <switch test='`$service-data.networks.network_length`'>
+                                            <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.network-request-input.network-id not found in service-data" />
+                                                </return>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <block atomic="true">
+                                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+                                                            <outcome value='true'>
+                                                                <set>
+                                                                    <parameter name='tmp.nidx' value='`$nidx`' />
+                                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+                                                                </set>
+                                                            </outcome>
+                                                        </switch>
+                                                    </for>
+                                                    <switch test="`$tmp.nidx`">
+                                                        <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.network-request-input.network-id not found in service-data" />
+                                                            </return>
+                                                        </outcome>
+                                                        <outcome value='Other'>
+                                                            <set>
+                                                                <parameter name='nidx' value='`$tmp.nidx`' />
+                                                            </set>
+                                                        </outcome>
+                                                    </switch>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
+                                            <outcome value=''>
+                                                <return status='success'></return>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <block>
+                                                    <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
+                                                        <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.network-request-input.network-instance-group-id not found in service-data" />
+                                                            </return>
+                                                        </outcome>
+                                                        <outcome value='Other'>
+                                                            <block atomic="true">
+                                                                <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
+                                                                    <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">
+                                                                        <outcome value='true'>
+                                                                            <block atomic="true">
+                                                                                <set>
+                                                                                    <parameter name='tmp.ngidx' value='`$ngidx`' />
+                                                                                    <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
+                                                                                </set>
+                                                                            </block>
+                                                                        </outcome>
+                                                                    </switch>
+                                                                </for>
+                                                            </block>
+                                                        </outcome>
+                                                    </switch>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='unassign'>
+                    <block atomic="true">
+                        <switch test='`$service-data.networks.network_length`'>
+                            <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.network-request-input.network-id not found in service-data" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+                                            <outcome value='true'>
+                                                <set>
+                                                    <parameter name='tmp.nidx' value='`$nidx`' />
+                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+                                                </set>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <switch test="`$tmp.nidx`">
+                                        <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.network-request-input.network-id not found in service-data" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <set>
+                                                <parameter name='nidx' value='`$tmp.nidx`' />
+                                            </set>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
+                            <outcome value=''>
+                                <return status='success'></return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block>
+                                    <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
+                                        <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.network-request-input.network-instance-group-id not found in service-data" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block atomic="true">
+                                                <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
+                                                    <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">
+                                                        <outcome value='true'>
+                                                            <block atomic="true">
+                                                                <set>
+                                                                    <parameter name='tmp.ngidx' value='`$ngidx`' />
+                                                                    <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
+                                                                </set>
+                                                            </block>
+                                                        </outcome>
+                                                    </switch>
+                                                </for>
+                                            </block>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                        <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
+                            <outcome value='PendingCreate'>
+                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
+                            </outcome>
+                            <outcome value='PendingDelete'>
+                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
+                            </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 is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='update'>
+                    <switch test='`$network-topology-operation-input.request-information.request-action`'>
+                        <outcome value='ChangeInternetProfileInstance'>
+                            <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+                                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+                                    <outcome value='true'>
+                                        <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+                                            <outcome value='HUAWEI'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-change-huawei' mode='sync' ></call>
+                                            </outcome>
+                                            <outcome value='NOKIA'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-change-nokia' mode='sync' ></call>
+                                            </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.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </outcome>
+                                </switch>
+                            </for>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='create'>
+                    <switch test='`$network-topology-operation-input.request-information.request-action`'>
+                        <outcome value='CreateSOTNConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='CreateSDWANConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-create' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='other'>
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+                                <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+                                <parameter name="target" value="wan-connection"/>
+                                <outcome value='true'>
+                                    <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-create' mode='sync' ></call>
+                                </outcome>
+                                <outcome value='false'>
+                                    <block atomic="true">
+                                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                        <outcome value='CreateInternetProfileInstance'>
+                            <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+                                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+                                    <outcome value='true'>
+                                        <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+                                            <outcome value='HUAWEI'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-create-huawei' mode='sync' ></call>
+                                            </outcome>
+                                            <outcome value='NOKIA'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-create-nokia' mode='sync' ></call>
+                                            </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.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </outcome>
+                                </switch>
+                            </for>
+                        </outcome>
+                        <outcome value='CreateAccessConnectivityInstance'>
+                            <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+                                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+                                    <outcome value='true'>
+                                        <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+                                            <outcome value='HUAWEI'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-create-huawei' mode='sync' ></call>
+                                            </outcome>
+                                            <outcome value='NOKIA'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-create-nokia' mode='sync' ></call>
+                                            </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.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </outcome>
+                                </switch>
+                            </for>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='delete'>
+                    <switch test='`$network-topology-operation-input.request-information.request-action`'>
+                        <outcome value='DeleteSOTNConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='DeleteSDWANConnectivityInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-delete' mode='sync' ></call>
+                        </outcome>
+                        <outcome value='other'>
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+                                <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+                                <parameter name="target" value="wan-connection"/>
+                                <outcome value='true'>
+                                    <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-deactivate' mode='sync' ></call>
+                                </outcome>
+                                <outcome value='false'>
+                                    <block atomic="true">
+                                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' ></call>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                        <outcome value='DeleteAccessConnectivityInstance'>
+                            <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+                                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+                                    <outcome value='true'>
+                                        <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+                                            <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.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+                                                </return>
+                                            </outcome>
+                                            <outcome value='HUAWEI'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-delete-huawei' mode='sync' ></call>
+                                            </outcome>
+                                            <outcome value='NOKIA'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-delete-nokia' mode='sync' ></call>
+                                            </outcome>
+                                        </switch>
+                                    </outcome>
+                                </switch>
+                            </for>
+                        </outcome>
+                        <outcome value='DeleteInternetProfileInstance'>
+                            <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+                                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+                                    <outcome value='true'>
+                                        <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+                                            <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.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+                                                </return>
+                                            </outcome>
+                                            <outcome value='HUAWEI'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-delete-huawei' mode='sync' ></call>
+                                            </outcome>
+                                            <outcome value='NOKIA'>
+                                                <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-delete-nokia' mode='sync' ></call>
+                                            </outcome>
+                                        </switch>
+                                    </outcome>
+                                </switch>
+                            </for>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='reoptimize'>
+                    <switch test='`$network-topology-operation-input.request-information.request-action`'>
+                        <outcome value='ReoptimizeSOTNInstance'>
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-reoptimize' mode='sync' ></call>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name="ack-final" value="Y"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file