<?xml version='1.0' encoding='UTF-8'?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://api.ams.io/soap/v5/" elementFormDefault="qualified" targetNamespace="http://api.ams.io/soap/v5/">


  <xsd:element name="GetMessages">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element default="false" name="WillConfirmReceipt" type="xsd:boolean"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="Filter" type="tns:SearchFilter"/>
        <xsd:element maxOccurs="1" minOccurs="0" name="FilterOperator" type="tns:LogicalOperator"/>
        <xsd:element default="false" name="TestMode" type="xsd:boolean"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="GetMessagesResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="Message" type="tns:Message"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="GetMessagesConfirmReceipt">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="1" name="MessageId" type="xsd:string"/>
        <xsd:element default="false" name="TestMode" type="xsd:boolean"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="GetMessagesConfirmReceiptResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="SendMessages">
    <xsd:annotation>
      <xsd:documentation>
        Use to send AMS messages to mobile devices.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="Message" type="tns:Message"/>
        <xsd:element default="false" name="TestMode" type="xsd:boolean"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="SendMessagesResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="MessageResult" type="tns:MessageResult"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="CheckMessageStatus">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
            <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="1" name="MessageId" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="CheckMessageStatusResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="MessageStatus" type="tns:MessageStatus"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="ValidationError" type="xsd:string">
    <xsd:annotation>
      <xsd:documentation>
        Thrown when a validation error occurs when
        converting XML to message or list data. The element content will
        indicate the problem encountered.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:element name="GeneralError" type="xsd:string"/>
  
    

  <xsd:element name="ModifyList">
    <xsd:annotation>
      <xsd:documentation>
        Use to change the content of a list
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element name="ListId" type="xsd:string"/>
        <xsd:element name="ModificationType" type="tns:ModificationType"/>
        <xsd:element name="Items" type="tns:ListItems"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ModifyListResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="CreateMobileAccounts">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
            <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="MobileAccount" type="tns:MobileAccount"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="CreateMobileAccountResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  
  <xsd:element name="ModifyMobileAccounts">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="MobileAccount" type="tns:MobileAccount"/>
        <xsd:element name="ModificationType" type="tns:ModificationType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ModifyMobileAccountsResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:element name="MobileAccounts">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="MobileAccountsResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="MobileAccount" type="tns:MobileAccount"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:element name="RemoveMobileAccounts">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
            <xsd:element name="Signature" type="xsd:string"/>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="Username" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="RemoveMobileAccountsResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="ReassignMessages">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ApiKey" type="xsd:string"/>
        <xsd:element name="Timestamp" type="xsd:dateTime"/>
        <xsd:element name="Signature" type="xsd:string"/>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="Reassignment" type="tns:Reassignment"/>
        <xsd:element default="false" name="Revoke" type="xsd:boolean"/>
        <xsd:element default="false" name="TestMode" type="xsd:boolean"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="ReassignMessagesResponse">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Status" type="tns:Status"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="Status">
    <xsd:sequence>
      <xsd:element name="Code" type="xsd:int"/>
      <xsd:element name="Description" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="MobileAccount">
    <xsd:sequence>
      <xsd:element name="Username" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Password" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="DisplayName" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Status" type="tns:MobileAccountStatus"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Locked" type="xsd:boolean"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="DeviceKey" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Templates" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Lists" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Tags" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="ListFilter" type="tns:ListFilter"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="DefaultData" type="tns:DefaultData"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="MobileAccountStatus">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="active"/>
      <xsd:enumeration value="inactive"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:complexType name="Message">
    <xsd:sequence>
      <xsd:element maxOccurs="1" minOccurs="0" name="MessageId" type="xsd:string"/>
      <xsd:element name="TemplateId" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="CustomId" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Created" type="xsd:dateTime"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Address" type="tns:Address"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="ReplyTo" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Resent" type="xsd:boolean"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="SentFromDevice" type="xsd:dateTime"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Longitude" type="xsd:double"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Latitude" type="xsd:double"/>
      <xsd:element name="Content" type="tns:MessageContent"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Tag" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Attachments" type="tns:Attachments"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Partial" type="xsd:boolean"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Token" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="MessageContent">
    <xsd:sequence>
      <xsd:any namespace="##any" processContents="skip"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Attachments">
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Attachment" type="tns:Attachment"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Attachment">
    <xsd:sequence>
      <xsd:element name="Id" type="xsd:string"/>
      <xsd:element name="Type" type="tns:AttachmentType"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="ContentType" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Data" type="xsd:base64Binary"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Url" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Address">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="Type" type="tns:AddressType" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:simpleType name="AddressType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="user"/>
      <xsd:enumeration value="group"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="AttachmentType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="local"/>
      <xsd:enumeration value="remote"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:complexType name="MessageStatus">
    <xsd:sequence>
      <xsd:element name="MessageId" type="xsd:string"/>
      <xsd:element name="Status" type="xsd:string"/>
      <xsd:element minOccurs="0" name="DeliveredToDevice" type="xsd:dateTime"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ListItems">
    <xsd:sequence>
      <xsd:any namespace="##any" processContents="skip"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="ModificationType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="replace"/>
      <xsd:enumeration value="merge"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:complexType name="ListFilter">
    <xsd:sequence>
      <xsd:element name="ListId" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="1" name="Value" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="DefaultData">
    <xsd:sequence>
      <xsd:element name="TemplateId" type="xsd:string"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Values" type="tns:KeyValuePair"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="KeyValuePair">
    <xsd:sequence>
      <xsd:element name="Key" type="xsd:string"/>
      <xsd:element name="Value" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="MessageResult">
    <xsd:sequence>
      <xsd:element name="MessageId" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="CustomId" type="xsd:string"/>
      <xsd:element maxOccurs="1" minOccurs="0" name="Token" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="SearchFilter">
    <xsd:sequence>
      <xsd:element name="FilterBy" type="tns:FilterType"/>
      <xsd:element name="ValueType" type="tns:FilterValueType"/>
      <xsd:element maxOccurs="unbounded" minOccurs="1" name="Value" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="FilterType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="template"/>
      <xsd:enumeration value="mobileAccount"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="FilterValueType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="id"/>
      <xsd:enumeration value="username"/>
      <xsd:enumeration value="tag"/>
      <xsd:enumeration value="name"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="LogicalOperator">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="and"/>
      <xsd:enumeration value="or"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="MessageIdentifierType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="messageId"/>
      <xsd:enumeration value="lookupHash"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="MessageIdentifier">
    <xsd:sequence>
      <xsd:element name="MessageId" type="xsd:string"/>
      <xsd:element name="TemplateId" type="xsd:string"/>
      <xsd:element name="IdType" type="tns:MessageIdentifierType"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Reassignment">
    <xsd:sequence>
      <xsd:element name="MessageIdentifier" type="tns:MessageIdentifier"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Address" type="tns:Address"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>