<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>OFBiz Service Engine Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- Service Engine Services -->
    <service name="purgeOldJobs" engine="java"
            location="org.ofbiz.service.ServiceUtil" invoke="purgeOldJobs" auth="true" use-transaction="false" semaphore="wait">
        <description>Cleans out old jobs which have been around longer then what is defined in serviceengine.xml</description>
        <required-permissions join-type="AND">
            <check-permission permission="SERVICE_INVOKE_ANY"/>
        </required-permissions>
        <!-- this service has no attributes -->
    </service>

    <service name="cancelScheduledJob" engine="java"
            location="org.ofbiz.service.ServiceUtil" invoke="cancelJob" auth="true">
        <description>Cancels a schedule job</description>
        <required-permissions join-type="AND">
            <check-permission permission="SERVICE_INVOKE_ANY"/>
        </required-permissions>
        <auto-attributes entity-name="JobSandbox" include="pk" mode="IN" optional="false"/>
        <attribute name="cancelDateTime" type="Timestamp" mode="OUT" optional="false"/>
    </service>

    <service name="cancelJobRetries" engine="java"
            location="org.ofbiz.service.ServiceUtil" invoke="cancelJobRetries" auth="true">
        <description>Cancels a job retry flag</description>
        <required-permissions join-type="AND">
            <check-permission permission="SERVICE_INVOKE_ANY"/>
        </required-permissions>
        <auto-attributes entity-name="JobSandbox" include="pk" mode="IN" optional="false"/>
    </service>

    <service name="resetScheduledJob" engine="java"
            location="org.ofbiz.service.ServiceUtil" invoke="resetJob" auth="true">
        <description>Resets a stale job so it can be re-run</description>
        <required-permissions join-type="AND">
            <check-permission permission="SERVICE_INVOKE_ANY"/>
        </required-permissions>
        <auto-attributes entity-name="JobSandbox" include="pk" mode="IN" optional="false"/>
    </service>

    <!-- Service Engine Interfaces -->
    <service name="permissionInterface" engine="interface">
        <description>Interface to describe base parameters for Permission Services</description>
        <attribute name="mainAction" type="String" mode="IN" optional="true"/>
        <attribute name="resourceDescription" type="String" mode="IN" optional="true">
            <!-- Note that this will be filled in either with what the user specifies in the service definition, or will default to the service name. -->
        </attribute>
        <attribute name="hasPermission" type="Boolean" mode="OUT" optional="false"/>
        <attribute name="failMessage" type="String" mode="OUT" optional="true"/>
    </service>

    <service name="authenticationInterface" engine="interface">
        <description>Interface to describe authentication services</description>
        <attribute name="login.username" type="String" mode="IN"/>
        <attribute name="login.password" type="String" mode="IN"/>
        <attribute name="visitId" type="String" mode="IN" optional="true"/>
        <attribute name="isServiceAuth" type="Boolean" mode="IN" optional="true"/>
        <attribute name="userLogin" type="org.ofbiz.entity.GenericValue" mode="OUT"/>
        <attribute name="userLoginSession" type="java.util.Map" mode="OUT" optional="true"/>
    </service>

    <service name="serviceStreamInterface" engine="interface">
        <description>Inteface to describe services call with streams</description>
        <attribute name="inputStream" type="java.io.InputStream" mode="IN"/>
        <attribute name="outputStream" type="java.io.OutputStream" mode="IN"/>
        <attribute name="contentType" type="String" mode="OUT"/>
    </service>

    <service name="serviceEcaConditionInterface" engine="interface">
        <description>Interface to describe services which are used as SECA conditions</description>
        <attribute name="serviceContext" type="Map" mode="IN"/>
        <attribute name="serviceName" type="String" mode="IN"/>
        <attribute name="conditionReply" type="Boolean" mode="OUT"/>
    </service>
    <service name="serviceMcaConditionInterface" engine="interface">
        <description>Interface to describe services which are used as SMCA conditions</description>
        <attribute name="messageWrapper" type="org.ofbiz.service.mail.MimeMessageWrapper" mode="IN"/>
        <attribute name="conditionReply" type="Boolean" mode="OUT"/>
    </service>

    <service name="mailProcessInterface" engine="interface">
        <description>Interface to describe services used to process incoming email</description>
        <attribute name="messageWrapper" type="org.ofbiz.service.mail.MimeMessageWrapper" mode="IN"/>
    </service>

    <!-- simple condition implementation -->
    <service name="effectiveDateEcaCondition" engine="java" auth="false" use-transaction="false"
            location="org.ofbiz.service.ServiceUtil" invoke="genericDateCondition">
        <implements service="serviceEcaConditionInterface"/>
        <attribute name="fromDate" mode="IN" type="java.sql.Timestamp" optional="true"/>
        <attribute name="thruDate" mode="IN" type="java.sql.Timestamp" optional="true"/>
    </service>
</services>
