Merge "Add missing blueprint-processor schema"
[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 00848f9..f2e71fa
-<?xml version="1.0" encoding="UTF-8"?>\r
-<service-logic xmlns="http://www.onap.org/sdnc/svclogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="GENERIC-RESOURCE-API" version="${project.version}">\r
-    <method rpc="network-topology-operation" mode="sync">\r
-        <block atomic="true">\r
-            <call module="GENERIC-RESOURCE-API" rpc="validate-network-input" mode="sync" />\r
-            <switch test="`$network-topology-operation-input.sdnc-request-header.svc-action`">\r
-                <outcome value="assign">\r
-                    <block atomic="true">\r
-                        <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-assign" mode="sync" />\r
-                    </block>\r
-                </outcome>\r
-                <outcome value="activate">\r
-                    <switch test="`$network-topology-operation-input.request-information.request-action`">\r
-                        <outcome value="ActivateDCINetworkInstance">\r
-                            <call module="GENERIC-RESOURCE-API" rpc="dci-connects-network-topology-operation-activate" mode="sync" />\r
-                        </outcome>\r
-                        <outcome value="other">\r
-                            <block atomic="true">\r
-                                <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>\r
-                                    </outcome>\r
-                                    <outcome value="Other">\r
-                                        <block atomic="true">\r
-                                            <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
-                                                    <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>\r
-                                                    </outcome>\r
-                                                </switch>\r
-                                            </for>\r
-                                            <switch test="`$tmp.nidx`">\r
-                                                <outcome value="">\r
-                                                    <return status="failure">\r
-                                                        <parameter name="ack-final" value="Y" />\r
-                                                        <parameter name="error-code" value="500" />\r
-                                                        <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                                    </return>\r
-                                                </outcome>\r
-                                            </switch>\r
-                                        </block>\r
-                                    </outcome>\r
-                                </switch>\r
-                                <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
-                                    </outcome>\r
-                                    <outcome value="Other">\r
-                                        <return status="failure">\r
-                                            <parameter name="ack-final" value="Y" />\r
-                                            <parameter name="error-code" value="500" />\r
-                                            <parameter name="error-message" value="`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
-                                        </return>\r
-                                    </outcome>\r
-                                </switch>\r
-                            </block>\r
-                        </outcome>\r
-                    </switch>\r
-                </outcome>\r
-                <outcome value="deactivate">\r
-                    <switch test="`$network-topology-operation-input.request-information.request-action`">\r
-                        <outcome value="DeActivateDCINetworkInstance">\r
-                            <call module="GENERIC-RESOURCE-API" rpc="dci-connects-network-topology-operation-deactivate" mode="sync" />\r
-                        </outcome>\r
-                        <outcome value="other">\r
-                            <block atomic="true">\r
-                                <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>\r
-                                    </outcome>\r
-                                    <outcome value="Other">\r
-                                        <block atomic="true">\r
-                                            <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
-                                                    <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>\r
-                                                    </outcome>\r
-                                                </switch>\r
-                                            </for>\r
-                                            <switch test="`$tmp.nidx`">\r
-                                                <outcome value="">\r
-                                                    <return status="failure">\r
-                                                        <parameter name="ack-final" value="Y" />\r
-                                                        <parameter name="error-code" value="500" />\r
-                                                        <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                                    </return>\r
-                                                </outcome>\r
-                                            </switch>\r
-                                        </block>\r
-                                    </outcome>\r
-                                </switch>\r
-                                <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
-                                    </outcome>\r
-                                    <outcome value="Other">\r
-                                        <return status="failure">\r
-                                            <parameter name="ack-final" value="Y" />\r
-                                            <parameter name="error-code" value="500" />\r
-                                            <parameter name="error-message" value="`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
-                                        </return>\r
-                                    </outcome>\r
-                                </switch>\r
-                            </block>\r
-                        </outcome>\r
-                    </switch>\r
-                </outcome>\r
-                <outcome value="unassign">\r
-                    <block atomic="true">\r
-                        <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>\r
-                            </outcome>\r
-                            <outcome value="Other">\r
-                                <block atomic="true">\r
-                                    <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
-                                            <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>\r
-                                            </outcome>\r
-                                        </switch>\r
-                                    </for>\r
-                                    <switch test="`$tmp.nidx`">\r
-                                        <outcome value="">\r
-                                            <return status="failure">\r
-                                                <parameter name="ack-final" value="Y" />\r
-                                                <parameter name="error-code" value="500" />\r
-                                                <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                            </return>\r
-                                        </outcome>\r
-                                    </switch>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                        <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
-                            </outcome>\r
-                            <outcome value="PendingDelete">\r
-                                <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-unassign" mode="sync" />\r
-                            </outcome>\r
-                            <outcome value="Other">\r
-                                <return status="failure">\r
-                                    <parameter name="ack-final" value="Y" />\r
-                                    <parameter name="error-code" value="500" />\r
-                                    <parameter name="error-message" value="`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
-                                </return>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value="Other">\r
-                    <return status="failure">\r
-                        <parameter name="ack-final" value="Y" />\r
-                        <parameter name="error-code" value="500" />\r
-                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-                    </return>\r
-                </outcome>\r
-                <outcome value="create">\r
-                    <block atomic="true">\r
-                        <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-create" mode="sync" />\r
-                    </block>\r
-                </outcome>\r
-                <outcome value="delete">\r
-                    <block atomic="true">\r
-                        <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-delete" mode="sync" />\r
-                    </block>\r
-                </outcome>\r
-            </switch>\r
-            <set>\r
-                <parameter name="ack-final" value="Y" />\r
-            </set>\r
-            <return status="success">\r
-                <parameter name="ack-final-indicator" value="Y" />\r
-                <parameter name="error-code" value="200" />\r
-                <parameter name="error-message" value="`$error-message`" />\r
-            </return>\r
-        </block>\r
-    </method>\r
-</service-logic>
\ No newline at end of file
+<?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="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>
+          </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>
+          </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>