<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:documentation>Title: Export Campaign/Coupon details - request schema</xs:documentation>
    <xs:documentation>Retrieve details of Campaign/Coupons.  Filters can be specified where required to limit the results being returned.</xs:documentation>
    <xs:documentation>Version 1.0 : 2017-05-14.  Initial schema creation.</xs:documentation>
    <xs:documentation>Version 1.1 : 2018-04-18.  Company key is now optional as it is provided in the REST url (though required for WCF).</xs:documentation>
  </xs:annotation>
  <xs:element name="export">
    <xs:complexType>
      <xs:all>
        <xs:element minOccurs="0" maxOccurs="1" name="pagination">
          <xs:complexType>
            <xs:all>
              <xs:element minOccurs="0" maxOccurs="1" name="page">
                <xs:annotation>
                  <xs:documentation>The page number of the page of results to be returned.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:integer">
                    <xs:minInclusive value="1" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="pagesize">
                <xs:annotation>
                  <xs:documentation>The number of items to be returned in a page.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:integer">
                    <xs:maxInclusive value="500" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" name="filters">
          <xs:complexType>
            <xs:all>
              <xs:element minOccurs="0" maxOccurs="1" name="couponkey">
                <xs:annotation>
                  <xs:documentation>Where required, the unique coupon key assigned to the coupon.  The key is created automatically by Promo when creating your coupon.  To view the key navigate to the Coupon in the Promo Administration Portal.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="type">
                <xs:annotation>
                  <xs:documentation>Where applicable a Campaign/Coupon type can be provided for filtering the resultset.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="">
                      <xs:annotation>
                        <xs:documentation>An empty value indicates no filter will be applied for this field.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="NotSpecified">
                      <xs:annotation>
                        <xs:documentation>No filter will be applied for this field.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="SourceCode">
                      <xs:annotation>
                        <xs:documentation>Only provide Campaign/Coupons that are defined as type 'Source Code'.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="Voucher">
                      <xs:annotation>
                        <xs:documentation>Only provide Campaign/Coupons that are defined as type 'Voucher'.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="name">
                <xs:annotation>
                  <xs:documentation>Where applicable a Campaign/Coupon name can be provided for filtering the resultset.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="1000" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:all>
            <xs:attribute name="matchexact" use="optional">
              <xs:annotation>
                <xs:documentation>Where required, a boolean value can be provided to indicate whether to look for exact matches for all specified criteria filters.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:union>
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:length value="0" />
                    </xs:restriction>
                  </xs:simpleType>
                  <xs:simpleType>
                    <xs:restriction base="xs:boolean" />
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="lowpriority" type="xs:boolean" use="optional">
              <xs:annotation>
                <xs:documentation>Flag for internal system use only</xs:documentation>
              </xs:annotation>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
      </xs:all>
      <xs:attribute name="companykey" use="optional">
        <xs:annotation>
          <xs:documentation>The company key assigned to your company.  To view the company key navigate to Configuration / Manage Company.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="200" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:anyAttribute processContents="skip" />
    </xs:complexType>
  </xs:element>
</xs:schema>