xero-ruby 3.16.0 → 4.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1008) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +450 -450
  3. data/lib/xero-ruby/api/accounting_api.rb +18858 -18858
  4. data/lib/xero-ruby/api/app_store_api.rb +325 -325
  5. data/lib/xero-ruby/api/asset_api.rb +493 -493
  6. data/lib/xero-ruby/api/files_api.rb +1468 -1390
  7. data/lib/xero-ruby/api/finance_api.rb +961 -961
  8. data/lib/xero-ruby/api/payroll_au_api.rb +2513 -2282
  9. data/lib/xero-ruby/api/payroll_nz_api.rb +5334 -5334
  10. data/lib/xero-ruby/api/payroll_uk_api.rb +5479 -5479
  11. data/lib/xero-ruby/api/project_api.rb +1402 -1402
  12. data/lib/xero-ruby/api_client.rb +675 -675
  13. data/lib/xero-ruby/api_error.rb +57 -57
  14. data/lib/xero-ruby/configuration.rb +282 -282
  15. data/lib/xero-ruby/models/accounting/account.rb +535 -535
  16. data/lib/xero-ruby/models/accounting/account_type.rb +56 -56
  17. data/lib/xero-ruby/models/accounting/accounts.rb +224 -224
  18. data/lib/xero-ruby/models/accounting/accounts_payable.rb +232 -232
  19. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +232 -232
  20. data/lib/xero-ruby/models/accounting/action.rb +268 -268
  21. data/lib/xero-ruby/models/accounting/actions.rb +224 -224
  22. data/lib/xero-ruby/models/accounting/address.rb +483 -483
  23. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +484 -484
  24. data/lib/xero-ruby/models/accounting/allocation.rb +309 -309
  25. data/lib/xero-ruby/models/accounting/allocations.rb +224 -224
  26. data/lib/xero-ruby/models/accounting/attachment.rb +272 -272
  27. data/lib/xero-ruby/models/accounting/attachments.rb +224 -224
  28. data/lib/xero-ruby/models/accounting/balance_details.rb +243 -243
  29. data/lib/xero-ruby/models/accounting/balances.rb +233 -233
  30. data/lib/xero-ruby/models/accounting/bank_transaction.rb +510 -510
  31. data/lib/xero-ruby/models/accounting/bank_transactions.rb +224 -224
  32. data/lib/xero-ruby/models/accounting/bank_transfer.rb +375 -375
  33. data/lib/xero-ruby/models/accounting/bank_transfers.rb +224 -224
  34. data/lib/xero-ruby/models/accounting/batch_payment.rb +496 -496
  35. data/lib/xero-ruby/models/accounting/batch_payment_delete.rb +244 -244
  36. data/lib/xero-ruby/models/accounting/batch_payment_delete_by_url_param.rb +229 -229
  37. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +293 -293
  38. data/lib/xero-ruby/models/accounting/batch_payments.rb +224 -224
  39. data/lib/xero-ruby/models/accounting/bill.rb +232 -232
  40. data/lib/xero-ruby/models/accounting/branding_theme.rb +307 -307
  41. data/lib/xero-ruby/models/accounting/branding_themes.rb +224 -224
  42. data/lib/xero-ruby/models/accounting/budget.rb +327 -327
  43. data/lib/xero-ruby/models/accounting/budget_balance.rb +267 -267
  44. data/lib/xero-ruby/models/accounting/budget_line.rb +244 -244
  45. data/lib/xero-ruby/models/accounting/budgets.rb +224 -224
  46. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +242 -242
  47. data/lib/xero-ruby/models/accounting/cis_org_settings.rb +224 -224
  48. data/lib/xero-ruby/models/accounting/cis_setting.rb +232 -232
  49. data/lib/xero-ruby/models/accounting/cis_settings.rb +224 -224
  50. data/lib/xero-ruby/models/accounting/contact.rb +849 -849
  51. data/lib/xero-ruby/models/accounting/contact_group.rb +290 -290
  52. data/lib/xero-ruby/models/accounting/contact_groups.rb +224 -224
  53. data/lib/xero-ruby/models/accounting/contact_person.rb +252 -252
  54. data/lib/xero-ruby/models/accounting/contacts.rb +224 -224
  55. data/lib/xero-ruby/models/accounting/conversion_balances.rb +245 -245
  56. data/lib/xero-ruby/models/accounting/conversion_date.rb +233 -233
  57. data/lib/xero-ruby/models/accounting/country_code.rb +274 -274
  58. data/lib/xero-ruby/models/accounting/credit_note.rb +580 -580
  59. data/lib/xero-ruby/models/accounting/credit_notes.rb +224 -224
  60. data/lib/xero-ruby/models/accounting/currencies.rb +224 -224
  61. data/lib/xero-ruby/models/accounting/currency.rb +232 -232
  62. data/lib/xero-ruby/models/accounting/currency_code.rb +203 -200
  63. data/lib/xero-ruby/models/accounting/element.rb +294 -294
  64. data/lib/xero-ruby/models/accounting/employee.rb +362 -362
  65. data/lib/xero-ruby/models/accounting/employees.rb +224 -224
  66. data/lib/xero-ruby/models/accounting/error.rb +254 -254
  67. data/lib/xero-ruby/models/accounting/expense_claim.rb +375 -375
  68. data/lib/xero-ruby/models/accounting/expense_claims.rb +224 -224
  69. data/lib/xero-ruby/models/accounting/external_link.rb +281 -281
  70. data/lib/xero-ruby/models/accounting/history_record.rb +252 -252
  71. data/lib/xero-ruby/models/accounting/history_records.rb +224 -224
  72. data/lib/xero-ruby/models/accounting/import_summary.rb +233 -233
  73. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +303 -303
  74. data/lib/xero-ruby/models/accounting/import_summary_object.rb +222 -222
  75. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +222 -222
  76. data/lib/xero-ruby/models/accounting/invoice.rb +707 -707
  77. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +222 -222
  78. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +224 -224
  79. data/lib/xero-ruby/models/accounting/invoices.rb +224 -224
  80. data/lib/xero-ruby/models/accounting/item.rb +443 -443
  81. data/lib/xero-ruby/models/accounting/items.rb +224 -224
  82. data/lib/xero-ruby/models/accounting/journal.rb +353 -353
  83. data/lib/xero-ruby/models/accounting/journal_line.rb +334 -334
  84. data/lib/xero-ruby/models/accounting/journals.rb +224 -224
  85. data/lib/xero-ruby/models/accounting/line_amount_types.rb +37 -37
  86. data/lib/xero-ruby/models/accounting/line_item.rb +364 -364
  87. data/lib/xero-ruby/models/accounting/line_item_item.rb +272 -272
  88. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +267 -267
  89. data/lib/xero-ruby/models/accounting/linked_transaction.rb +390 -390
  90. data/lib/xero-ruby/models/accounting/linked_transactions.rb +224 -224
  91. data/lib/xero-ruby/models/accounting/manual_journal.rb +406 -406
  92. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +294 -294
  93. data/lib/xero-ruby/models/accounting/manual_journals.rb +224 -224
  94. data/lib/xero-ruby/models/accounting/online_invoice.rb +222 -222
  95. data/lib/xero-ruby/models/accounting/online_invoices.rb +224 -224
  96. data/lib/xero-ruby/models/accounting/organisation.rb +728 -728
  97. data/lib/xero-ruby/models/accounting/organisations.rb +224 -224
  98. data/lib/xero-ruby/models/accounting/overpayment.rb +464 -464
  99. data/lib/xero-ruby/models/accounting/overpayments.rb +224 -224
  100. data/lib/xero-ruby/models/accounting/payment.rb +544 -544
  101. data/lib/xero-ruby/models/accounting/payment_delete.rb +229 -229
  102. data/lib/xero-ruby/models/accounting/payment_service.rb +274 -274
  103. data/lib/xero-ruby/models/accounting/payment_services.rb +224 -224
  104. data/lib/xero-ruby/models/accounting/payment_term.rb +232 -232
  105. data/lib/xero-ruby/models/accounting/payment_term_type.rb +38 -38
  106. data/lib/xero-ruby/models/accounting/payments.rb +224 -224
  107. data/lib/xero-ruby/models/accounting/phone.rb +336 -336
  108. data/lib/xero-ruby/models/accounting/prepayment.rb +475 -475
  109. data/lib/xero-ruby/models/accounting/prepayments.rb +224 -224
  110. data/lib/xero-ruby/models/accounting/purchase.rb +252 -252
  111. data/lib/xero-ruby/models/accounting/purchase_order.rb +541 -541
  112. data/lib/xero-ruby/models/accounting/purchase_orders.rb +224 -224
  113. data/lib/xero-ruby/models/accounting/quote.rb +531 -531
  114. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +37 -37
  115. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +40 -40
  116. data/lib/xero-ruby/models/accounting/quotes.rb +224 -224
  117. data/lib/xero-ruby/models/accounting/receipt.rb +441 -441
  118. data/lib/xero-ruby/models/accounting/receipts.rb +224 -224
  119. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +477 -477
  120. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +224 -224
  121. data/lib/xero-ruby/models/accounting/report.rb +309 -309
  122. data/lib/xero-ruby/models/accounting/report_attribute.rb +232 -232
  123. data/lib/xero-ruby/models/accounting/report_cell.rb +234 -234
  124. data/lib/xero-ruby/models/accounting/report_fields.rb +242 -242
  125. data/lib/xero-ruby/models/accounting/report_row.rb +244 -244
  126. data/lib/xero-ruby/models/accounting/report_rows.rb +256 -256
  127. data/lib/xero-ruby/models/accounting/report_with_row.rb +308 -308
  128. data/lib/xero-ruby/models/accounting/report_with_rows.rb +224 -224
  129. data/lib/xero-ruby/models/accounting/reports.rb +224 -224
  130. data/lib/xero-ruby/models/accounting/request_empty.rb +222 -222
  131. data/lib/xero-ruby/models/accounting/row_type.rb +38 -38
  132. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +232 -232
  133. data/lib/xero-ruby/models/accounting/schedule.rb +336 -336
  134. data/lib/xero-ruby/models/accounting/setup.rb +246 -246
  135. data/lib/xero-ruby/models/accounting/tax_component.rb +252 -252
  136. data/lib/xero-ruby/models/accounting/tax_rate.rb +481 -476
  137. data/lib/xero-ruby/models/accounting/tax_rates.rb +224 -224
  138. data/lib/xero-ruby/models/accounting/tax_type.rb +130 -116
  139. data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +432 -432
  140. data/lib/xero-ruby/models/accounting/time_zone.rb +175 -175
  141. data/lib/xero-ruby/models/accounting/tracking_categories.rb +224 -224
  142. data/lib/xero-ruby/models/accounting/tracking_category.rb +341 -341
  143. data/lib/xero-ruby/models/accounting/tracking_option.rb +304 -304
  144. data/lib/xero-ruby/models/accounting/tracking_options.rb +224 -224
  145. data/lib/xero-ruby/models/accounting/user.rb +323 -323
  146. data/lib/xero-ruby/models/accounting/users.rb +224 -224
  147. data/lib/xero-ruby/models/accounting/validation_error.rb +222 -222
  148. data/lib/xero-ruby/models/app_store/create_usage_record.rb +243 -243
  149. data/lib/xero-ruby/models/app_store/plan.rb +311 -311
  150. data/lib/xero-ruby/models/app_store/price.rb +257 -257
  151. data/lib/xero-ruby/models/app_store/problem_details.rb +272 -272
  152. data/lib/xero-ruby/models/app_store/product.rb +299 -299
  153. data/lib/xero-ruby/models/app_store/subscription.rb +361 -361
  154. data/lib/xero-ruby/models/app_store/subscription_item.rb +354 -354
  155. data/lib/xero-ruby/models/app_store/update_usage_record.rb +228 -228
  156. data/lib/xero-ruby/models/app_store/usage_record.rb +332 -332
  157. data/lib/xero-ruby/models/app_store/usage_records_list.rb +230 -230
  158. data/lib/xero-ruby/models/assets/asset.rb +377 -377
  159. data/lib/xero-ruby/models/assets/asset_status.rb +37 -37
  160. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +37 -37
  161. data/lib/xero-ruby/models/assets/asset_type.rb +292 -292
  162. data/lib/xero-ruby/models/assets/assets.rb +234 -234
  163. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +282 -282
  164. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +361 -361
  165. data/lib/xero-ruby/models/assets/error.rb +266 -266
  166. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +272 -272
  167. data/lib/xero-ruby/models/assets/pagination.rb +252 -252
  168. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +262 -262
  169. data/lib/xero-ruby/models/assets/setting.rb +292 -292
  170. data/lib/xero-ruby/models/files/association.rb +252 -252
  171. data/lib/xero-ruby/models/files/file_object.rb +292 -292
  172. data/lib/xero-ruby/models/files/files.rb +254 -254
  173. data/lib/xero-ruby/models/files/folder.rb +262 -262
  174. data/lib/xero-ruby/models/files/folders.rb +224 -224
  175. data/lib/xero-ruby/models/files/object_group.rb +46 -46
  176. data/lib/xero-ruby/models/files/object_type.rb +90 -90
  177. data/lib/xero-ruby/models/files/upload_object.rb +267 -267
  178. data/lib/xero-ruby/models/files/user.rb +267 -267
  179. data/lib/xero-ruby/models/finance/account_usage.rb +342 -342
  180. data/lib/xero-ruby/models/finance/account_usage_response.rb +254 -254
  181. data/lib/xero-ruby/models/finance/balance_sheet_account_detail.rb +262 -262
  182. data/lib/xero-ruby/models/finance/balance_sheet_account_group.rb +234 -234
  183. data/lib/xero-ruby/models/finance/balance_sheet_account_type.rb +244 -244
  184. data/lib/xero-ruby/models/finance/balance_sheet_response.rb +252 -252
  185. data/lib/xero-ruby/models/finance/bank_statement_accounting_response.rb +254 -254
  186. data/lib/xero-ruby/models/finance/bank_statement_response.rb +232 -232
  187. data/lib/xero-ruby/models/finance/bank_transaction_response.rb +274 -274
  188. data/lib/xero-ruby/models/finance/cash_account_response.rb +262 -262
  189. data/lib/xero-ruby/models/finance/cash_balance.rb +242 -242
  190. data/lib/xero-ruby/models/finance/cash_validation_response.rb +262 -262
  191. data/lib/xero-ruby/models/finance/cashflow_account.rb +282 -282
  192. data/lib/xero-ruby/models/finance/cashflow_activity.rb +244 -244
  193. data/lib/xero-ruby/models/finance/cashflow_response.rb +254 -254
  194. data/lib/xero-ruby/models/finance/cashflow_type.rb +244 -244
  195. data/lib/xero-ruby/models/finance/contact_detail.rb +274 -274
  196. data/lib/xero-ruby/models/finance/contact_response.rb +232 -232
  197. data/lib/xero-ruby/models/finance/contact_total_detail.rb +242 -242
  198. data/lib/xero-ruby/models/finance/contact_total_other.rb +252 -252
  199. data/lib/xero-ruby/models/finance/credit_note_response.rb +254 -254
  200. data/lib/xero-ruby/models/finance/current_statement_response.rb +272 -272
  201. data/lib/xero-ruby/models/finance/data_source_response.rb +362 -362
  202. data/lib/xero-ruby/models/finance/history_record_response.rb +262 -262
  203. data/lib/xero-ruby/models/finance/income_by_contact_response.rb +284 -284
  204. data/lib/xero-ruby/models/finance/invoice_response.rb +254 -254
  205. data/lib/xero-ruby/models/finance/line_item_response.rb +252 -252
  206. data/lib/xero-ruby/models/finance/lock_history_model.rb +242 -242
  207. data/lib/xero-ruby/models/finance/lock_history_response.rb +244 -244
  208. data/lib/xero-ruby/models/finance/manual_journal_total.rb +222 -222
  209. data/lib/xero-ruby/models/finance/overpayment_response.rb +254 -254
  210. data/lib/xero-ruby/models/finance/payment_response.rb +312 -312
  211. data/lib/xero-ruby/models/finance/pnl_account.rb +272 -272
  212. data/lib/xero-ruby/models/finance/pnl_account_class.rb +234 -234
  213. data/lib/xero-ruby/models/finance/pnl_account_type.rb +244 -244
  214. data/lib/xero-ruby/models/finance/practice_response.rb +262 -262
  215. data/lib/xero-ruby/models/finance/prepayment_response.rb +254 -254
  216. data/lib/xero-ruby/models/finance/problem.rb +252 -252
  217. data/lib/xero-ruby/models/finance/problem_type.rb +44 -44
  218. data/lib/xero-ruby/models/finance/profit_and_loss_response.rb +262 -262
  219. data/lib/xero-ruby/models/finance/report_history_model.rb +242 -242
  220. data/lib/xero-ruby/models/finance/report_history_response.rb +244 -244
  221. data/lib/xero-ruby/models/finance/statement_balance_response.rb +232 -232
  222. data/lib/xero-ruby/models/finance/statement_line_response.rb +356 -346
  223. data/lib/xero-ruby/models/finance/statement_lines_response.rb +382 -382
  224. data/lib/xero-ruby/models/finance/statement_response.rb +314 -294
  225. data/lib/xero-ruby/models/finance/total_detail.rb +242 -242
  226. data/lib/xero-ruby/models/finance/total_other.rb +242 -242
  227. data/lib/xero-ruby/models/finance/trial_balance_account.rb +312 -312
  228. data/lib/xero-ruby/models/finance/trial_balance_entry.rb +232 -232
  229. data/lib/xero-ruby/models/finance/trial_balance_movement.rb +252 -252
  230. data/lib/xero-ruby/models/finance/trial_balance_response.rb +244 -244
  231. data/lib/xero-ruby/models/finance/user_activities_response.rb +244 -244
  232. data/lib/xero-ruby/models/finance/user_response.rb +336 -336
  233. data/lib/xero-ruby/models/payroll_au/account.rb +252 -252
  234. data/lib/xero-ruby/models/payroll_au/account_type.rb +57 -57
  235. data/lib/xero-ruby/models/payroll_au/allowance_category.rb +41 -41
  236. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +44 -44
  237. data/lib/xero-ruby/models/payroll_au/api_exception.rb +243 -243
  238. data/lib/xero-ruby/models/payroll_au/bank_account.rb +272 -272
  239. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +40 -40
  240. data/lib/xero-ruby/models/payroll_au/country_of_residence.rb +285 -285
  241. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +267 -267
  242. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +354 -354
  243. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +37 -37
  244. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +307 -307
  245. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +442 -422
  246. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +37 -37
  247. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +48 -48
  248. data/lib/xero-ruby/models/payroll_au/employee.rb +654 -654
  249. data/lib/xero-ruby/models/payroll_au/employee_status.rb +36 -36
  250. data/lib/xero-ruby/models/payroll_au/employees.rb +224 -224
  251. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +40 -40
  252. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +36 -36
  253. data/lib/xero-ruby/models/payroll_au/employment_type.rb +36 -36
  254. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +36 -36
  255. data/lib/xero-ruby/models/payroll_au/home_address.rb +277 -277
  256. data/lib/xero-ruby/models/payroll_au/income_type.rb +39 -39
  257. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +242 -242
  258. data/lib/xero-ruby/models/payroll_au/leave_application.rb +326 -316
  259. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +224 -224
  260. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +252 -252
  261. data/lib/xero-ruby/models/payroll_au/leave_category_code.rb +46 -46
  262. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +252 -242
  263. data/lib/xero-ruby/models/payroll_au/leave_line.rb +292 -292
  264. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +39 -39
  265. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +225 -225
  266. data/lib/xero-ruby/models/payroll_au/leave_period.rb +252 -252
  267. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +36 -36
  268. data/lib/xero-ruby/models/payroll_au/leave_type.rb +337 -337
  269. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +38 -38
  270. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +40 -40
  271. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +304 -292
  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 -260
  274. data/lib/xero-ruby/models/payroll_au/pay_items.rb +222 -222
  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 -381
  277. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +36 -36
  278. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +224 -224
  279. data/lib/xero-ruby/models/payroll_au/pay_template.rb +272 -272
  280. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +41 -41
  281. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +294 -294
  282. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +224 -224
  283. data/lib/xero-ruby/models/payroll_au/payslip.rb +418 -418
  284. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +308 -308
  285. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +222 -222
  286. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +332 -332
  287. data/lib/xero-ruby/models/payroll_au/payslips.rb +224 -224
  288. data/lib/xero-ruby/models/payroll_au/rate_type.rb +37 -37
  289. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +267 -267
  290. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +225 -225
  291. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +277 -277
  292. data/lib/xero-ruby/models/payroll_au/residency_status.rb +37 -37
  293. data/lib/xero-ruby/models/payroll_au/senior_marital_status.rb +37 -37
  294. data/lib/xero-ruby/models/payroll_au/settings.rb +254 -254
  295. data/lib/xero-ruby/models/payroll_au/settings_object.rb +222 -222
  296. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +233 -233
  297. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +233 -233
  298. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +233 -233
  299. data/lib/xero-ruby/models/payroll_au/state.rb +42 -42
  300. data/lib/xero-ruby/models/payroll_au/super_fund.rb +349 -349
  301. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +252 -252
  302. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +224 -224
  303. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +36 -36
  304. data/lib/xero-ruby/models/payroll_au/super_funds.rb +224 -224
  305. data/lib/xero-ruby/models/payroll_au/super_line.rb +292 -292
  306. data/lib/xero-ruby/models/payroll_au/super_membership.rb +252 -252
  307. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +37 -37
  308. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +38 -38
  309. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +302 -302
  310. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +422 -422
  311. data/lib/xero-ruby/models/payroll_au/tax_line.rb +272 -272
  312. data/lib/xero-ruby/models/payroll_au/tax_scale_type.rb +40 -40
  313. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +38 -38
  314. data/lib/xero-ruby/models/payroll_au/timesheet.rb +321 -321
  315. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +254 -254
  316. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +222 -222
  317. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +39 -39
  318. data/lib/xero-ruby/models/payroll_au/timesheets.rb +224 -224
  319. data/lib/xero-ruby/models/payroll_au/validation_error.rb +222 -222
  320. data/lib/xero-ruby/models/payroll_au/work_condition.rb +37 -37
  321. data/lib/xero-ruby/models/payroll_nz/account.rb +290 -290
  322. data/lib/xero-ruby/models/payroll_nz/accounts.rb +224 -224
  323. data/lib/xero-ruby/models/payroll_nz/address.rb +287 -287
  324. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +343 -343
  325. data/lib/xero-ruby/models/payroll_nz/benefit.rb +383 -383
  326. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +41 -41
  327. data/lib/xero-ruby/models/payroll_nz/deduction.rb +325 -325
  328. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +262 -262
  329. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +242 -242
  330. data/lib/xero-ruby/models/payroll_nz/deductions.rb +244 -244
  331. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +312 -312
  332. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +269 -269
  333. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +242 -242
  334. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +244 -244
  335. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +401 -401
  336. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +242 -242
  337. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +244 -244
  338. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +272 -272
  339. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +242 -242
  340. data/lib/xero-ruby/models/payroll_nz/employee.rb +388 -388
  341. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +244 -244
  342. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +304 -304
  343. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +252 -252
  344. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +244 -244
  345. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +242 -242
  346. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +282 -282
  347. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +242 -242
  348. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +350 -350
  349. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +242 -242
  350. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +244 -244
  351. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +244 -244
  352. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +242 -242
  353. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +252 -252
  354. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +244 -244
  355. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +234 -234
  356. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +242 -242
  357. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +242 -242
  358. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +294 -294
  359. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +242 -242
  360. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +336 -336
  361. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +244 -244
  362. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +433 -433
  363. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +242 -242
  364. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +244 -244
  365. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +411 -411
  366. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +242 -242
  367. data/lib/xero-ruby/models/payroll_nz/employees.rb +244 -244
  368. data/lib/xero-ruby/models/payroll_nz/employment.rb +242 -242
  369. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +242 -242
  370. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +232 -232
  371. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +232 -232
  372. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +232 -232
  373. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +312 -312
  374. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +288 -288
  375. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +244 -244
  376. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +287 -287
  377. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +242 -242
  378. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +244 -244
  379. data/lib/xero-ruby/models/payroll_nz/pagination.rb +252 -252
  380. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +385 -385
  381. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +302 -302
  382. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +242 -242
  383. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +244 -244
  384. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +242 -242
  385. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +244 -244
  386. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +571 -571
  387. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +242 -242
  388. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +244 -244
  389. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +262 -262
  390. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +271 -271
  391. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +242 -242
  392. data/lib/xero-ruby/models/payroll_nz/problem.rb +275 -275
  393. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +378 -378
  394. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +262 -262
  395. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +242 -242
  396. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +244 -244
  397. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +398 -398
  398. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +242 -242
  399. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +244 -244
  400. data/lib/xero-ruby/models/payroll_nz/settings.rb +242 -242
  401. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +262 -262
  402. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +45 -45
  403. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +252 -252
  404. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +242 -242
  405. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +244 -244
  406. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +272 -272
  407. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +242 -242
  408. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +244 -244
  409. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +53 -53
  410. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +262 -262
  411. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +308 -308
  412. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +362 -362
  413. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +312 -312
  414. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +277 -277
  415. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +242 -242
  416. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +242 -242
  417. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +244 -244
  418. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +242 -242
  419. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +232 -232
  420. data/lib/xero-ruby/models/payroll_uk/account.rb +293 -293
  421. data/lib/xero-ruby/models/payroll_uk/accounts.rb +224 -224
  422. data/lib/xero-ruby/models/payroll_uk/address.rb +277 -277
  423. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +257 -257
  424. data/lib/xero-ruby/models/payroll_uk/benefit.rb +432 -432
  425. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +262 -262
  426. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +242 -242
  427. data/lib/xero-ruby/models/payroll_uk/benefits.rb +244 -244
  428. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +232 -232
  429. data/lib/xero-ruby/models/payroll_uk/deduction.rb +440 -440
  430. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +252 -252
  431. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +242 -242
  432. data/lib/xero-ruby/models/payroll_uk/deductions.rb +244 -244
  433. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +302 -302
  434. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +269 -269
  435. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +242 -242
  436. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +244 -244
  437. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +409 -409
  438. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +242 -242
  439. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +244 -244
  440. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +272 -272
  441. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +242 -242
  442. data/lib/xero-ruby/models/payroll_uk/employee.rb +408 -408
  443. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +304 -304
  444. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +252 -252
  445. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +244 -244
  446. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +242 -242
  447. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +320 -320
  448. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +242 -242
  449. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +244 -244
  450. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +244 -244
  451. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +242 -242
  452. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +272 -272
  453. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +242 -242
  454. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +234 -234
  455. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +242 -242
  456. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +244 -244
  457. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +294 -294
  458. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +242 -242
  459. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +336 -336
  460. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +244 -244
  461. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +433 -433
  462. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +242 -242
  463. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +244 -244
  464. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +322 -322
  465. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +242 -242
  466. data/lib/xero-ruby/models/payroll_uk/employees.rb +244 -244
  467. data/lib/xero-ruby/models/payroll_uk/employment.rb +299 -299
  468. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +242 -242
  469. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +232 -232
  470. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +232 -232
  471. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +272 -272
  472. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +288 -288
  473. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +244 -244
  474. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +307 -307
  475. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +242 -242
  476. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +244 -244
  477. data/lib/xero-ruby/models/payroll_uk/pagination.rb +252 -252
  478. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +403 -403
  479. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +342 -342
  480. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +242 -242
  481. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +244 -244
  482. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +242 -242
  483. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +244 -244
  484. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +262 -262
  485. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +276 -276
  486. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +242 -242
  487. data/lib/xero-ruby/models/payroll_uk/payslip.rb +551 -551
  488. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +242 -242
  489. data/lib/xero-ruby/models/payroll_uk/payslips.rb +244 -244
  490. data/lib/xero-ruby/models/payroll_uk/problem.rb +275 -275
  491. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +262 -262
  492. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +242 -242
  493. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +242 -242
  494. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +244 -244
  495. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +383 -383
  496. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +242 -242
  497. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +244 -244
  498. data/lib/xero-ruby/models/payroll_uk/settings.rb +242 -242
  499. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +262 -262
  500. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +48 -48
  501. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +272 -272
  502. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +361 -361
  503. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +272 -272
  504. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +277 -277
  505. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +242 -242
  506. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +242 -242
  507. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +244 -244
  508. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +242 -242
  509. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +232 -232
  510. data/lib/xero-ruby/models/projects/amount.rb +232 -232
  511. data/lib/xero-ruby/models/projects/charge_type.rb +37 -37
  512. data/lib/xero-ruby/models/projects/currency_code.rb +198 -198
  513. data/lib/xero-ruby/models/projects/error.rb +232 -232
  514. data/lib/xero-ruby/models/projects/pagination.rb +252 -252
  515. data/lib/xero-ruby/models/projects/project.rb +437 -437
  516. data/lib/xero-ruby/models/projects/project_create_or_update.rb +257 -257
  517. data/lib/xero-ruby/models/projects/project_patch.rb +227 -227
  518. data/lib/xero-ruby/models/projects/project_status.rb +36 -36
  519. data/lib/xero-ruby/models/projects/project_user.rb +242 -242
  520. data/lib/xero-ruby/models/projects/project_users.rb +234 -234
  521. data/lib/xero-ruby/models/projects/projects.rb +234 -234
  522. data/lib/xero-ruby/models/projects/task.rb +399 -399
  523. data/lib/xero-ruby/models/projects/task_create_or_update.rb +267 -267
  524. data/lib/xero-ruby/models/projects/tasks.rb +234 -234
  525. data/lib/xero-ruby/models/projects/time_entries.rb +234 -234
  526. data/lib/xero-ruby/models/projects/time_entry.rb +339 -339
  527. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +282 -282
  528. data/lib/xero-ruby/string_serialization.rb +52 -52
  529. data/lib/xero-ruby/version.rb +15 -15
  530. data/lib/xero-ruby/where.rb +67 -67
  531. data/lib/xero-ruby.rb +556 -554
  532. data/spec/accounting/api/accounting_api_spec.rb +2873 -2873
  533. data/spec/accounting/models/account_spec.rb +171 -171
  534. data/spec/accounting/models/account_type_spec.rb +35 -35
  535. data/spec/accounting/models/accounts_payable_spec.rb +47 -47
  536. data/spec/accounting/models/accounts_receivable_spec.rb +47 -47
  537. data/spec/accounting/models/accounts_spec.rb +41 -41
  538. data/spec/accounting/models/address_spec.rb +99 -99
  539. data/spec/accounting/models/allocation_spec.rb +53 -53
  540. data/spec/accounting/models/allocations_spec.rb +41 -41
  541. data/spec/accounting/models/attachment_spec.rb +71 -71
  542. data/spec/accounting/models/attachments_spec.rb +41 -41
  543. data/spec/accounting/models/balances_spec.rb +47 -47
  544. data/spec/accounting/models/bank_transaction_spec.rb +175 -175
  545. data/spec/accounting/models/bank_transactions_spec.rb +41 -41
  546. data/spec/accounting/models/bank_transfer_spec.rb +101 -101
  547. data/spec/accounting/models/bank_transfers_spec.rb +41 -41
  548. data/spec/accounting/models/batch_payment_details_spec.rb +65 -65
  549. data/spec/accounting/models/batch_payment_spec.rb +139 -139
  550. data/spec/accounting/models/batch_payments_spec.rb +41 -41
  551. data/spec/accounting/models/bill_spec.rb +47 -47
  552. data/spec/accounting/models/branding_theme_spec.rb +75 -75
  553. data/spec/accounting/models/branding_themes_spec.rb +41 -41
  554. data/spec/accounting/models/cis_org_setting_spec.rb +53 -53
  555. data/spec/accounting/models/cis_setting_spec.rb +47 -47
  556. data/spec/accounting/models/cis_settings_spec.rb +41 -41
  557. data/spec/accounting/models/contact_group_spec.rb +63 -63
  558. data/spec/accounting/models/contact_groups_spec.rb +41 -41
  559. data/spec/accounting/models/contact_person_spec.rb +59 -59
  560. data/spec/accounting/models/contact_spec.rb +273 -273
  561. data/spec/accounting/models/contacts_spec.rb +41 -41
  562. data/spec/accounting/models/country_code_spec.rb +35 -35
  563. data/spec/accounting/models/credit_note_spec.rb +199 -199
  564. data/spec/accounting/models/credit_notes_spec.rb +41 -41
  565. data/spec/accounting/models/currencies_spec.rb +41 -41
  566. data/spec/accounting/models/currency_code_spec.rb +35 -35
  567. data/spec/accounting/models/currency_spec.rb +47 -47
  568. data/spec/accounting/models/element_spec.rb +83 -83
  569. data/spec/accounting/models/employee_spec.rb +87 -87
  570. data/spec/accounting/models/employees_spec.rb +41 -41
  571. data/spec/accounting/models/error_spec.rb +59 -59
  572. data/spec/accounting/models/expense_claim_spec.rb +111 -111
  573. data/spec/accounting/models/expense_claims_spec.rb +41 -41
  574. data/spec/accounting/models/external_link_spec.rb +57 -57
  575. data/spec/accounting/models/history_record_spec.rb +59 -59
  576. data/spec/accounting/models/history_records_spec.rb +41 -41
  577. data/spec/accounting/models/invoice_reminder_spec.rb +41 -41
  578. data/spec/accounting/models/invoice_reminders_spec.rb +41 -41
  579. data/spec/accounting/models/invoice_spec.rb +271 -271
  580. data/spec/accounting/models/invoices_spec.rb +41 -41
  581. data/spec/accounting/models/item_spec.rb +131 -131
  582. data/spec/accounting/models/items_spec.rb +41 -41
  583. data/spec/accounting/models/journal_line_spec.rb +107 -107
  584. data/spec/accounting/models/journal_spec.rb +87 -87
  585. data/spec/accounting/models/journals_spec.rb +41 -41
  586. data/spec/accounting/models/line_amount_types_spec.rb +35 -35
  587. data/spec/accounting/models/line_item_spec.rb +113 -113
  588. data/spec/accounting/models/line_item_tracking_spec.rb +59 -59
  589. data/spec/accounting/models/linked_transaction_spec.rb +113 -113
  590. data/spec/accounting/models/linked_transactions_spec.rb +41 -41
  591. data/spec/accounting/models/manual_journal_line_spec.rb +77 -77
  592. data/spec/accounting/models/manual_journal_spec.rb +123 -123
  593. data/spec/accounting/models/manual_journals_spec.rb +41 -41
  594. data/spec/accounting/models/online_invoice_spec.rb +41 -41
  595. data/spec/accounting/models/online_invoices_spec.rb +41 -41
  596. data/spec/accounting/models/organisation_spec.rb +255 -255
  597. data/spec/accounting/models/organisations_spec.rb +41 -41
  598. data/spec/accounting/models/overpayment_spec.rb +157 -157
  599. data/spec/accounting/models/overpayments_spec.rb +41 -41
  600. data/spec/accounting/models/payment_delete_spec.rb +41 -41
  601. data/spec/accounting/models/payment_service_spec.rb +71 -71
  602. data/spec/accounting/models/payment_services_spec.rb +41 -41
  603. data/spec/accounting/models/payment_spec.rb +187 -187
  604. data/spec/accounting/models/payment_term_spec.rb +47 -47
  605. data/spec/accounting/models/payment_term_type_spec.rb +35 -35
  606. data/spec/accounting/models/payments_spec.rb +41 -41
  607. data/spec/accounting/models/phone_spec.rb +63 -63
  608. data/spec/accounting/models/prepayment_spec.rb +157 -157
  609. data/spec/accounting/models/prepayments_spec.rb +41 -41
  610. data/spec/accounting/models/purchase_order_spec.rb +207 -207
  611. data/spec/accounting/models/purchase_orders_spec.rb +41 -41
  612. data/spec/accounting/models/purchase_spec.rb +59 -59
  613. data/spec/accounting/models/quote_line_amount_types_spec.rb +35 -35
  614. data/spec/accounting/models/quote_spec.rb +167 -167
  615. data/spec/accounting/models/quote_status_codes_spec.rb +35 -35
  616. data/spec/accounting/models/quotes_spec.rb +41 -41
  617. data/spec/accounting/models/receipt_spec.rb +147 -147
  618. data/spec/accounting/models/receipts_spec.rb +41 -41
  619. data/spec/accounting/models/repeating_invoice_spec.rb +139 -139
  620. data/spec/accounting/models/repeating_invoices_spec.rb +41 -41
  621. data/spec/accounting/models/report_attribute_spec.rb +47 -47
  622. data/spec/accounting/models/report_cell_spec.rb +47 -47
  623. data/spec/accounting/models/report_fields_spec.rb +53 -53
  624. data/spec/accounting/models/report_row_spec.rb +53 -53
  625. data/spec/accounting/models/report_rows_spec.rb +59 -59
  626. data/spec/accounting/models/report_spec.rb +81 -81
  627. data/spec/accounting/models/report_with_row_spec.rb +89 -89
  628. data/spec/accounting/models/report_with_rows_spec.rb +41 -41
  629. data/spec/accounting/models/reports_spec.rb +41 -41
  630. data/spec/accounting/models/request_empty_spec.rb +41 -41
  631. data/spec/accounting/models/row_type_spec.rb +35 -35
  632. data/spec/accounting/models/sales_tracking_category_spec.rb +47 -47
  633. data/spec/accounting/models/schedule_spec.rb +85 -85
  634. data/spec/accounting/models/tax_component_spec.rb +59 -59
  635. data/spec/accounting/models/tax_rate_spec.rb +115 -115
  636. data/spec/accounting/models/tax_rates_spec.rb +41 -41
  637. data/spec/accounting/models/tax_type_spec.rb +35 -35
  638. data/spec/accounting/models/ten_nintey_nine_contact_spec.rb +167 -167
  639. data/spec/accounting/models/time_zone_spec.rb +35 -35
  640. data/spec/accounting/models/tracking_categories_spec.rb +41 -41
  641. data/spec/accounting/models/tracking_category_spec.rb +75 -75
  642. data/spec/accounting/models/tracking_option_spec.rb +63 -63
  643. data/spec/accounting/models/tracking_options_spec.rb +41 -41
  644. data/spec/accounting/models/user_spec.rb +81 -81
  645. data/spec/accounting/models/users_spec.rb +41 -41
  646. data/spec/accounting/models/validation_error_spec.rb +41 -41
  647. data/spec/api_client_spec.rb +556 -556
  648. data/spec/api_error_spec.rb +45 -45
  649. data/spec/app_store/api/app_store_api_spec.rb +45 -45
  650. data/spec/app_store/models/plan_spec.rb +62 -62
  651. data/spec/app_store/models/price_spec.rb +52 -52
  652. data/spec/app_store/models/problem_details_spec.rb +70 -70
  653. data/spec/app_store/models/product_spec.rb +56 -56
  654. data/spec/app_store/models/subscription_item_spec.rb +70 -70
  655. data/spec/app_store/models/subscription_spec.rb +82 -82
  656. data/spec/assets/api/asset_api_spec.rb +116 -116
  657. data/spec/assets/models/asset_spec.rb +125 -125
  658. data/spec/assets/models/asset_status_query_param_spec.rb +35 -35
  659. data/spec/assets/models/asset_status_spec.rb +35 -35
  660. data/spec/assets/models/asset_type_spec.rb +77 -77
  661. data/spec/assets/models/assets_spec.rb +47 -47
  662. data/spec/assets/models/book_depreciation_detail_spec.rb +77 -77
  663. data/spec/assets/models/book_depreciation_setting_spec.rb +95 -95
  664. data/spec/assets/models/error_spec.rb +65 -65
  665. data/spec/assets/models/field_validation_errors_element_spec.rb +71 -71
  666. data/spec/assets/models/pagination_spec.rb +59 -59
  667. data/spec/assets/models/resource_validation_errors_element_spec.rb +65 -65
  668. data/spec/assets/models/setting_spec.rb +83 -83
  669. data/spec/configuration_spec.rb +37 -37
  670. data/spec/files/api/files_api_spec.rb +249 -249
  671. data/spec/files/models/association_spec.rb +59 -59
  672. data/spec/files/models/file_object_spec.rb +83 -83
  673. data/spec/files/models/files_spec.rb +59 -59
  674. data/spec/files/models/folder_spec.rb +65 -65
  675. data/spec/files/models/folders_spec.rb +41 -41
  676. data/spec/files/models/inline_object_spec.rb +59 -59
  677. data/spec/files/models/object_group_spec.rb +35 -35
  678. data/spec/files/models/object_type_spec.rb +35 -35
  679. data/spec/files/models/user_spec.rb +81 -81
  680. data/spec/finance/api/finance_api_spec.rb +156 -156
  681. data/spec/finance/models/account_usage_response_spec.rb +58 -58
  682. data/spec/finance/models/account_usage_spec.rb +112 -112
  683. data/spec/finance/models/balance_sheet_account_detail_spec.rb +64 -64
  684. data/spec/finance/models/balance_sheet_account_group_spec.rb +46 -46
  685. data/spec/finance/models/balance_sheet_account_type_spec.rb +52 -52
  686. data/spec/finance/models/balance_sheet_response_spec.rb +58 -58
  687. data/spec/finance/models/bank_statement_response_spec.rb +46 -46
  688. data/spec/finance/models/cash_account_response_spec.rb +64 -64
  689. data/spec/finance/models/cash_balance_spec.rb +52 -52
  690. data/spec/finance/models/cash_validation_response_spec.rb +64 -64
  691. data/spec/finance/models/cashflow_account_spec.rb +76 -76
  692. data/spec/finance/models/cashflow_activity_spec.rb +52 -52
  693. data/spec/finance/models/cashflow_response_spec.rb +58 -58
  694. data/spec/finance/models/cashflow_type_spec.rb +52 -52
  695. data/spec/finance/models/current_statement_response_spec.rb +70 -70
  696. data/spec/finance/models/data_source_response_spec.rb +124 -124
  697. data/spec/finance/models/history_record_response_spec.rb +64 -64
  698. data/spec/finance/models/lock_history_model_spec.rb +52 -52
  699. data/spec/finance/models/lock_history_response_spec.rb +52 -52
  700. data/spec/finance/models/pnl_account_class_spec.rb +46 -46
  701. data/spec/finance/models/pnl_account_spec.rb +70 -70
  702. data/spec/finance/models/pnl_account_type_spec.rb +52 -52
  703. data/spec/finance/models/practice_response_spec.rb +64 -64
  704. data/spec/finance/models/problem_spec.rb +58 -58
  705. data/spec/finance/models/problem_type_spec.rb +34 -34
  706. data/spec/finance/models/profit_and_loss_response_spec.rb +64 -64
  707. data/spec/finance/models/report_history_model_spec.rb +52 -52
  708. data/spec/finance/models/report_history_response_spec.rb +52 -52
  709. data/spec/finance/models/statement_balance_response_spec.rb +46 -46
  710. data/spec/finance/models/statement_lines_response_spec.rb +136 -136
  711. data/spec/finance/models/trial_balance_account_spec.rb +94 -94
  712. data/spec/finance/models/trial_balance_entry_spec.rb +46 -46
  713. data/spec/finance/models/trial_balance_movement_spec.rb +58 -58
  714. data/spec/finance/models/trial_balance_response_spec.rb +52 -52
  715. data/spec/finance/models/user_activities_response_spec.rb +52 -52
  716. data/spec/finance/models/user_response_spec.rb +106 -106
  717. data/spec/helper_methods_spec.rb +110 -110
  718. data/spec/payroll_au/api/payroll_au_api_spec.rb +415 -415
  719. data/spec/payroll_au/models/account_spec.rb +59 -59
  720. data/spec/payroll_au/models/account_type_spec.rb +35 -35
  721. data/spec/payroll_au/models/allowance_type_spec.rb +35 -35
  722. data/spec/payroll_au/models/api_exception_spec.rb +53 -53
  723. data/spec/payroll_au/models/bank_account_spec.rb +71 -71
  724. data/spec/payroll_au/models/calendar_type_spec.rb +35 -35
  725. data/spec/payroll_au/models/deduction_line_spec.rb +65 -65
  726. data/spec/payroll_au/models/deduction_type_calculation_type_spec.rb +35 -35
  727. data/spec/payroll_au/models/deduction_type_spec.rb +93 -93
  728. data/spec/payroll_au/models/earnings_line_spec.rb +89 -89
  729. data/spec/payroll_au/models/earnings_rate_calculation_type_spec.rb +35 -35
  730. data/spec/payroll_au/models/earnings_rate_spec.rb +137 -137
  731. data/spec/payroll_au/models/earnings_type_spec.rb +35 -35
  732. data/spec/payroll_au/models/employee_spec.rb +225 -225
  733. data/spec/payroll_au/models/employee_status_spec.rb +35 -35
  734. data/spec/payroll_au/models/employees_spec.rb +41 -41
  735. data/spec/payroll_au/models/employment_basis_spec.rb +35 -35
  736. data/spec/payroll_au/models/employment_termination_payment_type_spec.rb +35 -35
  737. data/spec/payroll_au/models/entitlement_final_pay_payout_type_spec.rb +35 -35
  738. data/spec/payroll_au/models/home_address_spec.rb +71 -71
  739. data/spec/payroll_au/models/leave_accrual_line_spec.rb +53 -53
  740. data/spec/payroll_au/models/leave_application_spec.rb +95 -95
  741. data/spec/payroll_au/models/leave_applications_spec.rb +41 -41
  742. data/spec/payroll_au/models/leave_balance_spec.rb +59 -59
  743. data/spec/payroll_au/models/leave_earnings_line_spec.rb +53 -53
  744. data/spec/payroll_au/models/leave_line_calculation_type_spec.rb +35 -35
  745. data/spec/payroll_au/models/leave_line_spec.rb +83 -83
  746. data/spec/payroll_au/models/leave_lines_spec.rb +41 -41
  747. data/spec/payroll_au/models/leave_period_spec.rb +59 -59
  748. data/spec/payroll_au/models/leave_period_status_spec.rb +35 -35
  749. data/spec/payroll_au/models/leave_type_contribution_type_spec.rb +35 -35
  750. data/spec/payroll_au/models/leave_type_spec.rb +89 -89
  751. data/spec/payroll_au/models/manual_tax_type_spec.rb +35 -35
  752. data/spec/payroll_au/models/opening_balances_spec.rb +77 -77
  753. data/spec/payroll_au/models/pay_item_spec.rb +59 -59
  754. data/spec/payroll_au/models/pay_items_spec.rb +41 -41
  755. data/spec/payroll_au/models/pay_run_spec.rb +131 -131
  756. data/spec/payroll_au/models/pay_run_status_spec.rb +35 -35
  757. data/spec/payroll_au/models/pay_runs_spec.rb +41 -41
  758. data/spec/payroll_au/models/pay_template_spec.rb +65 -65
  759. data/spec/payroll_au/models/payment_frequency_type_spec.rb +35 -35
  760. data/spec/payroll_au/models/payroll_calendar_spec.rb +77 -77
  761. data/spec/payroll_au/models/payroll_calendars_spec.rb +41 -41
  762. data/spec/payroll_au/models/payslip_lines_spec.rb +83 -83
  763. data/spec/payroll_au/models/payslip_object_spec.rb +41 -41
  764. data/spec/payroll_au/models/payslip_spec.rb +149 -149
  765. data/spec/payroll_au/models/payslip_summary_spec.rb +107 -107
  766. data/spec/payroll_au/models/payslips_spec.rb +41 -41
  767. data/spec/payroll_au/models/rate_type_spec.rb +35 -35
  768. data/spec/payroll_au/models/reimbursement_line_spec.rb +59 -59
  769. data/spec/payroll_au/models/reimbursement_lines_spec.rb +41 -41
  770. data/spec/payroll_au/models/reimbursement_type_spec.rb +65 -65
  771. data/spec/payroll_au/models/residency_status_spec.rb +35 -35
  772. data/spec/payroll_au/models/settings_object_spec.rb +41 -41
  773. data/spec/payroll_au/models/settings_spec.rb +53 -53
  774. data/spec/payroll_au/models/settings_tracking_categories_employee_groups_spec.rb +47 -47
  775. data/spec/payroll_au/models/settings_tracking_categories_spec.rb +47 -47
  776. data/spec/payroll_au/models/settings_tracking_categories_timesheet_categories_spec.rb +47 -47
  777. data/spec/payroll_au/models/state_spec.rb +35 -35
  778. data/spec/payroll_au/models/super_fund_product_spec.rb +59 -59
  779. data/spec/payroll_au/models/super_fund_products_spec.rb +41 -41
  780. data/spec/payroll_au/models/super_fund_spec.rb +113 -113
  781. data/spec/payroll_au/models/super_fund_type_spec.rb +35 -35
  782. data/spec/payroll_au/models/super_funds_spec.rb +41 -41
  783. data/spec/payroll_au/models/super_line_spec.rb +83 -83
  784. data/spec/payroll_au/models/super_membership_spec.rb +53 -53
  785. data/spec/payroll_au/models/superannuation_calculation_type_spec.rb +35 -35
  786. data/spec/payroll_au/models/superannuation_contribution_type_spec.rb +35 -35
  787. data/spec/payroll_au/models/superannuation_line_spec.rb +89 -89
  788. data/spec/payroll_au/models/tax_declaration_spec.rb +131 -131
  789. data/spec/payroll_au/models/tax_line_spec.rb +71 -71
  790. data/spec/payroll_au/models/tfn_exemption_type_spec.rb +35 -35
  791. data/spec/payroll_au/models/timesheet_line_spec.rb +59 -59
  792. data/spec/payroll_au/models/timesheet_object_spec.rb +41 -41
  793. data/spec/payroll_au/models/timesheet_spec.rb +89 -89
  794. data/spec/payroll_au/models/timesheet_status_spec.rb +35 -35
  795. data/spec/payroll_au/models/timesheets_spec.rb +41 -41
  796. data/spec/payroll_au/models/validation_error_spec.rb +41 -41
  797. data/spec/payroll_nz/api/payroll_nz_api_spec.rb +886 -886
  798. data/spec/payroll_nz/models/account_spec.rb +63 -63
  799. data/spec/payroll_nz/models/accounts_spec.rb +41 -41
  800. data/spec/payroll_nz/models/address_spec.rb +71 -71
  801. data/spec/payroll_nz/models/bank_account_spec.rb +87 -87
  802. data/spec/payroll_nz/models/benefit_spec.rb +103 -103
  803. data/spec/payroll_nz/models/deduction_line_spec.rb +65 -65
  804. data/spec/payroll_nz/models/deduction_object_spec.rb +53 -53
  805. data/spec/payroll_nz/models/deduction_spec.rb +75 -75
  806. data/spec/payroll_nz/models/deductions_spec.rb +53 -53
  807. data/spec/payroll_nz/models/earnings_line_spec.rb +95 -95
  808. data/spec/payroll_nz/models/earnings_order_object_spec.rb +53 -53
  809. data/spec/payroll_nz/models/earnings_order_spec.rb +65 -65
  810. data/spec/payroll_nz/models/earnings_orders_spec.rb +53 -53
  811. data/spec/payroll_nz/models/earnings_rate_object_spec.rb +53 -53
  812. data/spec/payroll_nz/models/earnings_rate_spec.rb +103 -103
  813. data/spec/payroll_nz/models/earnings_rates_spec.rb +53 -53
  814. data/spec/payroll_nz/models/earnings_template_object_spec.rb +53 -53
  815. data/spec/payroll_nz/models/earnings_template_spec.rb +71 -71
  816. data/spec/payroll_nz/models/employee_earnings_templates_spec.rb +53 -53
  817. data/spec/payroll_nz/models/employee_leave_balance_spec.rb +59 -59
  818. data/spec/payroll_nz/models/employee_leave_balances_spec.rb +53 -53
  819. data/spec/payroll_nz/models/employee_leave_object_spec.rb +53 -53
  820. data/spec/payroll_nz/models/employee_leave_setup_object_spec.rb +53 -53
  821. data/spec/payroll_nz/models/employee_leave_setup_spec.rb +77 -77
  822. data/spec/payroll_nz/models/employee_leave_spec.rb +77 -77
  823. data/spec/payroll_nz/models/employee_leave_type_object_spec.rb +53 -53
  824. data/spec/payroll_nz/models/employee_leave_type_spec.rb +99 -99
  825. data/spec/payroll_nz/models/employee_leave_types_spec.rb +53 -53
  826. data/spec/payroll_nz/models/employee_leaves_spec.rb +53 -53
  827. data/spec/payroll_nz/models/employee_object_spec.rb +53 -53
  828. data/spec/payroll_nz/models/employee_opening_balance_spec.rb +59 -59
  829. data/spec/payroll_nz/models/employee_opening_balances_object_spec.rb +53 -53
  830. data/spec/payroll_nz/models/employee_pay_template_object_spec.rb +53 -53
  831. data/spec/payroll_nz/models/employee_pay_template_spec.rb +47 -47
  832. data/spec/payroll_nz/models/employee_pay_templates_spec.rb +53 -53
  833. data/spec/payroll_nz/models/employee_spec.rb +123 -123
  834. data/spec/payroll_nz/models/employee_statutory_leave_balance_object_spec.rb +53 -53
  835. data/spec/payroll_nz/models/employee_statutory_leave_balance_spec.rb +61 -61
  836. data/spec/payroll_nz/models/employee_statutory_leave_summary_spec.rb +85 -85
  837. data/spec/payroll_nz/models/employee_statutory_leaves_summaries_spec.rb +53 -53
  838. data/spec/payroll_nz/models/employee_statutory_sick_leave_object_spec.rb +53 -53
  839. data/spec/payroll_nz/models/employee_statutory_sick_leave_spec.rb +135 -135
  840. data/spec/payroll_nz/models/employee_statutory_sick_leaves_spec.rb +53 -53
  841. data/spec/payroll_nz/models/employee_tax_object_spec.rb +53 -53
  842. data/spec/payroll_nz/models/employee_tax_spec.rb +135 -135
  843. data/spec/payroll_nz/models/employees_spec.rb +53 -53
  844. data/spec/payroll_nz/models/employment_object_spec.rb +53 -53
  845. data/spec/payroll_nz/models/employment_spec.rb +53 -53
  846. data/spec/payroll_nz/models/gross_earnings_history_spec.rb +47 -47
  847. data/spec/payroll_nz/models/invalid_field_spec.rb +47 -47
  848. data/spec/payroll_nz/models/leave_accrual_line_spec.rb +47 -47
  849. data/spec/payroll_nz/models/leave_earnings_line_spec.rb +95 -95
  850. data/spec/payroll_nz/models/leave_period_spec.rb +63 -63
  851. data/spec/payroll_nz/models/leave_periods_spec.rb +53 -53
  852. data/spec/payroll_nz/models/leave_type_object_spec.rb +53 -53
  853. data/spec/payroll_nz/models/leave_type_spec.rb +71 -71
  854. data/spec/payroll_nz/models/leave_types_spec.rb +53 -53
  855. data/spec/payroll_nz/models/pagination_spec.rb +59 -59
  856. data/spec/payroll_nz/models/pay_run_calendar_object_spec.rb +53 -53
  857. data/spec/payroll_nz/models/pay_run_calendar_spec.rb +81 -81
  858. data/spec/payroll_nz/models/pay_run_calendars_spec.rb +53 -53
  859. data/spec/payroll_nz/models/pay_run_object_spec.rb +53 -53
  860. data/spec/payroll_nz/models/pay_run_spec.rb +119 -119
  861. data/spec/payroll_nz/models/pay_runs_spec.rb +53 -53
  862. data/spec/payroll_nz/models/pay_slip_object_spec.rb +53 -53
  863. data/spec/payroll_nz/models/pay_slip_spec.rb +219 -219
  864. data/spec/payroll_nz/models/pay_slips_spec.rb +53 -53
  865. data/spec/payroll_nz/models/payment_line_spec.rb +65 -65
  866. data/spec/payroll_nz/models/payment_method_object_spec.rb +53 -53
  867. data/spec/payroll_nz/models/payment_method_spec.rb +51 -51
  868. data/spec/payroll_nz/models/problem_spec.rb +71 -71
  869. data/spec/payroll_nz/models/reimbursement_line_spec.rb +65 -65
  870. data/spec/payroll_nz/models/reimbursement_object_spec.rb +53 -53
  871. data/spec/payroll_nz/models/reimbursement_spec.rb +101 -101
  872. data/spec/payroll_nz/models/reimbursements_spec.rb +53 -53
  873. data/spec/payroll_nz/models/salary_and_wage_object_spec.rb +53 -53
  874. data/spec/payroll_nz/models/salary_and_wage_spec.rb +103 -103
  875. data/spec/payroll_nz/models/salary_and_wages_spec.rb +53 -53
  876. data/spec/payroll_nz/models/settings_spec.rb +53 -53
  877. data/spec/payroll_nz/models/statutory_deduction_category_spec.rb +35 -35
  878. data/spec/payroll_nz/models/statutory_deduction_line_spec.rb +59 -59
  879. data/spec/payroll_nz/models/statutory_deduction_object_spec.rb +53 -53
  880. data/spec/payroll_nz/models/statutory_deduction_spec.rb +65 -65
  881. data/spec/payroll_nz/models/statutory_deductions_spec.rb +53 -53
  882. data/spec/payroll_nz/models/superannuation_line_spec.rb +71 -71
  883. data/spec/payroll_nz/models/superannuation_object_spec.rb +53 -53
  884. data/spec/payroll_nz/models/superannuations_spec.rb +53 -53
  885. data/spec/payroll_nz/models/tax_code_spec.rb +35 -35
  886. data/spec/payroll_nz/models/tax_line_spec.rb +65 -65
  887. data/spec/payroll_nz/models/tax_settings_spec.rb +75 -75
  888. data/spec/payroll_nz/models/timesheet_earnings_line_spec.rb +95 -95
  889. data/spec/payroll_nz/models/timesheet_line_object_spec.rb +53 -53
  890. data/spec/payroll_nz/models/timesheet_line_spec.rb +65 -65
  891. data/spec/payroll_nz/models/timesheet_object_spec.rb +53 -53
  892. data/spec/payroll_nz/models/timesheet_spec.rb +93 -93
  893. data/spec/payroll_nz/models/timesheets_spec.rb +53 -53
  894. data/spec/payroll_nz/models/tracking_categories_spec.rb +53 -53
  895. data/spec/payroll_nz/models/tracking_category_spec.rb +47 -47
  896. data/spec/payroll_uk/api/payroll_uk_api_spec.rb +912 -912
  897. data/spec/payroll_uk/models/account_spec.rb +63 -63
  898. data/spec/payroll_uk/models/accounts_spec.rb +41 -41
  899. data/spec/payroll_uk/models/address_spec.rb +65 -65
  900. data/spec/payroll_uk/models/bank_account_spec.rb +53 -53
  901. data/spec/payroll_uk/models/benefit_line_spec.rb +65 -65
  902. data/spec/payroll_uk/models/benefit_object_spec.rb +53 -53
  903. data/spec/payroll_uk/models/benefit_spec.rb +127 -127
  904. data/spec/payroll_uk/models/benefits_spec.rb +53 -53
  905. data/spec/payroll_uk/models/court_order_line_spec.rb +47 -47
  906. data/spec/payroll_uk/models/deduction_line_spec.rb +59 -59
  907. data/spec/payroll_uk/models/deduction_object_spec.rb +53 -53
  908. data/spec/payroll_uk/models/deduction_spec.rb +139 -139
  909. data/spec/payroll_uk/models/deductions_spec.rb +53 -53
  910. data/spec/payroll_uk/models/earnings_line_spec.rb +89 -89
  911. data/spec/payroll_uk/models/earnings_order_object_spec.rb +53 -53
  912. data/spec/payroll_uk/models/earnings_order_spec.rb +65 -65
  913. data/spec/payroll_uk/models/earnings_orders_spec.rb +53 -53
  914. data/spec/payroll_uk/models/earnings_rate_object_spec.rb +53 -53
  915. data/spec/payroll_uk/models/earnings_rate_spec.rb +103 -103
  916. data/spec/payroll_uk/models/earnings_rates_spec.rb +53 -53
  917. data/spec/payroll_uk/models/earnings_template_object_spec.rb +53 -53
  918. data/spec/payroll_uk/models/earnings_template_spec.rb +71 -71
  919. data/spec/payroll_uk/models/employee_leave_balance_spec.rb +59 -59
  920. data/spec/payroll_uk/models/employee_leave_balances_spec.rb +53 -53
  921. data/spec/payroll_uk/models/employee_leave_object_spec.rb +53 -53
  922. data/spec/payroll_uk/models/employee_leave_spec.rb +77 -77
  923. data/spec/payroll_uk/models/employee_leave_type_object_spec.rb +53 -53
  924. data/spec/payroll_uk/models/employee_leave_type_spec.rb +75 -75
  925. data/spec/payroll_uk/models/employee_leave_types_spec.rb +53 -53
  926. data/spec/payroll_uk/models/employee_leaves_spec.rb +53 -53
  927. data/spec/payroll_uk/models/employee_object_spec.rb +53 -53
  928. data/spec/payroll_uk/models/employee_opening_balances_object_spec.rb +53 -53
  929. data/spec/payroll_uk/models/employee_opening_balances_spec.rb +71 -71
  930. data/spec/payroll_uk/models/employee_pay_template_object_spec.rb +53 -53
  931. data/spec/payroll_uk/models/employee_pay_template_spec.rb +47 -47
  932. data/spec/payroll_uk/models/employee_pay_templates_spec.rb +53 -53
  933. data/spec/payroll_uk/models/employee_spec.rb +129 -129
  934. data/spec/payroll_uk/models/employee_statutory_leave_balance_object_spec.rb +53 -53
  935. data/spec/payroll_uk/models/employee_statutory_leave_balance_spec.rb +61 -61
  936. data/spec/payroll_uk/models/employee_statutory_leave_summary_spec.rb +85 -85
  937. data/spec/payroll_uk/models/employee_statutory_leaves_summaries_spec.rb +53 -53
  938. data/spec/payroll_uk/models/employee_statutory_sick_leave_object_spec.rb +53 -53
  939. data/spec/payroll_uk/models/employee_statutory_sick_leave_spec.rb +135 -135
  940. data/spec/payroll_uk/models/employee_statutory_sick_leaves_spec.rb +53 -53
  941. data/spec/payroll_uk/models/employee_tax_object_spec.rb +53 -53
  942. data/spec/payroll_uk/models/employee_tax_spec.rb +101 -101
  943. data/spec/payroll_uk/models/employees_spec.rb +53 -53
  944. data/spec/payroll_uk/models/employment_object_spec.rb +53 -53
  945. data/spec/payroll_uk/models/employment_spec.rb +63 -63
  946. data/spec/payroll_uk/models/invalid_field_spec.rb +47 -47
  947. data/spec/payroll_uk/models/leave_accrual_line_spec.rb +47 -47
  948. data/spec/payroll_uk/models/leave_earnings_line_spec.rb +71 -71
  949. data/spec/payroll_uk/models/leave_period_spec.rb +63 -63
  950. data/spec/payroll_uk/models/leave_periods_spec.rb +53 -53
  951. data/spec/payroll_uk/models/leave_type_object_spec.rb +53 -53
  952. data/spec/payroll_uk/models/leave_type_spec.rb +83 -83
  953. data/spec/payroll_uk/models/leave_types_spec.rb +53 -53
  954. data/spec/payroll_uk/models/pagination_spec.rb +59 -59
  955. data/spec/payroll_uk/models/pay_run_calendar_object_spec.rb +53 -53
  956. data/spec/payroll_uk/models/pay_run_calendar_spec.rb +81 -81
  957. data/spec/payroll_uk/models/pay_run_calendars_spec.rb +53 -53
  958. data/spec/payroll_uk/models/pay_run_object_spec.rb +53 -53
  959. data/spec/payroll_uk/models/pay_run_spec.rb +119 -119
  960. data/spec/payroll_uk/models/pay_runs_spec.rb +53 -53
  961. data/spec/payroll_uk/models/payment_line_spec.rb +65 -65
  962. data/spec/payroll_uk/models/payment_method_object_spec.rb +53 -53
  963. data/spec/payroll_uk/models/payment_method_spec.rb +51 -51
  964. data/spec/payroll_uk/models/payslip_object_spec.rb +53 -53
  965. data/spec/payroll_uk/models/payslip_spec.rb +201 -201
  966. data/spec/payroll_uk/models/payslips_spec.rb +53 -53
  967. data/spec/payroll_uk/models/problem_spec.rb +71 -71
  968. data/spec/payroll_uk/models/reimbursement_line_spec.rb +53 -53
  969. data/spec/payroll_uk/models/reimbursement_object_spec.rb +53 -53
  970. data/spec/payroll_uk/models/reimbursement_spec.rb +59 -59
  971. data/spec/payroll_uk/models/reimbursements_spec.rb +53 -53
  972. data/spec/payroll_uk/models/salary_and_wage_object_spec.rb +53 -53
  973. data/spec/payroll_uk/models/salary_and_wage_spec.rb +97 -97
  974. data/spec/payroll_uk/models/salary_and_wages_spec.rb +53 -53
  975. data/spec/payroll_uk/models/settings_spec.rb +53 -53
  976. data/spec/payroll_uk/models/statutory_deduction_category_spec.rb +35 -35
  977. data/spec/payroll_uk/models/statutory_deduction_spec.rb +65 -65
  978. data/spec/payroll_uk/models/tax_line_spec.rb +71 -71
  979. data/spec/payroll_uk/models/timesheet_earnings_line_spec.rb +71 -71
  980. data/spec/payroll_uk/models/timesheet_line_object_spec.rb +53 -53
  981. data/spec/payroll_uk/models/timesheet_line_spec.rb +65 -65
  982. data/spec/payroll_uk/models/timesheet_object_spec.rb +53 -53
  983. data/spec/payroll_uk/models/timesheet_spec.rb +93 -93
  984. data/spec/payroll_uk/models/timesheets_spec.rb +53 -53
  985. data/spec/payroll_uk/models/tracking_categories_spec.rb +53 -53
  986. data/spec/payroll_uk/models/tracking_category_spec.rb +47 -47
  987. data/spec/projects/api/project_api_spec.rb +229 -229
  988. data/spec/projects/models/amount_spec.rb +47 -47
  989. data/spec/projects/models/charge_type_spec.rb +35 -35
  990. data/spec/projects/models/currency_code_spec.rb +35 -35
  991. data/spec/projects/models/error_spec.rb +47 -47
  992. data/spec/projects/models/pagination_spec.rb +59 -59
  993. data/spec/projects/models/project_create_or_update_spec.rb +59 -59
  994. data/spec/projects/models/project_patch_spec.rb +41 -41
  995. data/spec/projects/models/project_spec.rb +167 -167
  996. data/spec/projects/models/project_status_spec.rb +35 -35
  997. data/spec/projects/models/project_user_spec.rb +53 -53
  998. data/spec/projects/models/project_users_spec.rb +47 -47
  999. data/spec/projects/models/projects_spec.rb +47 -47
  1000. data/spec/projects/models/task_create_or_update_spec.rb +59 -59
  1001. data/spec/projects/models/task_spec.rb +129 -129
  1002. data/spec/projects/models/tasks_spec.rb +47 -47
  1003. data/spec/projects/models/time_entries_spec.rb +47 -47
  1004. data/spec/projects/models/time_entry_create_or_update_spec.rb +65 -65
  1005. data/spec/projects/models/time_entry_spec.rb +93 -93
  1006. data/spec/spec_helper.rb +111 -111
  1007. data/spec/where_spec.rb +82 -82
  1008. metadata +393 -391
@@ -1,849 +1,849 @@
1
- =begin
2
- #Xero Accounting API
3
-
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
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
- require 'time'
13
- require 'date'
14
-
15
- module XeroRuby::Accounting
16
- require 'bigdecimal'
17
-
18
- class Contact
19
- # Xero identifier
20
- attr_accessor :contact_id
21
-
22
- # ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber.
23
- attr_accessor :merged_to_contact_id
24
-
25
- # This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero.
26
- attr_accessor :contact_number
27
-
28
- # A user defined account number. This can be updated via the API and the Xero UI (max length = 50)
29
- attr_accessor :account_number
30
-
31
- # Current status of a contact – see contact status types
32
- attr_accessor :contact_status
33
- ACTIVE ||= "ACTIVE".freeze
34
- ARCHIVED ||= "ARCHIVED".freeze
35
- GDPRREQUEST ||= "GDPRREQUEST".freeze
36
-
37
- # Full name of contact/organisation (max length = 255)
38
- attr_accessor :name
39
-
40
- # First name of contact person (max length = 255)
41
- attr_accessor :first_name
42
-
43
- # Last name of contact person (max length = 255)
44
- attr_accessor :last_name
45
-
46
- # Company registration number (max length = 50)
47
- attr_accessor :company_number
48
-
49
- # Email address of contact person (umlauts not supported) (max length = 255)
50
- attr_accessor :email_address
51
-
52
- # Skype user name of contact
53
- attr_accessor :skype_user_name
54
-
55
- # See contact persons
56
- attr_accessor :contact_persons
57
-
58
- # Bank account number of contact
59
- attr_accessor :bank_account_details
60
-
61
- # Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) or Tax ID Number (US and global) in the Xero UI depending on which regionalized version of Xero you are using (max length = 50)
62
- attr_accessor :tax_number
63
-
64
- # The tax type from TaxRates
65
- attr_accessor :accounts_receivable_tax_type
66
-
67
- # The tax type from TaxRates
68
- attr_accessor :accounts_payable_tax_type
69
-
70
- # Store certain address types for a contact – see address types
71
- attr_accessor :addresses
72
-
73
- # Store certain phone types for a contact – see phone types
74
- attr_accessor :phones
75
-
76
- # true or false – Boolean that describes if a contact that has any AP invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts payable invoice is generated against this contact.
77
- attr_accessor :is_supplier
78
-
79
- # true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact.
80
- attr_accessor :is_customer
81
-
82
- # The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.
83
- attr_accessor :sales_default_line_amount_type
84
- INCLUSIVE ||= "INCLUSIVE".freeze
85
- EXCLUSIVE ||= "EXCLUSIVE".freeze
86
- NONE ||= "NONE".freeze
87
-
88
- # The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.
89
- attr_accessor :purchases_default_line_amount_type
90
- INCLUSIVE ||= "INCLUSIVE".freeze
91
- EXCLUSIVE ||= "EXCLUSIVE".freeze
92
- NONE ||= "NONE".freeze
93
-
94
-
95
- attr_accessor :default_currency
96
-
97
- # Store XeroNetworkKey for contacts.
98
- attr_accessor :xero_network_key
99
-
100
- # The default sales account code for contacts
101
- attr_accessor :sales_default_account_code
102
-
103
- # The default purchases account code for contacts
104
- attr_accessor :purchases_default_account_code
105
-
106
- # The default sales tracking categories for contacts
107
- attr_accessor :sales_tracking_categories
108
-
109
- # The default purchases tracking categories for contacts
110
- attr_accessor :purchases_tracking_categories
111
-
112
- # The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories
113
- attr_accessor :tracking_category_name
114
-
115
- # The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories
116
- attr_accessor :tracking_category_option
117
-
118
-
119
- attr_accessor :payment_terms
120
-
121
- # UTC timestamp of last update to contact
122
- attr_accessor :updated_date_utc
123
-
124
- # Displays which contact groups a contact is included in
125
- attr_accessor :contact_groups
126
-
127
- # Website address for contact (read only)
128
- attr_accessor :website
129
-
130
-
131
- attr_accessor :branding_theme
132
-
133
-
134
- attr_accessor :batch_payments
135
-
136
- # The default discount rate for the contact (read only)
137
- attr_accessor :discount
138
-
139
-
140
- attr_accessor :balances
141
-
142
- # Displays array of attachments from the API
143
- attr_accessor :attachments
144
-
145
- # A boolean to indicate if a contact has an attachment
146
- attr_accessor :has_attachments
147
-
148
- # Displays validation errors returned from the API
149
- attr_accessor :validation_errors
150
-
151
- # A boolean to indicate if a contact has an validation errors
152
- attr_accessor :has_validation_errors
153
-
154
- # Status of object
155
- attr_accessor :status_attribute_string
156
-
157
- class EnumAttributeValidator
158
- attr_reader :datatype
159
- attr_reader :allowable_values
160
-
161
- def initialize(datatype, allowable_values)
162
- @allowable_values = allowable_values.map do |value|
163
- case datatype.to_s
164
- when /Integer/i
165
- value.to_i
166
- when /Float/i
167
- value.to_f
168
- else
169
- value
170
- end
171
- end
172
- end
173
-
174
- def valid?(value)
175
- !value || allowable_values.include?(value)
176
- end
177
- end
178
-
179
- # Attribute mapping from ruby-style variable name to JSON key.
180
- def self.attribute_map
181
- {
182
- :'contact_id' => :'ContactID',
183
- :'merged_to_contact_id' => :'MergedToContactID',
184
- :'contact_number' => :'ContactNumber',
185
- :'account_number' => :'AccountNumber',
186
- :'contact_status' => :'ContactStatus',
187
- :'name' => :'Name',
188
- :'first_name' => :'FirstName',
189
- :'last_name' => :'LastName',
190
- :'company_number' => :'CompanyNumber',
191
- :'email_address' => :'EmailAddress',
192
- :'skype_user_name' => :'SkypeUserName',
193
- :'contact_persons' => :'ContactPersons',
194
- :'bank_account_details' => :'BankAccountDetails',
195
- :'tax_number' => :'TaxNumber',
196
- :'accounts_receivable_tax_type' => :'AccountsReceivableTaxType',
197
- :'accounts_payable_tax_type' => :'AccountsPayableTaxType',
198
- :'addresses' => :'Addresses',
199
- :'phones' => :'Phones',
200
- :'is_supplier' => :'IsSupplier',
201
- :'is_customer' => :'IsCustomer',
202
- :'sales_default_line_amount_type' => :'SalesDefaultLineAmountType',
203
- :'purchases_default_line_amount_type' => :'PurchasesDefaultLineAmountType',
204
- :'default_currency' => :'DefaultCurrency',
205
- :'xero_network_key' => :'XeroNetworkKey',
206
- :'sales_default_account_code' => :'SalesDefaultAccountCode',
207
- :'purchases_default_account_code' => :'PurchasesDefaultAccountCode',
208
- :'sales_tracking_categories' => :'SalesTrackingCategories',
209
- :'purchases_tracking_categories' => :'PurchasesTrackingCategories',
210
- :'tracking_category_name' => :'TrackingCategoryName',
211
- :'tracking_category_option' => :'TrackingCategoryOption',
212
- :'payment_terms' => :'PaymentTerms',
213
- :'updated_date_utc' => :'UpdatedDateUTC',
214
- :'contact_groups' => :'ContactGroups',
215
- :'website' => :'Website',
216
- :'branding_theme' => :'BrandingTheme',
217
- :'batch_payments' => :'BatchPayments',
218
- :'discount' => :'Discount',
219
- :'balances' => :'Balances',
220
- :'attachments' => :'Attachments',
221
- :'has_attachments' => :'HasAttachments',
222
- :'validation_errors' => :'ValidationErrors',
223
- :'has_validation_errors' => :'HasValidationErrors',
224
- :'status_attribute_string' => :'StatusAttributeString'
225
- }
226
- end
227
-
228
- # Attribute type mapping.
229
- def self.openapi_types
230
- {
231
- :'contact_id' => :'String',
232
- :'merged_to_contact_id' => :'String',
233
- :'contact_number' => :'String',
234
- :'account_number' => :'String',
235
- :'contact_status' => :'String',
236
- :'name' => :'String',
237
- :'first_name' => :'String',
238
- :'last_name' => :'String',
239
- :'company_number' => :'String',
240
- :'email_address' => :'String',
241
- :'skype_user_name' => :'String',
242
- :'contact_persons' => :'Array<ContactPerson>',
243
- :'bank_account_details' => :'String',
244
- :'tax_number' => :'String',
245
- :'accounts_receivable_tax_type' => :'String',
246
- :'accounts_payable_tax_type' => :'String',
247
- :'addresses' => :'Array<Address>',
248
- :'phones' => :'Array<Phone>',
249
- :'is_supplier' => :'Boolean',
250
- :'is_customer' => :'Boolean',
251
- :'sales_default_line_amount_type' => :'String',
252
- :'purchases_default_line_amount_type' => :'String',
253
- :'default_currency' => :'CurrencyCode',
254
- :'xero_network_key' => :'String',
255
- :'sales_default_account_code' => :'String',
256
- :'purchases_default_account_code' => :'String',
257
- :'sales_tracking_categories' => :'Array<SalesTrackingCategory>',
258
- :'purchases_tracking_categories' => :'Array<SalesTrackingCategory>',
259
- :'tracking_category_name' => :'String',
260
- :'tracking_category_option' => :'String',
261
- :'payment_terms' => :'PaymentTerm',
262
- :'updated_date_utc' => :'DateTime',
263
- :'contact_groups' => :'Array<ContactGroup>',
264
- :'website' => :'String',
265
- :'branding_theme' => :'BrandingTheme',
266
- :'batch_payments' => :'BatchPaymentDetails',
267
- :'discount' => :'BigDecimal',
268
- :'balances' => :'Balances',
269
- :'attachments' => :'Array<Attachment>',
270
- :'has_attachments' => :'Boolean',
271
- :'validation_errors' => :'Array<ValidationError>',
272
- :'has_validation_errors' => :'Boolean',
273
- :'status_attribute_string' => :'String'
274
- }
275
- end
276
-
277
- # Initializes the object
278
- # @param [Hash] attributes Model attributes in the form of hash
279
- def initialize(attributes = {})
280
- if (!attributes.is_a?(Hash))
281
- fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Accounting::Contact` initialize method"
282
- end
283
-
284
- # check to see if the attribute exists and convert string to symbol for hash key
285
- attributes = attributes.each_with_object({}) { |(k, v), h|
286
- if (!self.class.attribute_map.key?(k.to_sym))
287
- fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Accounting::Contact`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
288
- end
289
- h[k.to_sym] = v
290
- }
291
-
292
- if attributes.key?(:'contact_id')
293
- self.contact_id = attributes[:'contact_id']
294
- end
295
-
296
- if attributes.key?(:'merged_to_contact_id')
297
- self.merged_to_contact_id = attributes[:'merged_to_contact_id']
298
- end
299
-
300
- if attributes.key?(:'contact_number')
301
- self.contact_number = attributes[:'contact_number']
302
- end
303
-
304
- if attributes.key?(:'account_number')
305
- self.account_number = attributes[:'account_number']
306
- end
307
-
308
- if attributes.key?(:'contact_status')
309
- self.contact_status = attributes[:'contact_status']
310
- end
311
-
312
- if attributes.key?(:'name')
313
- self.name = attributes[:'name']
314
- end
315
-
316
- if attributes.key?(:'first_name')
317
- self.first_name = attributes[:'first_name']
318
- end
319
-
320
- if attributes.key?(:'last_name')
321
- self.last_name = attributes[:'last_name']
322
- end
323
-
324
- if attributes.key?(:'company_number')
325
- self.company_number = attributes[:'company_number']
326
- end
327
-
328
- if attributes.key?(:'email_address')
329
- self.email_address = attributes[:'email_address']
330
- end
331
-
332
- if attributes.key?(:'skype_user_name')
333
- self.skype_user_name = attributes[:'skype_user_name']
334
- end
335
-
336
- if attributes.key?(:'contact_persons')
337
- if (value = attributes[:'contact_persons']).is_a?(Array)
338
- self.contact_persons = value
339
- end
340
- end
341
-
342
- if attributes.key?(:'bank_account_details')
343
- self.bank_account_details = attributes[:'bank_account_details']
344
- end
345
-
346
- if attributes.key?(:'tax_number')
347
- self.tax_number = attributes[:'tax_number']
348
- end
349
-
350
- if attributes.key?(:'accounts_receivable_tax_type')
351
- self.accounts_receivable_tax_type = attributes[:'accounts_receivable_tax_type']
352
- end
353
-
354
- if attributes.key?(:'accounts_payable_tax_type')
355
- self.accounts_payable_tax_type = attributes[:'accounts_payable_tax_type']
356
- end
357
-
358
- if attributes.key?(:'addresses')
359
- if (value = attributes[:'addresses']).is_a?(Array)
360
- self.addresses = value
361
- end
362
- end
363
-
364
- if attributes.key?(:'phones')
365
- if (value = attributes[:'phones']).is_a?(Array)
366
- self.phones = value
367
- end
368
- end
369
-
370
- if attributes.key?(:'is_supplier')
371
- self.is_supplier = attributes[:'is_supplier']
372
- end
373
-
374
- if attributes.key?(:'is_customer')
375
- self.is_customer = attributes[:'is_customer']
376
- end
377
-
378
- if attributes.key?(:'sales_default_line_amount_type')
379
- self.sales_default_line_amount_type = attributes[:'sales_default_line_amount_type']
380
- end
381
-
382
- if attributes.key?(:'purchases_default_line_amount_type')
383
- self.purchases_default_line_amount_type = attributes[:'purchases_default_line_amount_type']
384
- end
385
-
386
- if attributes.key?(:'default_currency')
387
- self.default_currency = attributes[:'default_currency']
388
- end
389
-
390
- if attributes.key?(:'xero_network_key')
391
- self.xero_network_key = attributes[:'xero_network_key']
392
- end
393
-
394
- if attributes.key?(:'sales_default_account_code')
395
- self.sales_default_account_code = attributes[:'sales_default_account_code']
396
- end
397
-
398
- if attributes.key?(:'purchases_default_account_code')
399
- self.purchases_default_account_code = attributes[:'purchases_default_account_code']
400
- end
401
-
402
- if attributes.key?(:'sales_tracking_categories')
403
- if (value = attributes[:'sales_tracking_categories']).is_a?(Array)
404
- self.sales_tracking_categories = value
405
- end
406
- end
407
-
408
- if attributes.key?(:'purchases_tracking_categories')
409
- if (value = attributes[:'purchases_tracking_categories']).is_a?(Array)
410
- self.purchases_tracking_categories = value
411
- end
412
- end
413
-
414
- if attributes.key?(:'tracking_category_name')
415
- self.tracking_category_name = attributes[:'tracking_category_name']
416
- end
417
-
418
- if attributes.key?(:'tracking_category_option')
419
- self.tracking_category_option = attributes[:'tracking_category_option']
420
- end
421
-
422
- if attributes.key?(:'payment_terms')
423
- self.payment_terms = attributes[:'payment_terms']
424
- end
425
-
426
- if attributes.key?(:'updated_date_utc')
427
- self.updated_date_utc = attributes[:'updated_date_utc']
428
- end
429
-
430
- if attributes.key?(:'contact_groups')
431
- if (value = attributes[:'contact_groups']).is_a?(Array)
432
- self.contact_groups = value
433
- end
434
- end
435
-
436
- if attributes.key?(:'website')
437
- self.website = attributes[:'website']
438
- end
439
-
440
- if attributes.key?(:'branding_theme')
441
- self.branding_theme = attributes[:'branding_theme']
442
- end
443
-
444
- if attributes.key?(:'batch_payments')
445
- self.batch_payments = attributes[:'batch_payments']
446
- end
447
-
448
- if attributes.key?(:'discount')
449
- self.discount = attributes[:'discount']
450
- end
451
-
452
- if attributes.key?(:'balances')
453
- self.balances = attributes[:'balances']
454
- end
455
-
456
- if attributes.key?(:'attachments')
457
- if (value = attributes[:'attachments']).is_a?(Array)
458
- self.attachments = value
459
- end
460
- end
461
-
462
- if attributes.key?(:'has_attachments')
463
- self.has_attachments = attributes[:'has_attachments']
464
- else
465
- self.has_attachments = false
466
- end
467
-
468
- if attributes.key?(:'validation_errors')
469
- if (value = attributes[:'validation_errors']).is_a?(Array)
470
- self.validation_errors = value
471
- end
472
- end
473
-
474
- if attributes.key?(:'has_validation_errors')
475
- self.has_validation_errors = attributes[:'has_validation_errors']
476
- else
477
- self.has_validation_errors = false
478
- end
479
-
480
- if attributes.key?(:'status_attribute_string')
481
- self.status_attribute_string = attributes[:'status_attribute_string']
482
- end
483
- end
484
-
485
- # Show invalid properties with the reasons. Usually used together with valid?
486
- # @return Array for valid properties with the reasons
487
- def list_invalid_properties
488
- invalid_properties = Array.new
489
- if !@contact_number.nil? && @contact_number.to_s.length > 50
490
- invalid_properties.push('invalid value for "contact_number", the character length must be smaller than or equal to 50.')
491
- end
492
-
493
- if !@account_number.nil? && @account_number.to_s.length > 50
494
- invalid_properties.push('invalid value for "account_number", the character length must be smaller than or equal to 50.')
495
- end
496
-
497
- if !@name.nil? && @name.to_s.length > 255
498
- invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 255.')
499
- end
500
-
501
- if !@first_name.nil? && @first_name.to_s.length > 255
502
- invalid_properties.push('invalid value for "first_name", the character length must be smaller than or equal to 255.')
503
- end
504
-
505
- if !@last_name.nil? && @last_name.to_s.length > 255
506
- invalid_properties.push('invalid value for "last_name", the character length must be smaller than or equal to 255.')
507
- end
508
-
509
- if !@company_number.nil? && @company_number.to_s.length > 50
510
- invalid_properties.push('invalid value for "company_number", the character length must be smaller than or equal to 50.')
511
- end
512
-
513
- if !@email_address.nil? && @email_address.to_s.length > 255
514
- invalid_properties.push('invalid value for "email_address", the character length must be smaller than or equal to 255.')
515
- end
516
-
517
- if !@tax_number.nil? && @tax_number.to_s.length > 50
518
- invalid_properties.push('invalid value for "tax_number", the character length must be smaller than or equal to 50.')
519
- end
520
-
521
- invalid_properties
522
- end
523
-
524
- # Check to see if the all the properties in the model are valid
525
- # @return true if the model is valid
526
- def valid?
527
- return false if !@contact_number.nil? && @contact_number.to_s.length > 50
528
- return false if !@account_number.nil? && @account_number.to_s.length > 50
529
- contact_status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "ARCHIVED", "GDPRREQUEST"])
530
- return false unless contact_status_validator.valid?(@contact_status)
531
- return false if !@name.nil? && @name.to_s.length > 255
532
- return false if !@first_name.nil? && @first_name.to_s.length > 255
533
- return false if !@last_name.nil? && @last_name.to_s.length > 255
534
- return false if !@company_number.nil? && @company_number.to_s.length > 50
535
- return false if !@email_address.nil? && @email_address.to_s.length > 255
536
- return false if !@tax_number.nil? && @tax_number.to_s.length > 50
537
- sales_default_line_amount_type_validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
538
- return false unless sales_default_line_amount_type_validator.valid?(@sales_default_line_amount_type)
539
- purchases_default_line_amount_type_validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
540
- return false unless purchases_default_line_amount_type_validator.valid?(@purchases_default_line_amount_type)
541
- true
542
- end
543
-
544
- # Custom attribute writer method with validation
545
- # @param [Object] contact_number Value to be assigned
546
- def contact_number=(contact_number)
547
- if !contact_number.nil? && contact_number.to_s.length > 50
548
- fail ArgumentError, 'invalid value for "contact_number", the character length must be smaller than or equal to 50.'
549
- end
550
-
551
- @contact_number = contact_number
552
- end
553
-
554
- # Custom attribute writer method with validation
555
- # @param [Object] account_number Value to be assigned
556
- def account_number=(account_number)
557
- if !account_number.nil? && account_number.to_s.length > 50
558
- fail ArgumentError, 'invalid value for "account_number", the character length must be smaller than or equal to 50.'
559
- end
560
-
561
- @account_number = account_number
562
- end
563
-
564
- # Custom attribute writer method checking allowed values (enum).
565
- # @param [Object] contact_status Object to be assigned
566
- def contact_status=(contact_status)
567
- validator = EnumAttributeValidator.new('String', ["ACTIVE", "ARCHIVED", "GDPRREQUEST"])
568
- unless validator.valid?(contact_status)
569
- fail ArgumentError, "invalid value for \"contact_status\", must be one of #{validator.allowable_values}."
570
- end
571
- @contact_status = contact_status
572
- end
573
-
574
- # Custom attribute writer method with validation
575
- # @param [Object] name Value to be assigned
576
- def name=(name)
577
- if !name.nil? && name.to_s.length > 255
578
- fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 255.'
579
- end
580
-
581
- @name = name
582
- end
583
-
584
- # Custom attribute writer method with validation
585
- # @param [Object] first_name Value to be assigned
586
- def first_name=(first_name)
587
- if !first_name.nil? && first_name.to_s.length > 255
588
- fail ArgumentError, 'invalid value for "first_name", the character length must be smaller than or equal to 255.'
589
- end
590
-
591
- @first_name = first_name
592
- end
593
-
594
- # Custom attribute writer method with validation
595
- # @param [Object] last_name Value to be assigned
596
- def last_name=(last_name)
597
- if !last_name.nil? && last_name.to_s.length > 255
598
- fail ArgumentError, 'invalid value for "last_name", the character length must be smaller than or equal to 255.'
599
- end
600
-
601
- @last_name = last_name
602
- end
603
-
604
- # Custom attribute writer method with validation
605
- # @param [Object] company_number Value to be assigned
606
- def company_number=(company_number)
607
- if !company_number.nil? && company_number.to_s.length > 50
608
- fail ArgumentError, 'invalid value for "company_number", the character length must be smaller than or equal to 50.'
609
- end
610
-
611
- @company_number = company_number
612
- end
613
-
614
- # Custom attribute writer method with validation
615
- # @param [Object] email_address Value to be assigned
616
- def email_address=(email_address)
617
- if !email_address.nil? && email_address.to_s.length > 255
618
- fail ArgumentError, 'invalid value for "email_address", the character length must be smaller than or equal to 255.'
619
- end
620
-
621
- @email_address = email_address
622
- end
623
-
624
- # Custom attribute writer method with validation
625
- # @param [Object] tax_number Value to be assigned
626
- def tax_number=(tax_number)
627
- if !tax_number.nil? && tax_number.to_s.length > 50
628
- fail ArgumentError, 'invalid value for "tax_number", the character length must be smaller than or equal to 50.'
629
- end
630
-
631
- @tax_number = tax_number
632
- end
633
-
634
- # Custom attribute writer method checking allowed values (enum).
635
- # @param [Object] sales_default_line_amount_type Object to be assigned
636
- def sales_default_line_amount_type=(sales_default_line_amount_type)
637
- validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
638
- unless validator.valid?(sales_default_line_amount_type)
639
- fail ArgumentError, "invalid value for \"sales_default_line_amount_type\", must be one of #{validator.allowable_values}."
640
- end
641
- @sales_default_line_amount_type = sales_default_line_amount_type
642
- end
643
-
644
- # Custom attribute writer method checking allowed values (enum).
645
- # @param [Object] purchases_default_line_amount_type Object to be assigned
646
- def purchases_default_line_amount_type=(purchases_default_line_amount_type)
647
- validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
648
- unless validator.valid?(purchases_default_line_amount_type)
649
- fail ArgumentError, "invalid value for \"purchases_default_line_amount_type\", must be one of #{validator.allowable_values}."
650
- end
651
- @purchases_default_line_amount_type = purchases_default_line_amount_type
652
- end
653
-
654
- # Checks equality by comparing each attribute.
655
- # @param [Object] Object to be compared
656
- def ==(o)
657
- return true if self.equal?(o)
658
- self.class == o.class &&
659
- contact_id == o.contact_id &&
660
- merged_to_contact_id == o.merged_to_contact_id &&
661
- contact_number == o.contact_number &&
662
- account_number == o.account_number &&
663
- contact_status == o.contact_status &&
664
- name == o.name &&
665
- first_name == o.first_name &&
666
- last_name == o.last_name &&
667
- company_number == o.company_number &&
668
- email_address == o.email_address &&
669
- skype_user_name == o.skype_user_name &&
670
- contact_persons == o.contact_persons &&
671
- bank_account_details == o.bank_account_details &&
672
- tax_number == o.tax_number &&
673
- accounts_receivable_tax_type == o.accounts_receivable_tax_type &&
674
- accounts_payable_tax_type == o.accounts_payable_tax_type &&
675
- addresses == o.addresses &&
676
- phones == o.phones &&
677
- is_supplier == o.is_supplier &&
678
- is_customer == o.is_customer &&
679
- sales_default_line_amount_type == o.sales_default_line_amount_type &&
680
- purchases_default_line_amount_type == o.purchases_default_line_amount_type &&
681
- default_currency == o.default_currency &&
682
- xero_network_key == o.xero_network_key &&
683
- sales_default_account_code == o.sales_default_account_code &&
684
- purchases_default_account_code == o.purchases_default_account_code &&
685
- sales_tracking_categories == o.sales_tracking_categories &&
686
- purchases_tracking_categories == o.purchases_tracking_categories &&
687
- tracking_category_name == o.tracking_category_name &&
688
- tracking_category_option == o.tracking_category_option &&
689
- payment_terms == o.payment_terms &&
690
- updated_date_utc == o.updated_date_utc &&
691
- contact_groups == o.contact_groups &&
692
- website == o.website &&
693
- branding_theme == o.branding_theme &&
694
- batch_payments == o.batch_payments &&
695
- discount == o.discount &&
696
- balances == o.balances &&
697
- attachments == o.attachments &&
698
- has_attachments == o.has_attachments &&
699
- validation_errors == o.validation_errors &&
700
- has_validation_errors == o.has_validation_errors &&
701
- status_attribute_string == o.status_attribute_string
702
- end
703
-
704
- # @see the `==` method
705
- # @param [Object] Object to be compared
706
- def eql?(o)
707
- self == o
708
- end
709
-
710
- # Calculates hash code according to all attributes.
711
- # @return [Integer] Hash code
712
- def hash
713
- [contact_id, merged_to_contact_id, contact_number, account_number, contact_status, name, first_name, last_name, company_number, email_address, skype_user_name, contact_persons, bank_account_details, tax_number, accounts_receivable_tax_type, accounts_payable_tax_type, addresses, phones, is_supplier, is_customer, sales_default_line_amount_type, purchases_default_line_amount_type, default_currency, xero_network_key, sales_default_account_code, purchases_default_account_code, sales_tracking_categories, purchases_tracking_categories, tracking_category_name, tracking_category_option, payment_terms, updated_date_utc, contact_groups, website, branding_theme, batch_payments, discount, balances, attachments, has_attachments, validation_errors, has_validation_errors, status_attribute_string].hash
714
- end
715
-
716
- # Builds the object from hash
717
- # @param [Hash] attributes Model attributes in the form of hash
718
- # @return [Object] Returns the model itself
719
- def self.build_from_hash(attributes)
720
- new.build_from_hash(attributes)
721
- end
722
-
723
- # Builds the object from hash
724
- # @param [Hash] attributes Model attributes in the form of hash
725
- # @return [Object] Returns the model itself
726
- def build_from_hash(attributes)
727
- return nil unless attributes.is_a?(Hash)
728
- self.class.openapi_types.each_pair do |key, type|
729
- if type =~ /\AArray<(.*)>/i
730
- # check to ensure the input is an array given that the attribute
731
- # is documented as an array but the input is not
732
- if attributes[self.class.attribute_map[key]].is_a?(Array)
733
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
734
- end
735
- elsif !attributes[self.class.attribute_map[key]].nil?
736
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
737
- end # or else data not found in attributes(hash), not an issue as the data can be optional
738
- end
739
-
740
- self
741
- end
742
-
743
- # Deserializes the data based on type
744
- # @param string type Data type
745
- # @param string value Value to be deserialized
746
- # @return [Object] Deserialized data
747
- def _deserialize(type, value)
748
- case type.to_sym
749
- when :DateTime
750
- DateTime.parse(parse_date(value))
751
- when :Date
752
- Date.parse(parse_date(value))
753
- when :String
754
- value.to_s
755
- when :Integer
756
- value.to_i
757
- when :Float
758
- value.to_f
759
- when :BigDecimal
760
- BigDecimal(value.to_s)
761
- when :Boolean
762
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
763
- true
764
- else
765
- false
766
- end
767
- when :Object
768
- # generic object (usually a Hash), return directly
769
- value
770
- when /\AArray<(?<inner_type>.+)>\z/
771
- inner_type = Regexp.last_match[:inner_type]
772
- value.map { |v| _deserialize(inner_type, v) }
773
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
774
- k_type = Regexp.last_match[:k_type]
775
- v_type = Regexp.last_match[:v_type]
776
- {}.tap do |hash|
777
- value.each do |k, v|
778
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
779
- end
780
- end
781
- else # model
782
- XeroRuby::Accounting.const_get(type).build_from_hash(value)
783
- end
784
- end
785
-
786
- # Returns the string representation of the object
787
- # @return [String] String presentation of the object
788
- def to_s
789
- to_hash.to_s
790
- end
791
-
792
- # to_body is an alias to to_hash (backward compatibility)
793
- # @return [Hash] Returns the object in the form of hash
794
- def to_body
795
- to_hash
796
- end
797
-
798
- # Returns the object in the form of hash
799
- # @return [Hash] Returns the object in the form of hash
800
- def to_hash(downcase: false)
801
- hash = {}
802
- self.class.attribute_map.each_pair do |attr, param|
803
- value = self.send(attr)
804
- next if value.nil?
805
- key = downcase ? attr : param
806
- hash[key] = _to_hash(value, downcase: downcase)
807
- end
808
- hash
809
- end
810
-
811
- # Returns the object in the form of hash with snake_case
812
- def to_attributes
813
- to_hash(downcase: true)
814
- end
815
-
816
- # Outputs non-array value in the form of hash
817
- # For object, use to_hash. Otherwise, just return the value
818
- # @param [Object] value Any valid value
819
- # @return [Hash] Returns the value in the form of hash
820
- def _to_hash(value, downcase: false)
821
- if value.is_a?(Array)
822
- value.map do |v|
823
- v.to_hash(downcase: downcase)
824
- end
825
- elsif value.is_a?(Hash)
826
- {}.tap do |hash|
827
- value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
828
- end
829
- elsif value.respond_to? :to_hash
830
- value.to_hash(downcase: downcase)
831
- else
832
- value
833
- end
834
- end
835
-
836
- def parse_date(datestring)
837
- if datestring.include?('Date')
838
- date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
839
- original, date, timezone = *date_pattern.match(datestring)
840
- date = (date.to_i / 1000)
841
- Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
842
- elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
843
- Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
844
- else # handle date 'types' for small subset of payroll API's
845
- Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
846
- end
847
- end
848
- end
849
- end
1
+ =begin
2
+ #Xero Accounting API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
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
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::Accounting
16
+ require 'bigdecimal'
17
+
18
+ class Contact
19
+ # Xero identifier
20
+ attr_accessor :contact_id
21
+
22
+ # ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber.
23
+ attr_accessor :merged_to_contact_id
24
+
25
+ # This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero.
26
+ attr_accessor :contact_number
27
+
28
+ # A user defined account number. This can be updated via the API and the Xero UI (max length = 50)
29
+ attr_accessor :account_number
30
+
31
+ # Current status of a contact – see contact status types
32
+ attr_accessor :contact_status
33
+ ACTIVE ||= "ACTIVE".freeze
34
+ ARCHIVED ||= "ARCHIVED".freeze
35
+ GDPRREQUEST ||= "GDPRREQUEST".freeze
36
+
37
+ # Full name of contact/organisation (max length = 255)
38
+ attr_accessor :name
39
+
40
+ # First name of contact person (max length = 255)
41
+ attr_accessor :first_name
42
+
43
+ # Last name of contact person (max length = 255)
44
+ attr_accessor :last_name
45
+
46
+ # Company registration number (max length = 50)
47
+ attr_accessor :company_number
48
+
49
+ # Email address of contact person (umlauts not supported) (max length = 255)
50
+ attr_accessor :email_address
51
+
52
+ # Skype user name of contact
53
+ attr_accessor :skype_user_name
54
+
55
+ # See contact persons
56
+ attr_accessor :contact_persons
57
+
58
+ # Bank account number of contact
59
+ attr_accessor :bank_account_details
60
+
61
+ # Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) or Tax ID Number (US and global) in the Xero UI depending on which regionalized version of Xero you are using (max length = 50)
62
+ attr_accessor :tax_number
63
+
64
+ # The tax type from TaxRates
65
+ attr_accessor :accounts_receivable_tax_type
66
+
67
+ # The tax type from TaxRates
68
+ attr_accessor :accounts_payable_tax_type
69
+
70
+ # Store certain address types for a contact – see address types
71
+ attr_accessor :addresses
72
+
73
+ # Store certain phone types for a contact – see phone types
74
+ attr_accessor :phones
75
+
76
+ # true or false – Boolean that describes if a contact that has any AP invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts payable invoice is generated against this contact.
77
+ attr_accessor :is_supplier
78
+
79
+ # true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact.
80
+ attr_accessor :is_customer
81
+
82
+ # The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.
83
+ attr_accessor :sales_default_line_amount_type
84
+ INCLUSIVE ||= "INCLUSIVE".freeze
85
+ EXCLUSIVE ||= "EXCLUSIVE".freeze
86
+ NONE ||= "NONE".freeze
87
+
88
+ # The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.
89
+ attr_accessor :purchases_default_line_amount_type
90
+ INCLUSIVE ||= "INCLUSIVE".freeze
91
+ EXCLUSIVE ||= "EXCLUSIVE".freeze
92
+ NONE ||= "NONE".freeze
93
+
94
+
95
+ attr_accessor :default_currency
96
+
97
+ # Store XeroNetworkKey for contacts.
98
+ attr_accessor :xero_network_key
99
+
100
+ # The default sales account code for contacts
101
+ attr_accessor :sales_default_account_code
102
+
103
+ # The default purchases account code for contacts
104
+ attr_accessor :purchases_default_account_code
105
+
106
+ # The default sales tracking categories for contacts
107
+ attr_accessor :sales_tracking_categories
108
+
109
+ # The default purchases tracking categories for contacts
110
+ attr_accessor :purchases_tracking_categories
111
+
112
+ # The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories
113
+ attr_accessor :tracking_category_name
114
+
115
+ # The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories
116
+ attr_accessor :tracking_category_option
117
+
118
+
119
+ attr_accessor :payment_terms
120
+
121
+ # UTC timestamp of last update to contact
122
+ attr_accessor :updated_date_utc
123
+
124
+ # Displays which contact groups a contact is included in
125
+ attr_accessor :contact_groups
126
+
127
+ # Website address for contact (read only)
128
+ attr_accessor :website
129
+
130
+
131
+ attr_accessor :branding_theme
132
+
133
+
134
+ attr_accessor :batch_payments
135
+
136
+ # The default discount rate for the contact (read only)
137
+ attr_accessor :discount
138
+
139
+
140
+ attr_accessor :balances
141
+
142
+ # Displays array of attachments from the API
143
+ attr_accessor :attachments
144
+
145
+ # A boolean to indicate if a contact has an attachment
146
+ attr_accessor :has_attachments
147
+
148
+ # Displays validation errors returned from the API
149
+ attr_accessor :validation_errors
150
+
151
+ # A boolean to indicate if a contact has an validation errors
152
+ attr_accessor :has_validation_errors
153
+
154
+ # Status of object
155
+ attr_accessor :status_attribute_string
156
+
157
+ class EnumAttributeValidator
158
+ attr_reader :datatype
159
+ attr_reader :allowable_values
160
+
161
+ def initialize(datatype, allowable_values)
162
+ @allowable_values = allowable_values.map do |value|
163
+ case datatype.to_s
164
+ when /Integer/i
165
+ value.to_i
166
+ when /Float/i
167
+ value.to_f
168
+ else
169
+ value
170
+ end
171
+ end
172
+ end
173
+
174
+ def valid?(value)
175
+ !value || allowable_values.include?(value)
176
+ end
177
+ end
178
+
179
+ # Attribute mapping from ruby-style variable name to JSON key.
180
+ def self.attribute_map
181
+ {
182
+ :'contact_id' => :'ContactID',
183
+ :'merged_to_contact_id' => :'MergedToContactID',
184
+ :'contact_number' => :'ContactNumber',
185
+ :'account_number' => :'AccountNumber',
186
+ :'contact_status' => :'ContactStatus',
187
+ :'name' => :'Name',
188
+ :'first_name' => :'FirstName',
189
+ :'last_name' => :'LastName',
190
+ :'company_number' => :'CompanyNumber',
191
+ :'email_address' => :'EmailAddress',
192
+ :'skype_user_name' => :'SkypeUserName',
193
+ :'contact_persons' => :'ContactPersons',
194
+ :'bank_account_details' => :'BankAccountDetails',
195
+ :'tax_number' => :'TaxNumber',
196
+ :'accounts_receivable_tax_type' => :'AccountsReceivableTaxType',
197
+ :'accounts_payable_tax_type' => :'AccountsPayableTaxType',
198
+ :'addresses' => :'Addresses',
199
+ :'phones' => :'Phones',
200
+ :'is_supplier' => :'IsSupplier',
201
+ :'is_customer' => :'IsCustomer',
202
+ :'sales_default_line_amount_type' => :'SalesDefaultLineAmountType',
203
+ :'purchases_default_line_amount_type' => :'PurchasesDefaultLineAmountType',
204
+ :'default_currency' => :'DefaultCurrency',
205
+ :'xero_network_key' => :'XeroNetworkKey',
206
+ :'sales_default_account_code' => :'SalesDefaultAccountCode',
207
+ :'purchases_default_account_code' => :'PurchasesDefaultAccountCode',
208
+ :'sales_tracking_categories' => :'SalesTrackingCategories',
209
+ :'purchases_tracking_categories' => :'PurchasesTrackingCategories',
210
+ :'tracking_category_name' => :'TrackingCategoryName',
211
+ :'tracking_category_option' => :'TrackingCategoryOption',
212
+ :'payment_terms' => :'PaymentTerms',
213
+ :'updated_date_utc' => :'UpdatedDateUTC',
214
+ :'contact_groups' => :'ContactGroups',
215
+ :'website' => :'Website',
216
+ :'branding_theme' => :'BrandingTheme',
217
+ :'batch_payments' => :'BatchPayments',
218
+ :'discount' => :'Discount',
219
+ :'balances' => :'Balances',
220
+ :'attachments' => :'Attachments',
221
+ :'has_attachments' => :'HasAttachments',
222
+ :'validation_errors' => :'ValidationErrors',
223
+ :'has_validation_errors' => :'HasValidationErrors',
224
+ :'status_attribute_string' => :'StatusAttributeString'
225
+ }
226
+ end
227
+
228
+ # Attribute type mapping.
229
+ def self.openapi_types
230
+ {
231
+ :'contact_id' => :'String',
232
+ :'merged_to_contact_id' => :'String',
233
+ :'contact_number' => :'String',
234
+ :'account_number' => :'String',
235
+ :'contact_status' => :'String',
236
+ :'name' => :'String',
237
+ :'first_name' => :'String',
238
+ :'last_name' => :'String',
239
+ :'company_number' => :'String',
240
+ :'email_address' => :'String',
241
+ :'skype_user_name' => :'String',
242
+ :'contact_persons' => :'Array<ContactPerson>',
243
+ :'bank_account_details' => :'String',
244
+ :'tax_number' => :'String',
245
+ :'accounts_receivable_tax_type' => :'String',
246
+ :'accounts_payable_tax_type' => :'String',
247
+ :'addresses' => :'Array<Address>',
248
+ :'phones' => :'Array<Phone>',
249
+ :'is_supplier' => :'Boolean',
250
+ :'is_customer' => :'Boolean',
251
+ :'sales_default_line_amount_type' => :'String',
252
+ :'purchases_default_line_amount_type' => :'String',
253
+ :'default_currency' => :'CurrencyCode',
254
+ :'xero_network_key' => :'String',
255
+ :'sales_default_account_code' => :'String',
256
+ :'purchases_default_account_code' => :'String',
257
+ :'sales_tracking_categories' => :'Array<SalesTrackingCategory>',
258
+ :'purchases_tracking_categories' => :'Array<SalesTrackingCategory>',
259
+ :'tracking_category_name' => :'String',
260
+ :'tracking_category_option' => :'String',
261
+ :'payment_terms' => :'PaymentTerm',
262
+ :'updated_date_utc' => :'DateTime',
263
+ :'contact_groups' => :'Array<ContactGroup>',
264
+ :'website' => :'String',
265
+ :'branding_theme' => :'BrandingTheme',
266
+ :'batch_payments' => :'BatchPaymentDetails',
267
+ :'discount' => :'BigDecimal',
268
+ :'balances' => :'Balances',
269
+ :'attachments' => :'Array<Attachment>',
270
+ :'has_attachments' => :'Boolean',
271
+ :'validation_errors' => :'Array<ValidationError>',
272
+ :'has_validation_errors' => :'Boolean',
273
+ :'status_attribute_string' => :'String'
274
+ }
275
+ end
276
+
277
+ # Initializes the object
278
+ # @param [Hash] attributes Model attributes in the form of hash
279
+ def initialize(attributes = {})
280
+ if (!attributes.is_a?(Hash))
281
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Accounting::Contact` initialize method"
282
+ end
283
+
284
+ # check to see if the attribute exists and convert string to symbol for hash key
285
+ attributes = attributes.each_with_object({}) { |(k, v), h|
286
+ if (!self.class.attribute_map.key?(k.to_sym))
287
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Accounting::Contact`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
288
+ end
289
+ h[k.to_sym] = v
290
+ }
291
+
292
+ if attributes.key?(:'contact_id')
293
+ self.contact_id = attributes[:'contact_id']
294
+ end
295
+
296
+ if attributes.key?(:'merged_to_contact_id')
297
+ self.merged_to_contact_id = attributes[:'merged_to_contact_id']
298
+ end
299
+
300
+ if attributes.key?(:'contact_number')
301
+ self.contact_number = attributes[:'contact_number']
302
+ end
303
+
304
+ if attributes.key?(:'account_number')
305
+ self.account_number = attributes[:'account_number']
306
+ end
307
+
308
+ if attributes.key?(:'contact_status')
309
+ self.contact_status = attributes[:'contact_status']
310
+ end
311
+
312
+ if attributes.key?(:'name')
313
+ self.name = attributes[:'name']
314
+ end
315
+
316
+ if attributes.key?(:'first_name')
317
+ self.first_name = attributes[:'first_name']
318
+ end
319
+
320
+ if attributes.key?(:'last_name')
321
+ self.last_name = attributes[:'last_name']
322
+ end
323
+
324
+ if attributes.key?(:'company_number')
325
+ self.company_number = attributes[:'company_number']
326
+ end
327
+
328
+ if attributes.key?(:'email_address')
329
+ self.email_address = attributes[:'email_address']
330
+ end
331
+
332
+ if attributes.key?(:'skype_user_name')
333
+ self.skype_user_name = attributes[:'skype_user_name']
334
+ end
335
+
336
+ if attributes.key?(:'contact_persons')
337
+ if (value = attributes[:'contact_persons']).is_a?(Array)
338
+ self.contact_persons = value
339
+ end
340
+ end
341
+
342
+ if attributes.key?(:'bank_account_details')
343
+ self.bank_account_details = attributes[:'bank_account_details']
344
+ end
345
+
346
+ if attributes.key?(:'tax_number')
347
+ self.tax_number = attributes[:'tax_number']
348
+ end
349
+
350
+ if attributes.key?(:'accounts_receivable_tax_type')
351
+ self.accounts_receivable_tax_type = attributes[:'accounts_receivable_tax_type']
352
+ end
353
+
354
+ if attributes.key?(:'accounts_payable_tax_type')
355
+ self.accounts_payable_tax_type = attributes[:'accounts_payable_tax_type']
356
+ end
357
+
358
+ if attributes.key?(:'addresses')
359
+ if (value = attributes[:'addresses']).is_a?(Array)
360
+ self.addresses = value
361
+ end
362
+ end
363
+
364
+ if attributes.key?(:'phones')
365
+ if (value = attributes[:'phones']).is_a?(Array)
366
+ self.phones = value
367
+ end
368
+ end
369
+
370
+ if attributes.key?(:'is_supplier')
371
+ self.is_supplier = attributes[:'is_supplier']
372
+ end
373
+
374
+ if attributes.key?(:'is_customer')
375
+ self.is_customer = attributes[:'is_customer']
376
+ end
377
+
378
+ if attributes.key?(:'sales_default_line_amount_type')
379
+ self.sales_default_line_amount_type = attributes[:'sales_default_line_amount_type']
380
+ end
381
+
382
+ if attributes.key?(:'purchases_default_line_amount_type')
383
+ self.purchases_default_line_amount_type = attributes[:'purchases_default_line_amount_type']
384
+ end
385
+
386
+ if attributes.key?(:'default_currency')
387
+ self.default_currency = attributes[:'default_currency']
388
+ end
389
+
390
+ if attributes.key?(:'xero_network_key')
391
+ self.xero_network_key = attributes[:'xero_network_key']
392
+ end
393
+
394
+ if attributes.key?(:'sales_default_account_code')
395
+ self.sales_default_account_code = attributes[:'sales_default_account_code']
396
+ end
397
+
398
+ if attributes.key?(:'purchases_default_account_code')
399
+ self.purchases_default_account_code = attributes[:'purchases_default_account_code']
400
+ end
401
+
402
+ if attributes.key?(:'sales_tracking_categories')
403
+ if (value = attributes[:'sales_tracking_categories']).is_a?(Array)
404
+ self.sales_tracking_categories = value
405
+ end
406
+ end
407
+
408
+ if attributes.key?(:'purchases_tracking_categories')
409
+ if (value = attributes[:'purchases_tracking_categories']).is_a?(Array)
410
+ self.purchases_tracking_categories = value
411
+ end
412
+ end
413
+
414
+ if attributes.key?(:'tracking_category_name')
415
+ self.tracking_category_name = attributes[:'tracking_category_name']
416
+ end
417
+
418
+ if attributes.key?(:'tracking_category_option')
419
+ self.tracking_category_option = attributes[:'tracking_category_option']
420
+ end
421
+
422
+ if attributes.key?(:'payment_terms')
423
+ self.payment_terms = attributes[:'payment_terms']
424
+ end
425
+
426
+ if attributes.key?(:'updated_date_utc')
427
+ self.updated_date_utc = attributes[:'updated_date_utc']
428
+ end
429
+
430
+ if attributes.key?(:'contact_groups')
431
+ if (value = attributes[:'contact_groups']).is_a?(Array)
432
+ self.contact_groups = value
433
+ end
434
+ end
435
+
436
+ if attributes.key?(:'website')
437
+ self.website = attributes[:'website']
438
+ end
439
+
440
+ if attributes.key?(:'branding_theme')
441
+ self.branding_theme = attributes[:'branding_theme']
442
+ end
443
+
444
+ if attributes.key?(:'batch_payments')
445
+ self.batch_payments = attributes[:'batch_payments']
446
+ end
447
+
448
+ if attributes.key?(:'discount')
449
+ self.discount = attributes[:'discount']
450
+ end
451
+
452
+ if attributes.key?(:'balances')
453
+ self.balances = attributes[:'balances']
454
+ end
455
+
456
+ if attributes.key?(:'attachments')
457
+ if (value = attributes[:'attachments']).is_a?(Array)
458
+ self.attachments = value
459
+ end
460
+ end
461
+
462
+ if attributes.key?(:'has_attachments')
463
+ self.has_attachments = attributes[:'has_attachments']
464
+ else
465
+ self.has_attachments = false
466
+ end
467
+
468
+ if attributes.key?(:'validation_errors')
469
+ if (value = attributes[:'validation_errors']).is_a?(Array)
470
+ self.validation_errors = value
471
+ end
472
+ end
473
+
474
+ if attributes.key?(:'has_validation_errors')
475
+ self.has_validation_errors = attributes[:'has_validation_errors']
476
+ else
477
+ self.has_validation_errors = false
478
+ end
479
+
480
+ if attributes.key?(:'status_attribute_string')
481
+ self.status_attribute_string = attributes[:'status_attribute_string']
482
+ end
483
+ end
484
+
485
+ # Show invalid properties with the reasons. Usually used together with valid?
486
+ # @return Array for valid properties with the reasons
487
+ def list_invalid_properties
488
+ invalid_properties = Array.new
489
+ if !@contact_number.nil? && @contact_number.to_s.length > 50
490
+ invalid_properties.push('invalid value for "contact_number", the character length must be smaller than or equal to 50.')
491
+ end
492
+
493
+ if !@account_number.nil? && @account_number.to_s.length > 50
494
+ invalid_properties.push('invalid value for "account_number", the character length must be smaller than or equal to 50.')
495
+ end
496
+
497
+ if !@name.nil? && @name.to_s.length > 255
498
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 255.')
499
+ end
500
+
501
+ if !@first_name.nil? && @first_name.to_s.length > 255
502
+ invalid_properties.push('invalid value for "first_name", the character length must be smaller than or equal to 255.')
503
+ end
504
+
505
+ if !@last_name.nil? && @last_name.to_s.length > 255
506
+ invalid_properties.push('invalid value for "last_name", the character length must be smaller than or equal to 255.')
507
+ end
508
+
509
+ if !@company_number.nil? && @company_number.to_s.length > 50
510
+ invalid_properties.push('invalid value for "company_number", the character length must be smaller than or equal to 50.')
511
+ end
512
+
513
+ if !@email_address.nil? && @email_address.to_s.length > 255
514
+ invalid_properties.push('invalid value for "email_address", the character length must be smaller than or equal to 255.')
515
+ end
516
+
517
+ if !@tax_number.nil? && @tax_number.to_s.length > 50
518
+ invalid_properties.push('invalid value for "tax_number", the character length must be smaller than or equal to 50.')
519
+ end
520
+
521
+ invalid_properties
522
+ end
523
+
524
+ # Check to see if the all the properties in the model are valid
525
+ # @return true if the model is valid
526
+ def valid?
527
+ return false if !@contact_number.nil? && @contact_number.to_s.length > 50
528
+ return false if !@account_number.nil? && @account_number.to_s.length > 50
529
+ contact_status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "ARCHIVED", "GDPRREQUEST"])
530
+ return false unless contact_status_validator.valid?(@contact_status)
531
+ return false if !@name.nil? && @name.to_s.length > 255
532
+ return false if !@first_name.nil? && @first_name.to_s.length > 255
533
+ return false if !@last_name.nil? && @last_name.to_s.length > 255
534
+ return false if !@company_number.nil? && @company_number.to_s.length > 50
535
+ return false if !@email_address.nil? && @email_address.to_s.length > 255
536
+ return false if !@tax_number.nil? && @tax_number.to_s.length > 50
537
+ sales_default_line_amount_type_validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
538
+ return false unless sales_default_line_amount_type_validator.valid?(@sales_default_line_amount_type)
539
+ purchases_default_line_amount_type_validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
540
+ return false unless purchases_default_line_amount_type_validator.valid?(@purchases_default_line_amount_type)
541
+ true
542
+ end
543
+
544
+ # Custom attribute writer method with validation
545
+ # @param [Object] contact_number Value to be assigned
546
+ def contact_number=(contact_number)
547
+ if !contact_number.nil? && contact_number.to_s.length > 50
548
+ fail ArgumentError, 'invalid value for "contact_number", the character length must be smaller than or equal to 50.'
549
+ end
550
+
551
+ @contact_number = contact_number
552
+ end
553
+
554
+ # Custom attribute writer method with validation
555
+ # @param [Object] account_number Value to be assigned
556
+ def account_number=(account_number)
557
+ if !account_number.nil? && account_number.to_s.length > 50
558
+ fail ArgumentError, 'invalid value for "account_number", the character length must be smaller than or equal to 50.'
559
+ end
560
+
561
+ @account_number = account_number
562
+ end
563
+
564
+ # Custom attribute writer method checking allowed values (enum).
565
+ # @param [Object] contact_status Object to be assigned
566
+ def contact_status=(contact_status)
567
+ validator = EnumAttributeValidator.new('String', ["ACTIVE", "ARCHIVED", "GDPRREQUEST"])
568
+ unless validator.valid?(contact_status)
569
+ fail ArgumentError, "invalid value for \"contact_status\", must be one of #{validator.allowable_values}."
570
+ end
571
+ @contact_status = contact_status
572
+ end
573
+
574
+ # Custom attribute writer method with validation
575
+ # @param [Object] name Value to be assigned
576
+ def name=(name)
577
+ if !name.nil? && name.to_s.length > 255
578
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 255.'
579
+ end
580
+
581
+ @name = name
582
+ end
583
+
584
+ # Custom attribute writer method with validation
585
+ # @param [Object] first_name Value to be assigned
586
+ def first_name=(first_name)
587
+ if !first_name.nil? && first_name.to_s.length > 255
588
+ fail ArgumentError, 'invalid value for "first_name", the character length must be smaller than or equal to 255.'
589
+ end
590
+
591
+ @first_name = first_name
592
+ end
593
+
594
+ # Custom attribute writer method with validation
595
+ # @param [Object] last_name Value to be assigned
596
+ def last_name=(last_name)
597
+ if !last_name.nil? && last_name.to_s.length > 255
598
+ fail ArgumentError, 'invalid value for "last_name", the character length must be smaller than or equal to 255.'
599
+ end
600
+
601
+ @last_name = last_name
602
+ end
603
+
604
+ # Custom attribute writer method with validation
605
+ # @param [Object] company_number Value to be assigned
606
+ def company_number=(company_number)
607
+ if !company_number.nil? && company_number.to_s.length > 50
608
+ fail ArgumentError, 'invalid value for "company_number", the character length must be smaller than or equal to 50.'
609
+ end
610
+
611
+ @company_number = company_number
612
+ end
613
+
614
+ # Custom attribute writer method with validation
615
+ # @param [Object] email_address Value to be assigned
616
+ def email_address=(email_address)
617
+ if !email_address.nil? && email_address.to_s.length > 255
618
+ fail ArgumentError, 'invalid value for "email_address", the character length must be smaller than or equal to 255.'
619
+ end
620
+
621
+ @email_address = email_address
622
+ end
623
+
624
+ # Custom attribute writer method with validation
625
+ # @param [Object] tax_number Value to be assigned
626
+ def tax_number=(tax_number)
627
+ if !tax_number.nil? && tax_number.to_s.length > 50
628
+ fail ArgumentError, 'invalid value for "tax_number", the character length must be smaller than or equal to 50.'
629
+ end
630
+
631
+ @tax_number = tax_number
632
+ end
633
+
634
+ # Custom attribute writer method checking allowed values (enum).
635
+ # @param [Object] sales_default_line_amount_type Object to be assigned
636
+ def sales_default_line_amount_type=(sales_default_line_amount_type)
637
+ validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
638
+ unless validator.valid?(sales_default_line_amount_type)
639
+ fail ArgumentError, "invalid value for \"sales_default_line_amount_type\", must be one of #{validator.allowable_values}."
640
+ end
641
+ @sales_default_line_amount_type = sales_default_line_amount_type
642
+ end
643
+
644
+ # Custom attribute writer method checking allowed values (enum).
645
+ # @param [Object] purchases_default_line_amount_type Object to be assigned
646
+ def purchases_default_line_amount_type=(purchases_default_line_amount_type)
647
+ validator = EnumAttributeValidator.new('String', ["INCLUSIVE", "EXCLUSIVE", "NONE"])
648
+ unless validator.valid?(purchases_default_line_amount_type)
649
+ fail ArgumentError, "invalid value for \"purchases_default_line_amount_type\", must be one of #{validator.allowable_values}."
650
+ end
651
+ @purchases_default_line_amount_type = purchases_default_line_amount_type
652
+ end
653
+
654
+ # Checks equality by comparing each attribute.
655
+ # @param [Object] Object to be compared
656
+ def ==(o)
657
+ return true if self.equal?(o)
658
+ self.class == o.class &&
659
+ contact_id == o.contact_id &&
660
+ merged_to_contact_id == o.merged_to_contact_id &&
661
+ contact_number == o.contact_number &&
662
+ account_number == o.account_number &&
663
+ contact_status == o.contact_status &&
664
+ name == o.name &&
665
+ first_name == o.first_name &&
666
+ last_name == o.last_name &&
667
+ company_number == o.company_number &&
668
+ email_address == o.email_address &&
669
+ skype_user_name == o.skype_user_name &&
670
+ contact_persons == o.contact_persons &&
671
+ bank_account_details == o.bank_account_details &&
672
+ tax_number == o.tax_number &&
673
+ accounts_receivable_tax_type == o.accounts_receivable_tax_type &&
674
+ accounts_payable_tax_type == o.accounts_payable_tax_type &&
675
+ addresses == o.addresses &&
676
+ phones == o.phones &&
677
+ is_supplier == o.is_supplier &&
678
+ is_customer == o.is_customer &&
679
+ sales_default_line_amount_type == o.sales_default_line_amount_type &&
680
+ purchases_default_line_amount_type == o.purchases_default_line_amount_type &&
681
+ default_currency == o.default_currency &&
682
+ xero_network_key == o.xero_network_key &&
683
+ sales_default_account_code == o.sales_default_account_code &&
684
+ purchases_default_account_code == o.purchases_default_account_code &&
685
+ sales_tracking_categories == o.sales_tracking_categories &&
686
+ purchases_tracking_categories == o.purchases_tracking_categories &&
687
+ tracking_category_name == o.tracking_category_name &&
688
+ tracking_category_option == o.tracking_category_option &&
689
+ payment_terms == o.payment_terms &&
690
+ updated_date_utc == o.updated_date_utc &&
691
+ contact_groups == o.contact_groups &&
692
+ website == o.website &&
693
+ branding_theme == o.branding_theme &&
694
+ batch_payments == o.batch_payments &&
695
+ discount == o.discount &&
696
+ balances == o.balances &&
697
+ attachments == o.attachments &&
698
+ has_attachments == o.has_attachments &&
699
+ validation_errors == o.validation_errors &&
700
+ has_validation_errors == o.has_validation_errors &&
701
+ status_attribute_string == o.status_attribute_string
702
+ end
703
+
704
+ # @see the `==` method
705
+ # @param [Object] Object to be compared
706
+ def eql?(o)
707
+ self == o
708
+ end
709
+
710
+ # Calculates hash code according to all attributes.
711
+ # @return [Integer] Hash code
712
+ def hash
713
+ [contact_id, merged_to_contact_id, contact_number, account_number, contact_status, name, first_name, last_name, company_number, email_address, skype_user_name, contact_persons, bank_account_details, tax_number, accounts_receivable_tax_type, accounts_payable_tax_type, addresses, phones, is_supplier, is_customer, sales_default_line_amount_type, purchases_default_line_amount_type, default_currency, xero_network_key, sales_default_account_code, purchases_default_account_code, sales_tracking_categories, purchases_tracking_categories, tracking_category_name, tracking_category_option, payment_terms, updated_date_utc, contact_groups, website, branding_theme, batch_payments, discount, balances, attachments, has_attachments, validation_errors, has_validation_errors, status_attribute_string].hash
714
+ end
715
+
716
+ # Builds the object from hash
717
+ # @param [Hash] attributes Model attributes in the form of hash
718
+ # @return [Object] Returns the model itself
719
+ def self.build_from_hash(attributes)
720
+ new.build_from_hash(attributes)
721
+ end
722
+
723
+ # Builds the object from hash
724
+ # @param [Hash] attributes Model attributes in the form of hash
725
+ # @return [Object] Returns the model itself
726
+ def build_from_hash(attributes)
727
+ return nil unless attributes.is_a?(Hash)
728
+ self.class.openapi_types.each_pair do |key, type|
729
+ if type =~ /\AArray<(.*)>/i
730
+ # check to ensure the input is an array given that the attribute
731
+ # is documented as an array but the input is not
732
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
733
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
734
+ end
735
+ elsif !attributes[self.class.attribute_map[key]].nil?
736
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
737
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
738
+ end
739
+
740
+ self
741
+ end
742
+
743
+ # Deserializes the data based on type
744
+ # @param string type Data type
745
+ # @param string value Value to be deserialized
746
+ # @return [Object] Deserialized data
747
+ def _deserialize(type, value)
748
+ case type.to_sym
749
+ when :DateTime
750
+ DateTime.parse(parse_date(value))
751
+ when :Date
752
+ Date.parse(parse_date(value))
753
+ when :String
754
+ value.to_s
755
+ when :Integer
756
+ value.to_i
757
+ when :Float
758
+ value.to_f
759
+ when :BigDecimal
760
+ BigDecimal(value.to_s)
761
+ when :Boolean
762
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
763
+ true
764
+ else
765
+ false
766
+ end
767
+ when :Object
768
+ # generic object (usually a Hash), return directly
769
+ value
770
+ when /\AArray<(?<inner_type>.+)>\z/
771
+ inner_type = Regexp.last_match[:inner_type]
772
+ value.map { |v| _deserialize(inner_type, v) }
773
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
774
+ k_type = Regexp.last_match[:k_type]
775
+ v_type = Regexp.last_match[:v_type]
776
+ {}.tap do |hash|
777
+ value.each do |k, v|
778
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
779
+ end
780
+ end
781
+ else # model
782
+ XeroRuby::Accounting.const_get(type).build_from_hash(value)
783
+ end
784
+ end
785
+
786
+ # Returns the string representation of the object
787
+ # @return [String] String presentation of the object
788
+ def to_s
789
+ to_hash.to_s
790
+ end
791
+
792
+ # to_body is an alias to to_hash (backward compatibility)
793
+ # @return [Hash] Returns the object in the form of hash
794
+ def to_body
795
+ to_hash
796
+ end
797
+
798
+ # Returns the object in the form of hash
799
+ # @return [Hash] Returns the object in the form of hash
800
+ def to_hash(downcase: false)
801
+ hash = {}
802
+ self.class.attribute_map.each_pair do |attr, param|
803
+ value = self.send(attr)
804
+ next if value.nil?
805
+ key = downcase ? attr : param
806
+ hash[key] = _to_hash(value, downcase: downcase)
807
+ end
808
+ hash
809
+ end
810
+
811
+ # Returns the object in the form of hash with snake_case
812
+ def to_attributes
813
+ to_hash(downcase: true)
814
+ end
815
+
816
+ # Outputs non-array value in the form of hash
817
+ # For object, use to_hash. Otherwise, just return the value
818
+ # @param [Object] value Any valid value
819
+ # @return [Hash] Returns the value in the form of hash
820
+ def _to_hash(value, downcase: false)
821
+ if value.is_a?(Array)
822
+ value.map do |v|
823
+ v.to_hash(downcase: downcase)
824
+ end
825
+ elsif value.is_a?(Hash)
826
+ {}.tap do |hash|
827
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
828
+ end
829
+ elsif value.respond_to? :to_hash
830
+ value.to_hash(downcase: downcase)
831
+ else
832
+ value
833
+ end
834
+ end
835
+
836
+ def parse_date(datestring)
837
+ if datestring.include?('Date')
838
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
839
+ original, date, timezone = *date_pattern.match(datestring)
840
+ date = (date.to_i / 1000)
841
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
842
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
843
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
844
+ else # handle date 'types' for small subset of payroll API's
845
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
846
+ end
847
+ end
848
+ end
849
+ end