<?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 Log Entries - Response schema</xs:documentation>
    <xs:documentation>Provides log entries for the provided batch reference</xs:documentation>
    <xs:documentation>Version 1.0 : 2018-22-04.  Initial schema creation.</xs:documentation>
  </xs:annotation>
  <xs:element name="response">
    <xs:complexType>
      <xs:all>
        <xs:element minOccurs="0" maxOccurs="1" name="summary">
          <xs:complexType>
            <xs:all>
              <xs:element minOccurs="0" maxOccurs="1" name="action">
                <xs:annotation>
                  <xs:documentation>The Name of the API service action</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attribute name="id" type="xs:integer" use="optional">
                        <xs:annotation>
                          <xs:documentation>The Id of the API service action</xs:documentation>
                        </xs:annotation>
                      </xs:attribute>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="messages">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" maxOccurs="unbounded" name="message">
                      <xs:annotation>
                        <xs:documentation>The message text.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="code" type="xs:string" use="optional">
                              <xs:annotation>
                                <xs:documentation>The code associated with the message.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="for" type="xs:string" use="optional" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="entries">
                <xs:complexType>
                  <xs:all>
                    <xs:element minOccurs="0" maxOccurs="1" name="reference" type="xs:string">
                      <xs:annotation>
                        <xs:documentation>The reference supplied in the request.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" maxOccurs="1" name="source">
                      <xs:annotation>
                        <xs:documentation>The source log for the returned entries</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Import" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element minOccurs="0" maxOccurs="1" name="type" type="xs:string">
                      <xs:annotation>
                        <xs:documentation>The activity type to which the entries relate</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" maxOccurs="1" name="token" type="xs:string">
                      <xs:annotation>
                        <xs:documentation>Where applicable, the token for the items in the batch</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attribute name="errors" type="xs:integer" use="optional">
                    <xs:annotation>
                      <xs:documentation>The total number of entries for the reference with a result of 'Error'.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="updated" type="xs:integer" use="optional">
                    <xs:annotation>
                      <xs:documentation>The total number of entries for the reference with a result of 'Updated'.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="inserted" type="xs:integer" use="optional">
                    <xs:annotation>
                      <xs:documentation>The total number of entries for the reference with a result of 'Inserted'.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="deleted" type="xs:integer" use="optional">
                    <xs:annotation>
                      <xs:documentation>The total number of entries for the reference with a result of 'Deleted'.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attribute name="result" type="xs:boolean" use="optional">
              <xs:annotation>
                <xs:documentation>Flag indicating whether the process completed without errors.</xs:documentation>
              </xs:annotation>
            </xs:attribute>
            <xs:attribute name="filtered" type="xs:boolean" use="optional" />
            <xs:attribute name="processingdate" type="xs:dateTime" use="optional" />
          </xs:complexType>
        </xs:element>
        <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 selected page</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 per page</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:integer">
                    <xs:maxInclusive value="500" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="totalitemcount" type="xs:integer">
                <xs:annotation>
                  <xs:documentation>The total number of items available to be exported</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" maxOccurs="1" name="totalpagecount" type="xs:integer">
                <xs:annotation>
                  <xs:documentation>The total estimated page count, based on the requested page size.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" name="items">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="item">
                <xs:complexType>
                  <xs:all>
                    <xs:element minOccurs="0" maxOccurs="1" name="message">
                      <xs:annotation>
                        <xs:documentation>The message text.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="code" type="xs:string" use="optional">
                              <xs:annotation>
                                <xs:documentation>The code associated with the message.</xs:documentation>
                              </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="for" type="xs:string" use="optional" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                  <xs:attribute name="result" use="optional">
                    <xs:annotation>
                      <xs:documentation>The result of the requested action for the log entry</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:enumeration value="FailedValidation">
                          <xs:annotation>
                            <xs:documentation>The data failed schema validation</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Inserted">
                          <xs:annotation>
                            <xs:documentation>The data item was inserted</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Updated">
                          <xs:annotation>
                            <xs:documentation>The data item was updated</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Deleted">
                          <xs:annotation>
                            <xs:documentation>The data item was deleted</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Error">
                          <xs:annotation>
                            <xs:documentation>The data item was in error</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="NoAction">
                          <xs:annotation>
                            <xs:documentation>The data item had no changes</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Ready">
                          <xs:annotation>
                            <xs:documentation>The data item was inserted</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Warning">
                          <xs:annotation>
                            <xs:documentation>The data had items that were not successfully imported</xs:documentation>
                          </xs:annotation>
                        </xs:enumeration>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="key" use="optional">
                    <xs:annotation>
                      <xs:documentation>A dynamic key to identify which source entry item the log entry relates to</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="200" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                  <xs:attribute name="subkey" use="optional">
                    <xs:annotation>
                      <xs:documentation>Where applicable, a dynamic sub-key to further help identify which source entry item the log entry relates to</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:maxLength value="200" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
      <xs:anyAttribute processContents="skip" />
    </xs:complexType>
  </xs:element>
</xs:schema>