<?xml version="1.0"?>
<definitions name="Sympa" 
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
	targetNamespace="[% conf.wwsympa_url %]/wsdl" 
	xmlns:tns="[% conf.wwsympa_url %]/wsdl"
	xmlns="http://schemas.xmlsoap.org/wsdl/" 
	xmlns:xsdl="[% conf.soap_url %]/wsdl">


<!-- types part -->	


<types>
<schema targetNamespace="[% conf.wwsympa_url %]/wsdl" 
	xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
	xmlns="http://www.w3.org/2001/XMLSchema">
	
	<complexType name="ArrayOfLists">
		<complexContent>
			<restriction base="SOAP-ENC:Array">
				<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:listType[]"/>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="ArrayOfUsers">
		<complexContent>
			<restriction base="SOAP-ENC:Array">
				<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:userType[]"/>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="ArrayOfString">
		<complexContent>
			<restriction base="SOAP-ENC:Array">
				<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="bounce">
		<all>
			<element name="firstBounceDate"  minOccurs="0"  type="int"/>		
			<element name="lastBounceDate"  minOccurs="0"  type="int"/>		
			<element name="bounceCount"  minOccurs="1"  type="int"/>
			<element name="bounceScore" minOccurs="1"  type="int"/>
		</all>
        </complexType>	
	
	<complexType name="listType">
           <all>
		<element name="listAddress" minOccurs="1" type="string"/>
		<element name="homepage" minOccurs="0" type="string"/>
		<element name="isSubscriber" minOccurs="0" type="boolean"/>
		<element name="isOwner" minOccurs="0" type="boolean"/>
		<element name="isEditor" minOccurs="0" type="boolean"/>
		<element name="subject" minOccurs="0" type="string"/>
                <element name="firstBounceDate"  minOccurs="0"  type="int"/>		
		<element name="lastBounceDate"  minOccurs="0"  type="int"/>		
		<element name="bounceCount"  minOccurs="0"  type="int"/>
		<element name="bounceCode" minOccurs="0"  type="string"/>
		<element name="bounceScore" minOccurs="0"  type="int"/>
           </all>
	</complexType>
	
	<complexType name="userType">
           <all>
		<element name="email" minOccurs="1" type="string"/>
		<element name="gecos" minOccurs="0" type="string"/>
		<element name="isSubscriber" minOccurs="0" type="boolean"/>
		<element name="isOwner" minOccurs="0" type="boolean"/>
		<element name="isEditor" minOccurs="0" type="boolean"/>
           </all>
	</complexType>
</schema>
</types>


<!-- message part -->

<message name="infoRequest">
        <part name="listName" type="xsd:string"/>
</message>

<message name="infoResponse">
	<part name="return" type="tns:listType"/>
</message>

<message name="complexWhichRequest">
</message>

<message name="complexWhichResponse">
	<part name="return" type="tns:ArrayOfLists"/>
</message>

<message name="whichRequest">
</message>

<message name="whichResponse">
	<part name="return" type="tns:string"/>
</message>

<message name="amIRequest">
	<part name="list" type="xsd:string"/>
	<part name="function" type="xsd:string"/>
	<part name="user" type="xsd:string"/>
</message>

<message name="amIResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="reviewRequest">
	<part name="list" type="xsd:string"/>
</message>

<message name="reviewResponse">
	<part name="return" type="tns:ArrayOfString"/>
</message>

<message name="fullReviewRequest">
	<part name="list" type="xsd:string"/>
</message>

<message name="fullReviewResponse">
	<part name="return" type="tns:ArrayOfUsers"/>
</message>

<message name="signoffRequest">
	<part name="list" type="xsd:string"/>
	<part name="email" type="xsd:string" xsd:minOccurs="0"/>	
</message>

<message name="signoffResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="subscribeRequest">
	<part name="list" type="xsd:string"/>
	<part name="gecos" type="xsd:string" xsd:minOccurs="0"/>	
</message>

<message name="addRequest">
	<part name="list" type="xsd:string"/>		
	<part name="email" type="xsd:string"/>
	<part name="gecos" type="xsd:string"  xsd:minOccurs="0"/>	
	<part name="quiet" type="xsd:boolean"  xsd:minOccurs="0"/>	
</message>


<message name="addResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="delRequest">
	<part name="list" type="xsd:string"/>		
	<part name="email" type="xsd:string"/>
	<part name="quiet" type="xsd:boolean"  xsd:minOccurs="0"/>	
</message>


<message name="delResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="createListRequest">
	<part name="list" type="xsd:string"/>
	<part name="subject" type="xsd:string"/>
	<part name="template" type="xsd:string"/>
	<part name="description" type="xsd:string"/>
	<part name="topics" type="xsd:string"/>
</message>

<message name="createListResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="closeListRequest">
	<part name="list" type="xsd:string"/>
</message>

<message name="closeListResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="subscribeResponse">
	<part name="return" type="xsd:boolean"/>
</message>

<message name="loginRequest">
	<part name="email" type="xsd:string"/>
	<part name="password" type="xsd:string"/>
</message>

<message name="loginResponse">
	<part name="return" type="xsd:string"/>	
</message>

<message name="getUserEmailByCookieRequest">
	<part name="cookie" type="xsd:string"/>
</message>

<message name="getUserEmailByCookieResponse">
	<part name="return" type="xsd:string"/>
</message>

<message name="authenticateAndRunRequest">
	<part name="email" type="xsd:string"/>
	<part name="cookie" type="xsd:string"/>
	<part name="service" type="xsd:string"/>
	<part name="parameters" type="tns:ArrayOfString" xsd:minOccurs="0"/>
</message>

<message name="authenticateAndRunResponse">
	<part name="return" type="tns:ArrayOfString" xsd:minOccurs="0"/>
</message>

<message name="authenticateRemoteAppAndRunRequest">
	<part name="appname" type="xsd:string"/>
	<part name="apppassword" type="xsd:string"/>
	<part name="vars" type="xsd:string"/>
	<part name="service" type="xsd:string"/>
	<part name="parameters" type="tns:ArrayOfString" xsd:minOccurs="0"/>
</message>

<message name="authenticateRemoteAppAndRunResponse">
	<part name="return" type="tns:ArrayOfString" xsd:minOccurs="0"/>	
</message>

<message name="casLoginRequest">
	<part name="proxyTicket" type="xsd:string"/>
</message>

<message name="casLoginResponse">
	<part name="return" type="xsd:string"/>	
</message>

<message name="listsRequest">
	<part name="topic" type="xsd:string" xsd:minOccurs="0"/>
	<part name="subtopic" type="xsd:string" xsd:minOccurs="0"/>
</message>

<message name="listsResponse">
	<part name="listInfo" type="xsd:string"/>	
</message>

<message name="complexListsRequest">
</message>

<message name="complexListsResponse">
	<part name="return" type="tns:ArrayOfLists"/>
</message>

<message name="checkCookieRequest">
</message>

<message name="checkCookieResponse">
	<part name="email" type="xsd:string"/>
</message>


<!-- portType part -->

<portType name="SympaPort">
	<operation name="info">
		<input message="tns:infoRequest" />
		<output message="tns:infoResponse" />
	</operation>
	<operation name="complexWhich">
		<input message="tns:complexWhichRequest" />
		<output message="tns:complexWhichResponse" />
	</operation>
	<operation name="which">
		<input message="tns:whichRequest" />
		<output message="tns:whichResponse" />
	</operation>
	<operation name="amI">
		<input message="tns:amIRequest" />
		<output message="tns:amIResponse" />
	</operation>
	<operation name="add">
		<input message="tns:addRequest" />
		<output message="tns:addResponse" />
	</operation>
	<operation name="del">
		<input message="tns:delRequest" />
		<output message="tns:delResponse" />
	</operation>
	<operation name="createList">
		<input message="tns:createListRequest" />
		<output message="tns:createListResponse" />
	</operation>
	<operation name="closeList">
		<input message="tns:closeListRequest" />
		<output message="tns:closeListResponse" />
	</operation>
	<operation name="review">
		<input message="tns:reviewRequest" />
		<output message="tns:reviewResponse" />
	</operation>
	<operation name="fullReview">
		<input message="tns:fullReviewRequest" />
		<output message="tns:fullReviewResponse" />
	</operation>
	<operation name="subscribe">
		<input message="tns:subscribeRequest" />
		<output message="tns:subscribeResponse" />
	</operation>
	<operation name="signoff">
		<input message="tns:signoffRequest" />
		<output message="tns:signoffResponse" />
	</operation>
	<operation name="login">
		<input message="tns:loginRequest" />
		<output message="tns:loginResponse" />
	</operation>
	<operation name="casLogin">
		<input message="tns:casLoginRequest" />
		<output message="tns:casLoginResponse" />
	</operation>
	<operation name="getUserEmailByCookie">
		<input message="tns:getUserEmailByCookieRequest" />
		<output message="tns:getUserEmailByCookieResponse" />
	</operation>
	<operation name="authenticateAndRun">
		<input message="tns:authenticateAndRunRequest" />
		<output message="tns:authenticateAndRunResponse" />
	</operation>
	<operation name="authenticateRemoteAppAndRun">
		<input message="tns:authenticateRemoteAppAndRunRequest" />
		<output message="tns:authenticateRemoteAppAndRunResponse" />
	</operation>
	<operation name="lists">
		<input message="tns:listsRequest" />
		<output message="tns:listsResponse" />
	</operation>
	<operation name="complexLists">
		<input message="tns:complexListsRequest" />
		<output message="tns:complexListsResponse" />
	</operation>
	<operation name="checkCookie">
		<input message="tns:checkCookieRequest" />
		<output message="tns:checkCookieResponse" />
	</operation>
</portType>


<!-- Binding part -->

<binding name="SOAP" type="tns:SympaPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
	<operation name="info">
		<soap:operation soapAction="urn:sympasoap#info"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="complexWhich">
		<soap:operation soapAction="urn:sympasoap#complexWhich"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="which">
		<soap:operation soapAction="urn:sympasoap#which"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="amI">
		<soap:operation soapAction="urn:sympasoap#amI"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="add">
		<soap:operation soapAction="urn:sympasoap#add"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="del">
		<soap:operation soapAction="urn:sympasoap#del"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="createList">
		<soap:operation soapAction="urn:sympasoap#createList"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="closeList">
		<soap:operation soapAction="urn:sympasoap#closeList"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="review">
		<soap:operation soapAction="urn:sympasoap#review"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="fullReview">
		<soap:operation soapAction="urn:sympasoap#fullReview"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="subscribe">
		<soap:operation soapAction="urn:sympasoap#subscribe"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="signoff">
		<soap:operation soapAction="urn:sympasoap#signoff"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="login">
		<soap:operation soapAction="urn:sympasoap#login"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="casLogin">
		<soap:operation soapAction="urn:sympasoap#casLogin"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="getUserEmailByCookie">
		<soap:operation soapAction="urn:sympasoap#getUserEmailByCookie"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="authenticateAndRun">
		<soap:operation soapAction="urn:sympasoap#authenticateAndRun"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="authenticateRemoteAppAndRun">
		<soap:operation soapAction="urn:sympasoap#authenticateRemoteAppAndRun"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="lists">
		<soap:operation soapAction="urn:sympasoap#lists"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="complexLists">
		<soap:operation soapAction="urn:sympasoap#complexLists"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
	<operation name="checkCookie">
		<soap:operation soapAction="urn:sympasoap#checkCookie"/>
			<input>
				<soap:body use="encoded" 
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded"
					namespace="urn:sympasoap" 
					encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
	</operation>
</binding>

<!-- service part -->


<service name="SympaSOAP">
	<port name="SympaPort" binding="tns:SOAP">
		<soap:address location="[% conf.soap_url %]"/>
	</port>
</service>

</definitions>



