xero-ruby 1.1.0 → 5.0.0

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 (1019) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +393 -107
  3. data/lib/xero-ruby/api/accounting_api.rb +5080 -1354
  4. data/lib/xero-ruby/api/app_store_api.rb +331 -0
  5. data/lib/xero-ruby/api/asset_api.rb +86 -35
  6. data/lib/xero-ruby/api/files_api.rb +1526 -0
  7. data/lib/xero-ruby/api/finance_api.rb +961 -0
  8. data/lib/xero-ruby/api/payroll_au_api.rb +2578 -0
  9. data/lib/xero-ruby/api/payroll_nz_api.rb +5421 -0
  10. data/lib/xero-ruby/api/payroll_uk_api.rb +5560 -0
  11. data/lib/xero-ruby/api/project_api.rb +1423 -0
  12. data/lib/xero-ruby/api_client.rb +283 -96
  13. data/lib/xero-ruby/api_error.rb +5 -5
  14. data/lib/xero-ruby/configuration.rb +32 -9
  15. data/lib/xero-ruby/models/accounting/account.rb +85 -46
  16. data/lib/xero-ruby/models/accounting/account_type.rb +20 -25
  17. data/lib/xero-ruby/models/accounting/accounts.rb +32 -13
  18. data/lib/xero-ruby/models/accounting/accounts_payable.rb +35 -15
  19. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +35 -15
  20. data/lib/xero-ruby/models/accounting/action.rb +268 -0
  21. data/lib/xero-ruby/models/accounting/actions.rb +224 -0
  22. data/lib/xero-ruby/models/accounting/address.rb +44 -24
  23. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +484 -0
  24. data/lib/xero-ruby/models/accounting/allocation.rb +109 -18
  25. data/lib/xero-ruby/models/accounting/allocations.rb +32 -13
  26. data/lib/xero-ruby/models/accounting/attachment.rb +37 -19
  27. data/lib/xero-ruby/models/accounting/attachments.rb +32 -13
  28. data/lib/xero-ruby/models/accounting/balance_details.rb +243 -0
  29. data/lib/xero-ruby/models/accounting/balances.rb +33 -13
  30. data/lib/xero-ruby/models/accounting/bank_transaction.rb +67 -39
  31. data/lib/xero-ruby/models/accounting/bank_transactions.rb +32 -13
  32. data/lib/xero-ruby/models/accounting/bank_transfer.rb +79 -25
  33. data/lib/xero-ruby/models/accounting/bank_transfers.rb +32 -13
  34. data/lib/xero-ruby/models/accounting/batch_payment.rb +75 -54
  35. data/lib/xero-ruby/models/accounting/batch_payment_delete.rb +244 -0
  36. data/lib/xero-ruby/models/accounting/batch_payment_delete_by_url_param.rb +229 -0
  37. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +35 -32
  38. data/lib/xero-ruby/models/accounting/batch_payments.rb +32 -13
  39. data/lib/xero-ruby/models/accounting/bill.rb +32 -13
  40. data/lib/xero-ruby/models/accounting/branding_theme.rb +37 -18
  41. data/lib/xero-ruby/models/accounting/branding_themes.rb +32 -13
  42. data/lib/xero-ruby/models/accounting/budget.rb +327 -0
  43. data/lib/xero-ruby/models/accounting/budget_balance.rb +267 -0
  44. data/lib/xero-ruby/models/accounting/budget_line.rb +244 -0
  45. data/lib/xero-ruby/models/accounting/budgets.rb +224 -0
  46. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +34 -16
  47. data/lib/xero-ruby/models/accounting/cis_org_settings.rb +224 -0
  48. data/lib/xero-ruby/models/accounting/cis_setting.rb +33 -15
  49. data/lib/xero-ruby/models/accounting/cis_settings.rb +32 -13
  50. data/lib/xero-ruby/models/accounting/contact.rb +160 -57
  51. data/lib/xero-ruby/models/accounting/contact_group.rb +36 -16
  52. data/lib/xero-ruby/models/accounting/contact_groups.rb +32 -13
  53. data/lib/xero-ruby/models/accounting/contact_person.rb +34 -16
  54. data/lib/xero-ruby/models/accounting/contacts.rb +32 -13
  55. data/lib/xero-ruby/models/accounting/conversion_balances.rb +245 -0
  56. data/lib/xero-ruby/models/accounting/conversion_date.rb +233 -0
  57. data/lib/xero-ruby/models/accounting/country_code.rb +242 -243
  58. data/lib/xero-ruby/models/accounting/credit_note.rb +118 -45
  59. data/lib/xero-ruby/models/accounting/credit_notes.rb +32 -13
  60. data/lib/xero-ruby/models/accounting/currencies.rb +32 -13
  61. data/lib/xero-ruby/models/accounting/currency.rb +33 -14
  62. data/lib/xero-ruby/models/accounting/currency_code.rb +170 -167
  63. data/lib/xero-ruby/models/accounting/element.rb +38 -14
  64. data/lib/xero-ruby/models/accounting/employee.rb +44 -20
  65. data/lib/xero-ruby/models/accounting/employees.rb +32 -13
  66. data/lib/xero-ruby/models/accounting/error.rb +34 -16
  67. data/lib/xero-ruby/models/accounting/expense_claim.rb +51 -26
  68. data/lib/xero-ruby/models/accounting/expense_claims.rb +32 -13
  69. data/lib/xero-ruby/models/accounting/external_link.rb +38 -14
  70. data/lib/xero-ruby/models/accounting/history_record.rb +34 -16
  71. data/lib/xero-ruby/models/accounting/history_records.rb +32 -13
  72. data/lib/xero-ruby/models/accounting/import_summary.rb +233 -0
  73. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +303 -0
  74. data/lib/xero-ruby/models/accounting/import_summary_object.rb +222 -0
  75. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +222 -0
  76. data/lib/xero-ruby/models/accounting/invoice.rb +115 -73
  77. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +31 -13
  78. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +32 -13
  79. data/lib/xero-ruby/models/accounting/invoices.rb +32 -13
  80. data/lib/xero-ruby/models/accounting/item.rb +48 -28
  81. data/lib/xero-ruby/models/accounting/items.rb +32 -13
  82. data/lib/xero-ruby/models/accounting/journal.rb +63 -20
  83. data/lib/xero-ruby/models/accounting/journal_line.rb +46 -27
  84. data/lib/xero-ruby/models/accounting/journals.rb +32 -13
  85. data/lib/xero-ruby/models/accounting/line_amount_types.rb +5 -6
  86. data/lib/xero-ruby/models/accounting/line_item.rb +71 -33
  87. data/lib/xero-ruby/models/accounting/line_item_item.rb +272 -0
  88. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +34 -16
  89. data/lib/xero-ruby/models/accounting/linked_transaction.rb +49 -23
  90. data/lib/xero-ruby/models/accounting/linked_transactions.rb +32 -13
  91. data/lib/xero-ruby/models/accounting/manual_journal.rb +49 -25
  92. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +50 -22
  93. data/lib/xero-ruby/models/accounting/manual_journals.rb +32 -13
  94. data/lib/xero-ruby/models/accounting/online_invoice.rb +31 -13
  95. data/lib/xero-ruby/models/accounting/online_invoices.rb +32 -13
  96. data/lib/xero-ruby/models/accounting/organisation.rb +155 -49
  97. data/lib/xero-ruby/models/accounting/organisations.rb +32 -13
  98. data/lib/xero-ruby/models/accounting/overpayment.rb +60 -33
  99. data/lib/xero-ruby/models/accounting/overpayments.rb +32 -13
  100. data/lib/xero-ruby/models/accounting/payment.rb +102 -35
  101. data/lib/xero-ruby/models/accounting/payment_delete.rb +31 -13
  102. data/lib/xero-ruby/models/accounting/payment_service.rb +36 -18
  103. data/lib/xero-ruby/models/accounting/payment_services.rb +32 -13
  104. data/lib/xero-ruby/models/accounting/payment_term.rb +33 -13
  105. data/lib/xero-ruby/models/accounting/payment_term_type.rb +6 -7
  106. data/lib/xero-ruby/models/accounting/payments.rb +32 -13
  107. data/lib/xero-ruby/models/accounting/phone.rb +40 -16
  108. data/lib/xero-ruby/models/accounting/prepayment.rb +74 -34
  109. data/lib/xero-ruby/models/accounting/prepayments.rb +32 -13
  110. data/lib/xero-ruby/models/accounting/purchase.rb +35 -17
  111. data/lib/xero-ruby/models/accounting/purchase_order.rb +69 -43
  112. data/lib/xero-ruby/models/accounting/purchase_orders.rb +32 -13
  113. data/lib/xero-ruby/models/accounting/quote.rb +82 -38
  114. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +5 -6
  115. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +8 -8
  116. data/lib/xero-ruby/models/accounting/quotes.rb +32 -13
  117. data/lib/xero-ruby/models/accounting/receipt.rb +56 -29
  118. data/lib/xero-ruby/models/accounting/receipts.rb +32 -13
  119. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +107 -32
  120. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +32 -13
  121. data/lib/xero-ruby/models/accounting/report.rb +39 -29
  122. data/lib/xero-ruby/models/accounting/report_attribute.rb +33 -13
  123. data/lib/xero-ruby/models/accounting/report_cell.rb +33 -13
  124. data/lib/xero-ruby/models/accounting/report_fields.rb +34 -13
  125. data/lib/xero-ruby/models/accounting/report_row.rb +34 -13
  126. data/lib/xero-ruby/models/accounting/report_rows.rb +35 -13
  127. data/lib/xero-ruby/models/accounting/report_with_row.rb +40 -20
  128. data/lib/xero-ruby/models/accounting/report_with_rows.rb +32 -13
  129. data/lib/xero-ruby/models/accounting/reports.rb +32 -13
  130. data/lib/xero-ruby/models/accounting/request_empty.rb +31 -13
  131. data/lib/xero-ruby/models/accounting/row_type.rb +6 -7
  132. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +32 -14
  133. data/lib/xero-ruby/models/accounting/schedule.rb +47 -21
  134. data/lib/xero-ruby/models/accounting/setup.rb +246 -0
  135. data/lib/xero-ruby/models/accounting/tax_component.rb +35 -17
  136. data/lib/xero-ruby/models/accounting/tax_rate.rb +148 -28
  137. data/lib/xero-ruby/models/accounting/tax_rates.rb +32 -13
  138. data/lib/xero-ruby/models/accounting/tax_type.rb +122 -62
  139. data/lib/xero-ruby/models/accounting/{ten_nintey_nine_contact.rb → ten_ninety_nine_contact.rb} +142 -53
  140. data/lib/xero-ruby/models/accounting/time_zone.rb +143 -110
  141. data/lib/xero-ruby/models/accounting/tracking_categories.rb +32 -13
  142. data/lib/xero-ruby/models/accounting/tracking_category.rb +39 -18
  143. data/lib/xero-ruby/models/accounting/tracking_option.rb +45 -24
  144. data/lib/xero-ruby/models/accounting/tracking_options.rb +32 -13
  145. data/lib/xero-ruby/models/accounting/user.rb +44 -19
  146. data/lib/xero-ruby/models/accounting/users.rb +32 -13
  147. data/lib/xero-ruby/models/accounting/validation_error.rb +31 -13
  148. data/lib/xero-ruby/models/app_store/create_usage_record.rb +243 -0
  149. data/lib/xero-ruby/models/app_store/plan.rb +311 -0
  150. data/lib/xero-ruby/models/app_store/price.rb +257 -0
  151. data/lib/xero-ruby/models/app_store/problem_details.rb +272 -0
  152. data/lib/xero-ruby/models/app_store/product.rb +299 -0
  153. data/lib/xero-ruby/models/app_store/subscription.rb +361 -0
  154. data/lib/xero-ruby/models/app_store/subscription_item.rb +354 -0
  155. data/lib/xero-ruby/models/app_store/update_usage_record.rb +228 -0
  156. data/lib/xero-ruby/models/app_store/usage_record.rb +332 -0
  157. data/lib/xero-ruby/models/app_store/usage_records_list.rb +230 -0
  158. data/lib/xero-ruby/models/assets/asset.rb +59 -28
  159. data/lib/xero-ruby/models/assets/asset_status.rb +5 -6
  160. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +5 -6
  161. data/lib/xero-ruby/models/assets/asset_type.rb +37 -23
  162. data/lib/xero-ruby/models/assets/assets.rb +33 -13
  163. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +43 -25
  164. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +50 -21
  165. data/lib/xero-ruby/models/assets/error.rb +35 -17
  166. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +37 -19
  167. data/lib/xero-ruby/models/assets/pagination.rb +35 -13
  168. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +36 -18
  169. data/lib/xero-ruby/models/assets/setting.rb +38 -20
  170. data/lib/xero-ruby/models/files/association.rb +252 -0
  171. data/lib/xero-ruby/models/files/file_object.rb +292 -0
  172. data/lib/xero-ruby/models/files/files.rb +254 -0
  173. data/lib/xero-ruby/models/files/folder.rb +262 -0
  174. data/lib/xero-ruby/models/files/folders.rb +224 -0
  175. data/lib/xero-ruby/models/files/object_group.rb +46 -0
  176. data/lib/xero-ruby/models/files/object_type.rb +90 -0
  177. data/lib/xero-ruby/models/files/upload_object.rb +267 -0
  178. data/lib/xero-ruby/models/files/user.rb +267 -0
  179. data/lib/xero-ruby/models/finance/account_usage.rb +342 -0
  180. data/lib/xero-ruby/models/finance/account_usage_response.rb +254 -0
  181. data/lib/xero-ruby/models/finance/balance_sheet_account_detail.rb +262 -0
  182. data/lib/xero-ruby/models/finance/balance_sheet_account_group.rb +234 -0
  183. data/lib/xero-ruby/models/finance/balance_sheet_account_type.rb +244 -0
  184. data/lib/xero-ruby/models/finance/balance_sheet_response.rb +252 -0
  185. data/lib/xero-ruby/models/finance/bank_statement_accounting_response.rb +254 -0
  186. data/lib/xero-ruby/models/finance/bank_statement_response.rb +232 -0
  187. data/lib/xero-ruby/models/finance/bank_transaction_response.rb +274 -0
  188. data/lib/xero-ruby/models/finance/cash_account_response.rb +262 -0
  189. data/lib/xero-ruby/models/finance/cash_balance.rb +242 -0
  190. data/lib/xero-ruby/models/finance/cash_validation_response.rb +262 -0
  191. data/lib/xero-ruby/models/finance/cashflow_account.rb +282 -0
  192. data/lib/xero-ruby/models/finance/cashflow_activity.rb +244 -0
  193. data/lib/xero-ruby/models/finance/cashflow_response.rb +254 -0
  194. data/lib/xero-ruby/models/finance/cashflow_type.rb +244 -0
  195. data/lib/xero-ruby/models/finance/contact_detail.rb +274 -0
  196. data/lib/xero-ruby/models/finance/contact_response.rb +232 -0
  197. data/lib/xero-ruby/models/finance/contact_total_detail.rb +242 -0
  198. data/lib/xero-ruby/models/finance/contact_total_other.rb +252 -0
  199. data/lib/xero-ruby/models/finance/credit_note_response.rb +254 -0
  200. data/lib/xero-ruby/models/finance/current_statement_response.rb +272 -0
  201. data/lib/xero-ruby/models/finance/data_source_response.rb +362 -0
  202. data/lib/xero-ruby/models/finance/history_record_response.rb +262 -0
  203. data/lib/xero-ruby/models/finance/income_by_contact_response.rb +284 -0
  204. data/lib/xero-ruby/models/finance/invoice_response.rb +254 -0
  205. data/lib/xero-ruby/models/finance/line_item_response.rb +252 -0
  206. data/lib/xero-ruby/models/finance/lock_history_model.rb +242 -0
  207. data/lib/xero-ruby/models/finance/lock_history_response.rb +244 -0
  208. data/lib/xero-ruby/models/finance/manual_journal_total.rb +222 -0
  209. data/lib/xero-ruby/models/finance/overpayment_response.rb +254 -0
  210. data/lib/xero-ruby/models/finance/payment_response.rb +312 -0
  211. data/lib/xero-ruby/models/finance/pnl_account.rb +272 -0
  212. data/lib/xero-ruby/models/finance/pnl_account_class.rb +234 -0
  213. data/lib/xero-ruby/models/finance/pnl_account_type.rb +244 -0
  214. data/lib/xero-ruby/models/finance/practice_response.rb +262 -0
  215. data/lib/xero-ruby/models/finance/prepayment_response.rb +254 -0
  216. data/lib/xero-ruby/models/finance/problem.rb +252 -0
  217. data/lib/xero-ruby/models/finance/problem_type.rb +45 -0
  218. data/lib/xero-ruby/models/finance/profit_and_loss_response.rb +262 -0
  219. data/lib/xero-ruby/models/finance/report_history_model.rb +242 -0
  220. data/lib/xero-ruby/models/finance/report_history_response.rb +244 -0
  221. data/lib/xero-ruby/models/finance/statement_balance_response.rb +232 -0
  222. data/lib/xero-ruby/models/finance/statement_line_response.rb +356 -0
  223. data/lib/xero-ruby/models/finance/statement_lines_response.rb +382 -0
  224. data/lib/xero-ruby/models/finance/statement_response.rb +314 -0
  225. data/lib/xero-ruby/models/finance/total_detail.rb +242 -0
  226. data/lib/xero-ruby/models/finance/total_other.rb +242 -0
  227. data/lib/xero-ruby/models/finance/trial_balance_account.rb +312 -0
  228. data/lib/xero-ruby/models/finance/trial_balance_entry.rb +232 -0
  229. data/lib/xero-ruby/models/finance/trial_balance_movement.rb +252 -0
  230. data/lib/xero-ruby/models/finance/trial_balance_response.rb +244 -0
  231. data/lib/xero-ruby/models/finance/user_activities_response.rb +244 -0
  232. data/lib/xero-ruby/models/finance/user_response.rb +336 -0
  233. data/lib/xero-ruby/models/payroll_au/account.rb +252 -0
  234. data/lib/xero-ruby/models/payroll_au/account_type.rb +57 -0
  235. data/lib/xero-ruby/models/payroll_au/allowance_category.rb +41 -0
  236. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +44 -0
  237. data/lib/xero-ruby/models/payroll_au/api_exception.rb +243 -0
  238. data/lib/xero-ruby/models/payroll_au/bank_account.rb +272 -0
  239. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +40 -0
  240. data/lib/xero-ruby/models/payroll_au/country_of_residence.rb +284 -0
  241. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +267 -0
  242. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +354 -0
  243. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +37 -0
  244. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +307 -0
  245. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +442 -0
  246. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +37 -0
  247. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +48 -0
  248. data/lib/xero-ruby/models/payroll_au/employee.rb +654 -0
  249. data/lib/xero-ruby/models/payroll_au/employee_status.rb +36 -0
  250. data/lib/xero-ruby/models/payroll_au/employees.rb +224 -0
  251. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +40 -0
  252. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +36 -0
  253. data/lib/xero-ruby/models/payroll_au/employment_type.rb +36 -0
  254. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +36 -0
  255. data/lib/xero-ruby/models/payroll_au/home_address.rb +277 -0
  256. data/lib/xero-ruby/models/payroll_au/income_type.rb +39 -0
  257. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +242 -0
  258. data/lib/xero-ruby/models/payroll_au/leave_application.rb +326 -0
  259. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +224 -0
  260. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +252 -0
  261. data/lib/xero-ruby/models/payroll_au/leave_category_code.rb +46 -0
  262. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +252 -0
  263. data/lib/xero-ruby/models/payroll_au/leave_line.rb +292 -0
  264. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +38 -0
  265. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +225 -0
  266. data/lib/xero-ruby/models/payroll_au/leave_period.rb +252 -0
  267. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +38 -0
  268. data/lib/xero-ruby/models/payroll_au/leave_type.rb +337 -0
  269. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +38 -0
  270. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +40 -0
  271. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +304 -0
  272. data/lib/xero-ruby/models/payroll_au/paid_leave_earnings_line.rb +272 -0
  273. data/lib/xero-ruby/models/payroll_au/pay_item.rb +260 -0
  274. data/lib/xero-ruby/models/payroll_au/pay_items.rb +222 -0
  275. data/lib/xero-ruby/models/payroll_au/pay_out_type.rb +36 -0
  276. data/lib/xero-ruby/models/payroll_au/pay_run.rb +381 -0
  277. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +36 -0
  278. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +224 -0
  279. data/lib/xero-ruby/models/payroll_au/pay_template.rb +272 -0
  280. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +41 -0
  281. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +294 -0
  282. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +224 -0
  283. data/lib/xero-ruby/models/payroll_au/payslip.rb +418 -0
  284. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +308 -0
  285. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +222 -0
  286. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +332 -0
  287. data/lib/xero-ruby/models/payroll_au/payslips.rb +224 -0
  288. data/lib/xero-ruby/models/payroll_au/rate_type.rb +37 -0
  289. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +267 -0
  290. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +225 -0
  291. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +277 -0
  292. data/lib/xero-ruby/models/payroll_au/residency_status.rb +37 -0
  293. data/lib/xero-ruby/models/payroll_au/senior_marital_status.rb +37 -0
  294. data/lib/xero-ruby/models/payroll_au/settings.rb +254 -0
  295. data/lib/xero-ruby/models/payroll_au/settings_object.rb +222 -0
  296. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +233 -0
  297. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +233 -0
  298. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +233 -0
  299. data/lib/xero-ruby/models/payroll_au/state.rb +42 -0
  300. data/lib/xero-ruby/models/payroll_au/super_fund.rb +349 -0
  301. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +252 -0
  302. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +224 -0
  303. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +36 -0
  304. data/lib/xero-ruby/models/payroll_au/super_funds.rb +224 -0
  305. data/lib/xero-ruby/models/payroll_au/super_line.rb +292 -0
  306. data/lib/xero-ruby/models/payroll_au/super_membership.rb +252 -0
  307. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +37 -0
  308. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +38 -0
  309. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +302 -0
  310. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +422 -0
  311. data/lib/xero-ruby/models/payroll_au/tax_line.rb +272 -0
  312. data/lib/xero-ruby/models/payroll_au/tax_scale_type.rb +40 -0
  313. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +38 -0
  314. data/lib/xero-ruby/models/payroll_au/timesheet.rb +321 -0
  315. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +254 -0
  316. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +222 -0
  317. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +39 -0
  318. data/lib/xero-ruby/models/payroll_au/timesheets.rb +224 -0
  319. data/lib/xero-ruby/models/payroll_au/validation_error.rb +222 -0
  320. data/lib/xero-ruby/models/payroll_au/work_condition.rb +37 -0
  321. data/lib/xero-ruby/models/payroll_nz/account.rb +290 -0
  322. data/lib/xero-ruby/models/payroll_nz/accounts.rb +224 -0
  323. data/lib/xero-ruby/models/payroll_nz/address.rb +287 -0
  324. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +343 -0
  325. data/lib/xero-ruby/models/payroll_nz/benefit.rb +383 -0
  326. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +41 -0
  327. data/lib/xero-ruby/models/payroll_nz/deduction.rb +325 -0
  328. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +262 -0
  329. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +242 -0
  330. data/lib/xero-ruby/models/payroll_nz/deductions.rb +244 -0
  331. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +312 -0
  332. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +269 -0
  333. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +242 -0
  334. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +244 -0
  335. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +401 -0
  336. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +242 -0
  337. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +244 -0
  338. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +272 -0
  339. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +242 -0
  340. data/lib/xero-ruby/models/payroll_nz/employee.rb +398 -0
  341. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +244 -0
  342. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +304 -0
  343. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +252 -0
  344. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +244 -0
  345. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +242 -0
  346. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +282 -0
  347. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +242 -0
  348. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +350 -0
  349. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +242 -0
  350. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +244 -0
  351. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +244 -0
  352. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +242 -0
  353. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +252 -0
  354. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +244 -0
  355. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +234 -0
  356. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +242 -0
  357. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +242 -0
  358. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +294 -0
  359. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +242 -0
  360. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +336 -0
  361. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +244 -0
  362. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +433 -0
  363. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +242 -0
  364. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +244 -0
  365. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +411 -0
  366. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +242 -0
  367. data/lib/xero-ruby/models/payroll_nz/employees.rb +244 -0
  368. data/lib/xero-ruby/models/payroll_nz/employment.rb +242 -0
  369. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +242 -0
  370. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +232 -0
  371. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +232 -0
  372. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +232 -0
  373. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +312 -0
  374. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +288 -0
  375. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +244 -0
  376. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +287 -0
  377. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +242 -0
  378. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +244 -0
  379. data/lib/xero-ruby/models/payroll_nz/pagination.rb +252 -0
  380. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +385 -0
  381. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +302 -0
  382. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +242 -0
  383. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +244 -0
  384. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +242 -0
  385. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +244 -0
  386. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +571 -0
  387. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +242 -0
  388. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +244 -0
  389. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +262 -0
  390. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +271 -0
  391. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +242 -0
  392. data/lib/xero-ruby/models/payroll_nz/problem.rb +275 -0
  393. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +378 -0
  394. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +262 -0
  395. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +242 -0
  396. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +244 -0
  397. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +398 -0
  398. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +242 -0
  399. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +244 -0
  400. data/lib/xero-ruby/models/payroll_nz/settings.rb +242 -0
  401. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +262 -0
  402. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +45 -0
  403. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +252 -0
  404. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +242 -0
  405. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +244 -0
  406. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +272 -0
  407. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +242 -0
  408. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +244 -0
  409. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +53 -0
  410. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +262 -0
  411. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +308 -0
  412. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +362 -0
  413. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +312 -0
  414. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +277 -0
  415. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +242 -0
  416. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +242 -0
  417. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +244 -0
  418. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +242 -0
  419. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +232 -0
  420. data/lib/xero-ruby/models/payroll_uk/account.rb +293 -0
  421. data/lib/xero-ruby/models/payroll_uk/accounts.rb +224 -0
  422. data/lib/xero-ruby/models/payroll_uk/address.rb +277 -0
  423. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +257 -0
  424. data/lib/xero-ruby/models/payroll_uk/benefit.rb +432 -0
  425. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +262 -0
  426. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +242 -0
  427. data/lib/xero-ruby/models/payroll_uk/benefits.rb +244 -0
  428. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +232 -0
  429. data/lib/xero-ruby/models/payroll_uk/deduction.rb +440 -0
  430. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +252 -0
  431. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +242 -0
  432. data/lib/xero-ruby/models/payroll_uk/deductions.rb +244 -0
  433. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +302 -0
  434. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +269 -0
  435. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +242 -0
  436. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +244 -0
  437. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +409 -0
  438. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +242 -0
  439. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +244 -0
  440. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +272 -0
  441. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +242 -0
  442. data/lib/xero-ruby/models/payroll_uk/employee.rb +408 -0
  443. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +304 -0
  444. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +252 -0
  445. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +244 -0
  446. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +242 -0
  447. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +320 -0
  448. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +242 -0
  449. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +244 -0
  450. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +244 -0
  451. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +242 -0
  452. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +272 -0
  453. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +242 -0
  454. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +234 -0
  455. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +242 -0
  456. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +244 -0
  457. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +294 -0
  458. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +242 -0
  459. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +336 -0
  460. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +244 -0
  461. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +433 -0
  462. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +242 -0
  463. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +244 -0
  464. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +322 -0
  465. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +242 -0
  466. data/lib/xero-ruby/models/payroll_uk/employees.rb +244 -0
  467. data/lib/xero-ruby/models/payroll_uk/employment.rb +299 -0
  468. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +242 -0
  469. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +232 -0
  470. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +232 -0
  471. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +272 -0
  472. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +288 -0
  473. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +244 -0
  474. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +307 -0
  475. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +242 -0
  476. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +244 -0
  477. data/lib/xero-ruby/models/payroll_uk/pagination.rb +252 -0
  478. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +403 -0
  479. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +342 -0
  480. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +242 -0
  481. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +244 -0
  482. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +242 -0
  483. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +244 -0
  484. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +262 -0
  485. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +276 -0
  486. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +242 -0
  487. data/lib/xero-ruby/models/payroll_uk/payslip.rb +551 -0
  488. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +242 -0
  489. data/lib/xero-ruby/models/payroll_uk/payslips.rb +244 -0
  490. data/lib/xero-ruby/models/payroll_uk/problem.rb +275 -0
  491. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +262 -0
  492. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +242 -0
  493. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +242 -0
  494. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +244 -0
  495. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +383 -0
  496. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +242 -0
  497. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +244 -0
  498. data/lib/xero-ruby/models/payroll_uk/settings.rb +242 -0
  499. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +262 -0
  500. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +48 -0
  501. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +272 -0
  502. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +361 -0
  503. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +272 -0
  504. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +277 -0
  505. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +242 -0
  506. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +242 -0
  507. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +244 -0
  508. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +242 -0
  509. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +232 -0
  510. data/lib/xero-ruby/models/projects/amount.rb +232 -0
  511. data/lib/xero-ruby/models/projects/charge_type.rb +37 -0
  512. data/lib/xero-ruby/models/projects/currency_code.rb +197 -0
  513. data/lib/xero-ruby/models/projects/error.rb +232 -0
  514. data/lib/xero-ruby/models/projects/pagination.rb +252 -0
  515. data/lib/xero-ruby/models/projects/project.rb +437 -0
  516. data/lib/xero-ruby/models/projects/project_create_or_update.rb +257 -0
  517. data/lib/xero-ruby/models/projects/project_patch.rb +227 -0
  518. data/lib/xero-ruby/models/projects/project_status.rb +36 -0
  519. data/lib/xero-ruby/models/projects/project_user.rb +242 -0
  520. data/lib/xero-ruby/models/projects/project_users.rb +234 -0
  521. data/lib/xero-ruby/models/projects/projects.rb +234 -0
  522. data/lib/xero-ruby/models/projects/task.rb +399 -0
  523. data/lib/xero-ruby/models/projects/task_create_or_update.rb +267 -0
  524. data/lib/xero-ruby/models/projects/tasks.rb +234 -0
  525. data/lib/xero-ruby/models/projects/time_entries.rb +234 -0
  526. data/lib/xero-ruby/models/projects/time_entry.rb +339 -0
  527. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +282 -0
  528. data/lib/xero-ruby/string_serialization.rb +52 -0
  529. data/lib/xero-ruby/version.rb +4 -4
  530. data/lib/xero-ruby/where.rb +67 -0
  531. data/lib/xero-ruby.rb +399 -4
  532. data/spec/accounting/api/accounting_api_spec.rb +3 -3
  533. data/spec/accounting/models/ten_nintey_nine_contact_spec.rb +6 -6
  534. data/spec/api_client_spec.rb +421 -53
  535. data/spec/api_error_spec.rb +45 -0
  536. data/spec/app_store/api/app_store_api_spec.rb +45 -0
  537. data/spec/app_store/models/plan_spec.rb +62 -0
  538. data/spec/app_store/models/price_spec.rb +52 -0
  539. data/spec/app_store/models/problem_details_spec.rb +70 -0
  540. data/spec/app_store/models/product_spec.rb +56 -0
  541. data/spec/app_store/models/subscription_item_spec.rb +70 -0
  542. data/spec/app_store/models/subscription_spec.rb +82 -0
  543. data/spec/assets/api/asset_api_spec.rb +3 -3
  544. data/spec/configuration_spec.rb +27 -32
  545. data/spec/files/api/files_api_spec.rb +249 -0
  546. data/spec/files/models/association_spec.rb +59 -0
  547. data/spec/files/models/file_object_spec.rb +83 -0
  548. data/spec/files/models/files_spec.rb +59 -0
  549. data/spec/files/models/folder_spec.rb +65 -0
  550. data/spec/files/models/folders_spec.rb +41 -0
  551. data/spec/files/models/inline_object_spec.rb +59 -0
  552. data/spec/files/models/object_group_spec.rb +35 -0
  553. data/spec/files/models/object_type_spec.rb +35 -0
  554. data/spec/files/models/user_spec.rb +81 -0
  555. data/spec/finance/api/finance_api_spec.rb +156 -0
  556. data/spec/finance/models/account_usage_response_spec.rb +58 -0
  557. data/spec/finance/models/account_usage_spec.rb +112 -0
  558. data/spec/finance/models/balance_sheet_account_detail_spec.rb +64 -0
  559. data/spec/finance/models/balance_sheet_account_group_spec.rb +46 -0
  560. data/spec/finance/models/balance_sheet_account_type_spec.rb +52 -0
  561. data/spec/finance/models/balance_sheet_response_spec.rb +58 -0
  562. data/spec/finance/models/bank_statement_response_spec.rb +46 -0
  563. data/spec/finance/models/cash_account_response_spec.rb +64 -0
  564. data/spec/finance/models/cash_balance_spec.rb +52 -0
  565. data/spec/finance/models/cash_validation_response_spec.rb +64 -0
  566. data/spec/finance/models/cashflow_account_spec.rb +76 -0
  567. data/spec/finance/models/cashflow_activity_spec.rb +52 -0
  568. data/spec/finance/models/cashflow_response_spec.rb +58 -0
  569. data/spec/finance/models/cashflow_type_spec.rb +52 -0
  570. data/spec/finance/models/current_statement_response_spec.rb +70 -0
  571. data/spec/finance/models/data_source_response_spec.rb +124 -0
  572. data/spec/finance/models/history_record_response_spec.rb +64 -0
  573. data/spec/finance/models/lock_history_model_spec.rb +52 -0
  574. data/spec/finance/models/lock_history_response_spec.rb +52 -0
  575. data/spec/finance/models/pnl_account_class_spec.rb +46 -0
  576. data/spec/finance/models/pnl_account_spec.rb +70 -0
  577. data/spec/finance/models/pnl_account_type_spec.rb +52 -0
  578. data/spec/finance/models/practice_response_spec.rb +64 -0
  579. data/spec/finance/models/problem_spec.rb +58 -0
  580. data/spec/finance/models/problem_type_spec.rb +34 -0
  581. data/spec/finance/models/profit_and_loss_response_spec.rb +64 -0
  582. data/spec/finance/models/report_history_model_spec.rb +52 -0
  583. data/spec/finance/models/report_history_response_spec.rb +52 -0
  584. data/spec/finance/models/statement_balance_response_spec.rb +46 -0
  585. data/spec/finance/models/statement_lines_response_spec.rb +136 -0
  586. data/spec/finance/models/trial_balance_account_spec.rb +94 -0
  587. data/spec/finance/models/trial_balance_entry_spec.rb +46 -0
  588. data/spec/finance/models/trial_balance_movement_spec.rb +58 -0
  589. data/spec/finance/models/trial_balance_response_spec.rb +52 -0
  590. data/spec/finance/models/user_activities_response_spec.rb +52 -0
  591. data/spec/finance/models/user_response_spec.rb +106 -0
  592. data/spec/helper_methods_spec.rb +110 -0
  593. data/spec/payroll_au/api/payroll_au_api_spec.rb +415 -0
  594. data/spec/payroll_au/models/account_spec.rb +59 -0
  595. data/spec/payroll_au/models/account_type_spec.rb +35 -0
  596. data/spec/payroll_au/models/allowance_type_spec.rb +35 -0
  597. data/spec/payroll_au/models/api_exception_spec.rb +53 -0
  598. data/spec/payroll_au/models/bank_account_spec.rb +71 -0
  599. data/spec/payroll_au/models/calendar_type_spec.rb +35 -0
  600. data/spec/payroll_au/models/deduction_line_spec.rb +65 -0
  601. data/spec/payroll_au/models/deduction_type_calculation_type_spec.rb +35 -0
  602. data/spec/payroll_au/models/deduction_type_spec.rb +93 -0
  603. data/spec/payroll_au/models/earnings_line_spec.rb +89 -0
  604. data/spec/payroll_au/models/earnings_rate_calculation_type_spec.rb +35 -0
  605. data/spec/payroll_au/models/earnings_rate_spec.rb +137 -0
  606. data/spec/payroll_au/models/earnings_type_spec.rb +35 -0
  607. data/spec/payroll_au/models/employee_spec.rb +225 -0
  608. data/spec/payroll_au/models/employee_status_spec.rb +35 -0
  609. data/spec/payroll_au/models/employees_spec.rb +41 -0
  610. data/spec/payroll_au/models/employment_basis_spec.rb +35 -0
  611. data/spec/payroll_au/models/employment_termination_payment_type_spec.rb +35 -0
  612. data/spec/payroll_au/models/entitlement_final_pay_payout_type_spec.rb +35 -0
  613. data/spec/payroll_au/models/home_address_spec.rb +71 -0
  614. data/spec/payroll_au/models/leave_accrual_line_spec.rb +53 -0
  615. data/spec/payroll_au/models/leave_application_spec.rb +95 -0
  616. data/spec/payroll_au/models/leave_applications_spec.rb +41 -0
  617. data/spec/payroll_au/models/leave_balance_spec.rb +59 -0
  618. data/spec/payroll_au/models/leave_earnings_line_spec.rb +53 -0
  619. data/spec/payroll_au/models/leave_line_calculation_type_spec.rb +35 -0
  620. data/spec/payroll_au/models/leave_line_spec.rb +83 -0
  621. data/spec/payroll_au/models/leave_lines_spec.rb +41 -0
  622. data/spec/payroll_au/models/leave_period_spec.rb +59 -0
  623. data/spec/payroll_au/models/leave_period_status_spec.rb +35 -0
  624. data/spec/payroll_au/models/leave_type_contribution_type_spec.rb +35 -0
  625. data/spec/payroll_au/models/leave_type_spec.rb +89 -0
  626. data/spec/payroll_au/models/manual_tax_type_spec.rb +35 -0
  627. data/spec/payroll_au/models/opening_balances_spec.rb +77 -0
  628. data/spec/payroll_au/models/pay_item_spec.rb +59 -0
  629. data/spec/payroll_au/models/pay_items_spec.rb +41 -0
  630. data/spec/payroll_au/models/pay_run_spec.rb +131 -0
  631. data/spec/payroll_au/models/pay_run_status_spec.rb +35 -0
  632. data/spec/payroll_au/models/pay_runs_spec.rb +41 -0
  633. data/spec/payroll_au/models/pay_template_spec.rb +65 -0
  634. data/spec/payroll_au/models/payment_frequency_type_spec.rb +35 -0
  635. data/spec/payroll_au/models/payroll_calendar_spec.rb +77 -0
  636. data/spec/payroll_au/models/payroll_calendars_spec.rb +41 -0
  637. data/spec/payroll_au/models/payslip_lines_spec.rb +83 -0
  638. data/spec/payroll_au/models/payslip_object_spec.rb +41 -0
  639. data/spec/payroll_au/models/payslip_spec.rb +149 -0
  640. data/spec/payroll_au/models/payslip_summary_spec.rb +107 -0
  641. data/spec/payroll_au/models/payslips_spec.rb +41 -0
  642. data/spec/payroll_au/models/rate_type_spec.rb +35 -0
  643. data/spec/payroll_au/models/reimbursement_line_spec.rb +59 -0
  644. data/spec/payroll_au/models/reimbursement_lines_spec.rb +41 -0
  645. data/spec/payroll_au/models/reimbursement_type_spec.rb +65 -0
  646. data/spec/payroll_au/models/residency_status_spec.rb +35 -0
  647. data/spec/payroll_au/models/settings_object_spec.rb +41 -0
  648. data/spec/payroll_au/models/settings_spec.rb +53 -0
  649. data/spec/payroll_au/models/settings_tracking_categories_employee_groups_spec.rb +47 -0
  650. data/spec/payroll_au/models/settings_tracking_categories_spec.rb +47 -0
  651. data/spec/payroll_au/models/settings_tracking_categories_timesheet_categories_spec.rb +47 -0
  652. data/spec/payroll_au/models/state_spec.rb +35 -0
  653. data/spec/payroll_au/models/super_fund_product_spec.rb +59 -0
  654. data/spec/payroll_au/models/super_fund_products_spec.rb +41 -0
  655. data/spec/payroll_au/models/super_fund_spec.rb +113 -0
  656. data/spec/payroll_au/models/super_fund_type_spec.rb +35 -0
  657. data/spec/payroll_au/models/super_funds_spec.rb +41 -0
  658. data/spec/payroll_au/models/super_line_spec.rb +83 -0
  659. data/spec/payroll_au/models/super_membership_spec.rb +53 -0
  660. data/spec/payroll_au/models/superannuation_calculation_type_spec.rb +35 -0
  661. data/spec/payroll_au/models/superannuation_contribution_type_spec.rb +35 -0
  662. data/spec/payroll_au/models/superannuation_line_spec.rb +89 -0
  663. data/spec/payroll_au/models/tax_declaration_spec.rb +131 -0
  664. data/spec/payroll_au/models/tax_line_spec.rb +71 -0
  665. data/spec/payroll_au/models/tfn_exemption_type_spec.rb +35 -0
  666. data/spec/payroll_au/models/timesheet_line_spec.rb +59 -0
  667. data/spec/payroll_au/models/timesheet_object_spec.rb +41 -0
  668. data/spec/payroll_au/models/timesheet_spec.rb +89 -0
  669. data/spec/payroll_au/models/timesheet_status_spec.rb +35 -0
  670. data/spec/payroll_au/models/timesheets_spec.rb +41 -0
  671. data/spec/payroll_au/models/validation_error_spec.rb +41 -0
  672. data/spec/payroll_nz/api/payroll_nz_api_spec.rb +886 -0
  673. data/spec/payroll_nz/models/account_spec.rb +63 -0
  674. data/spec/payroll_nz/models/accounts_spec.rb +41 -0
  675. data/spec/payroll_nz/models/address_spec.rb +71 -0
  676. data/spec/payroll_nz/models/bank_account_spec.rb +87 -0
  677. data/spec/payroll_nz/models/benefit_spec.rb +103 -0
  678. data/spec/payroll_nz/models/deduction_line_spec.rb +65 -0
  679. data/spec/payroll_nz/models/deduction_object_spec.rb +53 -0
  680. data/spec/payroll_nz/models/deduction_spec.rb +75 -0
  681. data/spec/payroll_nz/models/deductions_spec.rb +53 -0
  682. data/spec/payroll_nz/models/earnings_line_spec.rb +95 -0
  683. data/spec/payroll_nz/models/earnings_order_object_spec.rb +53 -0
  684. data/spec/payroll_nz/models/earnings_order_spec.rb +65 -0
  685. data/spec/payroll_nz/models/earnings_orders_spec.rb +53 -0
  686. data/spec/payroll_nz/models/earnings_rate_object_spec.rb +53 -0
  687. data/spec/payroll_nz/models/earnings_rate_spec.rb +103 -0
  688. data/spec/payroll_nz/models/earnings_rates_spec.rb +53 -0
  689. data/spec/payroll_nz/models/earnings_template_object_spec.rb +53 -0
  690. data/spec/payroll_nz/models/earnings_template_spec.rb +71 -0
  691. data/spec/payroll_nz/models/employee_earnings_templates_spec.rb +53 -0
  692. data/spec/payroll_nz/models/employee_leave_balance_spec.rb +59 -0
  693. data/spec/payroll_nz/models/employee_leave_balances_spec.rb +53 -0
  694. data/spec/payroll_nz/models/employee_leave_object_spec.rb +53 -0
  695. data/spec/payroll_nz/models/employee_leave_setup_object_spec.rb +53 -0
  696. data/spec/payroll_nz/models/employee_leave_setup_spec.rb +77 -0
  697. data/spec/payroll_nz/models/employee_leave_spec.rb +77 -0
  698. data/spec/payroll_nz/models/employee_leave_type_object_spec.rb +53 -0
  699. data/spec/payroll_nz/models/employee_leave_type_spec.rb +99 -0
  700. data/spec/payroll_nz/models/employee_leave_types_spec.rb +53 -0
  701. data/spec/payroll_nz/models/employee_leaves_spec.rb +53 -0
  702. data/spec/payroll_nz/models/employee_object_spec.rb +53 -0
  703. data/spec/payroll_nz/models/employee_opening_balance_spec.rb +59 -0
  704. data/spec/payroll_nz/models/employee_opening_balances_object_spec.rb +53 -0
  705. data/spec/payroll_nz/models/employee_pay_template_object_spec.rb +53 -0
  706. data/spec/payroll_nz/models/employee_pay_template_spec.rb +47 -0
  707. data/spec/payroll_nz/models/employee_pay_templates_spec.rb +53 -0
  708. data/spec/payroll_nz/models/employee_spec.rb +123 -0
  709. data/spec/payroll_nz/models/employee_statutory_leave_balance_object_spec.rb +53 -0
  710. data/spec/payroll_nz/models/employee_statutory_leave_balance_spec.rb +61 -0
  711. data/spec/payroll_nz/models/employee_statutory_leave_summary_spec.rb +85 -0
  712. data/spec/payroll_nz/models/employee_statutory_leaves_summaries_spec.rb +53 -0
  713. data/spec/payroll_nz/models/employee_statutory_sick_leave_object_spec.rb +53 -0
  714. data/spec/payroll_nz/models/employee_statutory_sick_leave_spec.rb +135 -0
  715. data/spec/payroll_nz/models/employee_statutory_sick_leaves_spec.rb +53 -0
  716. data/spec/payroll_nz/models/employee_tax_object_spec.rb +53 -0
  717. data/spec/payroll_nz/models/employee_tax_spec.rb +135 -0
  718. data/spec/payroll_nz/models/employees_spec.rb +53 -0
  719. data/spec/payroll_nz/models/employment_object_spec.rb +53 -0
  720. data/spec/payroll_nz/models/employment_spec.rb +53 -0
  721. data/spec/payroll_nz/models/gross_earnings_history_spec.rb +47 -0
  722. data/spec/payroll_nz/models/invalid_field_spec.rb +47 -0
  723. data/spec/payroll_nz/models/leave_accrual_line_spec.rb +47 -0
  724. data/spec/payroll_nz/models/leave_earnings_line_spec.rb +95 -0
  725. data/spec/payroll_nz/models/leave_period_spec.rb +63 -0
  726. data/spec/payroll_nz/models/leave_periods_spec.rb +53 -0
  727. data/spec/payroll_nz/models/leave_type_object_spec.rb +53 -0
  728. data/spec/payroll_nz/models/leave_type_spec.rb +71 -0
  729. data/spec/payroll_nz/models/leave_types_spec.rb +53 -0
  730. data/spec/payroll_nz/models/pagination_spec.rb +59 -0
  731. data/spec/payroll_nz/models/pay_run_calendar_object_spec.rb +53 -0
  732. data/spec/payroll_nz/models/pay_run_calendar_spec.rb +81 -0
  733. data/spec/payroll_nz/models/pay_run_calendars_spec.rb +53 -0
  734. data/spec/payroll_nz/models/pay_run_object_spec.rb +53 -0
  735. data/spec/payroll_nz/models/pay_run_spec.rb +119 -0
  736. data/spec/payroll_nz/models/pay_runs_spec.rb +53 -0
  737. data/spec/payroll_nz/models/pay_slip_object_spec.rb +53 -0
  738. data/spec/payroll_nz/models/pay_slip_spec.rb +219 -0
  739. data/spec/payroll_nz/models/pay_slips_spec.rb +53 -0
  740. data/spec/payroll_nz/models/payment_line_spec.rb +65 -0
  741. data/spec/payroll_nz/models/payment_method_object_spec.rb +53 -0
  742. data/spec/payroll_nz/models/payment_method_spec.rb +51 -0
  743. data/spec/payroll_nz/models/problem_spec.rb +71 -0
  744. data/spec/payroll_nz/models/reimbursement_line_spec.rb +65 -0
  745. data/spec/payroll_nz/models/reimbursement_object_spec.rb +53 -0
  746. data/spec/payroll_nz/models/reimbursement_spec.rb +101 -0
  747. data/spec/payroll_nz/models/reimbursements_spec.rb +53 -0
  748. data/spec/payroll_nz/models/salary_and_wage_object_spec.rb +53 -0
  749. data/spec/payroll_nz/models/salary_and_wage_spec.rb +103 -0
  750. data/spec/payroll_nz/models/salary_and_wages_spec.rb +53 -0
  751. data/spec/payroll_nz/models/settings_spec.rb +53 -0
  752. data/spec/payroll_nz/models/statutory_deduction_category_spec.rb +35 -0
  753. data/spec/payroll_nz/models/statutory_deduction_line_spec.rb +59 -0
  754. data/spec/payroll_nz/models/statutory_deduction_object_spec.rb +53 -0
  755. data/spec/payroll_nz/models/statutory_deduction_spec.rb +65 -0
  756. data/spec/payroll_nz/models/statutory_deductions_spec.rb +53 -0
  757. data/spec/payroll_nz/models/superannuation_line_spec.rb +71 -0
  758. data/spec/payroll_nz/models/superannuation_object_spec.rb +53 -0
  759. data/spec/payroll_nz/models/superannuations_spec.rb +53 -0
  760. data/spec/payroll_nz/models/tax_code_spec.rb +35 -0
  761. data/spec/payroll_nz/models/tax_line_spec.rb +65 -0
  762. data/spec/payroll_nz/models/tax_settings_spec.rb +75 -0
  763. data/spec/payroll_nz/models/timesheet_earnings_line_spec.rb +95 -0
  764. data/spec/payroll_nz/models/timesheet_line_object_spec.rb +53 -0
  765. data/spec/payroll_nz/models/timesheet_line_spec.rb +65 -0
  766. data/spec/payroll_nz/models/timesheet_object_spec.rb +53 -0
  767. data/spec/payroll_nz/models/timesheet_spec.rb +93 -0
  768. data/spec/payroll_nz/models/timesheets_spec.rb +53 -0
  769. data/spec/payroll_nz/models/tracking_categories_spec.rb +53 -0
  770. data/spec/payroll_nz/models/tracking_category_spec.rb +47 -0
  771. data/spec/payroll_uk/api/payroll_uk_api_spec.rb +912 -0
  772. data/spec/payroll_uk/models/account_spec.rb +63 -0
  773. data/spec/payroll_uk/models/accounts_spec.rb +41 -0
  774. data/spec/payroll_uk/models/address_spec.rb +65 -0
  775. data/spec/payroll_uk/models/bank_account_spec.rb +53 -0
  776. data/spec/payroll_uk/models/benefit_line_spec.rb +65 -0
  777. data/spec/payroll_uk/models/benefit_object_spec.rb +53 -0
  778. data/spec/payroll_uk/models/benefit_spec.rb +127 -0
  779. data/spec/payroll_uk/models/benefits_spec.rb +53 -0
  780. data/spec/payroll_uk/models/court_order_line_spec.rb +47 -0
  781. data/spec/payroll_uk/models/deduction_line_spec.rb +59 -0
  782. data/spec/payroll_uk/models/deduction_object_spec.rb +53 -0
  783. data/spec/payroll_uk/models/deduction_spec.rb +139 -0
  784. data/spec/payroll_uk/models/deductions_spec.rb +53 -0
  785. data/spec/payroll_uk/models/earnings_line_spec.rb +89 -0
  786. data/spec/payroll_uk/models/earnings_order_object_spec.rb +53 -0
  787. data/spec/payroll_uk/models/earnings_order_spec.rb +65 -0
  788. data/spec/payroll_uk/models/earnings_orders_spec.rb +53 -0
  789. data/spec/payroll_uk/models/earnings_rate_object_spec.rb +53 -0
  790. data/spec/payroll_uk/models/earnings_rate_spec.rb +103 -0
  791. data/spec/payroll_uk/models/earnings_rates_spec.rb +53 -0
  792. data/spec/payroll_uk/models/earnings_template_object_spec.rb +53 -0
  793. data/spec/payroll_uk/models/earnings_template_spec.rb +71 -0
  794. data/spec/payroll_uk/models/employee_leave_balance_spec.rb +59 -0
  795. data/spec/payroll_uk/models/employee_leave_balances_spec.rb +53 -0
  796. data/spec/payroll_uk/models/employee_leave_object_spec.rb +53 -0
  797. data/spec/payroll_uk/models/employee_leave_spec.rb +77 -0
  798. data/spec/payroll_uk/models/employee_leave_type_object_spec.rb +53 -0
  799. data/spec/payroll_uk/models/employee_leave_type_spec.rb +75 -0
  800. data/spec/payroll_uk/models/employee_leave_types_spec.rb +53 -0
  801. data/spec/payroll_uk/models/employee_leaves_spec.rb +53 -0
  802. data/spec/payroll_uk/models/employee_object_spec.rb +53 -0
  803. data/spec/payroll_uk/models/employee_opening_balances_object_spec.rb +53 -0
  804. data/spec/payroll_uk/models/employee_opening_balances_spec.rb +71 -0
  805. data/spec/payroll_uk/models/employee_pay_template_object_spec.rb +53 -0
  806. data/spec/payroll_uk/models/employee_pay_template_spec.rb +47 -0
  807. data/spec/payroll_uk/models/employee_pay_templates_spec.rb +53 -0
  808. data/spec/payroll_uk/models/employee_spec.rb +129 -0
  809. data/spec/payroll_uk/models/employee_statutory_leave_balance_object_spec.rb +53 -0
  810. data/spec/payroll_uk/models/employee_statutory_leave_balance_spec.rb +61 -0
  811. data/spec/payroll_uk/models/employee_statutory_leave_summary_spec.rb +85 -0
  812. data/spec/payroll_uk/models/employee_statutory_leaves_summaries_spec.rb +53 -0
  813. data/spec/payroll_uk/models/employee_statutory_sick_leave_object_spec.rb +53 -0
  814. data/spec/payroll_uk/models/employee_statutory_sick_leave_spec.rb +135 -0
  815. data/spec/payroll_uk/models/employee_statutory_sick_leaves_spec.rb +53 -0
  816. data/spec/payroll_uk/models/employee_tax_object_spec.rb +53 -0
  817. data/spec/payroll_uk/models/employee_tax_spec.rb +101 -0
  818. data/spec/payroll_uk/models/employees_spec.rb +53 -0
  819. data/spec/payroll_uk/models/employment_object_spec.rb +53 -0
  820. data/spec/payroll_uk/models/employment_spec.rb +63 -0
  821. data/spec/payroll_uk/models/invalid_field_spec.rb +47 -0
  822. data/spec/payroll_uk/models/leave_accrual_line_spec.rb +47 -0
  823. data/spec/payroll_uk/models/leave_earnings_line_spec.rb +71 -0
  824. data/spec/payroll_uk/models/leave_period_spec.rb +63 -0
  825. data/spec/payroll_uk/models/leave_periods_spec.rb +53 -0
  826. data/spec/payroll_uk/models/leave_type_object_spec.rb +53 -0
  827. data/spec/payroll_uk/models/leave_type_spec.rb +83 -0
  828. data/spec/payroll_uk/models/leave_types_spec.rb +53 -0
  829. data/spec/payroll_uk/models/pagination_spec.rb +59 -0
  830. data/spec/payroll_uk/models/pay_run_calendar_object_spec.rb +53 -0
  831. data/spec/payroll_uk/models/pay_run_calendar_spec.rb +81 -0
  832. data/spec/payroll_uk/models/pay_run_calendars_spec.rb +53 -0
  833. data/spec/payroll_uk/models/pay_run_object_spec.rb +53 -0
  834. data/spec/payroll_uk/models/pay_run_spec.rb +119 -0
  835. data/spec/payroll_uk/models/pay_runs_spec.rb +53 -0
  836. data/spec/payroll_uk/models/payment_line_spec.rb +65 -0
  837. data/spec/payroll_uk/models/payment_method_object_spec.rb +53 -0
  838. data/spec/payroll_uk/models/payment_method_spec.rb +51 -0
  839. data/spec/payroll_uk/models/payslip_object_spec.rb +53 -0
  840. data/spec/payroll_uk/models/payslip_spec.rb +201 -0
  841. data/spec/payroll_uk/models/payslips_spec.rb +53 -0
  842. data/spec/payroll_uk/models/problem_spec.rb +71 -0
  843. data/spec/payroll_uk/models/reimbursement_line_spec.rb +53 -0
  844. data/spec/payroll_uk/models/reimbursement_object_spec.rb +53 -0
  845. data/spec/payroll_uk/models/reimbursement_spec.rb +59 -0
  846. data/spec/payroll_uk/models/reimbursements_spec.rb +53 -0
  847. data/spec/payroll_uk/models/salary_and_wage_object_spec.rb +53 -0
  848. data/spec/payroll_uk/models/salary_and_wage_spec.rb +97 -0
  849. data/spec/payroll_uk/models/salary_and_wages_spec.rb +53 -0
  850. data/spec/payroll_uk/models/settings_spec.rb +53 -0
  851. data/spec/payroll_uk/models/statutory_deduction_category_spec.rb +35 -0
  852. data/spec/payroll_uk/models/statutory_deduction_spec.rb +65 -0
  853. data/spec/payroll_uk/models/tax_line_spec.rb +71 -0
  854. data/spec/payroll_uk/models/timesheet_earnings_line_spec.rb +71 -0
  855. data/spec/payroll_uk/models/timesheet_line_object_spec.rb +53 -0
  856. data/spec/payroll_uk/models/timesheet_line_spec.rb +65 -0
  857. data/spec/payroll_uk/models/timesheet_object_spec.rb +53 -0
  858. data/spec/payroll_uk/models/timesheet_spec.rb +93 -0
  859. data/spec/payroll_uk/models/timesheets_spec.rb +53 -0
  860. data/spec/payroll_uk/models/tracking_categories_spec.rb +53 -0
  861. data/spec/payroll_uk/models/tracking_category_spec.rb +47 -0
  862. data/spec/projects/api/project_api_spec.rb +229 -0
  863. data/spec/projects/models/amount_spec.rb +47 -0
  864. data/spec/projects/models/charge_type_spec.rb +35 -0
  865. data/spec/projects/models/currency_code_spec.rb +35 -0
  866. data/spec/projects/models/error_spec.rb +47 -0
  867. data/spec/projects/models/pagination_spec.rb +59 -0
  868. data/spec/projects/models/project_create_or_update_spec.rb +59 -0
  869. data/spec/projects/models/project_patch_spec.rb +41 -0
  870. data/spec/projects/models/project_spec.rb +167 -0
  871. data/spec/projects/models/project_status_spec.rb +35 -0
  872. data/spec/projects/models/project_user_spec.rb +53 -0
  873. data/spec/projects/models/project_users_spec.rb +47 -0
  874. data/spec/projects/models/projects_spec.rb +47 -0
  875. data/spec/projects/models/task_create_or_update_spec.rb +59 -0
  876. data/spec/projects/models/task_spec.rb +129 -0
  877. data/spec/projects/models/tasks_spec.rb +47 -0
  878. data/spec/projects/models/time_entries_spec.rb +47 -0
  879. data/spec/projects/models/time_entry_create_or_update_spec.rb +65 -0
  880. data/spec/projects/models/time_entry_spec.rb +93 -0
  881. data/spec/where_spec.rb +82 -0
  882. metadata +1123 -154
  883. data/CODE_OF_CONDUCT.md +0 -76
  884. data/CONTRIBUTING.md +0 -82
  885. data/Gemfile +0 -9
  886. data/LICENSE +0 -21
  887. data/Rakefile +0 -10
  888. data/docs/accounting/Account.md +0 -55
  889. data/docs/accounting/AccountType.md +0 -16
  890. data/docs/accounting/AccountingApi.md +0 -14424
  891. data/docs/accounting/Accounts.md +0 -17
  892. data/docs/accounting/AccountsPayable.md +0 -19
  893. data/docs/accounting/AccountsReceivable.md +0 -19
  894. data/docs/accounting/Address.md +0 -35
  895. data/docs/accounting/Allocation.md +0 -21
  896. data/docs/accounting/Allocations.md +0 -17
  897. data/docs/accounting/Attachment.md +0 -27
  898. data/docs/accounting/Attachments.md +0 -17
  899. data/docs/accounting/Balances.md +0 -19
  900. data/docs/accounting/BankTransaction.md +0 -59
  901. data/docs/accounting/BankTransactions.md +0 -17
  902. data/docs/accounting/BankTransfer.md +0 -37
  903. data/docs/accounting/BankTransfers.md +0 -17
  904. data/docs/accounting/BatchPayment.md +0 -47
  905. data/docs/accounting/BatchPaymentDetails.md +0 -25
  906. data/docs/accounting/BatchPayments.md +0 -17
  907. data/docs/accounting/Bill.md +0 -19
  908. data/docs/accounting/BrandingTheme.md +0 -27
  909. data/docs/accounting/BrandingThemes.md +0 -17
  910. data/docs/accounting/CISOrgSetting.md +0 -21
  911. data/docs/accounting/CISSetting.md +0 -19
  912. data/docs/accounting/CISSettings.md +0 -17
  913. data/docs/accounting/Contact.md +0 -93
  914. data/docs/accounting/ContactGroup.md +0 -23
  915. data/docs/accounting/ContactGroups.md +0 -17
  916. data/docs/accounting/ContactPerson.md +0 -23
  917. data/docs/accounting/Contacts.md +0 -17
  918. data/docs/accounting/CountryCode.md +0 -16
  919. data/docs/accounting/CreditNote.md +0 -67
  920. data/docs/accounting/CreditNotes.md +0 -17
  921. data/docs/accounting/Currencies.md +0 -17
  922. data/docs/accounting/Currency.md +0 -19
  923. data/docs/accounting/CurrencyCode.md +0 -16
  924. data/docs/accounting/Element.md +0 -31
  925. data/docs/accounting/Employee.md +0 -31
  926. data/docs/accounting/Employees.md +0 -17
  927. data/docs/accounting/Error.md +0 -23
  928. data/docs/accounting/ExpenseClaim.md +0 -39
  929. data/docs/accounting/ExpenseClaims.md +0 -17
  930. data/docs/accounting/ExternalLink.md +0 -21
  931. data/docs/accounting/HistoryRecord.md +0 -23
  932. data/docs/accounting/HistoryRecords.md +0 -17
  933. data/docs/accounting/Invoice.md +0 -91
  934. data/docs/accounting/InvoiceReminder.md +0 -17
  935. data/docs/accounting/InvoiceReminders.md +0 -17
  936. data/docs/accounting/Invoices.md +0 -17
  937. data/docs/accounting/Item.md +0 -47
  938. data/docs/accounting/Items.md +0 -17
  939. data/docs/accounting/Journal.md +0 -31
  940. data/docs/accounting/JournalLine.md +0 -39
  941. data/docs/accounting/Journals.md +0 -17
  942. data/docs/accounting/LineAmountTypes.md +0 -16
  943. data/docs/accounting/LineItem.md +0 -41
  944. data/docs/accounting/LineItemTracking.md +0 -23
  945. data/docs/accounting/LinkedTransaction.md +0 -37
  946. data/docs/accounting/LinkedTransactions.md +0 -17
  947. data/docs/accounting/ManualJournal.md +0 -43
  948. data/docs/accounting/ManualJournalLine.md +0 -29
  949. data/docs/accounting/ManualJournals.md +0 -17
  950. data/docs/accounting/OnlineInvoice.md +0 -17
  951. data/docs/accounting/OnlineInvoices.md +0 -17
  952. data/docs/accounting/Organisation.md +0 -79
  953. data/docs/accounting/Organisations.md +0 -17
  954. data/docs/accounting/Overpayment.md +0 -53
  955. data/docs/accounting/Overpayments.md +0 -17
  956. data/docs/accounting/Payment.md +0 -63
  957. data/docs/accounting/PaymentDelete.md +0 -17
  958. data/docs/accounting/PaymentService.md +0 -27
  959. data/docs/accounting/PaymentServices.md +0 -17
  960. data/docs/accounting/PaymentTerm.md +0 -19
  961. data/docs/accounting/PaymentTermType.md +0 -16
  962. data/docs/accounting/Payments.md +0 -17
  963. data/docs/accounting/Phone.md +0 -23
  964. data/docs/accounting/Prepayment.md +0 -53
  965. data/docs/accounting/Prepayments.md +0 -17
  966. data/docs/accounting/Purchase.md +0 -23
  967. data/docs/accounting/PurchaseOrder.md +0 -71
  968. data/docs/accounting/PurchaseOrders.md +0 -17
  969. data/docs/accounting/Quote.md +0 -59
  970. data/docs/accounting/QuoteLineAmountTypes.md +0 -16
  971. data/docs/accounting/QuoteStatusCodes.md +0 -16
  972. data/docs/accounting/Quotes.md +0 -17
  973. data/docs/accounting/Receipt.md +0 -51
  974. data/docs/accounting/Receipts.md +0 -17
  975. data/docs/accounting/RepeatingInvoice.md +0 -47
  976. data/docs/accounting/RepeatingInvoices.md +0 -17
  977. data/docs/accounting/Report.md +0 -29
  978. data/docs/accounting/ReportAttribute.md +0 -19
  979. data/docs/accounting/ReportCell.md +0 -19
  980. data/docs/accounting/ReportFields.md +0 -21
  981. data/docs/accounting/ReportRow.md +0 -21
  982. data/docs/accounting/ReportRows.md +0 -23
  983. data/docs/accounting/ReportWithRow.md +0 -33
  984. data/docs/accounting/ReportWithRows.md +0 -17
  985. data/docs/accounting/Reports.md +0 -17
  986. data/docs/accounting/RequestEmpty.md +0 -17
  987. data/docs/accounting/RowType.md +0 -16
  988. data/docs/accounting/SalesTrackingCategory.md +0 -19
  989. data/docs/accounting/Schedule.md +0 -29
  990. data/docs/accounting/TaxComponent.md +0 -23
  991. data/docs/accounting/TaxRate.md +0 -39
  992. data/docs/accounting/TaxRates.md +0 -17
  993. data/docs/accounting/TaxType.md +0 -16
  994. data/docs/accounting/TenNinteyNineContact.md +0 -59
  995. data/docs/accounting/TimeZone.md +0 -16
  996. data/docs/accounting/TrackingCategories.md +0 -17
  997. data/docs/accounting/TrackingCategory.md +0 -27
  998. data/docs/accounting/TrackingOption.md +0 -23
  999. data/docs/accounting/TrackingOptions.md +0 -17
  1000. data/docs/accounting/User.md +0 -29
  1001. data/docs/accounting/Users.md +0 -17
  1002. data/docs/accounting/ValidationError.md +0 -17
  1003. data/docs/assets/Asset.md +0 -45
  1004. data/docs/assets/AssetApi.md +0 -414
  1005. data/docs/assets/AssetStatus.md +0 -16
  1006. data/docs/assets/AssetStatusQueryParam.md +0 -16
  1007. data/docs/assets/AssetType.md +0 -29
  1008. data/docs/assets/Assets.md +0 -19
  1009. data/docs/assets/BookDepreciationDetail.md +0 -29
  1010. data/docs/assets/BookDepreciationSetting.md +0 -31
  1011. data/docs/assets/Error.md +0 -25
  1012. data/docs/assets/FieldValidationErrorsElement.md +0 -27
  1013. data/docs/assets/Pagination.md +0 -23
  1014. data/docs/assets/ResourceValidationErrorsElement.md +0 -25
  1015. data/docs/assets/Setting.md +0 -31
  1016. data/git_push.sh +0 -55
  1017. data/xero-ruby-1.0.gem +0 -0
  1018. data/xero-ruby.gem +0 -0
  1019. data/xero-ruby.gemspec +0 -39
@@ -0,0 +1,1423 @@
1
+ =begin
2
+ #Xero Projects API
3
+
4
+ #This is the Xero Projects API
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ module XeroRuby
13
+ class ProjectApi
14
+ attr_accessor :api_client
15
+
16
+ def initialize(api_client = ApiClient.new)
17
+ @api_client = api_client
18
+ end
19
+ # Create one or more new projects
20
+ # @param xero_tenant_id [String] Xero identifier for Tenant
21
+ # @param project_create_or_update [ProjectCreateOrUpdate] Create a new project with ProjectCreateOrUpdate object
22
+ # @param [Hash] opts the optional parameters
23
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
24
+ # @return [Project]
25
+ def create_project(xero_tenant_id, project_create_or_update, opts = {})
26
+ data, _status_code, _headers = create_project_with_http_info(xero_tenant_id, project_create_or_update, opts)
27
+ data
28
+ end
29
+
30
+ # Create one or more new projects
31
+ # @param xero_tenant_id [String] Xero identifier for Tenant
32
+ # @param project_create_or_update [ProjectCreateOrUpdate] Create a new project with ProjectCreateOrUpdate object
33
+ # @param [Hash] opts the optional parameters
34
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
35
+ # @return [Array<(Project, Integer, Hash)>] Project data, response status code and response headers
36
+ def create_project_with_http_info(xero_tenant_id, project_create_or_update, options = {})
37
+ opts = options.dup
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: ProjectApi.create_project ...'
40
+ end
41
+ # verify the required parameter 'xero_tenant_id' is set
42
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
43
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.create_project"
44
+ end
45
+ # verify the required parameter 'project_create_or_update' is set
46
+ if @api_client.config.client_side_validation && project_create_or_update.nil?
47
+ fail ArgumentError, "Missing the required parameter 'project_create_or_update' when calling ProjectApi.create_project"
48
+ end
49
+ # resource path
50
+ local_var_path = '/Projects'
51
+
52
+ # camelize keys of incoming `where` opts
53
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
54
+
55
+ # query parameters
56
+ query_params = opts[:query_params] || {}
57
+
58
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
59
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
60
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
61
+
62
+ # header parameters
63
+ header_params = opts[:header_params] || {}
64
+ # HTTP header 'Accept' (if needed)
65
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
66
+ # HTTP header 'Content-Type'
67
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
68
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
69
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
70
+
71
+ # form parameters
72
+ form_params = opts[:form_params] || {}
73
+
74
+ # http body (model)
75
+ post_body = opts[:body] || @api_client.object_to_http_body(project_create_or_update)
76
+
77
+ # return_type
78
+ return_type = opts[:return_type] || 'Project'
79
+
80
+ # auth_names
81
+ auth_names = opts[:auth_names] || ['OAuth2']
82
+
83
+ new_options = opts.merge(
84
+ :header_params => header_params,
85
+ :query_params => query_params,
86
+ :form_params => form_params,
87
+ :body => post_body,
88
+ :auth_names => auth_names,
89
+ :return_type => return_type
90
+ )
91
+
92
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, "ProjectApi", new_options)
93
+ if @api_client.config.debugging
94
+ @api_client.config.logger.debug "API called: ProjectApi#create_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
95
+ end
96
+ return data, status_code, headers
97
+ end
98
+
99
+ # Allows you to create a task
100
+ # Allows you to create a specific task
101
+ # @param xero_tenant_id [String] Xero identifier for Tenant
102
+ # @param project_id [String] You can create a task on a specified projectId
103
+ # @param task_create_or_update [TaskCreateOrUpdate] The task object you are creating
104
+ # @param [Hash] opts the optional parameters
105
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
106
+ # @return [Task]
107
+ def create_task(xero_tenant_id, project_id, task_create_or_update, opts = {})
108
+ data, _status_code, _headers = create_task_with_http_info(xero_tenant_id, project_id, task_create_or_update, opts)
109
+ data
110
+ end
111
+
112
+ # Allows you to create a task
113
+ # Allows you to create a specific task
114
+ # @param xero_tenant_id [String] Xero identifier for Tenant
115
+ # @param project_id [String] You can create a task on a specified projectId
116
+ # @param task_create_or_update [TaskCreateOrUpdate] The task object you are creating
117
+ # @param [Hash] opts the optional parameters
118
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
119
+ # @return [Array<(Task, Integer, Hash)>] Task data, response status code and response headers
120
+ def create_task_with_http_info(xero_tenant_id, project_id, task_create_or_update, options = {})
121
+ opts = options.dup
122
+ if @api_client.config.debugging
123
+ @api_client.config.logger.debug 'Calling API: ProjectApi.create_task ...'
124
+ end
125
+ # verify the required parameter 'xero_tenant_id' is set
126
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
127
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.create_task"
128
+ end
129
+ # verify the required parameter 'project_id' is set
130
+ if @api_client.config.client_side_validation && project_id.nil?
131
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.create_task"
132
+ end
133
+ # verify the required parameter 'task_create_or_update' is set
134
+ if @api_client.config.client_side_validation && task_create_or_update.nil?
135
+ fail ArgumentError, "Missing the required parameter 'task_create_or_update' when calling ProjectApi.create_task"
136
+ end
137
+ # resource path
138
+ local_var_path = '/Projects/{projectId}/Tasks'.sub('{' + 'projectId' + '}', project_id.to_s)
139
+
140
+ # camelize keys of incoming `where` opts
141
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
142
+
143
+ # query parameters
144
+ query_params = opts[:query_params] || {}
145
+
146
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
147
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
148
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
149
+
150
+ # header parameters
151
+ header_params = opts[:header_params] || {}
152
+ # HTTP header 'Accept' (if needed)
153
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
154
+ # HTTP header 'Content-Type'
155
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
156
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
157
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
158
+
159
+ # form parameters
160
+ form_params = opts[:form_params] || {}
161
+
162
+ # http body (model)
163
+ post_body = opts[:body] || @api_client.object_to_http_body(task_create_or_update)
164
+
165
+ # return_type
166
+ return_type = opts[:return_type] || 'Task'
167
+
168
+ # auth_names
169
+ auth_names = opts[:auth_names] || ['OAuth2']
170
+
171
+ new_options = opts.merge(
172
+ :header_params => header_params,
173
+ :query_params => query_params,
174
+ :form_params => form_params,
175
+ :body => post_body,
176
+ :auth_names => auth_names,
177
+ :return_type => return_type
178
+ )
179
+
180
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, "ProjectApi", new_options)
181
+ if @api_client.config.debugging
182
+ @api_client.config.logger.debug "API called: ProjectApi#create_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
183
+ end
184
+ return data, status_code, headers
185
+ end
186
+
187
+ # Creates a time entry for a specific project
188
+ # Allows you to create a specific task
189
+ # @param xero_tenant_id [String] Xero identifier for Tenant
190
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
191
+ # @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are creating
192
+ # @param [Hash] opts the optional parameters
193
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
194
+ # @return [TimeEntry]
195
+ def create_time_entry(xero_tenant_id, project_id, time_entry_create_or_update, opts = {})
196
+ data, _status_code, _headers = create_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_create_or_update, opts)
197
+ data
198
+ end
199
+
200
+ # Creates a time entry for a specific project
201
+ # Allows you to create a specific task
202
+ # @param xero_tenant_id [String] Xero identifier for Tenant
203
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
204
+ # @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are creating
205
+ # @param [Hash] opts the optional parameters
206
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
207
+ # @return [Array<(TimeEntry, Integer, Hash)>] TimeEntry data, response status code and response headers
208
+ def create_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_create_or_update, options = {})
209
+ opts = options.dup
210
+ if @api_client.config.debugging
211
+ @api_client.config.logger.debug 'Calling API: ProjectApi.create_time_entry ...'
212
+ end
213
+ # verify the required parameter 'xero_tenant_id' is set
214
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
215
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.create_time_entry"
216
+ end
217
+ # verify the required parameter 'project_id' is set
218
+ if @api_client.config.client_side_validation && project_id.nil?
219
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.create_time_entry"
220
+ end
221
+ # verify the required parameter 'time_entry_create_or_update' is set
222
+ if @api_client.config.client_side_validation && time_entry_create_or_update.nil?
223
+ fail ArgumentError, "Missing the required parameter 'time_entry_create_or_update' when calling ProjectApi.create_time_entry"
224
+ end
225
+ # resource path
226
+ local_var_path = '/Projects/{projectId}/Time'.sub('{' + 'projectId' + '}', project_id.to_s)
227
+
228
+ # camelize keys of incoming `where` opts
229
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
230
+
231
+ # query parameters
232
+ query_params = opts[:query_params] || {}
233
+
234
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
235
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
236
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
237
+
238
+ # header parameters
239
+ header_params = opts[:header_params] || {}
240
+ # HTTP header 'Accept' (if needed)
241
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
242
+ # HTTP header 'Content-Type'
243
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
244
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
245
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
246
+
247
+ # form parameters
248
+ form_params = opts[:form_params] || {}
249
+
250
+ # http body (model)
251
+ post_body = opts[:body] || @api_client.object_to_http_body(time_entry_create_or_update)
252
+
253
+ # return_type
254
+ return_type = opts[:return_type] || 'TimeEntry'
255
+
256
+ # auth_names
257
+ auth_names = opts[:auth_names] || ['OAuth2']
258
+
259
+ new_options = opts.merge(
260
+ :header_params => header_params,
261
+ :query_params => query_params,
262
+ :form_params => form_params,
263
+ :body => post_body,
264
+ :auth_names => auth_names,
265
+ :return_type => return_type
266
+ )
267
+
268
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, "ProjectApi", new_options)
269
+ if @api_client.config.debugging
270
+ @api_client.config.logger.debug "API called: ProjectApi#create_time_entry\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
271
+ end
272
+ return data, status_code, headers
273
+ end
274
+
275
+ # Allows you to delete a task
276
+ # Allows you to delete a specific task
277
+ # @param xero_tenant_id [String] Xero identifier for Tenant
278
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
279
+ # @param task_id [String] You can specify an individual task by appending the id to the endpoint
280
+ # @param [Hash] opts the optional parameters
281
+ # @return [nil]
282
+ def delete_task(xero_tenant_id, project_id, task_id, opts = {})
283
+ delete_task_with_http_info(xero_tenant_id, project_id, task_id, opts)
284
+ nil
285
+ end
286
+
287
+ # Allows you to delete a task
288
+ # Allows you to delete a specific task
289
+ # @param xero_tenant_id [String] Xero identifier for Tenant
290
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
291
+ # @param task_id [String] You can specify an individual task by appending the id to the endpoint
292
+ # @param [Hash] opts the optional parameters
293
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
294
+ def delete_task_with_http_info(xero_tenant_id, project_id, task_id, options = {})
295
+ opts = options.dup
296
+ if @api_client.config.debugging
297
+ @api_client.config.logger.debug 'Calling API: ProjectApi.delete_task ...'
298
+ end
299
+ # verify the required parameter 'xero_tenant_id' is set
300
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
301
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.delete_task"
302
+ end
303
+ # verify the required parameter 'project_id' is set
304
+ if @api_client.config.client_side_validation && project_id.nil?
305
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.delete_task"
306
+ end
307
+ # verify the required parameter 'task_id' is set
308
+ if @api_client.config.client_side_validation && task_id.nil?
309
+ fail ArgumentError, "Missing the required parameter 'task_id' when calling ProjectApi.delete_task"
310
+ end
311
+ # resource path
312
+ local_var_path = '/Projects/{projectId}/Tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
313
+
314
+ # camelize keys of incoming `where` opts
315
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
316
+
317
+ # query parameters
318
+ query_params = opts[:query_params] || {}
319
+
320
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
321
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
322
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
323
+
324
+ # header parameters
325
+ header_params = opts[:header_params] || {}
326
+ # HTTP header 'Accept' (if needed)
327
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
328
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
329
+
330
+ # form parameters
331
+ form_params = opts[:form_params] || {}
332
+
333
+ # http body (model)
334
+ post_body = opts[:body]
335
+
336
+ # return_type
337
+ return_type = opts[:return_type]
338
+
339
+ # auth_names
340
+ auth_names = opts[:auth_names] || ['OAuth2']
341
+
342
+ new_options = opts.merge(
343
+ :header_params => header_params,
344
+ :query_params => query_params,
345
+ :form_params => form_params,
346
+ :body => post_body,
347
+ :auth_names => auth_names,
348
+ :return_type => return_type
349
+ )
350
+
351
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, "ProjectApi", new_options)
352
+ if @api_client.config.debugging
353
+ @api_client.config.logger.debug "API called: ProjectApi#delete_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
354
+ end
355
+ return data, status_code, headers
356
+ end
357
+
358
+ # Deletes a time entry for a specific project
359
+ # Allows you to delete a specific time entry
360
+ # @param xero_tenant_id [String] Xero identifier for Tenant
361
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
362
+ # @param time_entry_id [String] You can specify an individual task by appending the id to the endpoint
363
+ # @param [Hash] opts the optional parameters
364
+ # @return [nil]
365
+ def delete_time_entry(xero_tenant_id, project_id, time_entry_id, opts = {})
366
+ delete_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, opts)
367
+ nil
368
+ end
369
+
370
+ # Deletes a time entry for a specific project
371
+ # Allows you to delete a specific time entry
372
+ # @param xero_tenant_id [String] Xero identifier for Tenant
373
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
374
+ # @param time_entry_id [String] You can specify an individual task by appending the id to the endpoint
375
+ # @param [Hash] opts the optional parameters
376
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
377
+ def delete_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, options = {})
378
+ opts = options.dup
379
+ if @api_client.config.debugging
380
+ @api_client.config.logger.debug 'Calling API: ProjectApi.delete_time_entry ...'
381
+ end
382
+ # verify the required parameter 'xero_tenant_id' is set
383
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
384
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.delete_time_entry"
385
+ end
386
+ # verify the required parameter 'project_id' is set
387
+ if @api_client.config.client_side_validation && project_id.nil?
388
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.delete_time_entry"
389
+ end
390
+ # verify the required parameter 'time_entry_id' is set
391
+ if @api_client.config.client_side_validation && time_entry_id.nil?
392
+ fail ArgumentError, "Missing the required parameter 'time_entry_id' when calling ProjectApi.delete_time_entry"
393
+ end
394
+ # resource path
395
+ local_var_path = '/Projects/{projectId}/Time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
396
+
397
+ # camelize keys of incoming `where` opts
398
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
399
+
400
+ # query parameters
401
+ query_params = opts[:query_params] || {}
402
+
403
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
404
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
405
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
406
+
407
+ # header parameters
408
+ header_params = opts[:header_params] || {}
409
+ # HTTP header 'Accept' (if needed)
410
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
411
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
412
+
413
+ # form parameters
414
+ form_params = opts[:form_params] || {}
415
+
416
+ # http body (model)
417
+ post_body = opts[:body]
418
+
419
+ # return_type
420
+ return_type = opts[:return_type]
421
+
422
+ # auth_names
423
+ auth_names = opts[:auth_names] || ['OAuth2']
424
+
425
+ new_options = opts.merge(
426
+ :header_params => header_params,
427
+ :query_params => query_params,
428
+ :form_params => form_params,
429
+ :body => post_body,
430
+ :auth_names => auth_names,
431
+ :return_type => return_type
432
+ )
433
+
434
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, "ProjectApi", new_options)
435
+ if @api_client.config.debugging
436
+ @api_client.config.logger.debug "API called: ProjectApi#delete_time_entry\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
437
+ end
438
+ return data, status_code, headers
439
+ end
440
+
441
+ # Retrieves a single project
442
+ # Allows you to retrieve a specific project using the projectId
443
+ # @param xero_tenant_id [String] Xero identifier for Tenant
444
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
445
+ # @param [Hash] opts the optional parameters
446
+ # @return [Project]
447
+ def get_project(xero_tenant_id, project_id, opts = {})
448
+ data, _status_code, _headers = get_project_with_http_info(xero_tenant_id, project_id, opts)
449
+ data
450
+ end
451
+
452
+ # Retrieves a single project
453
+ # Allows you to retrieve a specific project using the projectId
454
+ # @param xero_tenant_id [String] Xero identifier for Tenant
455
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
456
+ # @param [Hash] opts the optional parameters
457
+ # @return [Array<(Project, Integer, Hash)>] Project data, response status code and response headers
458
+ def get_project_with_http_info(xero_tenant_id, project_id, options = {})
459
+ opts = options.dup
460
+ if @api_client.config.debugging
461
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_project ...'
462
+ end
463
+ # verify the required parameter 'xero_tenant_id' is set
464
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
465
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_project"
466
+ end
467
+ # verify the required parameter 'project_id' is set
468
+ if @api_client.config.client_side_validation && project_id.nil?
469
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_project"
470
+ end
471
+ # resource path
472
+ local_var_path = '/Projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
473
+
474
+ # camelize keys of incoming `where` opts
475
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
476
+
477
+ # query parameters
478
+ query_params = opts[:query_params] || {}
479
+
480
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
481
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
482
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
483
+
484
+ # header parameters
485
+ header_params = opts[:header_params] || {}
486
+ # HTTP header 'Accept' (if needed)
487
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
488
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
489
+
490
+ # form parameters
491
+ form_params = opts[:form_params] || {}
492
+
493
+ # http body (model)
494
+ post_body = opts[:body]
495
+
496
+ # return_type
497
+ return_type = opts[:return_type] || 'Project'
498
+
499
+ # auth_names
500
+ auth_names = opts[:auth_names] || ['OAuth2']
501
+
502
+ new_options = opts.merge(
503
+ :header_params => header_params,
504
+ :query_params => query_params,
505
+ :form_params => form_params,
506
+ :body => post_body,
507
+ :auth_names => auth_names,
508
+ :return_type => return_type
509
+ )
510
+
511
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
512
+ if @api_client.config.debugging
513
+ @api_client.config.logger.debug "API called: ProjectApi#get_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
514
+ end
515
+ return data, status_code, headers
516
+ end
517
+
518
+ # Retrieves a list of all project users
519
+ # Allows you to retrieve the users on a projects.
520
+ # @param xero_tenant_id [String] Xero identifier for Tenant
521
+ # @param [Hash] opts the optional parameters
522
+ # @option opts [Integer] :page set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. (default to 1)
523
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500. (default to 50)
524
+ # @return [ProjectUsers]
525
+ def get_project_users(xero_tenant_id, opts = {})
526
+ data, _status_code, _headers = get_project_users_with_http_info(xero_tenant_id, opts)
527
+ data
528
+ end
529
+
530
+ # Retrieves a list of all project users
531
+ # Allows you to retrieve the users on a projects.
532
+ # @param xero_tenant_id [String] Xero identifier for Tenant
533
+ # @param [Hash] opts the optional parameters
534
+ # @option opts [Integer] :page set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
535
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
536
+ # @return [Array<(ProjectUsers, Integer, Hash)>] ProjectUsers data, response status code and response headers
537
+ def get_project_users_with_http_info(xero_tenant_id, options = {})
538
+ opts = options.dup
539
+ if @api_client.config.debugging
540
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_project_users ...'
541
+ end
542
+ # verify the required parameter 'xero_tenant_id' is set
543
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
544
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_project_users"
545
+ end
546
+ if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 500
547
+ fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling ProjectApi.get_project_users, must be smaller than or equal to 500.'
548
+ end
549
+
550
+ if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 1
551
+ fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling ProjectApi.get_project_users, must be greater than or equal to 1.'
552
+ end
553
+
554
+ # resource path
555
+ local_var_path = '/ProjectsUsers'
556
+
557
+ # camelize keys of incoming `where` opts
558
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
559
+
560
+ # query parameters
561
+ query_params = opts[:query_params] || {}
562
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
563
+ query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
564
+
565
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
566
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
567
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
568
+
569
+ # header parameters
570
+ header_params = opts[:header_params] || {}
571
+ # HTTP header 'Accept' (if needed)
572
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
573
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
574
+
575
+ # form parameters
576
+ form_params = opts[:form_params] || {}
577
+
578
+ # http body (model)
579
+ post_body = opts[:body]
580
+
581
+ # return_type
582
+ return_type = opts[:return_type] || 'ProjectUsers'
583
+
584
+ # auth_names
585
+ auth_names = opts[:auth_names] || ['OAuth2']
586
+
587
+ new_options = opts.merge(
588
+ :header_params => header_params,
589
+ :query_params => query_params,
590
+ :form_params => form_params,
591
+ :body => post_body,
592
+ :auth_names => auth_names,
593
+ :return_type => return_type
594
+ )
595
+
596
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
597
+ if @api_client.config.debugging
598
+ @api_client.config.logger.debug "API called: ProjectApi#get_project_users\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
599
+ end
600
+ return data, status_code, headers
601
+ end
602
+
603
+ # Retrieves all projects
604
+ # Allows you to retrieve, create and update projects.
605
+ # @param xero_tenant_id [String] Xero identifier for Tenant
606
+ # @param [Hash] opts the optional parameters
607
+ # @option opts [Array<String>] :project_ids Search for all projects that match a comma separated list of projectIds
608
+ # @option opts [String] :contact_id Filter for projects for a specific contact
609
+ # @option opts [String] :states Filter for projects in a particular state (INPROGRESS or CLOSED)
610
+ # @option opts [Integer] :page set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. (default to 1)
611
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500. (default to 50)
612
+ # @return [Projects]
613
+ def get_projects(xero_tenant_id, opts = {})
614
+ data, _status_code, _headers = get_projects_with_http_info(xero_tenant_id, opts)
615
+ data
616
+ end
617
+
618
+ # Retrieves all projects
619
+ # Allows you to retrieve, create and update projects.
620
+ # @param xero_tenant_id [String] Xero identifier for Tenant
621
+ # @param [Hash] opts the optional parameters
622
+ # @option opts [Array<String>] :project_ids Search for all projects that match a comma separated list of projectIds
623
+ # @option opts [String] :contact_id Filter for projects for a specific contact
624
+ # @option opts [String] :states Filter for projects in a particular state (INPROGRESS or CLOSED)
625
+ # @option opts [Integer] :page set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
626
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
627
+ # @return [Array<(Projects, Integer, Hash)>] Projects data, response status code and response headers
628
+ def get_projects_with_http_info(xero_tenant_id, options = {})
629
+ opts = options.dup
630
+ if @api_client.config.debugging
631
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_projects ...'
632
+ end
633
+ # verify the required parameter 'xero_tenant_id' is set
634
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
635
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_projects"
636
+ end
637
+ if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 500
638
+ fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling ProjectApi.get_projects, must be smaller than or equal to 500.'
639
+ end
640
+
641
+ if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 1
642
+ fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling ProjectApi.get_projects, must be greater than or equal to 1.'
643
+ end
644
+
645
+ # resource path
646
+ local_var_path = '/Projects'
647
+
648
+ # camelize keys of incoming `where` opts
649
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
650
+
651
+ # query parameters
652
+ query_params = opts[:query_params] || {}
653
+ query_params[:'projectIds'] = @api_client.build_collection_param(opts[:'project_ids'], :multi) if !opts[:'project_ids'].nil?
654
+ query_params[:'contactID'] = opts[:'contact_id'] if !opts[:'contact_id'].nil?
655
+ query_params[:'states'] = opts[:'states'] if !opts[:'states'].nil?
656
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
657
+ query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
658
+
659
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
660
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
661
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
662
+
663
+ # header parameters
664
+ header_params = opts[:header_params] || {}
665
+ # HTTP header 'Accept' (if needed)
666
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
667
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
668
+
669
+ # form parameters
670
+ form_params = opts[:form_params] || {}
671
+
672
+ # http body (model)
673
+ post_body = opts[:body]
674
+
675
+ # return_type
676
+ return_type = opts[:return_type] || 'Projects'
677
+
678
+ # auth_names
679
+ auth_names = opts[:auth_names] || ['OAuth2']
680
+
681
+ new_options = opts.merge(
682
+ :header_params => header_params,
683
+ :query_params => query_params,
684
+ :form_params => form_params,
685
+ :body => post_body,
686
+ :auth_names => auth_names,
687
+ :return_type => return_type
688
+ )
689
+
690
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
691
+ if @api_client.config.debugging
692
+ @api_client.config.logger.debug "API called: ProjectApi#get_projects\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
693
+ end
694
+ return data, status_code, headers
695
+ end
696
+
697
+ # Retrieves a single project task
698
+ # Allows you to retrieve a specific project
699
+ # @param xero_tenant_id [String] Xero identifier for Tenant
700
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
701
+ # @param task_id [String] You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskID}
702
+ # @param [Hash] opts the optional parameters
703
+ # @return [Task]
704
+ def get_task(xero_tenant_id, project_id, task_id, opts = {})
705
+ data, _status_code, _headers = get_task_with_http_info(xero_tenant_id, project_id, task_id, opts)
706
+ data
707
+ end
708
+
709
+ # Retrieves a single project task
710
+ # Allows you to retrieve a specific project
711
+ # @param xero_tenant_id [String] Xero identifier for Tenant
712
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
713
+ # @param task_id [String] You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskID}
714
+ # @param [Hash] opts the optional parameters
715
+ # @return [Array<(Task, Integer, Hash)>] Task data, response status code and response headers
716
+ def get_task_with_http_info(xero_tenant_id, project_id, task_id, options = {})
717
+ opts = options.dup
718
+ if @api_client.config.debugging
719
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_task ...'
720
+ end
721
+ # verify the required parameter 'xero_tenant_id' is set
722
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
723
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_task"
724
+ end
725
+ # verify the required parameter 'project_id' is set
726
+ if @api_client.config.client_side_validation && project_id.nil?
727
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_task"
728
+ end
729
+ # verify the required parameter 'task_id' is set
730
+ if @api_client.config.client_side_validation && task_id.nil?
731
+ fail ArgumentError, "Missing the required parameter 'task_id' when calling ProjectApi.get_task"
732
+ end
733
+ # resource path
734
+ local_var_path = '/Projects/{projectId}/Tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
735
+
736
+ # camelize keys of incoming `where` opts
737
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
738
+
739
+ # query parameters
740
+ query_params = opts[:query_params] || {}
741
+
742
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
743
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
744
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
745
+
746
+ # header parameters
747
+ header_params = opts[:header_params] || {}
748
+ # HTTP header 'Accept' (if needed)
749
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
750
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
751
+
752
+ # form parameters
753
+ form_params = opts[:form_params] || {}
754
+
755
+ # http body (model)
756
+ post_body = opts[:body]
757
+
758
+ # return_type
759
+ return_type = opts[:return_type] || 'Task'
760
+
761
+ # auth_names
762
+ auth_names = opts[:auth_names] || ['OAuth2']
763
+
764
+ new_options = opts.merge(
765
+ :header_params => header_params,
766
+ :query_params => query_params,
767
+ :form_params => form_params,
768
+ :body => post_body,
769
+ :auth_names => auth_names,
770
+ :return_type => return_type
771
+ )
772
+
773
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
774
+ if @api_client.config.debugging
775
+ @api_client.config.logger.debug "API called: ProjectApi#get_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
776
+ end
777
+ return data, status_code, headers
778
+ end
779
+
780
+ # Retrieves all project tasks
781
+ # Allows you to retrieve a specific project
782
+ # @param xero_tenant_id [String] Xero identifier for Tenant
783
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
784
+ # @param [Hash] opts the optional parameters
785
+ # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
786
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
787
+ # @option opts [String] :task_ids Search for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskID},{taskID}
788
+ # @option opts [ChargeType] :charge_type
789
+ # @return [Tasks]
790
+ def get_tasks(xero_tenant_id, project_id, opts = {})
791
+ data, _status_code, _headers = get_tasks_with_http_info(xero_tenant_id, project_id, opts)
792
+ data
793
+ end
794
+
795
+ # Retrieves all project tasks
796
+ # Allows you to retrieve a specific project
797
+ # @param xero_tenant_id [String] Xero identifier for Tenant
798
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
799
+ # @param [Hash] opts the optional parameters
800
+ # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
801
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
802
+ # @option opts [String] :task_ids Search for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskID},{taskID}
803
+ # @option opts [ChargeType] :charge_type
804
+ # @return [Array<(Tasks, Integer, Hash)>] Tasks data, response status code and response headers
805
+ def get_tasks_with_http_info(xero_tenant_id, project_id, options = {})
806
+ opts = options.dup
807
+ if @api_client.config.debugging
808
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_tasks ...'
809
+ end
810
+ # verify the required parameter 'xero_tenant_id' is set
811
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
812
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_tasks"
813
+ end
814
+ # verify the required parameter 'project_id' is set
815
+ if @api_client.config.client_side_validation && project_id.nil?
816
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_tasks"
817
+ end
818
+ # resource path
819
+ local_var_path = '/Projects/{projectId}/Tasks'.sub('{' + 'projectId' + '}', project_id.to_s)
820
+
821
+ # camelize keys of incoming `where` opts
822
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
823
+
824
+ # query parameters
825
+ query_params = opts[:query_params] || {}
826
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
827
+ query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
828
+ query_params[:'taskIds'] = opts[:'task_ids'] if !opts[:'task_ids'].nil?
829
+ query_params[:'chargeType'] = opts[:'charge_type'] if !opts[:'charge_type'].nil?
830
+
831
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
832
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
833
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
834
+
835
+ # header parameters
836
+ header_params = opts[:header_params] || {}
837
+ # HTTP header 'Accept' (if needed)
838
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
839
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
840
+
841
+ # form parameters
842
+ form_params = opts[:form_params] || {}
843
+
844
+ # http body (model)
845
+ post_body = opts[:body]
846
+
847
+ # return_type
848
+ return_type = opts[:return_type] || 'Tasks'
849
+
850
+ # auth_names
851
+ auth_names = opts[:auth_names] || ['OAuth2']
852
+
853
+ new_options = opts.merge(
854
+ :header_params => header_params,
855
+ :query_params => query_params,
856
+ :form_params => form_params,
857
+ :body => post_body,
858
+ :auth_names => auth_names,
859
+ :return_type => return_type
860
+ )
861
+
862
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
863
+ if @api_client.config.debugging
864
+ @api_client.config.logger.debug "API called: ProjectApi#get_tasks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
865
+ end
866
+ return data, status_code, headers
867
+ end
868
+
869
+ # Retrieves all time entries associated with a specific project
870
+ # Allows you to retrieve the time entries associated with a specific project
871
+ # @param xero_tenant_id [String] Xero identifier for Tenant
872
+ # @param project_id [String] Identifier of the project, that the task (which the time entry is logged against) belongs to.
873
+ # @param [Hash] opts the optional parameters
874
+ # @option opts [String] :user_id The xero user identifier of the person who logged time.
875
+ # @option opts [String] :task_id Identifier of the task that time entry is logged against.
876
+ # @option opts [String] :invoice_id Finds all time entries for this invoice.
877
+ # @option opts [String] :contact_id Finds all time entries for this contact identifier.
878
+ # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
879
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
880
+ # @option opts [Array<String>] :states Comma-separated list of states to find. Will find all time entries that are in the status of whatever is specified.
881
+ # @option opts [Boolean] :is_chargeable Finds all time entries which relate to tasks with the charge type &#x60;TIME&#x60; or &#x60;FIXED&#x60;.
882
+ # @option opts [DateTime] :date_after_utc ISO 8601 UTC date. Finds all time entries on or after this date filtered on the &#x60;dateUtc&#x60; field.
883
+ # @option opts [DateTime] :date_before_utc ISO 8601 UTC date. Finds all time entries on or before this date filtered on the &#x60;dateUtc&#x60; field.
884
+ # @return [TimeEntries]
885
+ def get_time_entries(xero_tenant_id, project_id, opts = {})
886
+ data, _status_code, _headers = get_time_entries_with_http_info(xero_tenant_id, project_id, opts)
887
+ data
888
+ end
889
+
890
+ # Retrieves all time entries associated with a specific project
891
+ # Allows you to retrieve the time entries associated with a specific project
892
+ # @param xero_tenant_id [String] Xero identifier for Tenant
893
+ # @param project_id [String] Identifier of the project, that the task (which the time entry is logged against) belongs to.
894
+ # @param [Hash] opts the optional parameters
895
+ # @option opts [String] :user_id The xero user identifier of the person who logged time.
896
+ # @option opts [String] :task_id Identifier of the task that time entry is logged against.
897
+ # @option opts [String] :invoice_id Finds all time entries for this invoice.
898
+ # @option opts [String] :contact_id Finds all time entries for this contact identifier.
899
+ # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
900
+ # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
901
+ # @option opts [Array<String>] :states Comma-separated list of states to find. Will find all time entries that are in the status of whatever is specified.
902
+ # @option opts [Boolean] :is_chargeable Finds all time entries which relate to tasks with the charge type &#x60;TIME&#x60; or &#x60;FIXED&#x60;.
903
+ # @option opts [DateTime] :date_after_utc ISO 8601 UTC date. Finds all time entries on or after this date filtered on the &#x60;dateUtc&#x60; field.
904
+ # @option opts [DateTime] :date_before_utc ISO 8601 UTC date. Finds all time entries on or before this date filtered on the &#x60;dateUtc&#x60; field.
905
+ # @return [Array<(TimeEntries, Integer, Hash)>] TimeEntries data, response status code and response headers
906
+ def get_time_entries_with_http_info(xero_tenant_id, project_id, options = {})
907
+ opts = options.dup
908
+ if @api_client.config.debugging
909
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_time_entries ...'
910
+ end
911
+ # verify the required parameter 'xero_tenant_id' is set
912
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
913
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_time_entries"
914
+ end
915
+ # verify the required parameter 'project_id' is set
916
+ if @api_client.config.client_side_validation && project_id.nil?
917
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_time_entries"
918
+ end
919
+ # resource path
920
+ local_var_path = '/Projects/{projectId}/Time'.sub('{' + 'projectId' + '}', project_id.to_s)
921
+
922
+ # camelize keys of incoming `where` opts
923
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
924
+
925
+ # query parameters
926
+ query_params = opts[:query_params] || {}
927
+ query_params[:'userId'] = opts[:'user_id'] if !opts[:'user_id'].nil?
928
+ query_params[:'taskId'] = opts[:'task_id'] if !opts[:'task_id'].nil?
929
+ query_params[:'invoiceId'] = opts[:'invoice_id'] if !opts[:'invoice_id'].nil?
930
+ query_params[:'contactId'] = opts[:'contact_id'] if !opts[:'contact_id'].nil?
931
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
932
+ query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
933
+ query_params[:'states'] = @api_client.build_collection_param(opts[:'states'], :multi) if !opts[:'states'].nil?
934
+ query_params[:'isChargeable'] = opts[:'is_chargeable'] if !opts[:'is_chargeable'].nil?
935
+ query_params[:'dateAfterUtc'] = opts[:'date_after_utc'] if !opts[:'date_after_utc'].nil?
936
+ query_params[:'dateBeforeUtc'] = opts[:'date_before_utc'] if !opts[:'date_before_utc'].nil?
937
+
938
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
939
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
940
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
941
+
942
+ # header parameters
943
+ header_params = opts[:header_params] || {}
944
+ # HTTP header 'Accept' (if needed)
945
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
946
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
947
+
948
+ # form parameters
949
+ form_params = opts[:form_params] || {}
950
+
951
+ # http body (model)
952
+ post_body = opts[:body]
953
+
954
+ # return_type
955
+ return_type = opts[:return_type] || 'TimeEntries'
956
+
957
+ # auth_names
958
+ auth_names = opts[:auth_names] || ['OAuth2']
959
+
960
+ new_options = opts.merge(
961
+ :header_params => header_params,
962
+ :query_params => query_params,
963
+ :form_params => form_params,
964
+ :body => post_body,
965
+ :auth_names => auth_names,
966
+ :return_type => return_type
967
+ )
968
+
969
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
970
+ if @api_client.config.debugging
971
+ @api_client.config.logger.debug "API called: ProjectApi#get_time_entries\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
972
+ end
973
+ return data, status_code, headers
974
+ end
975
+
976
+ # Retrieves a single time entry for a specific project
977
+ # Allows you to get a single time entry in a project
978
+ # @param xero_tenant_id [String] Xero identifier for Tenant
979
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
980
+ # @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
981
+ # @param [Hash] opts the optional parameters
982
+ # @return [TimeEntry]
983
+ def get_time_entry(xero_tenant_id, project_id, time_entry_id, opts = {})
984
+ data, _status_code, _headers = get_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, opts)
985
+ data
986
+ end
987
+
988
+ # Retrieves a single time entry for a specific project
989
+ # Allows you to get a single time entry in a project
990
+ # @param xero_tenant_id [String] Xero identifier for Tenant
991
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
992
+ # @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
993
+ # @param [Hash] opts the optional parameters
994
+ # @return [Array<(TimeEntry, Integer, Hash)>] TimeEntry data, response status code and response headers
995
+ def get_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, options = {})
996
+ opts = options.dup
997
+ if @api_client.config.debugging
998
+ @api_client.config.logger.debug 'Calling API: ProjectApi.get_time_entry ...'
999
+ end
1000
+ # verify the required parameter 'xero_tenant_id' is set
1001
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
1002
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.get_time_entry"
1003
+ end
1004
+ # verify the required parameter 'project_id' is set
1005
+ if @api_client.config.client_side_validation && project_id.nil?
1006
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_time_entry"
1007
+ end
1008
+ # verify the required parameter 'time_entry_id' is set
1009
+ if @api_client.config.client_side_validation && time_entry_id.nil?
1010
+ fail ArgumentError, "Missing the required parameter 'time_entry_id' when calling ProjectApi.get_time_entry"
1011
+ end
1012
+ # resource path
1013
+ local_var_path = '/Projects/{projectId}/Time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
1014
+
1015
+ # camelize keys of incoming `where` opts
1016
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
1017
+
1018
+ # query parameters
1019
+ query_params = opts[:query_params] || {}
1020
+
1021
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1022
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
1023
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
1024
+
1025
+ # header parameters
1026
+ header_params = opts[:header_params] || {}
1027
+ # HTTP header 'Accept' (if needed)
1028
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1029
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
1030
+
1031
+ # form parameters
1032
+ form_params = opts[:form_params] || {}
1033
+
1034
+ # http body (model)
1035
+ post_body = opts[:body]
1036
+
1037
+ # return_type
1038
+ return_type = opts[:return_type] || 'TimeEntry'
1039
+
1040
+ # auth_names
1041
+ auth_names = opts[:auth_names] || ['OAuth2']
1042
+
1043
+ new_options = opts.merge(
1044
+ :header_params => header_params,
1045
+ :query_params => query_params,
1046
+ :form_params => form_params,
1047
+ :body => post_body,
1048
+ :auth_names => auth_names,
1049
+ :return_type => return_type
1050
+ )
1051
+
1052
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, "ProjectApi", new_options)
1053
+ if @api_client.config.debugging
1054
+ @api_client.config.logger.debug "API called: ProjectApi#get_time_entry\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1055
+ end
1056
+ return data, status_code, headers
1057
+ end
1058
+
1059
+ # creates a project for the specified contact
1060
+ # Allows you to update a specific projects.
1061
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1062
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1063
+ # @param project_patch [ProjectPatch] Update the status of an existing Project
1064
+ # @param [Hash] opts the optional parameters
1065
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1066
+ # @return [nil]
1067
+ def patch_project(xero_tenant_id, project_id, project_patch, opts = {})
1068
+ patch_project_with_http_info(xero_tenant_id, project_id, project_patch, opts)
1069
+ nil
1070
+ end
1071
+
1072
+ # creates a project for the specified contact
1073
+ # Allows you to update a specific projects.
1074
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1075
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1076
+ # @param project_patch [ProjectPatch] Update the status of an existing Project
1077
+ # @param [Hash] opts the optional parameters
1078
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1079
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1080
+ def patch_project_with_http_info(xero_tenant_id, project_id, project_patch, options = {})
1081
+ opts = options.dup
1082
+ if @api_client.config.debugging
1083
+ @api_client.config.logger.debug 'Calling API: ProjectApi.patch_project ...'
1084
+ end
1085
+ # verify the required parameter 'xero_tenant_id' is set
1086
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
1087
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.patch_project"
1088
+ end
1089
+ # verify the required parameter 'project_id' is set
1090
+ if @api_client.config.client_side_validation && project_id.nil?
1091
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.patch_project"
1092
+ end
1093
+ # verify the required parameter 'project_patch' is set
1094
+ if @api_client.config.client_side_validation && project_patch.nil?
1095
+ fail ArgumentError, "Missing the required parameter 'project_patch' when calling ProjectApi.patch_project"
1096
+ end
1097
+ # resource path
1098
+ local_var_path = '/Projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
1099
+
1100
+ # camelize keys of incoming `where` opts
1101
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
1102
+
1103
+ # query parameters
1104
+ query_params = opts[:query_params] || {}
1105
+
1106
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1107
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
1108
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
1109
+
1110
+ # header parameters
1111
+ header_params = opts[:header_params] || {}
1112
+ # HTTP header 'Accept' (if needed)
1113
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1114
+ # HTTP header 'Content-Type'
1115
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1116
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
1117
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1118
+
1119
+ # form parameters
1120
+ form_params = opts[:form_params] || {}
1121
+
1122
+ # http body (model)
1123
+ post_body = opts[:body] || @api_client.object_to_http_body(project_patch)
1124
+
1125
+ # return_type
1126
+ return_type = opts[:return_type]
1127
+
1128
+ # auth_names
1129
+ auth_names = opts[:auth_names] || ['OAuth2']
1130
+
1131
+ new_options = opts.merge(
1132
+ :header_params => header_params,
1133
+ :query_params => query_params,
1134
+ :form_params => form_params,
1135
+ :body => post_body,
1136
+ :auth_names => auth_names,
1137
+ :return_type => return_type
1138
+ )
1139
+
1140
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, "ProjectApi", new_options)
1141
+ if @api_client.config.debugging
1142
+ @api_client.config.logger.debug "API called: ProjectApi#patch_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1143
+ end
1144
+ return data, status_code, headers
1145
+ end
1146
+
1147
+ # Updates a specific project
1148
+ # Allows you to update a specific projects.
1149
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1150
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1151
+ # @param project_create_or_update [ProjectCreateOrUpdate] Request of type ProjectCreateOrUpdate
1152
+ # @param [Hash] opts the optional parameters
1153
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1154
+ # @return [nil]
1155
+ def update_project(xero_tenant_id, project_id, project_create_or_update, opts = {})
1156
+ update_project_with_http_info(xero_tenant_id, project_id, project_create_or_update, opts)
1157
+ nil
1158
+ end
1159
+
1160
+ # Updates a specific project
1161
+ # Allows you to update a specific projects.
1162
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1163
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1164
+ # @param project_create_or_update [ProjectCreateOrUpdate] Request of type ProjectCreateOrUpdate
1165
+ # @param [Hash] opts the optional parameters
1166
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1167
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1168
+ def update_project_with_http_info(xero_tenant_id, project_id, project_create_or_update, options = {})
1169
+ opts = options.dup
1170
+ if @api_client.config.debugging
1171
+ @api_client.config.logger.debug 'Calling API: ProjectApi.update_project ...'
1172
+ end
1173
+ # verify the required parameter 'xero_tenant_id' is set
1174
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
1175
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.update_project"
1176
+ end
1177
+ # verify the required parameter 'project_id' is set
1178
+ if @api_client.config.client_side_validation && project_id.nil?
1179
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.update_project"
1180
+ end
1181
+ # verify the required parameter 'project_create_or_update' is set
1182
+ if @api_client.config.client_side_validation && project_create_or_update.nil?
1183
+ fail ArgumentError, "Missing the required parameter 'project_create_or_update' when calling ProjectApi.update_project"
1184
+ end
1185
+ # resource path
1186
+ local_var_path = '/Projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
1187
+
1188
+ # camelize keys of incoming `where` opts
1189
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
1190
+
1191
+ # query parameters
1192
+ query_params = opts[:query_params] || {}
1193
+
1194
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1195
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
1196
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
1197
+
1198
+ # header parameters
1199
+ header_params = opts[:header_params] || {}
1200
+ # HTTP header 'Accept' (if needed)
1201
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1202
+ # HTTP header 'Content-Type'
1203
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1204
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
1205
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1206
+
1207
+ # form parameters
1208
+ form_params = opts[:form_params] || {}
1209
+
1210
+ # http body (model)
1211
+ post_body = opts[:body] || @api_client.object_to_http_body(project_create_or_update)
1212
+
1213
+ # return_type
1214
+ return_type = opts[:return_type]
1215
+
1216
+ # auth_names
1217
+ auth_names = opts[:auth_names] || ['OAuth2']
1218
+
1219
+ new_options = opts.merge(
1220
+ :header_params => header_params,
1221
+ :query_params => query_params,
1222
+ :form_params => form_params,
1223
+ :body => post_body,
1224
+ :auth_names => auth_names,
1225
+ :return_type => return_type
1226
+ )
1227
+
1228
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, "ProjectApi", new_options)
1229
+ if @api_client.config.debugging
1230
+ @api_client.config.logger.debug "API called: ProjectApi#update_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1231
+ end
1232
+ return data, status_code, headers
1233
+ end
1234
+
1235
+ # Allows you to update a task
1236
+ # Allows you to update a specific task
1237
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1238
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1239
+ # @param task_id [String] You can specify an individual task by appending the id to the endpoint
1240
+ # @param task_create_or_update [TaskCreateOrUpdate] The task object you are updating
1241
+ # @param [Hash] opts the optional parameters
1242
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1243
+ # @return [nil]
1244
+ def update_task(xero_tenant_id, project_id, task_id, task_create_or_update, opts = {})
1245
+ update_task_with_http_info(xero_tenant_id, project_id, task_id, task_create_or_update, opts)
1246
+ nil
1247
+ end
1248
+
1249
+ # Allows you to update a task
1250
+ # Allows you to update a specific task
1251
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1252
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1253
+ # @param task_id [String] You can specify an individual task by appending the id to the endpoint
1254
+ # @param task_create_or_update [TaskCreateOrUpdate] The task object you are updating
1255
+ # @param [Hash] opts the optional parameters
1256
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1257
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1258
+ def update_task_with_http_info(xero_tenant_id, project_id, task_id, task_create_or_update, options = {})
1259
+ opts = options.dup
1260
+ if @api_client.config.debugging
1261
+ @api_client.config.logger.debug 'Calling API: ProjectApi.update_task ...'
1262
+ end
1263
+ # verify the required parameter 'xero_tenant_id' is set
1264
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
1265
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.update_task"
1266
+ end
1267
+ # verify the required parameter 'project_id' is set
1268
+ if @api_client.config.client_side_validation && project_id.nil?
1269
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.update_task"
1270
+ end
1271
+ # verify the required parameter 'task_id' is set
1272
+ if @api_client.config.client_side_validation && task_id.nil?
1273
+ fail ArgumentError, "Missing the required parameter 'task_id' when calling ProjectApi.update_task"
1274
+ end
1275
+ # verify the required parameter 'task_create_or_update' is set
1276
+ if @api_client.config.client_side_validation && task_create_or_update.nil?
1277
+ fail ArgumentError, "Missing the required parameter 'task_create_or_update' when calling ProjectApi.update_task"
1278
+ end
1279
+ # resource path
1280
+ local_var_path = '/Projects/{projectId}/Tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
1281
+
1282
+ # camelize keys of incoming `where` opts
1283
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
1284
+
1285
+ # query parameters
1286
+ query_params = opts[:query_params] || {}
1287
+
1288
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1289
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
1290
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
1291
+
1292
+ # header parameters
1293
+ header_params = opts[:header_params] || {}
1294
+ # HTTP header 'Accept' (if needed)
1295
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1296
+ # HTTP header 'Content-Type'
1297
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1298
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
1299
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1300
+
1301
+ # form parameters
1302
+ form_params = opts[:form_params] || {}
1303
+
1304
+ # http body (model)
1305
+ post_body = opts[:body] || @api_client.object_to_http_body(task_create_or_update)
1306
+
1307
+ # return_type
1308
+ return_type = opts[:return_type]
1309
+
1310
+ # auth_names
1311
+ auth_names = opts[:auth_names] || ['OAuth2']
1312
+
1313
+ new_options = opts.merge(
1314
+ :header_params => header_params,
1315
+ :query_params => query_params,
1316
+ :form_params => form_params,
1317
+ :body => post_body,
1318
+ :auth_names => auth_names,
1319
+ :return_type => return_type
1320
+ )
1321
+
1322
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, "ProjectApi", new_options)
1323
+ if @api_client.config.debugging
1324
+ @api_client.config.logger.debug "API called: ProjectApi#update_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1325
+ end
1326
+ return data, status_code, headers
1327
+ end
1328
+
1329
+ # Updates a time entry for a specific project
1330
+ # Allows you to update time entry in a project
1331
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1332
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1333
+ # @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
1334
+ # @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are updating
1335
+ # @param [Hash] opts the optional parameters
1336
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1337
+ # @return [nil]
1338
+ def update_time_entry(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update, opts = {})
1339
+ update_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update, opts)
1340
+ nil
1341
+ end
1342
+
1343
+ # Updates a time entry for a specific project
1344
+ # Allows you to update time entry in a project
1345
+ # @param xero_tenant_id [String] Xero identifier for Tenant
1346
+ # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
1347
+ # @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
1348
+ # @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are updating
1349
+ # @param [Hash] opts the optional parameters
1350
+ # @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
1351
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1352
+ def update_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update, options = {})
1353
+ opts = options.dup
1354
+ if @api_client.config.debugging
1355
+ @api_client.config.logger.debug 'Calling API: ProjectApi.update_time_entry ...'
1356
+ end
1357
+ # verify the required parameter 'xero_tenant_id' is set
1358
+ if @api_client.config.client_side_validation && xero_tenant_id.nil?
1359
+ fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.update_time_entry"
1360
+ end
1361
+ # verify the required parameter 'project_id' is set
1362
+ if @api_client.config.client_side_validation && project_id.nil?
1363
+ fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.update_time_entry"
1364
+ end
1365
+ # verify the required parameter 'time_entry_id' is set
1366
+ if @api_client.config.client_side_validation && time_entry_id.nil?
1367
+ fail ArgumentError, "Missing the required parameter 'time_entry_id' when calling ProjectApi.update_time_entry"
1368
+ end
1369
+ # verify the required parameter 'time_entry_create_or_update' is set
1370
+ if @api_client.config.client_side_validation && time_entry_create_or_update.nil?
1371
+ fail ArgumentError, "Missing the required parameter 'time_entry_create_or_update' when calling ProjectApi.update_time_entry"
1372
+ end
1373
+ # resource path
1374
+ local_var_path = '/Projects/{projectId}/Time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
1375
+
1376
+ # camelize keys of incoming `where` opts
1377
+ opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
1378
+
1379
+ # query parameters
1380
+ query_params = opts[:query_params] || {}
1381
+
1382
+ # XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
1383
+ query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
1384
+ query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
1385
+
1386
+ # header parameters
1387
+ header_params = opts[:header_params] || {}
1388
+ # HTTP header 'Accept' (if needed)
1389
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1390
+ # HTTP header 'Content-Type'
1391
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1392
+ header_params[:'Xero-Tenant-Id'] = xero_tenant_id
1393
+ header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
1394
+
1395
+ # form parameters
1396
+ form_params = opts[:form_params] || {}
1397
+
1398
+ # http body (model)
1399
+ post_body = opts[:body] || @api_client.object_to_http_body(time_entry_create_or_update)
1400
+
1401
+ # return_type
1402
+ return_type = opts[:return_type]
1403
+
1404
+ # auth_names
1405
+ auth_names = opts[:auth_names] || ['OAuth2']
1406
+
1407
+ new_options = opts.merge(
1408
+ :header_params => header_params,
1409
+ :query_params => query_params,
1410
+ :form_params => form_params,
1411
+ :body => post_body,
1412
+ :auth_names => auth_names,
1413
+ :return_type => return_type
1414
+ )
1415
+
1416
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, "ProjectApi", new_options)
1417
+ if @api_client.config.debugging
1418
+ @api_client.config.logger.debug "API called: ProjectApi#update_time_entry\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1419
+ end
1420
+ return data, status_code, headers
1421
+ end
1422
+ end
1423
+ end