<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://webservice.indexstock.com/imagesearch/2003/07/15/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://webservice.indexstock.com/imagesearch/2003/07/15/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://webservice.indexstock.com/imagesearch/2003/07/15/">
      <s:element name="GetSelectionFields">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="UserID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="HashedPassword" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="PRCode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="Timestamp" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetSelectionFieldsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetSelectionFieldsResult" type="tns:ArrayOfString" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfString">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="GetResultsFields">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="UserID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="HashedPassword" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="PRCode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="Timestamp" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetResultsFieldsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetResultsFieldsResult" type="tns:ArrayOfString" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetResultsSchema">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="UserID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="HashedPassword" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="PRCode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="Timestamp" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetResultsSchemaResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetResultsSchemaResult" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="FreeTextSearch">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="SearchSessionId" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="SearchQuery" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="RequestType" type="tns:Request_Type" />
            <s:element minOccurs="0" maxOccurs="1" name="Filters" type="tns:ArrayOfImageSearchFilter" />
            <s:element minOccurs="1" maxOccurs="1" name="PageNumber" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="PageSize" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="ImageSize" type="tns:ImageSearchImageSizeEnum" />
            <s:element minOccurs="0" maxOccurs="1" name="SelectedOutputFields" type="tns:ArrayOfString" />
            <s:element minOccurs="0" maxOccurs="1" name="UserID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="HashedPassword" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="PRCode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="Timestamp" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:simpleType name="Request_Type">
        <s:restriction base="s:string">
          <s:enumeration value="ADVANCED" />
          <s:enumeration value="FREETEXT" />
          <s:enumeration value="REFRESH" />
          <s:enumeration value="PAGENUMBER" />
          <s:enumeration value="NARROW" />
          <s:enumeration value="CURRENT" />
        </s:restriction>
      </s:simpleType>
      <s:complexType name="ArrayOfImageSearchFilter">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="ImageSearchFilter" nillable="true" type="tns:ImageSearchFilter" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ImageSearchFilter">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="Field" type="tns:Filter" />
          <s:element minOccurs="1" maxOccurs="1" name="Operator" type="tns:FilterState" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="Filter">
        <s:restriction base="s:string">
          <s:enumeration value="RIGHTSMANAGED" />
          <s:enumeration value="ROYALTYFREE" />
          <s:enumeration value="HIRES" />
          <s:enumeration value="PREMIUM" />
          <s:enumeration value="EXCLUSIVE" />
          <s:enumeration value="PHOTOGRAPHY" />
          <s:enumeration value="ILLUSTRATED" />
          <s:enumeration value="COLOR" />
          <s:enumeration value="BLACKWHITE" />
          <s:enumeration value="PORTRAIT" />
          <s:enumeration value="LANDSCAPE" />
          <s:enumeration value="PANORAMIC" />
          <s:enumeration value="MODELRELEASE" />
          <s:enumeration value="PROPERTYRELEASE" />
          <s:enumeration value="SIMILAR" />
        </s:restriction>
      </s:simpleType>
      <s:simpleType name="FilterState">
        <s:restriction base="s:string">
          <s:enumeration value="On" />
          <s:enumeration value="Off" />
        </s:restriction>
      </s:simpleType>
      <s:simpleType name="ImageSearchImageSizeEnum">
        <s:restriction base="s:string">
          <s:enumeration value="No_Image" />
          <s:enumeration value="Thumb_Link" />
          <s:enumeration value="EnlargedThumb_Link" />
          <s:enumeration value="CompSize_Link" />
          <s:enumeration value="Thumb_Binary" />
        </s:restriction>
      </s:simpleType>
      <s:element name="FreeTextSearchResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="FreeTextSearchResult" type="tns:ImageSearchSearchResults" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ImageSearchSearchResults">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="SearchID" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="SearchSessionID" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="SearchQuery" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="PageNumber" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="PageSize" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="ResultCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalResultCount" type="s:long" />
          <s:element minOccurs="1" maxOccurs="1" name="LastPage" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="Results" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="AdvancedSearch">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="SearchSessionId" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="SearchQueries" type="tns:ArrayOfImageSearchQuery" />
            <s:element minOccurs="1" maxOccurs="1" name="RequestType" type="tns:Request_Type" />
            <s:element minOccurs="0" maxOccurs="1" name="Filters" type="tns:ArrayOfImageSearchFilter" />
            <s:element minOccurs="1" maxOccurs="1" name="PageNumber" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="PageSize" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="ImageSize" type="tns:ImageSearchImageSizeEnum" />
            <s:element minOccurs="0" maxOccurs="1" name="SelectedOutputFields" type="tns:ArrayOfString" />
            <s:element minOccurs="0" maxOccurs="1" name="UserID" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="HashedPassword" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="PRCode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="Timestamp" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfImageSearchQuery">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="ImageSearchQuery" nillable="true" type="tns:ImageSearchQuery" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ImageSearchQuery">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="SearchQuery" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="Operator" type="tns:LogicOperator" />
        </s:sequence>
      </s:complexType>
      <s:simpleType name="LogicOperator">
        <s:restriction base="s:string">
          <s:enumeration value="OR" />
          <s:enumeration value="AND" />
          <s:enumeration value="AND_NOT" />
        </s:restriction>
      </s:simpleType>
      <s:element name="AdvancedSearchResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="AdvancedSearchResult" type="tns:ImageSearchSearchResults" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetUserStatus">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="userId" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="hashedPassword" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="prCode" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="timestamp" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetUserStatusResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetUserStatusResult" type="tns:UserStatus" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="UserStatus">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="DailyHiresDownloadLimit" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="DailyFullDownloadLimit" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="DailyChubbyDownloadLimit" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="DailyThumbDownloadLimit" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TodaysHiresDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TodaysFullDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TodaysChubbyDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TodaysThumbDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalHiresDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFullDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalChubbyDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalThumbDownloadCount" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="SubscriptionHasExpired" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="SubscriptionStartDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="SubscriptionEndDate" type="s:dateTime" />
        </s:sequence>
      </s:complexType>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="GetSelectionFieldsSoapIn">
    <wsdl:part name="parameters" element="tns:GetSelectionFields" />
  </wsdl:message>
  <wsdl:message name="GetSelectionFieldsSoapOut">
    <wsdl:part name="parameters" element="tns:GetSelectionFieldsResponse" />
  </wsdl:message>
  <wsdl:message name="GetResultsFieldsSoapIn">
    <wsdl:part name="parameters" element="tns:GetResultsFields" />
  </wsdl:message>
  <wsdl:message name="GetResultsFieldsSoapOut">
    <wsdl:part name="parameters" element="tns:GetResultsFieldsResponse" />
  </wsdl:message>
  <wsdl:message name="GetResultsSchemaSoapIn">
    <wsdl:part name="parameters" element="tns:GetResultsSchema" />
  </wsdl:message>
  <wsdl:message name="GetResultsSchemaSoapOut">
    <wsdl:part name="parameters" element="tns:GetResultsSchemaResponse" />
  </wsdl:message>
  <wsdl:message name="FreeTextSearchSoapIn">
    <wsdl:part name="parameters" element="tns:FreeTextSearch" />
  </wsdl:message>
  <wsdl:message name="FreeTextSearchSoapOut">
    <wsdl:part name="parameters" element="tns:FreeTextSearchResponse" />
  </wsdl:message>
  <wsdl:message name="AdvancedSearchSoapIn">
    <wsdl:part name="parameters" element="tns:AdvancedSearch" />
  </wsdl:message>
  <wsdl:message name="AdvancedSearchSoapOut">
    <wsdl:part name="parameters" element="tns:AdvancedSearchResponse" />
  </wsdl:message>
  <wsdl:message name="GetUserStatusSoapIn">
    <wsdl:part name="parameters" element="tns:GetUserStatus" />
  </wsdl:message>
  <wsdl:message name="GetUserStatusSoapOut">
    <wsdl:part name="parameters" element="tns:GetUserStatusResponse" />
  </wsdl:message>
  <wsdl:portType name="Image_x0020_SearchSoap">
    <wsdl:operation name="GetSelectionFields">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Return all fields available to the user for the search result meta-data. This method provides the user with our optional set of fields for output.  Use this method to acquire a list of fields to pass for your search results.</documentation>
      <wsdl:input message="tns:GetSelectionFieldsSoapIn" />
      <wsdl:output message="tns:GetSelectionFieldsSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetResultsFields">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Return all fields the user may get in the search result meta-data. All of the fields returned by GetSelectionFields fields plus URN and Binary.    Use this method to acquire a list of fields you may get from your search results.</documentation>
      <wsdl:input message="tns:GetResultsFieldsSoapIn" />
      <wsdl:output message="tns:GetResultsFieldsSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetResultsSchema">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Simple method that Returns only the search result meta-data schema.   Use this XSD, to prepare for the Search Results string returned as part of the Web Service response.</documentation>
      <wsdl:input message="tns:GetResultsSchemaSoapIn" />
      <wsdl:output message="tns:GetResultsSchemaSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="FreeTextSearch">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Search the collection using the given free text search query string and return the results complete with the metadata. This operation yields identical results to the Search Box on our websites</documentation>
      <wsdl:input message="tns:FreeTextSearchSoapIn" />
      <wsdl:output message="tns:FreeTextSearchSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="AdvancedSearch">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Search the collection using the given advanced search query string and return the results complete with the metadata.</documentation>
      <wsdl:input message="tns:AdvancedSearchSoapIn" />
      <wsdl:output message="tns:AdvancedSearchSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetUserStatus">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Subscribers to on-line services may have special constraints depending on terms of subscription; Use this method to determine the state of the users subscription if your application is written for subscription accounts.</documentation>
      <wsdl:input message="tns:GetUserStatusSoapIn" />
      <wsdl:output message="tns:GetUserStatusSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="Image_x0020_SearchSoap" type="tns:Image_x0020_SearchSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="GetSelectionFields">
      <soap:operation soapAction="http://webservice.indexstock.com/imagesearch/2003/07/15/GetSelectionFields" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetResultsFields">
      <soap:operation soapAction="http://webservice.indexstock.com/imagesearch/2003/07/15/GetResultsFields" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetResultsSchema">
      <soap:operation soapAction="http://webservice.indexstock.com/imagesearch/2003/07/15/GetResultsSchema" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="FreeTextSearch">
      <soap:operation soapAction="http://webservice.indexstock.com/imagesearch/2003/07/15/FreeTextSearch" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="AdvancedSearch">
      <soap:operation soapAction="http://webservice.indexstock.com/imagesearch/2003/07/15/AdvancedSearch" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetUserStatus">
      <soap:operation soapAction="http://webservice.indexstock.com/imagesearch/2003/07/15/GetUserStatus" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Image_x0020_Search">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Welcome to Index Stock Imagery’s &lt;i&gt;Image Search Web Service&lt;/i&gt;. Index Stock Imagery is the leading source of high-quality stock photography and images for advertisers, graphic designers, publishers, and multimedia producers. &lt;br&gt;&lt;br&gt;Our &lt;i&gt;Image Search Web Service&lt;/i&gt; can be used to create a photo search function on any Web site. A Service Description and information on supported functions follows below. For a formal definition, please review the &lt;a href="http://webservices.indexstock.com/ImageSearch/2003/07/15/imagesearch.asmx?WSDL"&gt;Service Description&lt;/a&gt;. A separate &lt;i&gt;Download Service&lt;/i&gt; is used to retrieve large photo sizes for printing or display. To get a full set of documentation for our Web Services, discuss licensing terms for these copyrighted photos, or learn more about the &lt;i&gt;Download Service&lt;/i&gt;, please contact us at &lt;a href="mailto:webservices@indexstock.com"&gt;webservices@indexstock.com&lt;/a&gt;.</documentation>
    <wsdl:port name="Image_x0020_SearchSoap" binding="tns:Image_x0020_SearchSoap">
      <soap:address location="http://webservices.indexstock.com/ImageSearch/2003/07/15/imagesearch.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>