<?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>Common Application Components Shipment Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- UPS Rate API Services -->
    <service name="upsRateEstimate" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsRateInquire" auth="false">
            <description>UPS On-Line rate inquire tool.  Also supports rate shopping by setting upsRateInquireMode to 'Shop', and upsRateCodeMap
                will return a Map of serviceCode -> rate</description>
        <implements service="calcShipmentEstimateInterface"/>
        <attribute name="upsRateInquireMode" type="String" mode="IN" optional="true"/>
        <!-- Passing in a list of package weights will override the splitting of packages and calculation of package weights by item -->
        <attribute name="packageWeights" type="List" mode="IN" optional="true"/>
        <attribute name="upsRateCodeMap" type="Map" mode="OUT" optional="false"/>
    </service>

    <!-- UPS XPCI API Services -->
    <service name="upsShipmentConfirm" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsShipmentConfirm" auth="true">
        <description>UPS Shipment Confirm</description>
        <auto-attributes entity-name="ShipmentRouteSegment" include="pk" mode="IN" optional="false"/>
    </service>
    <service name="upsShipmentAccept" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsShipmentAccept" auth="true">
        <description>UPS Shipment Accept</description>
        <auto-attributes entity-name="ShipmentRouteSegment" include="pk" mode="IN" optional="false"/>
    </service>
    <service name="upsVoidShipment" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsVoidShipment" auth="true">
        <description>UPS Void Shipment</description>
        <auto-attributes entity-name="ShipmentRouteSegment" include="pk" mode="IN" optional="false"/>
    </service>
    <service name="upsTrackShipment" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsTrackShipment" auth="true">
        <description>UPS Track Shipment</description>
        <auto-attributes entity-name="ShipmentRouteSegment" include="pk" mode="IN" optional="false"/>
    </service>
    <service name="upsEmailReturnLabel" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsEmailReturnLabel" auth="true">
        <description>Email UPS Retrun Label</description>
        <auto-attributes entity-name="ShipmentRouteSegment" include="pk" mode="IN" optional="false"/>
    </service>

    <!-- UPS Rate Estimate -->
    <service name="upsRateEstimateByPostalCode" engine="java"
        location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsRateInquireByPostalCode" auth="false">
        <description>UPS On-Line rate inquire tool.  Also supports rate shopping by setting upsRateInquireMode to 'Shop', and upsRateCodeMap
            will return a Map of serviceCode -> rate</description>
        <attribute name="serviceConfigProps" type="String" mode="IN" optional="true"/>
        <attribute name="initialEstimateAmt" type="BigDecimal" mode="IN" optional="true"/>
        <!-- The postal code must not be required or service validation could create an exception and break other things.  It will
        be checked in the service and a Failure (not Error) will be returned if it is null -->
        <attribute name="shippingPostalCode" type="String" mode="IN" optional="true"/>
        <attribute name="shipmentMethodTypeId" type="String" mode="IN" optional="false"/>
        <attribute name="carrierPartyId" type="String" mode="IN" optional="false"/>
        <attribute name="carrierRoleTypeId" type="String" mode="IN" optional="false"/>
        <attribute name="productStoreId" type="String" mode="IN" optional="false"/>
        <!-- Passing in a list of package weights will override the splitting of packages and calculation of package weights by item -->
        <attribute name="packageWeights" type="List" mode="IN" optional="true"/>
        <attribute name="shippableItemInfo" type="List" mode="IN" optional="false"/>
        <attribute name="shippableWeight" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="shippableQuantity" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="shippableTotal" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="shippingEstimateAmount" type="BigDecimal" mode="OUT" optional="false"/>
        <attribute name="upsRateInquireMode" type="String" mode="IN" optional="true"/>
        <attribute name="upsRateCodeMap" type="Map" mode="OUT" optional="false"/>
        <attribute name="isResidentialAddress" type="String" mode="IN" optional="true"/>
        <attribute name="shippingCountryCode" type="String" mode="IN" optional="true"/>
        <!-- Allow specifying a from address if different from product store's facility address. -->
        <attribute name="shipFromAddress" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"/>
        <attribute name="shipmentGatewayConfigId" type="String" mode="IN" optional="true"/>
    </service>

    <!-- UPS Address Validation -->
    <service name="upsAddressValidation" engine="java"
        location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsAddressValidation" auth="false">
        <attribute name="city" type="String" mode="IN" optional="true"/>
        <attribute name="stateProvinceGeoId" type="String" mode="IN" optional="true"/>
        <attribute name="postalCode" type="String" mode="IN" optional="true"/>
        <attribute name="matches" type="List" mode="OUT" optional="true"/>
    </service>
    
    <service name="upsShipmentAlternateRatesEstimate" engine="java"
            location="org.ofbiz.shipment.thirdparty.ups.UpsServices" invoke="upsShipmentAlternateRatesInquiry" auth="false">
            <description>UPS On-Line rate inquire tool. Supports rate shopping where  upsRateInquireMode is set to 'Shop', and shippingRates 
                will return a List of Maps, of serviceCode -> rate for the shipping methods which are configured in ProductStoreShipmentMeth entity</description>
        <attribute name="productStoreId" type="String" mode="IN" optional="false"/>
        <attribute name="shipmentId" type="String" mode="IN" optional="false"/>
        <attribute name="shipmentRouteSegmentId" type="String" mode="IN" optional="true"/>
        <attribute name="shippingRates" type="List" mode="OUT" optional="false"/>
    </service>
 
</services>
