<?xml version="1.0"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="urn:zimbraAdmin"
xmlns:zns="urn:zimbra"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:si="http://soapinterop.org/xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="urn:zimbraAdmin">


<types>
  <schema targetNamespace="urn:zimbra" xmlns="http://www.w3.org/2001/XMLSchema">

    <element name="sessionId">
      <complexType>
        <simpleContent>
          <extension base="xsd:string">
            <attribute name="type" type="xsd:string"/>
            <attribute name="id" type="xsd:string"/>
          </extension>
        </simpleContent>
      </complexType>
    </element>

    <element name="context">
      <complexType>
        <sequence>
          <element name="authToken" type="xsd:string"/>
          <element ref="zns:sessionId"/>
        </sequence>
      </complexType>
    </element>

  </schema>
  <schema targetNamespace="urn:zimbraAdmin" xmlns="http://www.w3.org/2001/XMLSchema">
	<xsd:import namespace="urn:zimbra"/>
    <simpleType name="intBool">
      <restriction base="xsd:string">
        <enumeration value="0"/>
        <enumeration value="1"/>
      </restriction>
    </simpleType>
    <simpleType name="byIdOrName">
      <restriction base="xsd:string">
        <enumeration value="id"/>
        <enumeration value="name"/>
      </restriction>
    </simpleType>
    <simpleType name="byIdOrNameExt">
      <restriction base="xsd:string">
        <enumeration value="id"/>
        <enumeration value="name"/>
        <enumeration value="foreignPrincipal"/>
      </restriction>
    </simpleType>
    <simpleType name="typeDomainOrUser">
      <restriction base="xsd:string">
        <enumeration value="usr"/>
        <enumeration value="domain"/>
      </restriction>
    </simpleType>

    <complexType name="ldapRecord">
      <sequence>
        <element ref="tns:a" maxOccurs="unbounded"/>
        <element name="dlm" type="xsd:string" maxOccurs="unbounded"/>
      </sequence>
      <attribute name="name" type="xsd:string"/>
      <attribute name="id" type="xsd:string"/>
    </complexType>

    <complexType name="accountRequest">
      <simpleContent>
        <extension base="xsd:string">
          <attribute name="by" type="tns:byIdOrNameExt" use="required"/>
        </extension>
      </simpleContent>
    </complexType>

    <complexType name="domainRequest">
      <simpleContent>
        <extension base="xsd:string">
          <attribute name="by" type="tns:byIdOrName" use="required"/>
        </extension>
      </simpleContent>
    </complexType>

    <complexType name="rightRequest">
      <simpleContent>
        <extension base="xsd:string">
          <attribute name="by" type="tns:byIdOrName" use="required"/>
          <attribute name="type" type="tns:typeDomainOrUser" use="required"/>
        </extension>
      </simpleContent>
    </complexType>

    <complexType name="distributionListRequest">
      <simpleContent>
        <extension base="xsd:string">
          <attribute name="by" type="tns:byIdOrName" use="required"/>
        </extension>
      </simpleContent>
    </complexType>

    <element name="a">
      <complexType>
        <simpleContent>
          <extension base="xsd:string">
            <attribute name="n" type="xsd:string"/>
            <attribute name="c" type="tns:intBool" use="optional"/>
          </extension>
        </simpleContent>
      </complexType>
    </element>

    <element name="AuthRequest">
      <complexType>
        <sequence>
          <element name="name" type="xsd:string"/>
          <element name="password" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="AuthResponse">
      <complexType>
        <sequence>
          <element name="authToken" type="xsd:string"/>
          <element name="lifetime" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
<!--           <element ref="zns:sessionId"/> -->
        </sequence>
      </complexType>
    </element>

    <element name="DelegateAuthRequest">
      <complexType>
        <sequence>
          <element name="account" type="tns:accountRequest"/>
        </sequence>
        <attribute name="duration" type="xsd:string"/>
      </complexType>
    </element>
    <element name="DelegateAuthResponse">
      <complexType>
        <sequence>
          <element name="authToken" type="xsd:string"/>
          <element name="lifetime" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>

    <element name="CreateAccountRequest">
      <complexType>
        <sequence>
          <element name="name" type="xsd:string"/>
          <element name="password" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    <element name="CreateAccountResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="GetAccountRequest">
      <complexType>
        <sequence>
          <element name="account" type="tns:accountRequest"/>
        </sequence>
        <attribute name="applyCos" type="tns:intBool"/>
      </complexType>
    </element>
    <element name="GetAccountResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="GetAllAdminAccountsRequest"/>
    <element name="GetAllAdminAccountsResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>

    <element name="ModifyAccountRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    <element name="ModifyAccountResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="RenameAccountRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element name="newName" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="RenameAccountResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="DeleteAccountRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="DeleteAccountResponse"/>

    <element name="SetPasswordRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element name="newPassword" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="SetPasswordResponse"/>

    <element name="AddAccountAliasRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element name="alias" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="AddAccountAliasResponse"/>

    <element name="RemoveAccountAliasRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element name="alias" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="RemoveAccountAliasResponse"/>

    <element name="SearchAccountsRequest">
      <complexType>
        <sequence>
          <element name="query" type="xsd:string"/>
        </sequence>
        <attribute name="limit" type="xsd:string"/>
        <attribute name="offset" type="xsd:string"/>
        <attribute name="domain" type="xsd:string"/>
        <attribute name="applyCos" type="xsd:string"/>
        <attribute name="attrs" type="xsd:string"/>
        <attribute name="sortBy" type="xsd:string"/>
        <attribute name="sortAscending" type="tns:intBool"/>
        <attribute name="types" type="xsd:string"/>
      </complexType>
    </element>
    <element name="SearchAccountsResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord" maxOccurs="unbounded"/>
          <element name="alias" type="tns:ldapRecord" maxOccurs="unbounded"/>
          <element name="dl" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="more" type="xsd:string"/>
        <attribute name="searchTotal" type="xsd:string"/>
      </complexType>
    </element>

    <element name="GetAllAccountsRequest">
      <complexType>
        <sequence>
          <element name="domain" type="tns:domainRequest" minOccurs="0"/>
        </sequence>
      </complexType>
    </element>
    <element name="GetAllAccountsResponse">
      <complexType>
        <sequence>
          <element name="account" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    
    <element name="GetAllDistributionListsRequest">
      <complexType>
        <sequence>
          <element name="domain" type="tns:domainRequest" minOccurs="0"/>
        </sequence>
      </complexType>
    </element>
    <element name="GetAllDistributionListsResponse">
      <complexType>
        <sequence>
          <element name="dl" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>

    <element name="CreateDomainRequest">
      <complexType>
        <sequence>
          <element name="name" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    <element name="CreateDomainResponse">
      <complexType>
        <sequence>
          <element name="domain" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="GetDomainRequest">
      <complexType>
        <sequence>
          <element name="domain" type="tns:domainRequest"/>
        </sequence>
        <attribute name="applyConfig" type="tns:intBool"/>
      </complexType>
    </element>
    <element name="GetDomainResponse">
      <complexType>
        <sequence>
          <element name="domain" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="GetAllDomainsRequest"/>
    <element name="GetAllDomainsResponse">
      <complexType>
        <sequence>
          <element name="domain" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>

    <element name="ModifyDomainRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    <element name="ModifyDomainResponse">
      <complexType>
        <sequence>
          <element name="domain" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="DeleteDomainRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="DeleteDomainResponse"/>

    <element name="CreateCosRequest">
      <complexType>
        <sequence>
          <element name="name" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    <element name="CreateCosResponse">
      <complexType>
        <sequence>
          <element name="cos" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="GetAllCosRequest"/>
    <element name="GetAllCosResponse">
      <complexType>
        <sequence>
          <element name="cos" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>

    <element name="ModifyCosRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element ref="tns:a" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    <element name="ModifyCosResponse">
      <complexType>
        <sequence>
          <element name="cos" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="RenameCosRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element name="newName" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="RenameCosResponse">
      <complexType>
        <sequence>
          <element name="cos" type="tns:ldapRecord"/>
        </sequence>
      </complexType>
    </element>

    <element name="DeleteCosRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="DeleteCosResponse"/>

    <element name="GrantRightRequest">
      <complexType>
        <sequence>
          <element name="target" type="tns:rightRequest"/>
          <element name="grantee" type="tns:rightRequest"/>
          <element name="right" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="GrantRightResponse"/>

    <element name="GetDistributionListRequest">
      <complexType>
        <sequence>
          <element name="dl" type="tns:distributionListRequest"/>
        </sequence>
      </complexType>
    </element>
    <element name="GetDistributionListResponse">
      <complexType>
      	<sequence>
          <element name="dl" type="tns:ldapRecord" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="total" type="xsd:string"/>
        <attribute name="more" type="xsd:string"/>
      </complexType>
    </element>

    <element name="AddDistributionListMemberRequest">
      <complexType>
        <sequence>
          <element name="id" type="xsd:string"/>
          <element name="dlm" type="xsd:string"/>
        </sequence>
      </complexType>
    </element>
    <element name="AddDistributionListMemberResponse"/>

  </schema>
</types>


<message name="context">
   <part name="context" element="zns:context"/>
</message>

<message name="AuthRequest">
   <part name="AuthRequest" element="tns:AuthRequest"/>
</message>
<message name="AuthResponse">
   <part name="AuthResponse" element="tns:AuthResponse"/>
</message>

<message name="DelegateAuthRequest">
   <part name="DelegateAuthRequest" element="tns:DelegateAuthRequest"/>
</message>
<message name="DelegateAuthResponse">
   <part name="DelegateAuthResponse" element="tns:DelegateAuthResponse"/>
</message>

<message name="CreateAccountRequest">
   <part name="CreateAccountRequest" element="tns:CreateAccountRequest" />
</message>
<message name="CreateAccountResponse">
   <part name="CreateAccountResponse" element="tns:CreateAccountResponse"/>
</message>

<message name="GetAccountRequest">
   <part name="GetAccountRequest" element="tns:GetAccountRequest"/>
</message>
<message name="GetAccountResponse">
   <part name="GetAccountResponse" element="tns:GetAccountResponse"/>
</message>

<message name="GetAllAdminAccountsRequest">
   <part name="GetAllAdminAccountsRequest" element="tns:GetAllAdminAccountsRequest"/>
</message>
<message name="GetAllAdminAccountsResponse">
   <part name="GetAllAdminAccountsResponse" element="tns:GetAllAdminAccountsResponse"/>
</message>

<message name="ModifyAccountRequest">
   <part name="ModifyAccountRequest" element="tns:ModifyAccountRequest"/>
</message>
<message name="ModifyAccountResponse">
   <part name="ModifyAccountResponse" element="tns:ModifyAccountResponse"/>
</message>

<message name="RenameAccountRequest">
   <part name="RenameAccountRequest" element="tns:RenameAccountRequest"/>
</message>
<message name="RenameAccountResponse">
   <part name="RenameAccountResponse" element="tns:RenameAccountResponse"/>
</message>

<message name="DeleteAccountRequest">
   <part name="DeleteAccountRequest" element="tns:DeleteAccountRequest"/>
</message>
<message name="DeleteAccountResponse">
   <part name="DeleteAccountResponse" element="tns:DeleteAccountResponse"/>
</message>

<message name="SetPasswordRequest">
   <part name="SetPasswordRequest" element="tns:SetPasswordRequest"/>
</message>
<message name="SetPasswordResponse">
   <part name="SetPasswordResponse" element="tns:SetPasswordResponse"/>
</message>

<message name="AddAccountAliasRequest">
   <part name="AddAccountAliasRequest" element="tns:AddAccountAliasRequest"/>
</message>
<message name="AddAccountAliasResponse">
   <part name="AddAccountAliasResponse" element="tns:AddAccountAliasResponse"/>
</message>

<message name="RemoveAccountAliasRequest">
   <part name="RemoveAccountAliasRequest" element="tns:RemoveAccountAliasRequest"/>
</message>
<message name="RemoveAccountAliasResponse">
   <part name="RemoveAccountAliasResponse" element="tns:RemoveAccountAliasResponse"/>
</message>

<message name="GetAllAccountsRequest">
   <part name="GetAllAccountsRequest" element="tns:GetAllAccountsRequest"/>
</message>
<message name="GetAllAccountsResponse">
   <part name="GetAllAccountsResponse" element="tns:GetAllAccountsResponse"/>
</message>

<message name="GetAllDistributionListsRequest">
   <part name="GetAllDistributionListsRequest" element="tns:GetAllDistributionListsRequest"/>
</message>
<message name="GetAllDistributionListsResponse">
   <part name="GetAllDistributionListsResponse" element="tns:GetAllDistributionListsResponse"/>
</message>

<message name="CreateDomainRequest">
   <part name="CreateDomainRequest" element="tns:CreateDomainRequest"/>
</message>
<message name="CreateDomainResponse">
   <part name="CreateDomainResponse" element="tns:CreateDomainResponse"/>
</message>

<message name="GetDomainRequest">
   <part name="GetDomainRequest" element="tns:GetDomainRequest"/>
</message>
<message name="GetDomainResponse">
   <part name="GetDomainResponse" element="tns:GetDomainResponse"/>
</message>

<message name="GetAllDomainsRequest">
   <part name="GetAllDomainsRequest" element="tns:GetAllDomainsRequest"/>
</message>
<message name="GetAllDomainsResponse">
   <part name="GetAllDomainsResponse" element="tns:GetAllDomainsResponse"/>
</message>

<message name="ModifyDomainRequest">
   <part name="ModifyDomainRequest" element="tns:ModifyDomainRequest"/>
</message>
<message name="ModifyDomainResponse">
   <part name="ModifyDomainResponse" element="tns:ModifyDomainResponse"/>
</message>

<message name="DeleteDomainRequest">
   <part name="DeleteDomainRequest" element="tns:DeleteDomainRequest"/>
</message>
<message name="DeleteDomainResponse">
   <part name="DeleteDomainResponse" element="tns:DeleteDomainResponse"/>
</message>

<message name="CreateCosRequest">
   <part name="CreateCosRequest" element="tns:CreateCosRequest"/>
</message>
<message name="CreateCosResponse">
   <part name="CreateCosResponse" element="tns:CreateCosResponse"/>
</message>

<message name="GetAllCosRequest">
   <part name="GetAllCosRequest" element="tns:GetAllCosRequest"/>
</message>
<message name="GetAllCosResponse">
   <part name="GetAllCosResponse" element="tns:GetAllCosResponse"/>
</message>

<message name="ModifyCosRequest">
   <part name="ModifyCosRequest" element="tns:ModifyCosRequest"/>
</message>
<message name="ModifyCosResponse">
   <part name="ModifyCosResponse" element="tns:ModifyCosResponse"/>
</message>

<message name="DeleteCosRequest">
   <part name="DeleteCosRequest" element="tns:DeleteCosRequest"/>
</message>
<message name="DeleteCosResponse">
   <part name="DeleteCosResponse" element="tns:DeleteCosResponse"/>
</message>

<message name="GrantRightRequest">
   <part name="GrantRightRequest" element="tns:GrantRightRequest"/>
</message>
<message name="GrantRightResponse">
   <part name="GrantRightResponse" element="tns:GrantRightResponse"/>
</message>

<message name="GetDistributionListRequest">
   <part name="GetDistributionListRequest" element="tns:GetDistributionListRequest"/>
</message>
<message name="GetDistributionListResponse">
   <part name="GetDistributionListResponse" element="tns:GetDistributionListResponse"/>
</message>

<message name="AddDistributionListMemberRequest">
   <part name="AddDistributionListMemberRequest" element="tns:AddDistributionListMemberRequest"/>
</message>
<message name="AddDistributionListMemberResponse">
   <part name="AddDistributionListMemberResponse" element="tns:AddDistributionListMemberResponse"/>
</message>

<portType name="ZimbraServicePort">

  <operation name="AuthRequest">
      <input message="tns:AuthRequest"/>
      <output message="tns:AuthResponse"/>
  </operation>

  <operation name="DelegateAuthRequest">
    <input message="tns:DelegateAuthRequest"/>
    <output message="tns:DelegateAuthResponse"/>
  </operation>

  <operation name="CreateAccountRequest">
    <input message="tns:CreateAccountRequest"/>
    <output message="tns:CreateAccountResponse"/>
  </operation>

  <operation name="GetAccountRequest">
    <input message="tns:GetAccountRequest"/>
    <output message="tns:GetAccountResponse"/>
  </operation>

  <operation name="GetAllAdminAccountsRequest">
    <input message="tns:GetAllAdminAccountsRequest"/>
    <output message="tns:GetAllAdminAccountsResponse"/>
  </operation>

  <operation name="ModifyAccountRequest">
    <input message="tns:ModifyAccountRequest"/>
    <output message="tns:ModifyAccountResponse"/>
  </operation>

  <operation name="RenameAccountRequest">
    <input message="tns:RenameAccountRequest"/>
    <output message="tns:RenameAccountResponse"/>
  </operation>

  <operation name="DeleteAccountRequest">
    <input message="tns:DeleteAccountRequest"/>
    <output message="tns:DeleteAccountResponse"/>
  </operation>

  <operation name="SetPasswordRequest">
    <input message="tns:SetPasswordRequest"/>
    <output message="tns:SetPasswordResponse"/>
  </operation>

  <operation name="AddAccountAliasRequest">
    <input message="tns:AddAccountAliasRequest"/>
    <output message="tns:AddAccountAliasResponse"/>
  </operation>

  <operation name="RemoveAccountAliasRequest">
    <input message="tns:RemoveAccountAliasRequest"/>
    <output message="tns:RemoveAccountAliasResponse"/>
  </operation>

  <operation name="GetAllAccountsRequest">
    <input message="tns:GetAllAccountsRequest"/>
    <output message="tns:GetAllAccountsResponse"/>
  </operation>
  
  <operation name="GetAllDistributionListsRequest">
    <input message="tns:GetAllDistributionListsRequest"/>
    <output message="tns:GetAllDistributionListsResponse"/>
  </operation>

  <operation name="CreateDomainRequest">
    <input message="tns:CreateDomainRequest"/>
    <output message="tns:CreateDomainResponse"/>
  </operation>

  <operation name="GetDomainRequest">
    <input message="tns:GetDomainRequest"/>
    <output message="tns:GetDomainResponse"/>
  </operation>

  <operation name="GetAllDomainsRequest">
    <input message="tns:GetAllDomainsRequest"/>
    <output message="tns:GetAllDomainsResponse"/>
  </operation>

  <operation name="ModifyDomainRequest">
    <input message="tns:ModifyDomainRequest"/>
    <output message="tns:ModifyDomainResponse"/>
  </operation>

  <operation name="DeleteDomainRequest">
    <input message="tns:DeleteDomainRequest"/>
    <output message="tns:DeleteDomainResponse"/>
  </operation>

  <operation name="CreateCosRequest">
    <input message="tns:CreateCosRequest"/>
    <output message="tns:CreateCosResponse"/>
  </operation>

  <operation name="GetAllCosRequest">
    <input message="tns:GetAllCosRequest"/>
    <output message="tns:GetAllCosResponse"/>
  </operation>

  <operation name="ModifyCosRequest">
    <input message="tns:ModifyCosRequest"/>
    <output message="tns:ModifyCosResponse"/>
  </operation>

  <operation name="DeleteCosRequest">
    <input message="tns:DeleteCosRequest"/>
    <output message="tns:DeleteCosResponse"/>
  </operation>

  <operation name="GrantRightRequest">
    <input message="tns:GrantRightRequest"/>
    <output message="tns:GrantRightResponse"/>
  </operation>

  <operation name="GetDistributionListRequest">
    <input message="tns:GetDistributionListRequest"/>
    <output message="tns:GetDistributionListResponse"/>
  </operation>

  <operation name="AddDistributionListMemberRequest">
    <input message="tns:AddDistributionListMemberRequest"/>
    <output message="tns:AddDistributionListMemberResponse"/>
  </operation>

</portType>

<binding name="AppBinding" type="tns:ZimbraServicePort">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  
  <operation name="AuthRequest">
    <soap:operation soapAction="/service/admin/soap/AuthRequest"/>
    <input>
       <soap:body use="literal"/>
    </input>
    <output>
       <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="DelegateAuthRequest">
    <soap:operation soapAction="/service/admin/soap/DelegateAuthRequest"/>
    <input>
      <soap:header use="literal" message="tns:AuthRequest" part="AuthRequest"/>
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:AuthResponse" part="AuthResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="CreateAccountRequest">
    <soap:operation soapAction="/service/admin/soap/CreateAccountRequest"/>
    <input>
      <soap:header use="literal" message="tns:CreateAccountRequest" part="CreateAccountRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:CreateAccountResponse" part="CreateAccountResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetAccountRequest">
    <soap:operation soapAction="/service/admin/soap/GetAccountRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetAccountRequest" part="GetAccountRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetAccountResponse" part="GetAccountResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetAllAdminAccountsRequest">
    <soap:operation soapAction="/service/admin/soap/GetAllAdminAccountsRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetAllAdminAccountsRequest" part="GetAllAdminAccountsRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetAllAdminAccountsResponse" part="GetAllAdminAccountsResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="ModifyAccountRequest">
    <soap:operation soapAction="/service/admin/soap/ModifyAccountRequest"/>
    <input>
      <soap:header use="literal" message="tns:ModifyAccountRequest" part="ModifyAccountRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:ModifyAccountResponse" part="ModifyAccountResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="RenameAccountRequest">
    <soap:operation soapAction="/service/admin/soap/RenameAccountRequest"/>
    <input>
      <soap:header use="literal" message="tns:RenameAccountRequest" part="RenameAccountRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:RenameAccountResponse" part="RenameAccountResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="DeleteAccountRequest">
    <soap:operation soapAction="/service/admin/soap/DeleteAccountRequest"/>
    <input>
      <soap:header use="literal" message="tns:DeleteAccountRequest" part="DeleteAccountRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:DeleteAccountResponse" part="DeleteAccountResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="SetPasswordRequest">
    <soap:operation soapAction="/service/admin/soap/SetPasswordRequest"/>
    <input>
      <soap:header use="literal" message="tns:SetPasswordRequest" part="SetPasswordRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:SetPasswordResponse" part="SetPasswordResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="AddAccountAliasRequest">
    <soap:operation soapAction="/service/admin/soap/AddAccountAliasRequest"/>
    <input>
      <soap:header use="literal" message="tns:AddAccountAliasRequest" part="AddAccountAliasRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:AddAccountAliasResponse" part="AddAccountAliasResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="RemoveAccountAliasRequest">
    <soap:operation soapAction="/service/admin/soap/RemoveAccountAliasRequest"/>
    <input>
      <soap:header use="literal" message="tns:RemoveAccountAliasRequest" part="RemoveAccountAliasRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:RemoveAccountAliasResponse" part="RemoveAccountAliasResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetAllAccountsRequest">
    <soap:operation soapAction="/service/admin/soap/GetAllAccountsRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetAllAccountsRequest" part="GetAllAccountsRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetAllAccountsResponse" part="GetAllAccountsResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>
  
  <operation name="GetAllDistributionListsRequest">
    <soap:operation soapAction="/service/admin/soap/GetAllDistributionListsRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetAllDistributionListsRequest" part="GetAllDistributionListsRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetAllDistributionListsResponse" part="GetAllDistributionListsResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="CreateDomainRequest">
    <soap:operation soapAction="/service/admin/soap/CreateDomainRequest"/>
    <input>
      <soap:header use="literal" message="tns:CreateDomainRequest" part="CreateDomainRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:CreateDomainResponse" part="CreateDomainResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetDomainRequest">
    <soap:operation soapAction="/service/admin/soap/GetDomainRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetDomainRequest" part="GetDomainRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetDomainResponse" part="GetDomainResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetAllDomainsRequest">
    <soap:operation soapAction="/service/admin/soap/GetAllDomainsRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetAllDomainsRequest" part="GetAllDomainsRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetAllDomainsResponse" part="GetAllDomainsResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="ModifyDomainRequest">
    <soap:operation soapAction="/service/admin/soap/ModifyDomainRequest"/>
    <input>
      <soap:header use="literal" message="tns:ModifyDomainRequest" part="ModifyDomainRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:ModifyDomainResponse" part="ModifyDomainResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="DeleteDomainRequest">
    <soap:operation soapAction="/service/admin/soap/DeleteDomainRequest"/>
    <input>
      <soap:header use="literal" message="tns:DeleteDomainRequest" part="DeleteDomainRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:DeleteDomainResponse" part="DeleteDomainResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="CreateCosRequest">
    <soap:operation soapAction="/service/admin/soap/CreateCosRequest"/>
    <input>
      <soap:header use="literal" message="tns:CreateCosRequest" part="CreateCosRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:CreateCosResponse" part="CreateCosResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetAllCosRequest">
    <soap:operation soapAction="/service/admin/soap/GetAllCosRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetAllCosRequest" part="GetAllCosRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetAllCosResponse" part="GetAllCosResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="ModifyCosRequest">
    <soap:operation soapAction="/service/admin/soap/ModifyCosRequest"/>
    <input>
      <soap:header use="literal" message="tns:ModifyCosRequest" part="ModifyCosRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:ModifyCosResponse" part="ModifyCosResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="DeleteCosRequest">
    <soap:operation soapAction="/service/admin/soap/DeleteCosRequest"/>
    <input>
      <soap:header use="literal" message="tns:DeleteCosRequest" part="DeleteCosRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:DeleteCosResponse" part="DeleteCosResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GrantRightRequest">
    <soap:operation soapAction="/service/admin/soap/GrantRightRequest"/>
    <input>
      <soap:header use="literal" message="tns:GrantRightRequest" part="GrantRightRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GrantRightResponse" part="GrantRightResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="GetDistributionListRequest">
    <soap:operation soapAction="/service/admin/soap/GetDistributionListRequest"/>
    <input>
      <soap:header use="literal" message="tns:GetDistributionListRequest" part="GetDistributionListRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:GetDistributionListResponse" part="GetDistributionListResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>

  <operation name="AddDistributionListMemberRequest">
    <soap:operation soapAction="/service/admin/soap/AddDistributionListMemberRequest"/>
    <input>
      <soap:header use="literal" message="tns:AddDistributionListMemberRequest" part="AddDistributionListMemberRequest" />
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:header use="literal" message="tns:AddDistributionListMemberResponse" part="AddDistributionListMemberResponse" />
      <soap:body use="literal"/>
    </output>
  </operation>
</binding>


<service name="ZimbraService">
  <documentation>Zimbra's Admin SOAP API.</documentation>

  <port name="ZimbraServicePort" binding="tns:AppBinding">
    <soap:address location="https://yourserver.com:7071/service/admin/soap"/>
  </port>
</service>

</definitions>

