<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://api.example.com/api/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://api.example.com/api/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://api.example.com/api/">
      <s:element name="User.GetApiKey">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="SiteUrl" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="User.GetApiKeyResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="User.GetApiKeyResult"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="Result">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Code" type="s:int"/>
          <s:element minOccurs="0" maxOccurs="1" name="Message" type="s:string"/>
        </s:sequence>
      </s:complexType>
      <s:complexType name="Client">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="ClientID" type="s:string"/>
          <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string"/>
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfClient">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Client" nillable="true" type="tns:Client"/>
        </s:sequence>
      </s:complexType>
      <s:element name="Client.Delete">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
            <s:element minOccurs="0" maxOccurs="1" name="ClientID" type="s:string"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="Client.DeleteResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="Client.DeleteResult" type="tns:Result"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="User.GetClients">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="User.GetClientsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="User.GetClientsResult"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="anyType" nillable="true"/>
      <s:element name="Result" nillable="true" type="tns:Result"/>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="User.GetApiKeySoapIn">
    <wsdl:part name="parameters" element="tns:User.GetApiKey"/>
  </wsdl:message>
  <wsdl:message name="User.GetApiKeySoapOut">
    <wsdl:part name="parameters" element="tns:User.GetApiKeyResponse"/>
  </wsdl:message>
  <wsdl:message name="Client.DeleteSoapIn">
    <wsdl:part name="parameters" element="tns:Client.Delete"/>
  </wsdl:message>
  <wsdl:message name="Client.DeleteSoapOut">
    <wsdl:part name="parameters" element="tns:Client.DeleteResponse"/>
  </wsdl:message>
  <wsdl:message name="User.GetClientsSoapIn">
    <wsdl:part name="parameters" element="tns:User.GetClients"/>
  </wsdl:message>
  <wsdl:message name="User.GetClientsSoapOut">
    <wsdl:part name="parameters" element="tns:User.GetClientsResponse"/>
  </wsdl:message>
  <wsdl:message name="User.GetApiKeyHttpGetIn">
    <wsdl:part name="SiteUrl" type="s:string"/>
    <wsdl:part name="Username" type="s:string"/>
    <wsdl:part name="Password" type="s:string"/>
  </wsdl:message>
  <wsdl:message name="User.GetApiKeyHttpGetOut">
    <wsdl:part name="Body" element="tns:anyType"/>
  </wsdl:message>
  <wsdl:message name="Client.DeleteHttpGetIn">
    <wsdl:part name="ApiKey" type="s:string"/>
    <wsdl:part name="ClientID" type="s:string"/>
  </wsdl:message>
  <wsdl:message name="Client.DeleteHttpGetOut">
    <wsdl:part name="Body" element="tns:Result"/>
  </wsdl:message>
  <wsdl:message name="User.GetClientsHttpGetIn">
    <wsdl:part name="ApiKey" type="s:string"/>
  </wsdl:message>
  <wsdl:message name="User.GetClientsHttpGetOut">
    <wsdl:part name="Body" element="tns:anyType"/>
  </wsdl:message>
  <wsdl:message name="User.GetApiKeyHttpPostIn">
    <wsdl:part name="SiteUrl" type="s:string"/>
    <wsdl:part name="Username" type="s:string"/>
    <wsdl:part name="Password" type="s:string"/>
  </wsdl:message>
  <wsdl:message name="User.GetApiKeyHttpPostOut">
    <wsdl:part name="Body" element="tns:anyType"/>
  </wsdl:message>
  <wsdl:message name="Client.DeleteHttpPostIn">
    <wsdl:part name="ApiKey" type="s:string"/>
    <wsdl:part name="ClientID" type="s:string"/>
  </wsdl:message>
  <wsdl:message name="Client.DeleteHttpPostOut">
    <wsdl:part name="Body" element="tns:Result"/>
  </wsdl:message>
  <wsdl:message name="User.GetClientsHttpPostIn">
    <wsdl:part name="ApiKey" type="s:string"/>
  </wsdl:message>
  <wsdl:message name="User.GetClientsHttpPostOut">
    <wsdl:part name="Body" element="tns:anyType"/>
  </wsdl:message>
  <wsdl:portType name="apiSoap">
    <wsdl:operation name="GetApiKey">
      <wsdl:input name="User.GetApiKey" message="tns:User.GetApiKeySoapIn"/>
      <wsdl:output name="User.GetApiKey" message="tns:User.GetApiKeySoapOut"/>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <wsdl:input name="Client.Delete" message="tns:Client.DeleteSoapIn"/>
      <wsdl:output name="Client.Delete" message="tns:Client.DeleteSoapOut"/>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <wsdl:input name="User.GetClients" message="tns:User.GetClientsSoapIn"/>
      <wsdl:output name="User.GetClients" message="tns:User.GetClientsSoapOut"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:portType name="apiHttpGet">
    <wsdl:operation name="GetApiKey">
      <wsdl:input name="User.GetApiKey" message="tns:User.GetApiKeyHttpGetIn"/>
      <wsdl:output name="User.GetApiKey" message="tns:User.GetApiKeyHttpGetOut"/>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <wsdl:input name="Client.Delete" message="tns:Client.DeleteHttpGetIn"/>
      <wsdl:output name="Client.Delete" message="tns:Client.DeleteHttpGetOut"/>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <wsdl:input name="User.GetClients" message="tns:User.GetClientsHttpGetIn"/>
      <wsdl:output name="User.GetClients" message="tns:User.GetClientsHttpGetOut"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:portType name="apiHttpPost">
    <wsdl:operation name="GetApiKey">
      <wsdl:input name="User.GetApiKey" message="tns:User.GetApiKeyHttpPostIn"/>
      <wsdl:output name="User.GetApiKey" message="tns:User.GetApiKeyHttpPostOut"/>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <wsdl:input name="Client.Delete" message="tns:Client.DeleteHttpPostIn"/>
      <wsdl:output name="Client.Delete" message="tns:Client.DeleteHttpPostOut"/>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <wsdl:input name="User.GetClients" message="tns:User.GetClientsHttpPostIn"/>
      <wsdl:output name="User.GetClients" message="tns:User.GetClientsHttpPostOut"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="apiSoap" type="tns:apiSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="GetApiKey">
      <soap:operation soapAction="http://api.example.com/api/User.GetApiKey" style="document"/>
      <wsdl:input name="User.GetApiKey">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="User.GetApiKey">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <soap:operation soapAction="http://api.example.com/api/Client.Delete" style="document"/>
      <wsdl:input name="Client.Delete">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="Client.Delete">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <soap:operation soapAction="http://api.example.com/api/User.GetClients" style="document"/>
      <wsdl:input name="User.GetClients">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="User.GetClients">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="apiSoap12" type="tns:apiSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="GetApiKey">
      <soap12:operation soapAction="http://api.example.com/api/User.GetApiKey" style="document"/>
      <wsdl:input name="User.GetApiKey">
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="User.GetApiKey">
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <soap12:operation soapAction="http://api.example.com/api/Client.Delete" style="document"/>
      <wsdl:input name="Client.Delete">
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="Client.Delete">
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <soap12:operation soapAction="http://api.example.com/api/User.GetClients" style="document"/>
      <wsdl:input name="User.GetClients">
        <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="User.GetClients">
        <soap12:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="apiHttpGet" type="tns:apiHttpGet">
    <http:binding verb="GET"/>
    <wsdl:operation name="GetApiKey">
      <http:operation location="/User.GetApiKey"/>
      <wsdl:input name="User.GetApiKey">
        <http:urlEncoded/>
      </wsdl:input>
      <wsdl:output name="User.GetApiKey">
        <mime:mimeXml part="Body"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <http:operation location="/Client.Delete"/>
      <wsdl:input name="Client.Delete">
        <http:urlEncoded/>
      </wsdl:input>
      <wsdl:output name="Client.Delete">
        <mime:mimeXml part="Body"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <http:operation location="/User.GetClients"/>
      <wsdl:input name="User.GetClients">
        <http:urlEncoded/>
      </wsdl:input>
      <wsdl:output name="User.GetClients">
        <mime:mimeXml part="Body"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="apiHttpPost" type="tns:apiHttpPost">
    <http:binding verb="POST"/>
    <wsdl:operation name="GetApiKey">
      <http:operation location="/User.GetApiKey"/>
      <wsdl:input name="User.GetApiKey">
        <mime:content type="application/x-www-form-urlencoded"/>
      </wsdl:input>
      <wsdl:output name="User.GetApiKey">
        <mime:mimeXml part="Body"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="DeleteClient">
      <http:operation location="/Client.Delete"/>
      <wsdl:input name="Client.Delete">
        <mime:content type="application/x-www-form-urlencoded"/>
      </wsdl:input>
      <wsdl:output name="Client.Delete">
        <mime:mimeXml part="Body"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetClients">
      <http:operation location="/User.GetClients"/>
      <wsdl:input name="User.GetClients">
        <mime:content type="application/x-www-form-urlencoded"/>
      </wsdl:input>
      <wsdl:output name="User.GetClients">
        <mime:mimeXml part="Body"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="api">
    <wsdl:port name="apiSoap" binding="tns:apiSoap">
      <soap:address location="https://api.example.com/api/api.asmx"/>
    </wsdl:port>
    <wsdl:port name="apiSoap12" binding="tns:apiSoap12">
      <soap12:address location="https://api.example.com/api/api.asmx"/>
    </wsdl:port>
    <wsdl:port name="apiHttpGet" binding="tns:apiHttpGet">
      <http:address location="https://api.example.com/api/api.asmx"/>
    </wsdl:port>
    <wsdl:port name="apiHttpPost" binding="tns:apiHttpPost">
      <http:address location="https://api.example.com/api/api.asmx"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
