<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Soap" targetNamespace="urn:ActionWebService" xmlns:typens="urn:ActionWebService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ActionWebService">
      <xsd:complexType name="SendSmsResult">
        <xsd:all>
          <xsd:element name="result" type="typens:ApiResult"/>
          <xsd:element name="sms" type="typens:SentSmsArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ApiResult">
        <xsd:all>
          <xsd:element name="execution_status" type="xsd:string"/>
          <xsd:element name="fail_code" type="xsd:int"/>
          <xsd:element name="fail_description" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="SentSmsArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:SentSms[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SentSms">
        <xsd:all>
          <xsd:element name="id" type="xsd:int"/>
          <xsd:element name="expire_at" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="IntegerArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:int[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SmsStatusResult">
        <xsd:all>
          <xsd:element name="result" type="typens:ApiResult"/>
          <xsd:element name="sms_status" type="typens:SmsStatusArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="SmsStatusArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:SmsStatus[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SmsStatus">
        <xsd:all>
          <xsd:element name="id" type="xsd:int"/>
          <xsd:element name="status" type="xsd:string"/>
          <xsd:element name="sent_at" type="xsd:string"/>
          <xsd:element name="delivered_at" type="xsd:string"/>
          <xsd:element name="fail_code" type="xsd:string"/>
          <xsd:element name="user_id" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ReceiveSmsResult">
        <xsd:all>
          <xsd:element name="result" type="typens:ApiResult"/>
          <xsd:element name="contain_sms" type="xsd:boolean"/>
          <xsd:element name="has_more" type="xsd:boolean"/>
          <xsd:element name="receive_sms" type="typens:ReceivedSmsArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ReceivedSmsArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ReceivedSms[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ReceivedSms">
        <xsd:all>
          <xsd:element name="id" type="xsd:int"/>
          <xsd:element name="msisdn" type="xsd:string"/>
          <xsd:element name="body" type="xsd:string"/>
          <xsd:element name="inserted_at" type="xsd:string"/>
          <xsd:element name="received_at" type="xsd:string"/>
          <xsd:element name="marked_at" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="RevokeSmsResult">
        <xsd:all>
          <xsd:element name="result" type="typens:ApiResult"/>
          <xsd:element name="revoke_sms" type="typens:RevokeSmsArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="RevokeSmsArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:RevokeSms[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="RevokeSms">
        <xsd:all>
          <xsd:element name="id" type="xsd:int"/>
          <xsd:element name="revoke_status" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="MarkReadResult">
        <xsd:all>
          <xsd:element name="result" type="typens:ApiResult"/>
          <xsd:element name="mark_read" type="typens:MarkReadArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="MarkReadArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:MarkRead[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="MarkRead">
        <xsd:all>
          <xsd:element name="id" type="xsd:int"/>
          <xsd:element name="marked_at" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
    </xsd:schema>
  </types>
  <message name="SendSms">
    <part name="login" type="xsd:string"/>
    <part name="password" type="xsd:string"/>
    <part name="version" type="xsd:string"/>
    <part name="msisdn" type="xsd:string"/>
    <part name="body" type="xsd:string"/>
    <part name="expire_at" type="xsd:string"/>
    <part name="sender" type="xsd:string"/>
    <part name="sms_type" type="xsd:string"/>
    <part name="send_after" type="xsd:string"/>
    <part name="user_id" type="xsd:string"/>
  </message>
  <message name="SendSmsResponse">
    <part name="return" type="typens:SendSmsResult"/>
  </message>
  <message name="SmsStatus">
    <part name="login" type="xsd:string"/>
    <part name="password" type="xsd:string"/>
    <part name="version" type="xsd:string"/>
    <part name="id" type="typens:IntegerArray"/>
  </message>
  <message name="SmsStatusResponse">
    <part name="return" type="typens:SmsStatusResult"/>
  </message>
  <message name="ReceiveSms">
    <part name="login" type="xsd:string"/>
    <part name="password" type="xsd:string"/>
    <part name="version" type="xsd:string"/>
    <part name="type" type="xsd:string"/>
    <part name="start_time" type="xsd:string"/>
    <part name="stop_time" type="xsd:string"/>
    <part name="after_id" type="xsd:int"/>
    <part name="mark" type="xsd:boolean"/>
  </message>
  <message name="ReceiveSmsResponse">
    <part name="return" type="typens:ReceiveSmsResult"/>
  </message>
  <message name="RevokeSms">
    <part name="login" type="xsd:string"/>
    <part name="password" type="xsd:string"/>
    <part name="version" type="xsd:string"/>
    <part name="id" type="typens:IntegerArray"/>
  </message>
  <message name="RevokeSmsResponse">
    <part name="return" type="typens:RevokeSmsResult"/>
  </message>
  <message name="MarkRead">
    <part name="login" type="xsd:string"/>
    <part name="password" type="xsd:string"/>
    <part name="version" type="xsd:string"/>
    <part name="id" type="typens:IntegerArray"/>
  </message>
  <message name="MarkReadResponse">
    <part name="return" type="typens:MarkReadResult"/>
  </message>
  <portType name="SoapSoapPort">
    <operation name="SendSms">
      <input message="typens:SendSms"/>
      <output message="typens:SendSmsResponse"/>
    </operation>
    <operation name="SmsStatus">
      <input message="typens:SmsStatus"/>
      <output message="typens:SmsStatusResponse"/>
    </operation>
    <operation name="ReceiveSms">
      <input message="typens:ReceiveSms"/>
      <output message="typens:ReceiveSmsResponse"/>
    </operation>
    <operation name="RevokeSms">
      <input message="typens:RevokeSms"/>
      <output message="typens:RevokeSmsResponse"/>
    </operation>
    <operation name="MarkRead">
      <input message="typens:MarkRead"/>
      <output message="typens:MarkReadResponse"/>
    </operation>
  </portType>
  <binding name="SoapSoapBinding" type="typens:SoapSoapPort">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="SendSms">
      <soap:operation soapAction="/soap/api/SendSms"/>
      <input>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="SmsStatus">
      <soap:operation soapAction="/soap/api/SmsStatus"/>
      <input>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="ReceiveSms">
      <soap:operation soapAction="/soap/api/ReceiveSms"/>
      <input>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="RevokeSms">
      <soap:operation soapAction="/soap/api/RevokeSms"/>
      <input>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="MarkRead">
      <soap:operation soapAction="/soap/api/MarkRead"/>
      <input>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="urn:ActionWebService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
  </binding>
  <service name="SoapService">
    <port name="SoapSoapPort" binding="typens:SoapSoapBinding">
      <soap:address location="http://www.smeskom.pl/soap/api"/>
    </port>
  </service>
</definitions>
