xero-python 8.0.0a1__tar.gz → 8.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. xero_python-8.1.0/PKG-INFO +644 -0
  2. {xero_python-8.0.0a1 → xero_python-8.1.0}/setup.py +1 -1
  3. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/__init__.py +1 -1
  4. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/api/accounting_api.py +1 -1
  5. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/organisation.py +1 -0
  6. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/api/app_store_api.py +1 -1
  7. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/api/asset_api.py +1 -1
  8. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/api/files_api.py +1 -1
  9. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/api/finance_api.py +1 -1
  10. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/api/identity_api.py +1 -1
  11. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/api/payroll_au_api.py +1 -1
  12. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/api/payroll_nz_api.py +1 -1
  13. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/api/payroll_uk_api.py +1 -1
  14. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/api/project_api.py +1 -1
  15. xero_python-8.1.0/xero_python.egg-info/PKG-INFO +644 -0
  16. xero_python-8.0.0a1/PKG-INFO +0 -640
  17. xero_python-8.0.0a1/xero_python.egg-info/PKG-INFO +0 -640
  18. {xero_python-8.0.0a1 → xero_python-8.1.0}/AUTHORS.md +0 -0
  19. {xero_python-8.0.0a1 → xero_python-8.1.0}/HISTORY.md +0 -0
  20. {xero_python-8.0.0a1 → xero_python-8.1.0}/LICENSE +0 -0
  21. {xero_python-8.0.0a1 → xero_python-8.1.0}/MANIFEST.in +0 -0
  22. {xero_python-8.0.0a1 → xero_python-8.1.0}/README.md +0 -0
  23. {xero_python-8.0.0a1 → xero_python-8.1.0}/requirements.txt +0 -0
  24. {xero_python-8.0.0a1 → xero_python-8.1.0}/setup.cfg +0 -0
  25. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/__init__.py +0 -0
  26. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/accounting/__init__.py +0 -0
  27. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/accounting/api/__init__.py +0 -0
  28. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/accounting/api/cassettes/test_get_organisations.yaml +0 -0
  29. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/accounting/api/cassettes/test_invoice_attachment_upload_and_download.yaml +0 -0
  30. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/accounting/api/fixtures/inv-0032.pdf +0 -0
  31. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/accounting/api/test_accounting_api.py +0 -0
  32. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/cassettes/test_vcr.yaml +0 -0
  33. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/conftest.py +0 -0
  34. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/identity/__init__.py +0 -0
  35. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/identity/api/__init__.py +0 -0
  36. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/identity/api/cassettes/test_get_connections.yaml +0 -0
  37. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/identity/api/test_identity_api.py +0 -0
  38. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_api_client/__init__.py +0 -0
  39. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_api_client/cassettes/test_call_api_get_organisations.yaml +0 -0
  40. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_api_client/cassettes/test_token_api_refresh_token.yaml +0 -0
  41. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_api_client/test_deserializer.py +0 -0
  42. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_api_client/test_oauth2.py +0 -0
  43. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_api_client/test_serializer.py +0 -0
  44. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_executor.py +0 -0
  45. {xero_python-8.0.0a1 → xero_python-8.1.0}/tests/test_single_dispatch_str.py +0 -0
  46. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/__init__.py +0 -0
  47. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/api/__init__.py +0 -0
  48. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/api/exception_handler.py +0 -0
  49. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/__init__.py +0 -0
  50. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/account.py +0 -0
  51. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/account_type.py +0 -0
  52. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/accounts.py +0 -0
  53. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/accounts_payable.py +0 -0
  54. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/accounts_receivable.py +0 -0
  55. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/action.py +0 -0
  56. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/actions.py +0 -0
  57. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/address.py +0 -0
  58. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/address_for_organisation.py +0 -0
  59. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/allocation.py +0 -0
  60. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/allocations.py +0 -0
  61. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/attachment.py +0 -0
  62. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/attachments.py +0 -0
  63. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/balance_details.py +0 -0
  64. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/balances.py +0 -0
  65. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/bank_transaction.py +0 -0
  66. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/bank_transactions.py +0 -0
  67. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/bank_transfer.py +0 -0
  68. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/bank_transfers.py +0 -0
  69. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/batch_payment.py +0 -0
  70. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/batch_payment_delete.py +0 -0
  71. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/batch_payment_delete_by_url_param.py +0 -0
  72. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/batch_payment_details.py +0 -0
  73. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/batch_payments.py +0 -0
  74. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/bill.py +0 -0
  75. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/branding_theme.py +0 -0
  76. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/branding_themes.py +0 -0
  77. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/budget.py +0 -0
  78. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/budget_balance.py +0 -0
  79. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/budget_line.py +0 -0
  80. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/budget_lines.py +0 -0
  81. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/budgets.py +0 -0
  82. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/cis_org_setting.py +0 -0
  83. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/cis_org_settings.py +0 -0
  84. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/cis_setting.py +0 -0
  85. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/cis_settings.py +0 -0
  86. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/contact.py +0 -0
  87. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/contact_group.py +0 -0
  88. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/contact_groups.py +0 -0
  89. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/contact_person.py +0 -0
  90. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/contacts.py +0 -0
  91. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/conversion_balances.py +0 -0
  92. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/conversion_date.py +0 -0
  93. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/country_code.py +0 -0
  94. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/credit_note.py +0 -0
  95. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/credit_notes.py +0 -0
  96. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/currencies.py +0 -0
  97. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/currency.py +0 -0
  98. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/currency_code.py +0 -0
  99. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/element.py +0 -0
  100. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/employee.py +0 -0
  101. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/employees.py +0 -0
  102. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/error.py +0 -0
  103. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/expense_claim.py +0 -0
  104. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/expense_claims.py +0 -0
  105. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/external_link.py +0 -0
  106. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_bank_transactions_response.py +0 -0
  107. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_contacts_response.py +0 -0
  108. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_credit_notes_response.py +0 -0
  109. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_invoices_response.py +0 -0
  110. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_manual_journals_response.py +0 -0
  111. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_overpayments_response.py +0 -0
  112. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_payments_response.py +0 -0
  113. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_prepayments_response.py +0 -0
  114. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/get_purchase_orders_response.py +0 -0
  115. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/history_record.py +0 -0
  116. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/history_records.py +0 -0
  117. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/import_summary.py +0 -0
  118. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/import_summary_accounts.py +0 -0
  119. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/import_summary_object.py +0 -0
  120. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/import_summary_organisation.py +0 -0
  121. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/invoice.py +0 -0
  122. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/invoice_address.py +0 -0
  123. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/invoice_reminder.py +0 -0
  124. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/invoice_reminders.py +0 -0
  125. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/invoices.py +0 -0
  126. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/item.py +0 -0
  127. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/items.py +0 -0
  128. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/journal.py +0 -0
  129. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/journal_line.py +0 -0
  130. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/journals.py +0 -0
  131. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/line_amount_types.py +0 -0
  132. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/line_item.py +0 -0
  133. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/line_item_item.py +0 -0
  134. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/line_item_tracking.py +0 -0
  135. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/linked_transaction.py +0 -0
  136. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/linked_transactions.py +0 -0
  137. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/manual_journal.py +0 -0
  138. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/manual_journal_line.py +0 -0
  139. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/manual_journals.py +0 -0
  140. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/online_invoice.py +0 -0
  141. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/online_invoices.py +0 -0
  142. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/organisations.py +0 -0
  143. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/overpayment.py +0 -0
  144. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/overpayments.py +0 -0
  145. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/page_info.py +0 -0
  146. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/pagination.py +0 -0
  147. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payment.py +0 -0
  148. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payment_delete.py +0 -0
  149. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payment_service.py +0 -0
  150. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payment_services.py +0 -0
  151. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payment_term.py +0 -0
  152. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payment_term_type.py +0 -0
  153. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/payments.py +0 -0
  154. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/phone.py +0 -0
  155. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/prepayment.py +0 -0
  156. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/prepayments.py +0 -0
  157. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/purchase.py +0 -0
  158. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/purchase_order.py +0 -0
  159. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/purchase_orders.py +0 -0
  160. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/quote.py +0 -0
  161. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/quote_line_amount_types.py +0 -0
  162. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/quote_status_codes.py +0 -0
  163. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/quotes.py +0 -0
  164. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/receipt.py +0 -0
  165. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/receipts.py +0 -0
  166. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/repeating_invoice.py +0 -0
  167. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/repeating_invoices.py +0 -0
  168. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report.py +0 -0
  169. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_attribute.py +0 -0
  170. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_cell.py +0 -0
  171. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_fields.py +0 -0
  172. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_row.py +0 -0
  173. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_rows.py +0 -0
  174. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_with_row.py +0 -0
  175. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/report_with_rows.py +0 -0
  176. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/reports.py +0 -0
  177. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/request_empty.py +0 -0
  178. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/row_type.py +0 -0
  179. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/sales_tracking_category.py +0 -0
  180. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/schedule.py +0 -0
  181. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/setup.py +0 -0
  182. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tax_breakdown_component.py +0 -0
  183. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tax_component.py +0 -0
  184. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tax_rate.py +0 -0
  185. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tax_rates.py +0 -0
  186. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tax_type.py +0 -0
  187. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/ten_ninety_nine_contact.py +0 -0
  188. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/ten_nintey_nine_contact.py +0 -0
  189. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/time_zone.py +0 -0
  190. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tracking_categories.py +0 -0
  191. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tracking_category.py +0 -0
  192. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tracking_option.py +0 -0
  193. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/tracking_options.py +0 -0
  194. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/user.py +0 -0
  195. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/users.py +0 -0
  196. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/accounting/models/validation_error.py +0 -0
  197. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/api_client/__init__.py +0 -0
  198. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/api_client/configuration.py +0 -0
  199. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/api_client/deserializer.py +0 -0
  200. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/api_client/oauth2.py +0 -0
  201. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/api_client/serializer.py +0 -0
  202. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/__init__.py +0 -0
  203. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/api/__init__.py +0 -0
  204. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/__init__.py +0 -0
  205. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/create_usage_record.py +0 -0
  206. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/plan.py +0 -0
  207. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/price.py +0 -0
  208. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/problem_details.py +0 -0
  209. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/product.py +0 -0
  210. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/subscription.py +0 -0
  211. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/subscription_item.py +0 -0
  212. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/update_usage_record.py +0 -0
  213. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/usage_record.py +0 -0
  214. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/appstore/models/usage_records_list.py +0 -0
  215. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/__init__.py +0 -0
  216. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/api/__init__.py +0 -0
  217. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/__init__.py +0 -0
  218. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/asset.py +0 -0
  219. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/asset_status.py +0 -0
  220. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/asset_status_query_param.py +0 -0
  221. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/asset_type.py +0 -0
  222. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/assets.py +0 -0
  223. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/book_depreciation_detail.py +0 -0
  224. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/book_depreciation_setting.py +0 -0
  225. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/error.py +0 -0
  226. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/field_validation_errors_element.py +0 -0
  227. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/pagination.py +0 -0
  228. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/resource_validation_errors_element.py +0 -0
  229. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/assets/models/setting.py +0 -0
  230. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/exceptions/__init__.py +0 -0
  231. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/exceptions/http_status_exceptions.py +0 -0
  232. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/__init__.py +0 -0
  233. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/api/__init__.py +0 -0
  234. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/__init__.py +0 -0
  235. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/association.py +0 -0
  236. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/file_object.py +0 -0
  237. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/files.py +0 -0
  238. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/folder.py +0 -0
  239. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/folders.py +0 -0
  240. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/inline_object.py +0 -0
  241. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/inline_object1.py +0 -0
  242. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/object_group.py +0 -0
  243. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/object_type.py +0 -0
  244. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/upload_object.py +0 -0
  245. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/file/models/user.py +0 -0
  246. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/__init__.py +0 -0
  247. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/api/__init__.py +0 -0
  248. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/__init__.py +0 -0
  249. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/account_usage.py +0 -0
  250. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/account_usage_response.py +0 -0
  251. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/balance_sheet_account_detail.py +0 -0
  252. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/balance_sheet_account_group.py +0 -0
  253. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/balance_sheet_account_type.py +0 -0
  254. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/balance_sheet_response.py +0 -0
  255. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/bank_statement_accounting_response.py +0 -0
  256. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/bank_statement_response.py +0 -0
  257. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/bank_transaction_response.py +0 -0
  258. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cash_account_response.py +0 -0
  259. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cash_balance.py +0 -0
  260. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cash_validation_response.py +0 -0
  261. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cashflow_account.py +0 -0
  262. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cashflow_activity.py +0 -0
  263. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cashflow_response.py +0 -0
  264. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/cashflow_type.py +0 -0
  265. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/contact_detail.py +0 -0
  266. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/contact_response.py +0 -0
  267. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/contact_total_detail.py +0 -0
  268. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/contact_total_other.py +0 -0
  269. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/credit_note_response.py +0 -0
  270. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/current_statement_response.py +0 -0
  271. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/data_source_response.py +0 -0
  272. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/history_record_response.py +0 -0
  273. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/income_by_contact_response.py +0 -0
  274. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/invoice_response.py +0 -0
  275. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/line_item_response.py +0 -0
  276. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/lock_history_model.py +0 -0
  277. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/lock_history_response.py +0 -0
  278. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/manual_journal_total.py +0 -0
  279. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/overpayment_response.py +0 -0
  280. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/payment_response.py +0 -0
  281. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/pnl_account.py +0 -0
  282. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/pnl_account_class.py +0 -0
  283. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/pnl_account_type.py +0 -0
  284. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/practice_response.py +0 -0
  285. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/prepayment_response.py +0 -0
  286. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/problem.py +0 -0
  287. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/problem_type.py +0 -0
  288. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/profit_and_loss_response.py +0 -0
  289. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/report_history_model.py +0 -0
  290. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/report_history_response.py +0 -0
  291. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/statement_balance_response.py +0 -0
  292. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/statement_line_response.py +0 -0
  293. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/statement_lines_response.py +0 -0
  294. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/statement_response.py +0 -0
  295. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/total_detail.py +0 -0
  296. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/total_other.py +0 -0
  297. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/trial_balance_account.py +0 -0
  298. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/trial_balance_entry.py +0 -0
  299. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/trial_balance_movement.py +0 -0
  300. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/trial_balance_response.py +0 -0
  301. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/user_activities_response.py +0 -0
  302. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/finance/models/user_response.py +0 -0
  303. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/__init__.py +0 -0
  304. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/api/__init__.py +0 -0
  305. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/api/exception_handler.py +0 -0
  306. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/models/__init__.py +0 -0
  307. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/models/access_token.py +0 -0
  308. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/models/connection.py +0 -0
  309. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/identity/models/refresh_token.py +0 -0
  310. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/models.py +0 -0
  311. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/__init__.py +0 -0
  312. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/api/__init__.py +0 -0
  313. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/__init__.py +0 -0
  314. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/account.py +0 -0
  315. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/account_type.py +0 -0
  316. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/allowance_category.py +0 -0
  317. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/allowance_type.py +0 -0
  318. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/api_exception.py +0 -0
  319. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/bank_account.py +0 -0
  320. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/calendar_type.py +0 -0
  321. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/country_of_residence.py +0 -0
  322. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/deduction_line.py +0 -0
  323. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/deduction_type.py +0 -0
  324. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/deduction_type_calculation_type.py +0 -0
  325. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/earnings_line.py +0 -0
  326. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/earnings_rate.py +0 -0
  327. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/earnings_rate_calculation_type.py +0 -0
  328. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/earnings_type.py +0 -0
  329. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/employee.py +0 -0
  330. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/employee_status.py +0 -0
  331. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/employees.py +0 -0
  332. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/employment_basis.py +0 -0
  333. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/employment_termination_payment_type.py +0 -0
  334. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/employment_type.py +0 -0
  335. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/entitlement_final_pay_payout_type.py +0 -0
  336. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/home_address.py +0 -0
  337. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/income_type.py +0 -0
  338. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_accrual_line.py +0 -0
  339. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_application.py +0 -0
  340. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_applications.py +0 -0
  341. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_balance.py +0 -0
  342. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_category_code.py +0 -0
  343. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_earnings_line.py +0 -0
  344. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_line.py +0 -0
  345. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_line_calculation_type.py +0 -0
  346. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_lines.py +0 -0
  347. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_period.py +0 -0
  348. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_period_status.py +0 -0
  349. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_type.py +0 -0
  350. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/leave_type_contribution_type.py +0 -0
  351. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/manual_tax_type.py +0 -0
  352. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/opening_balances.py +0 -0
  353. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/paid_leave_earnings_line.py +0 -0
  354. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_item.py +0 -0
  355. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_items.py +0 -0
  356. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_out_type.py +0 -0
  357. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_run.py +0 -0
  358. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_run_status.py +0 -0
  359. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_runs.py +0 -0
  360. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/pay_template.py +0 -0
  361. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payment_frequency_type.py +0 -0
  362. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payroll_calendar.py +0 -0
  363. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payroll_calendars.py +0 -0
  364. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payslip.py +0 -0
  365. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payslip_lines.py +0 -0
  366. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payslip_object.py +0 -0
  367. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payslip_summary.py +0 -0
  368. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/payslips.py +0 -0
  369. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/rate_type.py +0 -0
  370. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/reimbursement_line.py +0 -0
  371. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/reimbursement_lines.py +0 -0
  372. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/reimbursement_type.py +0 -0
  373. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/residency_status.py +0 -0
  374. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/senior_marital_status.py +0 -0
  375. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/settings.py +0 -0
  376. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/settings_object.py +0 -0
  377. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/settings_tracking_categories.py +0 -0
  378. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/settings_tracking_categories_employee_groups.py +0 -0
  379. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/settings_tracking_categories_timesheet_categories.py +0 -0
  380. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/state.py +0 -0
  381. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_fund.py +0 -0
  382. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_fund_product.py +0 -0
  383. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_fund_products.py +0 -0
  384. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_fund_type.py +0 -0
  385. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_funds.py +0 -0
  386. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_line.py +0 -0
  387. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/super_membership.py +0 -0
  388. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/superannuation_calculation_type.py +0 -0
  389. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/superannuation_contribution_type.py +0 -0
  390. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/superannuation_line.py +0 -0
  391. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/tax_declaration.py +0 -0
  392. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/tax_line.py +0 -0
  393. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/tax_scale_type.py +0 -0
  394. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/tfn_exemption_type.py +0 -0
  395. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/timesheet.py +0 -0
  396. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/timesheet_line.py +0 -0
  397. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/timesheet_object.py +0 -0
  398. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/timesheet_status.py +0 -0
  399. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/timesheets.py +0 -0
  400. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/validation_error.py +0 -0
  401. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollau/models/work_condition.py +0 -0
  402. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/__init__.py +0 -0
  403. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/api/__init__.py +0 -0
  404. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/__init__.py +0 -0
  405. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/account.py +0 -0
  406. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/accounts.py +0 -0
  407. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/address.py +0 -0
  408. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/bank_account.py +0 -0
  409. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/benefit.py +0 -0
  410. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/calendar_type.py +0 -0
  411. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/deduction.py +0 -0
  412. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/deduction_line.py +0 -0
  413. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/deduction_object.py +0 -0
  414. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/deductions.py +0 -0
  415. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_line.py +0 -0
  416. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_order.py +0 -0
  417. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_order_object.py +0 -0
  418. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_orders.py +0 -0
  419. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_rate.py +0 -0
  420. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_rate_object.py +0 -0
  421. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_rates.py +0 -0
  422. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_template.py +0 -0
  423. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/earnings_template_object.py +0 -0
  424. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee.py +0 -0
  425. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_earnings_templates.py +0 -0
  426. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave.py +0 -0
  427. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_balance.py +0 -0
  428. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_balances.py +0 -0
  429. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_object.py +0 -0
  430. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_setup.py +0 -0
  431. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_setup_object.py +0 -0
  432. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_type.py +0 -0
  433. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_type_object.py +0 -0
  434. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leave_types.py +0 -0
  435. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_leaves.py +0 -0
  436. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_object.py +0 -0
  437. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_opening_balance.py +0 -0
  438. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_opening_balances_object.py +0 -0
  439. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_pay_template.py +0 -0
  440. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_pay_template_object.py +0 -0
  441. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_pay_templates.py +0 -0
  442. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_leave_balance.py +0 -0
  443. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_leave_balance_object.py +0 -0
  444. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_leave_summary.py +0 -0
  445. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_leaves_summaries.py +0 -0
  446. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_sick_leave.py +0 -0
  447. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_sick_leave_object.py +0 -0
  448. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_statutory_sick_leaves.py +0 -0
  449. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_tax.py +0 -0
  450. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_tax_object.py +0 -0
  451. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_working_pattern.py +0 -0
  452. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_working_pattern_with_working_weeks.py +0 -0
  453. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_working_pattern_with_working_weeks_object.py +0 -0
  454. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_working_pattern_with_working_weeks_request.py +0 -0
  455. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employee_working_patterns_object.py +0 -0
  456. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employees.py +0 -0
  457. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employment.py +0 -0
  458. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/employment_object.py +0 -0
  459. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/gross_earnings_history.py +0 -0
  460. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/invalid_field.py +0 -0
  461. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_accrual_line.py +0 -0
  462. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_earnings_line.py +0 -0
  463. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_period.py +0 -0
  464. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_periods.py +0 -0
  465. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_type.py +0 -0
  466. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_type_object.py +0 -0
  467. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/leave_types.py +0 -0
  468. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pagination.py +0 -0
  469. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_run.py +0 -0
  470. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_run_calendar.py +0 -0
  471. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_run_calendar_object.py +0 -0
  472. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_run_calendars.py +0 -0
  473. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_run_object.py +0 -0
  474. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_runs.py +0 -0
  475. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_slip.py +0 -0
  476. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_slip_object.py +0 -0
  477. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/pay_slips.py +0 -0
  478. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/payment_line.py +0 -0
  479. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/payment_method.py +0 -0
  480. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/payment_method_object.py +0 -0
  481. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/problem.py +0 -0
  482. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/reimbursement.py +0 -0
  483. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/reimbursement_line.py +0 -0
  484. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/reimbursement_object.py +0 -0
  485. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/reimbursements.py +0 -0
  486. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/salary_and_wage.py +0 -0
  487. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/salary_and_wage_object.py +0 -0
  488. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/salary_and_wages.py +0 -0
  489. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/settings.py +0 -0
  490. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/statutory_deduction.py +0 -0
  491. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/statutory_deduction_category.py +0 -0
  492. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/statutory_deduction_line.py +0 -0
  493. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/statutory_deduction_object.py +0 -0
  494. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/statutory_deductions.py +0 -0
  495. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/superannuation_line.py +0 -0
  496. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/superannuation_object.py +0 -0
  497. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/superannuations.py +0 -0
  498. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/tax_code.py +0 -0
  499. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/tax_line.py +0 -0
  500. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/tax_settings.py +0 -0
  501. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/timesheet.py +0 -0
  502. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/timesheet_earnings_line.py +0 -0
  503. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/timesheet_line.py +0 -0
  504. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/timesheet_line_object.py +0 -0
  505. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/timesheet_object.py +0 -0
  506. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/timesheets.py +0 -0
  507. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/tracking_categories.py +0 -0
  508. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/tracking_category.py +0 -0
  509. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrollnz/models/working_week.py +0 -0
  510. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/__init__.py +0 -0
  511. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/api/__init__.py +0 -0
  512. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/api/exception_handler.py +0 -0
  513. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/__init__.py +0 -0
  514. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/account.py +0 -0
  515. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/accounts.py +0 -0
  516. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/address.py +0 -0
  517. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/bank_account.py +0 -0
  518. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/benefit.py +0 -0
  519. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/benefit_line.py +0 -0
  520. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/benefit_object.py +0 -0
  521. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/benefits.py +0 -0
  522. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/court_order_line.py +0 -0
  523. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/deduction.py +0 -0
  524. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/deduction_line.py +0 -0
  525. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/deduction_object.py +0 -0
  526. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/deductions.py +0 -0
  527. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_line.py +0 -0
  528. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_order.py +0 -0
  529. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_order_object.py +0 -0
  530. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_orders.py +0 -0
  531. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_rate.py +0 -0
  532. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_rate_object.py +0 -0
  533. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_rates.py +0 -0
  534. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_template.py +0 -0
  535. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/earnings_template_object.py +0 -0
  536. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee.py +0 -0
  537. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave.py +0 -0
  538. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave_balance.py +0 -0
  539. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave_balances.py +0 -0
  540. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave_object.py +0 -0
  541. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave_type.py +0 -0
  542. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave_type_object.py +0 -0
  543. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leave_types.py +0 -0
  544. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_leaves.py +0 -0
  545. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_object.py +0 -0
  546. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_opening_balances.py +0 -0
  547. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_opening_balances_object.py +0 -0
  548. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_pay_template.py +0 -0
  549. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_pay_template_object.py +0 -0
  550. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_pay_templates.py +0 -0
  551. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_leave_balance.py +0 -0
  552. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_leave_balance_object.py +0 -0
  553. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_leave_summary.py +0 -0
  554. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_leaves_summaries.py +0 -0
  555. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_sick_leave.py +0 -0
  556. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_sick_leave_object.py +0 -0
  557. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_statutory_sick_leaves.py +0 -0
  558. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_tax.py +0 -0
  559. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employee_tax_object.py +0 -0
  560. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employees.py +0 -0
  561. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employment.py +0 -0
  562. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/employment_object.py +0 -0
  563. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/invalid_field.py +0 -0
  564. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_accrual_line.py +0 -0
  565. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_earnings_line.py +0 -0
  566. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_period.py +0 -0
  567. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_periods.py +0 -0
  568. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_type.py +0 -0
  569. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_type_object.py +0 -0
  570. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/leave_types.py +0 -0
  571. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/ni_category.py +0 -0
  572. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/ni_category_letter.py +0 -0
  573. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/ni_category_one_of.py +0 -0
  574. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/ni_category_one_of1.py +0 -0
  575. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pagination.py +0 -0
  576. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pay_run.py +0 -0
  577. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pay_run_calendar.py +0 -0
  578. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pay_run_calendar_object.py +0 -0
  579. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pay_run_calendars.py +0 -0
  580. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pay_run_object.py +0 -0
  581. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/pay_runs.py +0 -0
  582. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/payment_line.py +0 -0
  583. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/payment_method.py +0 -0
  584. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/payment_method_object.py +0 -0
  585. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/payslip.py +0 -0
  586. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/payslip_object.py +0 -0
  587. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/payslips.py +0 -0
  588. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/problem.py +0 -0
  589. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/reimbursement.py +0 -0
  590. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/reimbursement_line.py +0 -0
  591. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/reimbursement_object.py +0 -0
  592. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/reimbursements.py +0 -0
  593. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/salary_and_wage.py +0 -0
  594. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/salary_and_wage_object.py +0 -0
  595. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/salary_and_wages.py +0 -0
  596. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/settings.py +0 -0
  597. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/statutory_deduction.py +0 -0
  598. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/statutory_deduction_category.py +0 -0
  599. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/tax_line.py +0 -0
  600. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/timesheet.py +0 -0
  601. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/timesheet_earnings_line.py +0 -0
  602. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/timesheet_line.py +0 -0
  603. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/timesheet_line_object.py +0 -0
  604. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/timesheet_object.py +0 -0
  605. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/timesheets.py +0 -0
  606. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/tracking_categories.py +0 -0
  607. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/payrolluk/models/tracking_category.py +0 -0
  608. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/__init__.py +0 -0
  609. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/api/__init__.py +0 -0
  610. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/__init__.py +0 -0
  611. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/amount.py +0 -0
  612. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/charge_type.py +0 -0
  613. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/currency_code.py +0 -0
  614. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/error.py +0 -0
  615. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/pagination.py +0 -0
  616. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/project.py +0 -0
  617. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/project_create_or_update.py +0 -0
  618. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/project_patch.py +0 -0
  619. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/project_status.py +0 -0
  620. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/project_user.py +0 -0
  621. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/project_users.py +0 -0
  622. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/projects.py +0 -0
  623. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/task.py +0 -0
  624. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/task_create_or_update.py +0 -0
  625. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/tasks.py +0 -0
  626. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/time_entries.py +0 -0
  627. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/time_entry.py +0 -0
  628. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/project/models/time_entry_create_or_update.py +0 -0
  629. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/rest.py +0 -0
  630. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/single_dispatch_str.py +0 -0
  631. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python/utils.py +0 -0
  632. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python.egg-info/SOURCES.txt +0 -0
  633. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python.egg-info/dependency_links.txt +0 -0
  634. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python.egg-info/requires.txt +0 -0
  635. {xero_python-8.0.0a1 → xero_python-8.1.0}/xero_python.egg-info/top_level.txt +0 -0
@@ -0,0 +1,644 @@
1
+ Metadata-Version: 2.1
2
+ Name: xero_python
3
+ Version: 8.1.0
4
+ Summary: Official Python sdk for Xero API generated by OpenAPI spec for oAuth2
5
+ Home-page: UNKNOWN
6
+ Author: Xero Developer API
7
+ Author-email: api@xero.com
8
+ License: MIT license
9
+ Keywords: xero python sdk API oAuth
10
+ Platform: UNKNOWN
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Natural Language :: English
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.5
17
+ Classifier: Programming Language :: Python :: 3.6
18
+ Classifier: Programming Language :: Python :: 3.7
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Requires-Python: >=3.5
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ License-File: AUTHORS.md
24
+
25
+ # xero-python
26
+ [![PyPI version](https://badge.fury.io/py/xero-python.svg)](https://badge.fury.io/py/xero-python)
27
+ [![Github forks](https://img.shields.io/github/forks/XeroAPI/xero-python.svg)](https://github.com/XeroAPI/xero-python/network)
28
+ [![Github stars](https://img.shields.io/github/stars/XeroAPI/xero-python.svg)](https://github.com/XeroAPI/xero-python/stargazers)
29
+ [![Downloads](https://pepy.tech/badge/xero-python)](https://pepy.tech/project/xero-python)
30
+
31
+ The xero-python SDK makes it easy for developers to access Xero's APIs in their python code, and build robust applications and software using small business & general ledger accounting data.
32
+ # Table of Contents
33
+ - [API Client documentation](#api-client-documentation)
34
+ - [Sample Applications](#sample-applications)
35
+ - [Xero Account Requirements](#xero-account-requirements)
36
+ - [Installation](#installation)
37
+ - [Configuration](#configuration)
38
+ - [Authentication](#authentication)
39
+ - [Custom Connections](#custom-connections)
40
+ - [App Store Subscriptions](#app-store-subscriptions)
41
+ - [API Clients](#api-clients)
42
+ - [Helper Methods](#helper-methods)
43
+ - [Usage Examples](#usage-examples)
44
+ - [SDK conventions](#sdk-conventions)
45
+ - [Participating in Xero’s developer community](#participating-in-xeros-developer-community)
46
+ - [Contributing](#contributing)
47
+
48
+ <hr>
49
+
50
+ ## API Client documentation
51
+ This SDK supports full method coverage for the following Xero API sets:
52
+
53
+ | API Set | Description |
54
+ | --- | --- |
55
+ | [`Accounting`](https://xeroapi.github.io/xero-python/v1/accounting/index.html) | The Accounting API exposes accounting functions of the main Xero application *(most commonly used)*
56
+ | [Assets](https://xeroapi.github.io/xero-python/v1/assets/index.html) | The Assets API exposes fixed asset related functions of the Xero Accounting application |
57
+ | [Files](https://xeroapi.github.io/xero-python/v1/files/index.html) | The Files API provides access to the files, folders, and the association of files within a Xero organisation |
58
+ | [Projects](https://xeroapi.github.io/xero-python/v1/projects/index.html) | Xero Projects allows businesses to track time and costs on projects/jobs and report on profitability |
59
+ | [Payroll (AU)](https://xeroapi.github.io/xero-python/v1/payroll-au/index.html) | The (AU) Payroll API exposes payroll related functions of the payroll Xero application |
60
+ | [Payroll (UK)](https://xeroapi.github.io/xero-python/v1/payroll-uk/index.html) | The (UK) Payroll API exposes payroll related functions of the payroll Xero application |
61
+ | [Payroll (NZ)](https://xeroapi.github.io/xero-python/v1/payroll-nz/index.html) | The (NZ) Payroll API exposes payroll related functions of the payroll Xero application |
62
+
63
+ <img src="https://i.imgur.com/feMhCtI.png" alt="drawing" width="350"/>
64
+
65
+ <hr>
66
+
67
+ ## Sample Applications
68
+ Sample apps can get you started quickly with simple auth flows and advanced usage examples.
69
+
70
+ | Sample App | Description | Screenshot |
71
+ | --- | --- | --- |
72
+ | [`starter-app`](https://github.com/XeroAPI/xero-python-oauth2-starter) | Basic getting started code samples | <img src="https://i.imgur.com/gJA93yT.png" alt="drawing" width="200"/>
73
+ | [`full-app`](https://github.com/XeroAPI/xero-python-oauth2-app) | Complete app with more complex examples | <img src="https://i.imgur.com/1YRqMmc.png" alt="drawing" width="500"/>
74
+ | [`custom-connections-starter`](https://github.com/XeroAPI/xero-python-custom-connections-starter) | Basic app showing Custom Connections - a Xero [premium option](https://developer.xero.com/documentation/oauth2/custom-connections) for building M2M integrations to a single org | <img src="https://i.imgur.com/uOlaWg8.png" alt="drawing" width="300"/>
75
+
76
+ <hr>
77
+
78
+ ## Xero Account Requirements
79
+ - Create a [free Xero user account](https://www.xero.com/us/signup/api/)
80
+ - Login to your Xero developer [dashboard](https://developer.xero.com/app/manage) and create an API application
81
+ - Copy the credentials from your API app and store them using a secure ENV variable strategy
82
+ - Decide the [neccesary scopes](https://developer.xero.com/documentation/oauth2/scopes) for your app's functionality
83
+
84
+ # Installation
85
+ To install this SDK in your project:
86
+ ```
87
+ pip install xero-python
88
+ ```
89
+
90
+ ---
91
+ ## Configuration
92
+ ```python
93
+ # -*- coding: utf-8 -*-
94
+ import os
95
+ from functools import wraps
96
+ from io import BytesIO
97
+ from logging.config import dictConfig
98
+ from flask import Flask, session
99
+ from flask_oauthlib.contrib.client import OAuth, OAuth2Application
100
+ from flask_session import Session
101
+ from xero_python.accounting import AccountingApi
102
+ from xero_python.assets import AssetApi
103
+ from xero_python.project import ProjectApi
104
+ from xero_python.payrollau import PayrollAuApi
105
+ from xero_python.payrolluk import PayrollUkApi
106
+ from xero_python.payrollnz import PayrollNzApi
107
+ from xero_python.file import FilesApi
108
+ from xero_python.api_client import ApiClient, serialize
109
+ from xero_python.api_client.configuration import Configuration
110
+ from xero_python.api_client.oauth2 import OAuth2Token
111
+ from xero_python.exceptions import AccountingBadRequestException, PayrollUkBadRequestException
112
+ from xero_python.identity import IdentityApi
113
+ from xero_python.utils import getvalue
114
+ import logging_settings
115
+ from utils import jsonify, serialize_model
116
+
117
+ dictConfig(logging_settings.default_settings)
118
+
119
+ # configure main flask application
120
+ app = Flask(__name__)
121
+ app.config.from_object("default_settings")
122
+ app.config.from_pyfile("config.py", silent=True)
123
+
124
+ if app.config["ENV"] != "production":
125
+ # allow oauth2 loop to run over http (used for local testing only)
126
+ os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
127
+
128
+ # configure persistent session cache
129
+ Session(app)
130
+
131
+ # configure flask-oauthlib application
132
+ oauth = OAuth(app)
133
+ xero = oauth.remote_app(
134
+ name="xero",
135
+ version="2",
136
+ client_id=app.config["CLIENT_ID"],
137
+ client_secret=app.config["CLIENT_SECRET"],
138
+ endpoint_url="https://api.xero.com/",
139
+ authorization_url="https://login.xero.com/identity/connect/authorize",
140
+ access_token_url="https://identity.xero.com/connect/token",
141
+ refresh_token_url="https://identity.xero.com/connect/token",
142
+ scope="offline_access openid profile email accounting.transactions "
143
+ "accounting.transactions.read accounting.reports.read "
144
+ "accounting.journals.read accounting.settings accounting.settings.read "
145
+ "accounting.contacts accounting.contacts.read accounting.attachments "
146
+ "accounting.attachments.read assets projects "
147
+ "files "
148
+ "payroll.employees payroll.payruns payroll.payslip payroll.timesheets payroll.settings",
149
+ ) # type: OAuth2Application
150
+
151
+
152
+ # configure xero-python sdk client
153
+ api_client = ApiClient(
154
+ Configuration(
155
+ debug=app.config["DEBUG"],
156
+ oauth2_token=OAuth2Token(
157
+ client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"]
158
+ ),
159
+ ),
160
+ pool_threads=1,
161
+ )
162
+
163
+ # configure token persistence and exchange point between flask-oauthlib and xero-python
164
+ @xero.tokengetter
165
+ @api_client.oauth2_token_getter
166
+ def obtain_xero_oauth2_token():
167
+ return session.get("token")
168
+
169
+ @xero.tokensaver
170
+ @api_client.oauth2_token_saver
171
+ def store_xero_oauth2_token(token):
172
+ session["token"] = token
173
+ session.modified = True
174
+ ```
175
+
176
+ ---
177
+ ## Authentication
178
+ All API requests go through Xero's OAuth 2.0 gateway and require a valid `access_token` to be set on the `client` which appends the `access_token` [JWT](https://jwt.io/) to the header of each request.
179
+
180
+ If you are making an API call for the first time:
181
+
182
+ 1. Send the user to the Xero authorization URL
183
+ ```python
184
+ @app.route("/login")
185
+ def login():
186
+ redirect_url = url_for("oauth_callback", _external=True)
187
+ session["state"] = app.config["STATE"]
188
+ try:
189
+ response = xero.authorize(callback_uri=redirect_url, state=session["state"])
190
+ except Exception as e:
191
+ print(e)
192
+ raise
193
+ return response
194
+ ```
195
+ 2. The user will authorize your application and be sent to your `redirect_uri`. This is when and where to check that the returned "state" param matches that which was previously defined. If the "state" params match, calling the oauth library's `authorized_response()` method will swap the temporary auth code for an access token which you can store and use for subsequent API calls.
196
+ ```python
197
+ @app.route("/callback")
198
+ def oauth_callback():
199
+ if request.args.get("state") != session["state"]:
200
+ return "Error, state doesn't match, no token for you."
201
+ try:
202
+ response = xero.authorized_response()
203
+ except Exception as e:
204
+ print(e)
205
+ raise
206
+ if response is None or response.get("access_token") is None:
207
+ return "Access denied: response=%s" % response
208
+ store_xero_oauth2_token(response)
209
+ return redirect(url_for("index", _external=True))
210
+ ```
211
+ 3. Call the Xero API like so:
212
+ ```python
213
+ @app.route("/accounting_invoice_read_all")
214
+ @xero_token_required
215
+ def accounting_invoice_read_all():
216
+ code = get_code_snippet("INVOICES","READ_ALL")
217
+
218
+ #[INVOICES:READ_ALL]
219
+ xero_tenant_id = get_xero_tenant_id()
220
+ accounting_api = AccountingApi(api_client)
221
+
222
+ try:
223
+ invoices_read = accounting_api.get_invoices(
224
+ xero_tenant_id
225
+ )
226
+ except AccountingBadRequestException as exception:
227
+ output = "Error: " + exception.reason
228
+ json = jsonify(exception.error_data)
229
+ else:
230
+ output = "Total invoices found: {}.".format(len(invoices_read.invoices)
231
+ )
232
+ json = serialize_model(invoices_read)
233
+ #[/INVOICES:READ_ALL]
234
+
235
+ return render_template(
236
+ "output.html", title="Invoices",code=code, output=output, json=json, len = 0, set="accounting", endpoint="invoice", action="read_all"
237
+ )
238
+ ```
239
+
240
+ It is recommended that you store this token set JSON in a datastore in relation to the user who has authenticated the Xero API connection. Each time you want to call the Xero API, you will need to access the previously generated token set, initialize it on the SDK `client`, and refresh the `access_token` prior to making API calls.
241
+
242
+ ### Token Set
243
+ | key | value | description |
244
+ | --- | --- | --- |
245
+ | id_token: | "xxx.yyy.zzz" | [OpenID Connect](https://openid.net/connect/) token returned if `openid profile email` scopes accepted |
246
+ | access_token: | "xxx.yyy.zzz" | [Bearer token](https://oauth.net/2/jwt/) with a 30 minute expiration required for all API calls |
247
+ | expires_in: | 1800 | Time in seconds till the token expires - 1800s is 30m |
248
+ | refresh_token: | "XXXXXXX" | Alphanumeric string used to obtain a new Token Set w/ a fresh access_token - 60 day expiry |
249
+ | scope: | ["email", "profile", "openid", "accounting.transactions", "offline_access"] | The Xero permissions that are embedded in the `access_token` |
250
+
251
+ Example Token Set JSON:
252
+ ```
253
+ {
254
+ "id_token": "xxx.yyy.zz",
255
+ "access_token": "xxx.yyy.zzz",
256
+ "expires_in": 1800,
257
+ "token_type": "Bearer",
258
+ "refresh_token": "xxxxxxxxx",
259
+ "scope": ["email", "profile", "openid", "accounting.transactions", "offline_access"]
260
+ }
261
+ ```
262
+
263
+ ---
264
+ ## Custom Connections
265
+
266
+ Custom Connections are a Xero [premium option](https://developer.xero.com/documentation/oauth2/custom-connections) used for building M2M integrations to a single organisation. A custom connection uses OAuth 2.0's [`client_credentials`](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/) grant which eliminates the step of exchanging the temporary code for a token set.
267
+
268
+ To use this SDK with a Custom Connections:
269
+ ```python
270
+ # -*- coding: utf-8 -*-
271
+ import os
272
+ from functools import wraps
273
+ from io import BytesIO
274
+ from logging.config import dictConfig
275
+ from flask import Flask, url_for, render_template, session, redirect, json, send_file
276
+ from flask_session import Session
277
+ from xero_python.accounting import AccountingApi, ContactPerson, Contact, Contacts
278
+ from xero_python.api_client import ApiClient, serialize
279
+ from xero_python.api_client.configuration import Configuration
280
+ from xero_python.api_client.oauth2 import OAuth2Token
281
+ from xero_python.exceptions import AccountingBadRequestException
282
+ from xero_python.identity import IdentityApi
283
+ from xero_python.utils import getvalue
284
+ import logging_settings
285
+ from utils import jsonify, serialize_model
286
+
287
+ dictConfig(logging_settings.default_settings)
288
+
289
+ # configure main flask application
290
+ app = Flask(__name__)
291
+ app.config.from_object("default_settings")
292
+ app.config.from_pyfile("config.py", silent=True)
293
+
294
+ # configure persistent session cache
295
+ Session(app)
296
+
297
+ # configure xero-python sdk client
298
+ api_client = ApiClient(
299
+ Configuration(
300
+ debug=app.config["DEBUG"],
301
+ oauth2_token=OAuth2Token(
302
+ client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"]
303
+ ),
304
+ ),
305
+ pool_threads=1,
306
+ )
307
+
308
+ # configure token persistence and exchange point between app session and xero-python
309
+ @api_client.oauth2_token_getter
310
+ def obtain_xero_oauth2_token():
311
+ return session.get("token")
312
+
313
+ @api_client.oauth2_token_saver
314
+ def store_xero_oauth2_token(token):
315
+ session["token"] = token
316
+ session.modified = True
317
+
318
+ @app.route("/get_token")
319
+ def get_token():
320
+ try:
321
+ # no user auth flow, no exchanging temp code for token
322
+ xero_token = api_client.get_client_credentials_token()
323
+ except Exception as e:
324
+ print(e)
325
+ raise
326
+ # todo validate state value
327
+ if xero_token is None or xero_token.get("access_token") is None:
328
+ return "Access denied: response=%s" % xero_token
329
+ store_xero_oauth2_token(xero_token)
330
+ return redirect(url_for("index", _external=True))
331
+
332
+ @app.route("/accounting_invoice_read_all")
333
+ @xero_token_required
334
+ def accounting_invoice_read_all():
335
+ code = get_code_snippet("INVOICES","READ_ALL")
336
+
337
+ #[INVOICES:READ_ALL]
338
+ accounting_api = AccountingApi(api_client)
339
+
340
+ try:
341
+ invoices_read = accounting_api.get_invoices('')
342
+ except AccountingBadRequestException as exception:
343
+ output = "Error: " + exception.reason
344
+ json = jsonify(exception.error_data)
345
+ else:
346
+ output = "Total invoices found: {}.".format(len(invoices_read.invoices)
347
+ )
348
+ json = serialize_model(invoices_read)
349
+ #[/INVOICES:READ_ALL]
350
+
351
+ return render_template(
352
+ "output.html", title="Invoices",code=code, output=output, json=json, len = 0, set="accounting", endpoint="invoice", action="read_all"
353
+ )
354
+ ```
355
+
356
+ Because Custom Connections are only valid for a single organisation you don't need to pass the xero-tenant-id as the first parameter to every method, or more specifically for this SDK xeroTenantId can be an empty string.
357
+
358
+ > Because the SDK is generated from the OpenAPI spec the parameter remains. For now you are required to pass an empty string to use this SDK with a Custom Connection.
359
+
360
+ ---
361
+
362
+ ## App Store Subscriptions
363
+
364
+ If you are implementing subscriptions to participate in Xero's App Store you will need to setup [App Store subscriptions](https://developer.xero.com/documentation/guides/how-to-guides/xero-app-store-referrals/) endpoints.
365
+
366
+ When a plan is successfully purchased, the user is redirected back to the URL specified in the setup process. The Xero App Store appends the subscription Id to this URL so you can immediately determine what plan the user has subscribed to through the subscriptions API.
367
+
368
+ With your app credentials you can create a client via `client_credentials` grant_type with the `marketplace.billing` scope. This unique access_token will allow you to query any functions in `AppStoreApi`. Client Credentials tokens to query app store endpoints will only work for apps that have completed the App Store on-boarding process.
369
+ ```python
370
+ # configure xero-python sdk client
371
+ api_client = ApiClient(
372
+ Configuration(
373
+ debug=app.config["DEBUG"],
374
+ oauth2_token=OAuth2Token(
375
+ client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"]
376
+ ),
377
+ ),
378
+ pool_threads=1,
379
+ )
380
+
381
+ try:
382
+ # pass True for app_store_billing - defaults to False if no value provided
383
+ xero_token = api_client.get_client_credentials_token(True)
384
+ except Exception as e:
385
+ print(e)
386
+ raise
387
+
388
+ app_store_api = AppStoreApi(api_client)
389
+
390
+ subscription = app_store_api.get_subscription(subscription_id)
391
+ print(subscription)
392
+
393
+ {
394
+ 'current_period_end': datetime.datetime(2021, 9, 2, 14, 8, 58, 772536, tzinfo=tzutc()),
395
+ 'end_date': None,
396
+ 'id': '03bc74f2-1237-4477-b782-2dfb1a6d8b21',
397
+ 'organisation_id': '79e8b2e5-c63d-4dce-888f-e0f3e9eac647',
398
+ 'plans':[
399
+ {
400
+ 'id': '6abc26f3-9390-4194-8b25-ce8b9942fda9',
401
+ 'name': 'Small',
402
+ 'status': 'ACTIVE',
403
+ 'subscription_items': [
404
+ {
405
+ 'end_date': None,
406
+ 'id': '834cff4c-b753-4de2-9e7a-3451e14fa17a',
407
+ 'price': {
408
+ 'amount': Decimal('0.1000'),
409
+ 'currency': 'NZD',
410
+ 'id': '2310de92-c7c0-4bcb-b972-fb7612177bc7'
411
+ },
412
+ 'product': {
413
+ 'id': '9586421f-7325-4493-bac9-d93be06a6a38',
414
+ 'name': '',
415
+ 'type': 'FIXED',
416
+ 'seat_unit': None
417
+ },
418
+ 'start_date': datetime.datetime(2021, 8, 2, 14, 8, 58, 772536, tzinfo=tzutc()),
419
+ 'test_mode': True
420
+ }
421
+ ]
422
+ }
423
+ ],
424
+ 'start_date': datetime.datetime(2021, 8, 2, 14, 8, 58, 772536, tzinfo=tzutc()),
425
+ 'status': 'ACTIVE',
426
+ 'test_mode': True
427
+ }
428
+
429
+ ```
430
+ You should use the subscription data to provision user access/permissions to your application.
431
+ ### App Store Subscription Webhooks
432
+
433
+ In additon to a subscription Id being passed through the URL, when a purchase or an upgrade takes place you will be notified via a webhook. You can then use the subscription Id in the webhook payload to query the AppStore endpoints and determine what plan the user purchased, upgraded, downgraded or cancelled.
434
+
435
+ Refer to Xero's documenation to learn more about setting up and receiving webhooks.
436
+ > https://developer.xero.com/documentation/guides/webhooks/overview/
437
+
438
+ ---
439
+ ## API Clients
440
+ You can access the different API sets and their available methods through the following:
441
+
442
+ ```python
443
+ accounting_api = AccountingApi(api_client)
444
+ read_accounts = accounting_api.get_accounts(xero_tenant_id)
445
+ asset_api = AssetApi(api_client)
446
+ read_assets = asset_api.get_assets(xero_tenant_id)
447
+ # ... all the API sets follow the same pattern
448
+ ```
449
+ ---
450
+ ## Helper Methods
451
+
452
+ Once you have a valid Token Set in your datastore, the next time you want to call the Xero API simply initialize a new `client` and refresh the token set.
453
+
454
+ ```python
455
+ # configure xero-python sdk client
456
+ api_client = ApiClient(
457
+ Configuration(
458
+ debug=app.config["DEBUG"],
459
+ oauth2_token=OAuth2Token(
460
+ client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"]
461
+ ),
462
+ ),
463
+ pool_threads=1,
464
+ )
465
+
466
+ # configure token persistence and exchange point between app session and xero-python
467
+ @api_client.oauth2_token_getter
468
+ def obtain_xero_oauth2_token():
469
+ return session.get("token")
470
+
471
+ @api_client.oauth2_token_saver
472
+ def store_xero_oauth2_token(token):
473
+ session["token"] = token
474
+ session.modified = True
475
+
476
+ # get existing token set
477
+ token_set = get_token_set_from_database(user_id); // example function name
478
+
479
+ # set token set to the api client
480
+ store_xero_oauth2_token(token_set)
481
+
482
+ # refresh token set on the api client
483
+ api_client.refresh_oauth2_token()
484
+
485
+ # call the Xero API
486
+ accounting_api = AccountingApi(api_client)
487
+ read_accounts = accounting_api.get_accounts(xero_tenant_id)
488
+ ```
489
+
490
+ A full list of the SDK client's methods:
491
+
492
+ | method | description | params | returns
493
+ | --- | --- | --- | --- |
494
+ | api_client.`oauth2_token_saver` | A decorator to register a callback function for saving refreshed token while the old token has expired | token_saver: the callback function accepting `token` argument | token_saver to allow this method be used as decorator |
495
+ | api_client.`oauth2_token_getter` | A decorator to register a callback function for getting oauth2 token | token_getter: the callback function returning oauth2 token dictionary | token_getter to allow this method be used as decorator |
496
+ | api_client.`revoke_oauth2_token` | Revokes a users refresh token and removes all their connections to your app | N/A | empty OAuth2 token |
497
+ | api_client.`refresh_oauth2_token` | Refreshes OAuth2 token set | N/A | new token set |
498
+ | api_client.`set_oauth2_token` | Sets OAuth2 token directly on the client | dict token: standard token dictionary | N/A |
499
+ | api_client.`get_oauth2_token` | Get OAuth2 token dictionary | N/A | dict |
500
+ ---
501
+ ## Usage Examples
502
+ ### Accounting API
503
+ ```python
504
+ from xero_python.accounting import AccountingApi
505
+ from xero_python.utils import getvalue
506
+
507
+ accounting_api = AccountingApi(api_client)
508
+
509
+ # Get Accounts
510
+ read_accounts = accounting_api.get_accounts(xero_tenant_id)
511
+ account_id = getvalue(read_accounts, "accounts.0.account_id", "")
512
+
513
+ # Get Account by ID
514
+ read_one_account = accounting_api.get_account(xero_tenant_id, account_id)
515
+
516
+ # Create Invoice
517
+ # get contact
518
+ read_contacts = accounting_api.get_contacts(xero_tenant_id)
519
+ contact_id = getvalue(read_contacts, "contacts.0.contact_id", "")
520
+ # get account
521
+ where = "Type==\"SALES\"&&Status==\"ACTIVE\""
522
+ read_accounts = accounting_api.get_accounts(
523
+ xero_tenant_id, where=where
524
+ )
525
+ account_id = getvalue(read_accounts, "accounts.0.account_id", "")
526
+ # build Invoices
527
+ contact = Contact(
528
+ contact_id=contact_id
529
+ )
530
+ line_item = LineItem(
531
+ account_code=account_id,
532
+ description= "Consulting",
533
+ quantity=1.0,
534
+ unit_amount=10.0,
535
+ )
536
+ invoice = Invoice(
537
+ line_items=[line_item],
538
+ contact=contact,
539
+ due_date= dateutil.parser.parse("2020-09-03T00:00:00Z"),
540
+ date= dateutil.parser.parse("2020-07-03T00:00:00Z"),
541
+ type="ACCREC"
542
+ )
543
+ invoices = Invoices(invoices=[invoice])
544
+ created_invoices = accounting_api.create_invoices(xero_tenant_id, invoices=invoices)
545
+ invoice_id = getvalue(read_invoices, "invoices.0.invoice_id", "")
546
+
547
+ # Create Attachment
548
+ include_online = True
549
+ file_name = "helo-heros.jpg"
550
+ path_to_upload = Path(__file__).resolve().parent.joinpath(file_name)
551
+ open_file = open(path_to_upload, 'rb')
552
+ body = open_file.read()
553
+ content_type = mimetypes.MimeTypes().guess_type(file_name)[0]
554
+
555
+ created_invoice_attachments_by_file_name = accounting_api.create_invoice_attachment_by_file_name(
556
+ xero_tenant_id,
557
+ invoice_id,
558
+ file_name,
559
+ body,
560
+ include_online,
561
+ )
562
+ ```
563
+
564
+ ---
565
+ ## SDK conventions
566
+
567
+ ### Querying & Filtering
568
+
569
+ Describe the support for query options and filtering
570
+
571
+ ```python
572
+ # configure api_client for use with xero-python sdk client
573
+ api_client = ApiClient(
574
+ Configuration(
575
+ debug=false,
576
+ oauth2_token=OAuth2Token(
577
+ client_id="YOUR_CLIENT_ID", client_secret="YOUR_CLIENT_SECRET"
578
+ ),
579
+ ),
580
+ pool_threads=1,
581
+ )
582
+
583
+ api_client.set_oauth2_token("YOUR_ACCESS_TOKEN")
584
+
585
+ def accounting_get_invoices():
586
+ api_instance = AccountingApi(api_client)
587
+ xero_tenant_id = 'YOUR_XERO_TENANT_ID'
588
+ if_modified_since = dateutil.parser.parse("2020-02-06T12:17:43.202-08:00")
589
+ where = 'Status=="DRAFT"'
590
+ order = 'InvoiceNumber ASC'
591
+ ids = ["00000000-0000-0000-0000-000000000000"]
592
+ invoice_numbers = ["INV-001", "INV-002"]
593
+ contact_ids = ["00000000-0000-0000-0000-000000000000"]
594
+ statuses = ["DRAFT", "SUBMITTED"]
595
+ include_archived = 'true'
596
+ created_by_my_app = 'false'
597
+ summary_only = 'true'
598
+
599
+ api_response = api_instance.get_invoices(
600
+ xero_tenant_id,
601
+ if_modified_since,
602
+ where,
603
+ order,
604
+ ids,
605
+ invoice_numbers,
606
+ contact_ids,
607
+ statuses,
608
+ page,
609
+ include_archived,
610
+ created_by_my_app,
611
+ unitdp,
612
+ summary_only
613
+ )
614
+ ```
615
+
616
+ ---
617
+
618
+ ## Participating in Xero’s developer community
619
+
620
+ This SDK is one of a number of SDK’s that the Xero Developer team builds and maintains. We are grateful for all the contributions that the community makes.
621
+
622
+ Here are a few things you should be aware of as a contributor:
623
+ * Xero has adopted the Contributor Covenant [Code of Conduct](https://github.com/XeroAPI/xero-python/blob/master/CODE_OF_CONDUCT.md), we expect all contributors in our community to adhere to it
624
+ * If you raise an issue then please make sure to fill out the Github issue template, doing so helps us help you
625
+ * You’re welcome to raise PRs. As our SDKs are generated we may use your code in the core SDK build instead of merging your code
626
+ * We have a [contribution guide](https://github.com/XeroAPI/xero-python/blob/master/CONTRIBUTING.md) for you to follow when contributing to this SDK
627
+ * Curious about how we generate our SDK’s? Have a [read of our process](https://devblog.xero.com/building-sdks-for-the-future-b79ff726dfd6) and have a look at our [OpenAPISpec](https://github.com/XeroAPI/Xero-OpenAPI)
628
+ * This software is published under the [MIT License](https://github.com/XeroAPI/xero-python/blob/master/LICENSE)
629
+
630
+ For questions that aren’t related to SDKs please refer to our [developer support page](https://developer.xero.com/support/).
631
+
632
+ ### Contributing
633
+ PRs, issues, and discussion are highly appreciated and encouraged. Note that the majority of this project is generated code based on [Xero's OpenAPI specs](https://github.com/XeroAPI/Xero-OpenAPI) - PR's will be evaluated and pre-merge will be incorporated into the root generation templates.
634
+
635
+ ### Versioning
636
+ We do our best to keep OS industry `semver` standards, but we can make mistakes! If something is not accurately reflected in a version's release notes please let the team know.
637
+
638
+
639
+ ## History
640
+
641
+ ### 0.1.0 (2020-03-02)
642
+ * First release on PyPI.
643
+
644
+
@@ -48,5 +48,5 @@ setup(
48
48
  keywords="xero python sdk API oAuth",
49
49
  name="xero_python",
50
50
  packages=find_packages(include=["xero_python", "xero_python.*"]),
51
- version="8.0.0-alpha.1",
51
+ version="8.1.0",
52
52
  )
@@ -2,4 +2,4 @@
2
2
 
3
3
  __author__ = """Xero Developer API"""
4
4
  __email__ = "api@xero.com"
5
- __version__ = "8.0.0-alpha.1"
5
+ __version__ = "8.1.0"
@@ -21,7 +21,7 @@ except ImportError:
21
21
  """
22
22
 
23
23
  """
24
- OpenAPI spec version: 8.0.0
24
+ OpenAPI spec version: 8.1.0
25
25
  """
26
26
 
27
27
 
@@ -988,6 +988,7 @@ class Organisation(BaseModel):
988
988
  "IGNITE",
989
989
  "GROW",
990
990
  "COMPREHENSIVE",
991
+ "SIMPLE",
991
992
  "None",
992
993
  ] # noqa: E501
993
994
 
@@ -21,7 +21,7 @@ except ImportError:
21
21
  """
22
22
 
23
23
  """
24
- OpenAPI spec version: 8.0.0
24
+ OpenAPI spec version: 8.1.0
25
25
  """
26
26
 
27
27