--- /dev/null
+<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