<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:InventoryControllerwsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" name="InventoryController" targetNamespace="urn:InventoryControllerwsdl">
  <wsdl:types>
    <xsd:schema targetNamespace="urn:InventoryControllerwsdl">
      <xsd:complexType name="InventoryLevels">
        <xsd:all>
          <xsd:element name="productNumber" type="xsd:string"/>
          <xsd:element name="productColorInventories" type="tns:ProductColorInventoryArray"/>
          <xsd:element name="companionProductInventoryLevels" type="tns:CompanionProductInventoryLevelsArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ProductColorInventoryArray">
        <xsd:complexContent>
          <xsd:restriction base="soap-enc:Array">
            <xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:ProductColorInventory[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ProductColorInventory">
        <xsd:all>
          <xsd:element name="part_number" type="xsd:string"/>
          <xsd:element name="quantity_available" type="xsd:string"/>
          <xsd:element name="color" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="CompanionProductInventoryLevelsArray">
        <xsd:complexContent>
          <xsd:restriction base="soap-enc:Array">
            <xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:CompanionProductInventoryLevels[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="CompanionProductInventoryLevels">
        <xsd:all>
          <xsd:element name="label" type="xsd:string"/>
          <xsd:element name="productNumber" type="xsd:string"/>
          <xsd:element name="productColorInventories" type="tns:ProductColorInventoryArray"/>
          <xsd:element name="companionProductInventoryLevels" type="tns:CompanionProductInventoryLevelsArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ReserveStockResponse">
        <xsd:all>
          <xsd:element name="holdId" type="xsd:string"/>
          <xsd:element name="holdValid" type="xsd:string"/>
          <xsd:element name="holdTill" type="xsd:string"/>
          <xsd:element name="rawMaterial" type="xsd:string"/>
          <xsd:element name="erpMessage" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="RemoveInventoryHoldResponse">
        <xsd:all>
          <xsd:element name="holdRemoved" type="xsd:boolean"/>
        </xsd:all>
      </xsd:complexType>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="getLevelsRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
    <wsdl:part name="includeOutlet" type="xsd:boolean"/>
    <wsdl:part name="includeCompanionPart" type="xsd:boolean"/>
  </wsdl:message>
  <wsdl:message name="getLevelsResponse">
    <wsdl:part name="return" type="tns:InventoryLevels"/>
  </wsdl:message>
  <wsdl:message name="getLevelsWh30Request">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
    <wsdl:part name="partNumber" type="xsd:string"/>
    <wsdl:part name="useCache" type="xsd:boolean"/>
  </wsdl:message>
  <wsdl:message name="getLevelsWh30Response">
    <wsdl:part name="return" type="tns:InventoryLevels"/>
  </wsdl:message>
  <wsdl:message name="getLevelsBlowoutRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="getLevelsBlowoutResponse">
    <wsdl:part name="return" type="tns:InventoryLevels"/>
  </wsdl:message>
  <wsdl:message name="getLevelsOutletRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="getLevelsOutletResponse">
    <wsdl:part name="return" type="tns:InventoryLevels"/>
  </wsdl:message>
  <wsdl:message name="reserveStockRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
    <wsdl:part name="holdQuantity" type="xsd:string"/>
    <wsdl:part name="requiredDate" type="xsd:string"/>
    <wsdl:part name="holdTime" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="reserveStockResponse">
    <wsdl:part name="return" type="tns:ReserveStockResponse"/>
  </wsdl:message>
  <wsdl:message name="reserveStockV2Request">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
    <wsdl:part name="holdQuantity" type="xsd:string"/>
    <wsdl:part name="requiredDate" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="reserveStockV2Response">
    <wsdl:part name="return" type="tns:ReserveStockResponse"/>
  </wsdl:message>
  <wsdl:message name="removeInventoryHoldV2Request">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="productNumber" type="xsd:string"/>
    <wsdl:part name="holdQuantity" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="removeInventoryHoldV2Response">
    <wsdl:part name="return" type="tns:ReserveStockResponse"/>
  </wsdl:message>
  <wsdl:message name="removeInventoryHoldV2ByLotlessRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="id" type="xsd:integer"/>
  </wsdl:message>
  <wsdl:message name="removeInventoryHoldV2ByLotlessResponse">
    <wsdl:part name="return" type="tns:ReserveStockResponse"/>
  </wsdl:message>
  <wsdl:message name="checkInventoryHoldRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="checkInventoryHoldResponse">
    <wsdl:part name="return" type="soap-enc:Array"/>
  </wsdl:message>
  <wsdl:message name="removeInventoryHoldRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="holdId" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="removeInventoryHoldResponse">
    <wsdl:part name="return" type="tns:RemoveInventoryHoldResponse"/>
  </wsdl:message>
  <wsdl:portType name="InventoryControllerPortType">
    <wsdl:operation name="getLevels">
      <wsdl:documentation>Gets the inventory levels data.</wsdl:documentation>
      <wsdl:input message="tns:getLevelsRequest"/>
      <wsdl:output message="tns:getLevelsResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getLevelsWh30">
      <wsdl:documentation>Gets the inventory levels data for wh 30 only.</wsdl:documentation>
      <wsdl:input message="tns:getLevelsWh30Request"/>
      <wsdl:output message="tns:getLevelsWh30Response"/>
    </wsdl:operation>
    <wsdl:operation name="getLevelsBlowout">
      <wsdl:documentation>Gets the inventory levels data for blowout items.</wsdl:documentation>
      <wsdl:input message="tns:getLevelsBlowoutRequest"/>
      <wsdl:output message="tns:getLevelsBlowoutResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getLevelsOutlet">
      <wsdl:documentation>Gets the inventory levels data for outlet items.</wsdl:documentation>
      <wsdl:input message="tns:getLevelsOutletRequest"/>
      <wsdl:output message="tns:getLevelsOutletResponse"/>
    </wsdl:operation>
    <wsdl:operation name="reserveStock">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:reserveStockRequest"/>
      <wsdl:output message="tns:reserveStockResponse"/>
    </wsdl:operation>
    <wsdl:operation name="reserveStockV2">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:reserveStockV2Request"/>
      <wsdl:output message="tns:reserveStockV2Response"/>
    </wsdl:operation>
    <wsdl:operation name="removeInventoryHoldV2">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:removeInventoryHoldV2Request"/>
      <wsdl:output message="tns:removeInventoryHoldV2Response"/>
    </wsdl:operation>
    <wsdl:operation name="removeInventoryHoldV2ByLotless">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:removeInventoryHoldV2ByLotlessRequest"/>
      <wsdl:output message="tns:removeInventoryHoldV2ByLotlessResponse"/>
    </wsdl:operation>
    <wsdl:operation name="checkInventoryHold">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:checkInventoryHoldRequest"/>
      <wsdl:output message="tns:checkInventoryHoldResponse"/>
    </wsdl:operation>
    <wsdl:operation name="removeInventoryHold">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:removeInventoryHoldRequest"/>
      <wsdl:output message="tns:removeInventoryHoldResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="InventoryControllerBinding" type="tns:InventoryControllerPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getLevels">
      <soap:operation soapAction="urn:InventoryControllerwsdl#getLevels" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getLevelsWh30">
      <soap:operation soapAction="urn:InventoryControllerwsdl#getLevelsWh30" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getLevelsBlowout">
      <soap:operation soapAction="urn:InventoryControllerwsdl#getLevelsBlowout" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getLevelsOutlet">
      <soap:operation soapAction="urn:InventoryControllerwsdl#getLevelsOutlet" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="reserveStock">
      <soap:operation soapAction="urn:InventoryControllerwsdl#reserveStock" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="reserveStockV2">
      <soap:operation soapAction="urn:InventoryControllerwsdl#reserveStockV2" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeInventoryHoldV2">
      <soap:operation soapAction="urn:InventoryControllerwsdl#removeInventoryHoldV2" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeInventoryHoldV2ByLotless">
      <soap:operation soapAction="urn:InventoryControllerwsdl#removeInventoryHoldV2ByLotless" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="checkInventoryHold">
      <soap:operation soapAction="urn:InventoryControllerwsdl#checkInventoryHold" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="removeInventoryHold">
      <soap:operation soapAction="urn:InventoryControllerwsdl#removeInventoryHold" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:InventoryControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="InventoryControllerService">
    <wsdl:port name="InventoryControllerPort" binding="tns:InventoryControllerBinding">
      <soap:address location="https://ds.hitpromo.net/inventory/inventory?ws=1"/>
    </wsdl:port>
  </wsdl:service>
</definitions>
