<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="./viewer.xsl"?>
<wsdl:definitions
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:tns="http://sms.mangoapi.com"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	name="Api"
	targetNamespace="http://sms.mangoapi.com">
	
	<wsdl:documentation>
		A basic SMS API.
	</wsdl:documentation>
	
	<wsdl:types>
		<xs:schema
			xmlns:xs="http://www.w3.org/2001/XMLSchema"
			xmlns="http://sms.mangoapi.com"
			attributeFormDefault="unqualified"
			elementFormDefault="unqualified"
			targetNamespace="http://sms.mangoapi.com">
			<!-- message -->
			<xs:complexType name="message">
				<xs:sequence>
					<xs:element minOccurs="1" name="mobileNumber" type="xs:string"/>
					<xs:element minOccurs="1" name="text" type="xs:string"/>
					<xs:element minOccurs="0" name="operator" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			
			<!-- getStatusOfQueueId -->
			<xs:element name="getStatusOfQueueId" type="getStatusOfQueueId"/>
			<xs:complexType name="getStatusOfQueueId">
				<xs:all>
					<xs:element minOccurs="1" name="queueId" type="xs:string"/>
				</xs:all>
			</xs:complexType>
			<xs:element name="getStatusOfQueueIdResponse" type="getStatusOfQueueIdResponse"/>
			<xs:complexType name="getStatusOfQueueIdResponse">
				<xs:all>
					<xs:element minOccurs="1" name="status" type="xs:string"/>
				</xs:all>
			</xs:complexType>
			
			<!-- getStatusOfQueueIds -->
			<xs:element name="getStatusOfQueueIds" type="getStatusOfQueueIds"/>
			<xs:complexType name="getStatusOfQueueIds">
				<xs:sequence>
					<xs:element maxOccurs="unbounded" minOccurs="0" name="queueIds" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			<xs:element name="getStatusOfQueueIdsResponse" type="getStatusOfQueueIdsResponse"/>
			<xs:complexType name="getStatusOfQueueIdsResponse">
				<xs:sequence>
					<xs:element maxOccurs="unbounded" minOccurs="0" name="statuses" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>

			<!-- sendMessage -->
			<xs:element name="sendMessage" type="sendMessage"/>
			<xs:complexType name="sendMessage">
				<xs:all>
					<xs:element minOccurs="1" name="licenseKey" type="xs:string"/>
					<xs:element minOccurs="1" name="message" type="message"/>
					<xs:element minOccurs="0" name="label" type="xs:string"/>
				</xs:all>
			</xs:complexType>
			<xs:element name="sendMessageResponse" type="sendMessageResponse"/>
			<xs:complexType name="sendMessageResponse">
				<xs:all>
					<xs:element minOccurs="1" name="queueId" type="xs:string"/>
				</xs:all>
			</xs:complexType>

			<!-- sendMessageBatch -->
			<xs:element name="sendMessageBatch" type="sendMessageBatch"/>
			<xs:complexType name="sendMessageBatch">
				<xs:sequence>
					<xs:element minOccurs="1" name="licenseKey" type="xs:string"/>
					<xs:element maxOccurs="unbounded" minOccurs="0" name="messages" type="message"/>
					<xs:element minOccurs="0" name="label" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			<xs:element name="sendMessageBatchResponse" type="sendMessageBatchResponse"/>
			<xs:complexType name="sendMessageBatchResponse">
				<xs:sequence>
					<xs:element maxOccurs="unbounded" minOccurs="0" name="queueIds" type="xs:string"/>
				</xs:sequence>
			</xs:complexType>
			
			<!-- sendTextMessageCompat -->
			<xs:element name="sendTextMessageCompat" type="sendTextMessageCompat"/>
			<xs:complexType name="sendTextMessageCompat">
				<xs:all>
					<xs:element minOccurs="1" name="licenseKey" type="xs:string"/>
					<xs:element minOccurs="1" name="phone" type="xs:string"/>
					<xs:element minOccurs="1" name="message" type="xs:string"/>
					<xs:element minOccurs="0" name="carrier" type="xs:string"/>
				</xs:all>
			</xs:complexType>
			<xs:element name="sendTextMessageCompatResponse" type="sendTextMessageCompatResponse"/>
			<xs:complexType name="sendTextMessageCompatResponse">
				<xs:all>
					<xs:element minOccurs="1" name="queueId" type="xs:string"/>
				</xs:all>
			</xs:complexType>
		</xs:schema>
	</wsdl:types>
	
	<!-- getStatusOfQueueId -->
	<wsdl:message name="getStatusOfQueueId">
		<wsdl:part name="parameters" element="tns:getStatusOfQueueId"/>
	</wsdl:message>
	<wsdl:message name="getStatusOfQueueIdResponse">
		<wsdl:part name="parameters" element="tns:getStatusOfQueueIdResponse"/>
	</wsdl:message>
	
	<!-- getStatusOfQueueIds -->
	<wsdl:message name="getStatusOfQueueIds">
		<wsdl:part name="parameters" element="tns:getStatusOfQueueIds"/>
	</wsdl:message>
	<wsdl:message name="getStatusOfQueueIdsResponse">
		<wsdl:part name="parameters" element="tns:getStatusOfQueueIdsResponse"/>
	</wsdl:message>
	
	<!-- sendMessage -->
	<wsdl:message name="sendMessage">
		<wsdl:part name="parameters" element="tns:sendMessage"/>
	</wsdl:message>
	<wsdl:message name="sendMessageResponse">
		<wsdl:part name="parameters" element="tns:sendMessageResponse"/>
	</wsdl:message>
	
	<!-- sendMessageBatch -->
	<wsdl:message name="sendMessageBatch">
		<wsdl:part name="parameters" element="tns:sendMessageBatch"/>
	</wsdl:message>
	<wsdl:message name="sendMessageBatchResponse">
		<wsdl:part name="parameters" element="tns:sendMessageBatchResponse"/>
	</wsdl:message>
	
	<!-- sendTextMessageCompat -->
    <wsdl:message name="sendTextMessageCompat">
		<wsdl:part name="parameters" element="tns:sendTextMessageCompat"/>
    </wsdl:message>
    <wsdl:message name="sendTextMessageCompatResponse">
		<wsdl:part name="parameters" element="tns:sendTextMessageCompatResponse"/>
    </wsdl:message>
	
	
	<!-- PortType -->
	<wsdl:portType name="APIPortType">
		<!-- sendMessage -->
		<wsdl:operation name="sendMessage">
            <wsdl:documentation>
				This method is used to send a single text message to a subscriber. The result is a queue id that can be used to retrive the status of the text message.
			</wsdl:documentation>
			<wsdl:input name="sendMessage" message="tns:sendMessage"/>
			<wsdl:output name="sendMessageResponse" message="tns:sendMessageResponse"/>
		</wsdl:operation>
		<!-- sendMessageBatch -->
		<wsdl:operation name="sendMessageBatch">
            <wsdl:documentation>
				This method is used to send multiple text messages. The result is an array of queue ids that can be used to retrive the status of the text message. The queue ids will be in the same order of the requesting messages. There is a limit of 100 messages per batch.
			</wsdl:documentation>
			<wsdl:input name="sendMessageBatch" message="tns:sendMessageBatch"/>
			<wsdl:output name="sendMessageBatchResponse" message="tns:sendMessageBatchResponse"/>
		</wsdl:operation>
		<!-- getStatusOfQueueId -->
		<wsdl:operation name="getStatusOfQueueId">
            <wsdl:documentation>
				This method takes a queue id and returns the status of the message. The result is a string of either QUEUED, ERROR, or OK.
			</wsdl:documentation>
			<wsdl:input name="getStatusOfQueueId" message="tns:getStatusOfQueueId"/>
			<wsdl:output name="getStatusOfQueueIdResponse" message="tns:getStatusOfQueueIdResponse"/>
		</wsdl:operation>
		<!-- getStatusOfQueueIds -->
		<wsdl:operation name="getStatusOfQueueIds">
            <wsdl:documentation>
				This method takes queue ids and returns the status of the messages. The result is an array string of either QUEUED, ERROR, or OK.
			</wsdl:documentation>
			<wsdl:input name="getStatusOfQueueIds" message="tns:getStatusOfQueueIds"/>
			<wsdl:output name="getStatusOfQueueIdsResponse" message="tns:getStatusOfQueueIdsResponse"/>
		</wsdl:operation>
		<!-- sendTextMessageCompat -->
        <wsdl:operation name="sendTextMessageCompat">
            <wsdl:documentation>
				This method is used to provide backwards compatability with the previous, deprecated, SMS Api.
			</wsdl:documentation>
            <wsdl:input name="sendTextMessageCompat" message="tns:sendTextMessageCompat"/>
            <wsdl:output name="sendTextMessageCompatResponse" message="tns:sendTextMessageCompatResponse"/>
        </wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="APISoapBinding" type="tns:APIPortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<!-- sendMessage -->
		<wsdl:operation name="sendMessage">
			<soap:operation soapAction="" style="document"/>
			<wsdl:input name="sendMessage">
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="sendMessageResponse">
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<!-- sendMessageBatch -->
		<wsdl:operation name="sendMessageBatch">
			<soap:operation soapAction="" style="document"/>
			<wsdl:input name="sendMessageBatch">
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="sendMessageBatchResponse">
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<!-- getStatusOfQueueId -->
		<wsdl:operation name="getStatusOfQueueId">
			<soap:operation soapAction="" style="document"/>
			<wsdl:input name="getStatusOfQueueId">
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="getStatusOfQueueIdResponse">
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<!-- getStatusOfQueueIds -->
		<wsdl:operation name="getStatusOfQueueIds">
			<soap:operation soapAction="" style="document"/>
			<wsdl:input name="getStatusOfQueueIds">
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="getStatusOfQueueIdsResponse">
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<!-- sendTextMessageCompat -->
		<wsdl:operation name="sendTextMessageCompat">
			<soap:operation soapAction="" style="document"/>
			<wsdl:input name="sendTextMessageCompat">
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="sendTextMessageCompatResponse">
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	
	<!-- service -->
	<wsdl:service name="API">
		<wsdl:port name="APIPort" binding="tns:APISoapBinding">
			<soap:address location="https://sms.mangoapi.com"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>