<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:ns="http://fedex.com/ws/vacs/v8" xmlns:s1="http://schemas.xmlsoap.org/wsdl/soap/" name="ValidationAvailabilityAndCommitmentServiceDefinitions" targetNamespace="http://fedex.com/ws/vacs/v8" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://fedex.com/ws/vacs/v8" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="ServiceAvailabilityReply" type="ns:ServiceAvailabilityReply" />
      <xs:element name="ServiceAvailabilityRequest" type="ns:ServiceAvailabilityRequest" />
      <xs:complexType name="Address">
        <xs:annotation>
          <xs:documentation>Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of "address parts" which should be handled as a unit (such as a city-state-ZIP combination within the US).</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="PostalCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identification of a region (usually small) for mail/package delivery. Format and presence of this field will vary, depending on country.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="CountryCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>The two-letter code used to identify a country.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GeographicCoordinates" type="xs:string">
            <xs:annotation>
              <xs:documentation>The geographic coordinates cooresponding to this address.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="CarrierCodeType">
        <xs:annotation>
          <xs:documentation>Identification of a FedEx operating company (transportation).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="FDXE" />
          <xs:enumeration value="FDXG" />
          <xs:enumeration value="FXSP" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ClientDetail">
        <xs:annotation>
          <xs:documentation>Descriptive data for the client submitting a transaction.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="AccountNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>The FedEx account number associated with this transaction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="MeterNumber" type="xs:string">
            <xs:annotation>
              <xs:documentation>This number is assigned by FedEx and identifies the unique device from which the request is originating</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Localization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>The language to be used for human-readable Notification.localizedMessages in responses to the request containing this ClientDetail object. Different requests from the same client may contain different Localization data. (Contrast with TransactionDetail.localization, which governs data payload language/translation.)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="DayOfWeekType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="FRI" />
          <xs:enumeration value="MON" />
          <xs:enumeration value="SAT" />
          <xs:enumeration value="SUN" />
          <xs:enumeration value="THU" />
          <xs:enumeration value="TUE" />
          <xs:enumeration value="WED" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Localization">
        <xs:annotation>
          <xs:documentation>Identifies the representation of human-readable text.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="LanguageCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Two-letter code for language (e.g. EN, FR, etc.)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocaleCode" type="xs:string">
            <xs:annotation>
              <xs:documentation>Two-letter code for the region (e.g. us, ca, etc..).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Notification">
        <xs:annotation>
          <xs:documentation>The descriptive data regarding the result of the submitted transaction.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Severity" type="ns:NotificationSeverityType">
            <xs:annotation>
              <xs:documentation>The severity of this notification. This can indicate success or failure or some other information about the request. The values that can be returned are SUCCESS - Your transaction succeeded with no other applicable information. NOTE - Additional information that may be of interest to you about your transaction. WARNING - Additional information that you need to know about your transaction that you may need to take action on. ERROR - Information about an error that occurred while processing your transaction. FAILURE - FedEx was unable to process your transaction at this time due to a system failure. Please try again later</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="Source" type="xs:string">
            <xs:annotation>
              <xs:documentation>Indicates the source of this notification. Combined with the Code it uniquely identifies this notification</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Code" type="xs:string">
            <xs:annotation>
              <xs:documentation>A code that represents this notification. Combined with the Source it uniquely identifies this notification.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Message" type="xs:string">
            <xs:annotation>
              <xs:documentation>Human-readable text that explains this notification.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LocalizedMessage" type="xs:string">
            <xs:annotation>
              <xs:documentation>The translated message. The language and locale specified in the ClientDetail. Localization are used to determine the representation. Currently only supported in a TrackReply.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MessageParameters" type="ns:NotificationParameter">
            <xs:annotation>
              <xs:documentation>A collection of name/value pairs that provide specific data to help the client determine the nature of an error (or warning, etc.) without having to parse the message string.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NotificationParameter">
        <xs:sequence>
          <xs:element minOccurs="0" name="Id" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies the type of data contained in Value (e.g. SERVICE_TYPE, PACKAGE_SEQUENCE, etc..).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Value" type="xs:string">
            <xs:annotation>
              <xs:documentation>The value of the parameter (e.g. PRIORITY_OVERNIGHT, 2, etc..).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="NotificationSeverityType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="ERROR" />
          <xs:enumeration value="FAILURE" />
          <xs:enumeration value="NOTE" />
          <xs:enumeration value="SUCCESS" />
          <xs:enumeration value="WARNING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="PackagingType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="FEDEX_10KG_BOX" />
          <xs:enumeration value="FEDEX_25KG_BOX" />
          <xs:enumeration value="FEDEX_BOX" />
          <xs:enumeration value="FEDEX_ENVELOPE" />
          <xs:enumeration value="FEDEX_EXTRA_LARGE_BOX" />
          <xs:enumeration value="FEDEX_LARGE_BOX" />
          <xs:enumeration value="FEDEX_MEDIUM_BOX" />
          <xs:enumeration value="FEDEX_PAK" />
          <xs:enumeration value="FEDEX_SMALL_BOX" />
          <xs:enumeration value="FEDEX_TUBE" />
          <xs:enumeration value="YOUR_PACKAGING" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ServiceAvailabilityOption">
        <xs:sequence>
          <xs:element minOccurs="0" name="Service" type="ns:ServiceType" />
          <xs:element minOccurs="0" name="DeliveryDate" type="xs:date" />
          <xs:element minOccurs="0" name="DeliveryDay" type="ns:DayOfWeekType" />
          <xs:element minOccurs="0" name="DestinationStationId" type="xs:string" />
          <xs:element minOccurs="0" name="DestinationAirportId" type="xs:string" />
          <xs:element minOccurs="0" name="TransitTime" type="ns:TransitTimeType">
            <xs:annotation>
              <xs:documentation>Specifies the commit time for a FedEx Ground shipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ServiceAvailabilityReply">
        <xs:sequence>
          <xs:element minOccurs="1" name="HighestSeverity" type="ns:NotificationSeverityType" />
          <xs:element minOccurs="1" maxOccurs="unbounded" name="Notifications" type="ns:Notification" />
          <xs:element minOccurs="0" name="TransactionDetail" type="ns:TransactionDetail" />
          <xs:element minOccurs="1" name="Version" type="ns:VersionId" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Options" type="ns:ServiceAvailabilityOption" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ServiceAvailabilityRequest">
        <xs:sequence>
          <xs:element minOccurs="1" name="WebAuthenticationDetail" type="ns:WebAuthenticationDetail">
            <xs:annotation>
              <xs:documentation>Descriptive data to be used in authentication of the sender's identity (and right to use FedEx web services).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="ClientDetail" type="ns:ClientDetail" />
          <xs:element minOccurs="0" name="TransactionDetail" type="ns:TransactionDetail" />
          <xs:element minOccurs="1" name="Version" type="ns:VersionId" />
          <xs:element minOccurs="1" name="Origin" type="ns:Address" />
          <xs:element minOccurs="1" name="Destination" type="ns:Address" />
          <xs:element minOccurs="1" name="ShipDate" type="xs:date" />
          <xs:element minOccurs="0" name="CarrierCode" type="ns:CarrierCodeType">
            <xs:annotation>
              <xs:documentation>Optionally supplied instead of service to restrict reply to services for a specific carrier.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Service" type="ns:ServiceType">
            <xs:annotation>
              <xs:documentation>Restricts reply to single service, if supplied.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Packaging" type="ns:PackagingType" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="ServiceType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="EUROPE_FIRST_INTERNATIONAL_PRIORITY" />
          <xs:enumeration value="FEDEX_1_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_2_DAY" />
          <xs:enumeration value="FEDEX_2_DAY_AM" />
          <xs:enumeration value="FEDEX_2_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_3_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_DISTANCE_DEFERRED" />
          <xs:enumeration value="FEDEX_EXPRESS_SAVER" />
          <xs:enumeration value="FEDEX_FIRST_FREIGHT" />
          <xs:enumeration value="FEDEX_GROUND" />
          <xs:enumeration value="FEDEX_NEXT_DAY_AFTERNOON" />
          <xs:enumeration value="FEDEX_NEXT_DAY_EARLY_MORNING" />
          <xs:enumeration value="FEDEX_NEXT_DAY_END_OF_DAY" />
          <xs:enumeration value="FEDEX_NEXT_DAY_FREIGHT" />
          <xs:enumeration value="FEDEX_NEXT_DAY_MID_MORNING" />
          <xs:enumeration value="FIRST_OVERNIGHT" />
          <xs:enumeration value="GROUND_HOME_DELIVERY" />
          <xs:enumeration value="INTERNATIONAL_DISTRIBUTION_FREIGHT" />
          <xs:enumeration value="INTERNATIONAL_ECONOMY" />
          <xs:enumeration value="INTERNATIONAL_ECONOMY_DISTRIBUTION" />
          <xs:enumeration value="INTERNATIONAL_ECONOMY_FREIGHT" />
          <xs:enumeration value="INTERNATIONAL_FIRST" />
          <xs:enumeration value="INTERNATIONAL_PRIORITY" />
          <xs:enumeration value="INTERNATIONAL_PRIORITY_DISTRIBUTION" />
          <xs:enumeration value="INTERNATIONAL_PRIORITY_EXPRESS" />
          <xs:enumeration value="INTERNATIONAL_PRIORITY_FREIGHT" />
          <xs:enumeration value="PRIORITY_OVERNIGHT" />
          <xs:enumeration value="SAME_DAY" />
          <xs:enumeration value="SAME_DAY_CITY" />
          <xs:enumeration value="STANDARD_OVERNIGHT" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="TransactionDetail">
        <xs:sequence>
          <xs:element minOccurs="0" name="CustomerTransactionId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Free form text to be echoed back in the reply. Used to match requests and replies.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Localization" type="ns:Localization">
            <xs:annotation>
              <xs:documentation>Governs data payload language/translations (contrasted with ClientDetail.localization, which governs Notification.localizedMessage language selection).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="TransitTimeType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="EIGHTEEN_DAYS" />
          <xs:enumeration value="EIGHT_DAYS" />
          <xs:enumeration value="ELEVEN_DAYS" />
          <xs:enumeration value="FIFTEEN_DAYS" />
          <xs:enumeration value="FIVE_DAYS" />
          <xs:enumeration value="FOURTEEN_DAYS" />
          <xs:enumeration value="FOUR_DAYS" />
          <xs:enumeration value="NINETEEN_DAYS" />
          <xs:enumeration value="NINE_DAYS" />
          <xs:enumeration value="ONE_DAY" />
          <xs:enumeration value="SEVENTEEN_DAYS" />
          <xs:enumeration value="SEVEN_DAYS" />
          <xs:enumeration value="SIXTEEN_DAYS" />
          <xs:enumeration value="SIX_DAYS" />
          <xs:enumeration value="TEN_DAYS" />
          <xs:enumeration value="THIRTEEN_DAYS" />
          <xs:enumeration value="THREE_DAYS" />
          <xs:enumeration value="TWELVE_DAYS" />
          <xs:enumeration value="TWENTY_DAYS" />
          <xs:enumeration value="TWO_DAYS" />
          <xs:enumeration value="UNKNOWN" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="WebAuthenticationDetail">
        <xs:annotation>
          <xs:documentation>Used in authentication of the sender's identity.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ParentCredential" type="ns:WebAuthenticationCredential">
            <xs:annotation>
              <xs:documentation>This was renamed from cspCredential.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="UserCredential" type="ns:WebAuthenticationCredential">
            <xs:annotation>
              <xs:documentation>Credential used to authenticate a specific software application. This value is provided by FedEx after registration.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="WebAuthenticationCredential">
        <xs:annotation>
          <xs:documentation>Two part authentication string used for the sender's identity</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" name="Key" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifying part of authentication credential. This value is provided by FedEx after registration</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" name="Password" type="xs:string">
            <xs:annotation>
              <xs:documentation>Secret part of authentication key. This value is provided by FedEx after registration.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="VersionId">
        <xs:annotation>
          <xs:documentation>Identifies the version/level of a service operation expected by a caller (in each request) and performed by the callee (in each reply).</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="1" fixed="vacs" name="ServiceId" type="xs:string">
            <xs:annotation>
              <xs:documentation>Identifies a system or sub-system which performs an operation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" fixed="8" name="Major" type="xs:int">
            <xs:annotation>
              <xs:documentation>Identifies the service business level.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" fixed="0" name="Intermediate" type="xs:int">
            <xs:annotation>
              <xs:documentation>Identifies the service interface level.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="1" fixed="0" name="Minor" type="xs:int">
            <xs:annotation>
              <xs:documentation>Identifies the service code level.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
  </types>
  <message name="ServiceAvailabilityReply">
    <part name="ServiceAvailabilityReply" element="ns:ServiceAvailabilityReply" />
  </message>
  <message name="ServiceAvailabilityRequest">
    <part name="ServiceAvailabilityRequest" element="ns:ServiceAvailabilityRequest" />
  </message>
  <portType name="ValidationAvailabilityAndCommitmentPortType">
    <operation name="serviceAvailability" parameterOrder="ServiceAvailabilityRequest">
      <input message="ns:ServiceAvailabilityRequest" />
      <output message="ns:ServiceAvailabilityReply" />
    </operation>
  </portType>
  <binding name="ValidationAvailabilityAndCommitmentServiceSoapBinding" type="ns:ValidationAvailabilityAndCommitmentPortType">
    <s1:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="serviceAvailability">
      <s1:operation soapAction="http://fedex.com/ws/vacs/v8/serviceAvailability" style="document" />
      <input>
        <s1:body use="literal" />
      </input>
      <output>
        <s1:body use="literal" />
      </output>
    </operation>
  </binding>
  <service name="ValidationAvailabilityAndCommitmentService">
    <port name="ValidationAvailabilityAndCommitmentServicePort" binding="ns:ValidationAvailabilityAndCommitmentServiceSoapBinding">
      <s1:address location="https://wsbeta.fedex.com:443/web-services/ValidationAvailabilityAndCommitment" />
    </port>
  </service>
</definitions>