<?xml version="1.0" encoding="utf-8"?>

<wsdl:definitions 
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
	name="ActiveDirMaintServiceWsd" 
	targetNamespace="urn:ActiveDirMaintServiceWsd" 
	xmlns:bns0="urn:ActiveDirMaintServiceWsd/Config/rpc" 
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:ns0="urn:com.riotinto.ldap"
	xmlns:ns1="http://www.w3.org/2001/XMLSchema"
	xmlns:ns2="urn:ActiveDirMaintServiceWsd/ActiveDirMaintServiceVi">

  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:java.lang" xmlns:tns="urn:java.lang" elementFormDefault="qualified">
      <xs:complexType name="Exception">
        <xs:complexContent>
          <xs:extension base="tns:Throwable">
            <xs:sequence/>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Throwable">
        <xs:sequence>
          <xs:element name="message" type="xs:string" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:com.riotinto.ldap" xmlns:tns="urn:com.riotinto.ldap" elementFormDefault="qualified">
      <xs:complexType name="GroupMember">
        <xs:sequence>
          <xs:element name="distinguishedName" type="xs:string" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GroupMemberDetails">
        <xs:sequence>
          <xs:element name="groupMember" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="groupName" type="xs:string" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SapUserDetails">
        <xs:sequence>
          <xs:element name="adUserID" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="emailAddress" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="givenName" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="groupMember" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="sapUser" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="surname" type="xs:string" nillable="true" minOccurs="0"/>
          <xs:element name="telephoneNumber" type="xs:string" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGroupMember">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="GroupMember" type="tns:GroupMember" nillable="true"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfSapUserDetails">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="SapUserDetails" type="tns:SapUserDetails" nillable="true"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGroupMemberDetails">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="GroupMemberDetails" type="tns:GroupMemberDetails" nillable="true"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ActiveDirMaintServiceWsd/ActiveDirMaintServiceVi" xmlns:tns="urn:ActiveDirMaintServiceWsd/ActiveDirMaintServiceVi" elementFormDefault="qualified" xmlns:s0="urn:java.lang">
      <xs:import namespace="urn:java.lang"/>
      <xs:element name="addGroupMember_java.lang.Exception" type="s0:Exception"/>
      <xs:element name="getSapUserDetails_java.lang.Exception" type="s0:Exception"/>
      <xs:element name="removeGroupMember_java.lang.Exception" type="s0:Exception"/>
      <xs:element name="syncGroupMembers_java.lang.Exception" type="s0:Exception"/>
    </xs:schema>
  </wsdl:types>

  <wsdl:message name="addGroupMemberIn">
    <wsdl:part name="groupMembers" type="ns0:ArrayOfGroupMemberDetails"/>
    <wsdl:part name="ldapService" type="ns1:string"/>
  </wsdl:message>
  <wsdl:message name="addGroupMemberOut">
    <wsdl:part name="Response" type="ns1:boolean"/>
  </wsdl:message>
  <wsdl:message name="addGroupMember_java.lang.Exception_doc">
    <wsdl:part name="errorPart" element="ns2:addGroupMember_java.lang.Exception"/>
  </wsdl:message>
  <wsdl:message name="getSapUserDetailsIn">
    <wsdl:part name="ldapService" type="ns1:string"/>
    <wsdl:part name="delta" type="ns1:boolean"/>
    <wsdl:part name="deltaDate" type="ns1:dateTime"/>
  </wsdl:message>
  <wsdl:message name="getSapUserDetailsOut">
    <wsdl:part name="Response" type="ns0:ArrayOfSapUserDetails"/>
  </wsdl:message>
  <wsdl:message name="getSapUserDetails_java.lang.Exception_doc">
    <wsdl:part name="errorPart" element="ns2:getSapUserDetails_java.lang.Exception"/>
  </wsdl:message>
  <wsdl:message name="removeGroupMemberIn">
    <wsdl:part name="groupMembers" type="ns0:ArrayOfGroupMemberDetails"/>
    <wsdl:part name="ldapService" type="ns1:string"/>
  </wsdl:message>
  <wsdl:message name="removeGroupMemberOut">
    <wsdl:part name="Response" type="ns1:boolean"/>
  </wsdl:message>
  <wsdl:message name="removeGroupMember_java.lang.Exception_doc">
    <wsdl:part name="errorPart" element="ns2:removeGroupMember_java.lang.Exception"/>
  </wsdl:message>
  <wsdl:message name="syncGroupMembersIn">
    <wsdl:part name="ldapReadService" type="ns1:string"/>
    <wsdl:part name="ldapWriteService" type="ns1:string"/>
    <wsdl:part name="membersDN" type="ns0:ArrayOfGroupMember"/>
    <wsdl:part name="groupNameDN" type="ns1:string"/>
    <wsdl:part name="syncAll" type="ns1:boolean"/>
  </wsdl:message>
  <wsdl:message name="syncGroupMembersOut">
    <wsdl:part name="Response" type="ns1:boolean"/>
  </wsdl:message>
  <wsdl:message name="syncGroupMembers_java.lang.Exception_doc">
    <wsdl:part name="errorPart" element="ns2:syncGroupMembers_java.lang.Exception"/>
  </wsdl:message>
  <wsdl:portType name="ActiveDirMaintServiceVi_Rpc">
    <wsdl:operation name="addGroupMember">
      <wsdl:input message="tns:addGroupMemberIn"/>
      <wsdl:output message="tns:addGroupMemberOut"/>
      <wsdl:fault name="java.lang.Exception" message="tns:addGroupMember_java.lang.Exception_doc"/>
    </wsdl:operation>
    <wsdl:operation name="getSapUserDetails">
      <wsdl:input message="tns:getSapUserDetailsIn"/>
      <wsdl:output message="tns:getSapUserDetailsOut"/>
      <wsdl:fault name="java.lang.Exception" message="tns:getSapUserDetails_java.lang.Exception_doc"/>
    </wsdl:operation>
    <wsdl:operation name="removeGroupMember">
      <wsdl:input message="tns:removeGroupMemberIn"/>
      <wsdl:output message="tns:removeGroupMemberOut"/>
      <wsdl:fault name="java.lang.Exception" message="tns:removeGroupMember_java.lang.Exception_doc"/>
    </wsdl:operation>
    <wsdl:operation name="syncGroupMembers">
      <wsdl:input message="tns:syncGroupMembersIn"/>
      <wsdl:output message="tns:syncGroupMembersOut"/>
      <wsdl:fault name="java.lang.Exception" message="tns:syncGroupMembers_java.lang.Exception_doc"/>
    </wsdl:operation>
  </wsdl:portType>





  <wsdl:binding name="ConfigBinding" type="prt0:ActiveDirMaintServiceVi_Rpc">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <wsdl:operation name="addGroupMember">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi" parts="groupMembers ldapService "/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi"/>
      </wsdl:output>
      <wsdl:fault name="java.lang.Exception">
        <soap:fault use="literal" name="java.lang.Exception"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getSapUserDetails">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi" parts="ldapService delta deltaDate "/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi"/>
      </wsdl:output>
      <wsdl:fault name="java.lang.Exception">
        <soap:fault use="literal" name="java.lang.Exception"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="removeGroupMember">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi" parts="groupMembers ldapService "/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi"/>
      </wsdl:output>
      <wsdl:fault name="java.lang.Exception">
        <soap:fault use="literal" name="java.lang.Exception"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="syncGroupMembers">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi" parts="ldapReadService ldapWriteService membersDN groupNameDN syncAll "/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="urn:ActiveDirMaintServiceVi"/>
      </wsdl:output>
      <wsdl:fault name="java.lang.Exception">
        <soap:fault use="literal" name="java.lang.Exception"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="ActiveDirMaintService">
    <wsdl:port name="ConfigPort_Rpc" binding="bns0:ConfigBinding">
      <soap:address location="http://localhost:50000/ActiveDirMaintService/Config?style=rpc"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
