call wan-connection rpc
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation.xml
index 05328d2..f2e71fa 100644 (file)
-<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>
+<?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'>
-                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>
+                            <outcome value="Other"> 
+                              <set> 
+                                <parameter name="nidx" value="`$tmp.nidx`"/> 
+                              </set>
                             </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'>
-                            <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'>
-                                            <parameter name='' value='' />
-                                        </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>
+                          </switch>
+                        </block>
+                      </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>
+                    <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='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 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>
-                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>
-                    </block>
+                          </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>
-                <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'>
-                            <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'>
-                                            <parameter name='' value='' />
-                                        </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="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='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 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>
-                        </switch>
-                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
-                            <outcome value=''>
-                                <return status='success'>
-                                    <parameter name='' value='' />
-                                </return>
+                            <outcome value="Other"> 
+                              <set> 
+                                <parameter name="nidx" value="`$tmp.nidx`"/> 
+                              </set>
                             </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>
+                          </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'>
-                                <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 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>
-                <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'>
-                            <block atomic="true">
-                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>
-                            </block>
-                        </outcome>
+                          </switch>
+                        </block>
+                      </outcome>
                     </switch>
+                    <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-deactivate" mode="sync"></call>
+                  </block>
                 </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'>
-                            <block atomic="true">
-                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' 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="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='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 value="false"> 
+                  <block atomic="true">
+                    <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-create" mode="sync"></call>
+                  </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="sdnc-request-header.svc-action is a required input" />
-                    </return>
+              </execute>
+            </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>
-            </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>
+                <outcome value="false"> 
+                  <block atomic="true">
+                    <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-delete" mode="sync"></call>
+                  </block>
+                </outcome>
+              </execute>
+            </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>