Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.xml
new file mode 100755 (executable)
index 0000000..5a8dad5
--- /dev/null
@@ -0,0 +1,237 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='port-mirror-topology-operation-validation' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.service-information.subscription-service-type`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'No service exists for service instance ' + $port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                        <parameter name='ack-final' value='Y' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="No configuration-id supplied in input" />\r
+                        <parameter name='ack-final' value='Y' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\r
+                <outcome value='pprobe'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='PPROBE'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='vprobe'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='VPROBE'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="configuration-sub-type must be pprobe or vprobe" />\r
+                        <parameter name='ack-final' value='Y' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="svc-notification-url is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'CreatePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be CreatePortMirrorConfigurationInstance for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-type`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="configuration-type is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="configuration-information.onap-model-information.model-customization-uuid is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.vnf-information.vnf-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="source vnf-id is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\r
+                            <outcome value='vprobe'>\r
+                                <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.vnf-information.vnf-id`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="dest vnf-id is required for vprobe assign" />\r
+                                            <parameter name='ack-final' value='Y' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                            <outcome value='pprobe'>\r
+                                <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.pnf-information.pnf-name`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="dest pnf-name is required for pprobe assign" />\r
+                                            <parameter name='ack-final' value='Y' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="svc-notification-url is required for activate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'CreatePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be CreatePortMirrorConfigurationInstance for activate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <block atomic="true">\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'DeletePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be DeletePortMirrorConfigurationInstance for unassign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="svc-notification-url is required for deactivate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'DeletePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be DeletePortMirrorConfigurationInstance for deactivate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='enable'>\r
+                    <block atomic="true">\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'ChangePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be ChangePortMirrorConfigurationInstance for enable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="port-mirror-configuration-request-input.source-port.source-port-id is required for enable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='disable'>\r
+                    <block atomic="true">\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'ChangePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be ChangePortMirrorConfigurationInstance for disable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="port-mirror-configuration-request-input.source-port.source-port-id is required for disable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file