xero-ruby 3.0.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +257 -222
  3. data/lib/xero-ruby/api/accounting_api.rb +305 -152
  4. data/lib/xero-ruby/api/app_store_api.rb +87 -0
  5. data/lib/xero-ruby/api_client.rb +34 -5
  6. data/lib/xero-ruby/configuration.rb +2 -0
  7. data/lib/xero-ruby/models/accounting/account.rb +2 -0
  8. data/lib/xero-ruby/models/accounting/accounts.rb +2 -0
  9. data/lib/xero-ruby/models/accounting/accounts_payable.rb +2 -0
  10. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +2 -0
  11. data/lib/xero-ruby/models/accounting/action.rb +2 -0
  12. data/lib/xero-ruby/models/accounting/actions.rb +2 -0
  13. data/lib/xero-ruby/models/accounting/address.rb +2 -0
  14. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +2 -0
  15. data/lib/xero-ruby/models/accounting/allocation.rb +2 -0
  16. data/lib/xero-ruby/models/accounting/allocations.rb +2 -0
  17. data/lib/xero-ruby/models/accounting/attachment.rb +2 -0
  18. data/lib/xero-ruby/models/accounting/attachments.rb +2 -0
  19. data/lib/xero-ruby/models/accounting/balance_details.rb +2 -0
  20. data/lib/xero-ruby/models/accounting/balances.rb +2 -0
  21. data/lib/xero-ruby/models/accounting/bank_transaction.rb +2 -0
  22. data/lib/xero-ruby/models/accounting/bank_transactions.rb +2 -0
  23. data/lib/xero-ruby/models/accounting/bank_transfer.rb +2 -0
  24. data/lib/xero-ruby/models/accounting/bank_transfers.rb +2 -0
  25. data/lib/xero-ruby/models/accounting/batch_payment.rb +2 -0
  26. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +2 -0
  27. data/lib/xero-ruby/models/accounting/batch_payments.rb +2 -0
  28. data/lib/xero-ruby/models/accounting/bill.rb +2 -0
  29. data/lib/xero-ruby/models/accounting/branding_theme.rb +2 -0
  30. data/lib/xero-ruby/models/accounting/branding_themes.rb +2 -0
  31. data/lib/xero-ruby/models/accounting/budget.rb +327 -0
  32. data/lib/xero-ruby/models/accounting/budget_balance.rb +267 -0
  33. data/lib/xero-ruby/models/accounting/budget_line.rb +244 -0
  34. data/lib/xero-ruby/models/accounting/budgets.rb +224 -0
  35. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +2 -0
  36. data/lib/xero-ruby/models/accounting/cis_org_settings.rb +2 -0
  37. data/lib/xero-ruby/models/accounting/cis_setting.rb +2 -0
  38. data/lib/xero-ruby/models/accounting/cis_settings.rb +2 -0
  39. data/lib/xero-ruby/models/accounting/contact.rb +2 -0
  40. data/lib/xero-ruby/models/accounting/contact_group.rb +2 -0
  41. data/lib/xero-ruby/models/accounting/contact_groups.rb +2 -0
  42. data/lib/xero-ruby/models/accounting/contact_person.rb +2 -0
  43. data/lib/xero-ruby/models/accounting/contacts.rb +2 -0
  44. data/lib/xero-ruby/models/accounting/conversion_balances.rb +2 -0
  45. data/lib/xero-ruby/models/accounting/conversion_date.rb +2 -0
  46. data/lib/xero-ruby/models/accounting/credit_note.rb +2 -0
  47. data/lib/xero-ruby/models/accounting/credit_notes.rb +2 -0
  48. data/lib/xero-ruby/models/accounting/currencies.rb +2 -0
  49. data/lib/xero-ruby/models/accounting/currency.rb +2 -0
  50. data/lib/xero-ruby/models/accounting/element.rb +2 -0
  51. data/lib/xero-ruby/models/accounting/employee.rb +2 -0
  52. data/lib/xero-ruby/models/accounting/employees.rb +2 -0
  53. data/lib/xero-ruby/models/accounting/error.rb +2 -0
  54. data/lib/xero-ruby/models/accounting/expense_claim.rb +2 -0
  55. data/lib/xero-ruby/models/accounting/expense_claims.rb +2 -0
  56. data/lib/xero-ruby/models/accounting/external_link.rb +2 -0
  57. data/lib/xero-ruby/models/accounting/history_record.rb +2 -0
  58. data/lib/xero-ruby/models/accounting/history_records.rb +2 -0
  59. data/lib/xero-ruby/models/accounting/import_summary.rb +2 -0
  60. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +2 -0
  61. data/lib/xero-ruby/models/accounting/import_summary_object.rb +2 -0
  62. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +2 -0
  63. data/lib/xero-ruby/models/accounting/invoice.rb +2 -0
  64. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +2 -0
  65. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +2 -0
  66. data/lib/xero-ruby/models/accounting/invoices.rb +2 -0
  67. data/lib/xero-ruby/models/accounting/item.rb +2 -0
  68. data/lib/xero-ruby/models/accounting/items.rb +2 -0
  69. data/lib/xero-ruby/models/accounting/journal.rb +2 -0
  70. data/lib/xero-ruby/models/accounting/journal_line.rb +2 -0
  71. data/lib/xero-ruby/models/accounting/journals.rb +2 -0
  72. data/lib/xero-ruby/models/accounting/line_item.rb +13 -1
  73. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +2 -0
  74. data/lib/xero-ruby/models/accounting/linked_transaction.rb +2 -0
  75. data/lib/xero-ruby/models/accounting/linked_transactions.rb +2 -0
  76. data/lib/xero-ruby/models/accounting/manual_journal.rb +2 -0
  77. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +2 -0
  78. data/lib/xero-ruby/models/accounting/manual_journals.rb +2 -0
  79. data/lib/xero-ruby/models/accounting/online_invoice.rb +2 -0
  80. data/lib/xero-ruby/models/accounting/online_invoices.rb +2 -0
  81. data/lib/xero-ruby/models/accounting/organisation.rb +2 -0
  82. data/lib/xero-ruby/models/accounting/organisations.rb +2 -0
  83. data/lib/xero-ruby/models/accounting/overpayment.rb +2 -0
  84. data/lib/xero-ruby/models/accounting/overpayments.rb +2 -0
  85. data/lib/xero-ruby/models/accounting/payment.rb +13 -1
  86. data/lib/xero-ruby/models/accounting/payment_delete.rb +2 -0
  87. data/lib/xero-ruby/models/accounting/payment_service.rb +2 -0
  88. data/lib/xero-ruby/models/accounting/payment_services.rb +2 -0
  89. data/lib/xero-ruby/models/accounting/payment_term.rb +2 -0
  90. data/lib/xero-ruby/models/accounting/payments.rb +2 -0
  91. data/lib/xero-ruby/models/accounting/phone.rb +2 -0
  92. data/lib/xero-ruby/models/accounting/prepayment.rb +2 -0
  93. data/lib/xero-ruby/models/accounting/prepayments.rb +2 -0
  94. data/lib/xero-ruby/models/accounting/purchase.rb +2 -0
  95. data/lib/xero-ruby/models/accounting/purchase_order.rb +2 -0
  96. data/lib/xero-ruby/models/accounting/purchase_orders.rb +2 -0
  97. data/lib/xero-ruby/models/accounting/quote.rb +2 -0
  98. data/lib/xero-ruby/models/accounting/quotes.rb +2 -0
  99. data/lib/xero-ruby/models/accounting/receipt.rb +2 -0
  100. data/lib/xero-ruby/models/accounting/receipts.rb +2 -0
  101. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +2 -0
  102. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +2 -0
  103. data/lib/xero-ruby/models/accounting/report.rb +3 -11
  104. data/lib/xero-ruby/models/accounting/report_attribute.rb +2 -0
  105. data/lib/xero-ruby/models/accounting/report_cell.rb +2 -0
  106. data/lib/xero-ruby/models/accounting/report_fields.rb +2 -0
  107. data/lib/xero-ruby/models/accounting/report_row.rb +2 -0
  108. data/lib/xero-ruby/models/accounting/report_rows.rb +2 -0
  109. data/lib/xero-ruby/models/accounting/report_with_row.rb +3 -1
  110. data/lib/xero-ruby/models/accounting/report_with_rows.rb +2 -0
  111. data/lib/xero-ruby/models/accounting/reports.rb +2 -0
  112. data/lib/xero-ruby/models/accounting/request_empty.rb +2 -0
  113. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +2 -0
  114. data/lib/xero-ruby/models/accounting/schedule.rb +2 -0
  115. data/lib/xero-ruby/models/accounting/setup.rb +2 -0
  116. data/lib/xero-ruby/models/accounting/tax_component.rb +2 -0
  117. data/lib/xero-ruby/models/accounting/tax_rate.rb +2 -0
  118. data/lib/xero-ruby/models/accounting/tax_rates.rb +2 -0
  119. data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +2 -0
  120. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -0
  121. data/lib/xero-ruby/models/accounting/tracking_categories.rb +2 -0
  122. data/lib/xero-ruby/models/accounting/tracking_category.rb +2 -0
  123. data/lib/xero-ruby/models/accounting/tracking_option.rb +2 -0
  124. data/lib/xero-ruby/models/accounting/tracking_options.rb +2 -0
  125. data/lib/xero-ruby/models/accounting/user.rb +2 -0
  126. data/lib/xero-ruby/models/accounting/users.rb +2 -0
  127. data/lib/xero-ruby/models/accounting/validation_error.rb +2 -0
  128. data/lib/xero-ruby/models/app_store/plan.rb +310 -0
  129. data/lib/xero-ruby/models/app_store/price.rb +257 -0
  130. data/lib/xero-ruby/models/app_store/problem_details.rb +272 -0
  131. data/lib/xero-ruby/models/app_store/product.rb +278 -0
  132. data/lib/xero-ruby/models/app_store/subscription.rb +324 -0
  133. data/lib/xero-ruby/models/app_store/subscription_item.rb +292 -0
  134. data/lib/xero-ruby/models/assets/asset.rb +2 -0
  135. data/lib/xero-ruby/models/assets/asset_type.rb +2 -0
  136. data/lib/xero-ruby/models/assets/assets.rb +2 -0
  137. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +2 -0
  138. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +2 -0
  139. data/lib/xero-ruby/models/assets/error.rb +2 -0
  140. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +2 -0
  141. data/lib/xero-ruby/models/assets/pagination.rb +2 -0
  142. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +2 -0
  143. data/lib/xero-ruby/models/assets/setting.rb +2 -0
  144. data/lib/xero-ruby/models/files/association.rb +2 -0
  145. data/lib/xero-ruby/models/files/file_object.rb +2 -0
  146. data/lib/xero-ruby/models/files/files.rb +2 -0
  147. data/lib/xero-ruby/models/files/folder.rb +2 -0
  148. data/lib/xero-ruby/models/files/folders.rb +2 -0
  149. data/lib/xero-ruby/models/files/upload_object.rb +2 -0
  150. data/lib/xero-ruby/models/files/user.rb +2 -0
  151. data/lib/xero-ruby/models/payroll_au/account.rb +2 -0
  152. data/lib/xero-ruby/models/payroll_au/api_exception.rb +2 -0
  153. data/lib/xero-ruby/models/payroll_au/bank_account.rb +2 -0
  154. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +2 -0
  155. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +2 -0
  156. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +2 -0
  157. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +2 -0
  158. data/lib/xero-ruby/models/payroll_au/employee.rb +32 -1
  159. data/lib/xero-ruby/models/payroll_au/employees.rb +2 -0
  160. data/lib/xero-ruby/models/payroll_au/home_address.rb +2 -0
  161. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +2 -0
  162. data/lib/xero-ruby/models/payroll_au/leave_application.rb +2 -0
  163. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +2 -0
  164. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +2 -0
  165. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +2 -0
  166. data/lib/xero-ruby/models/payroll_au/leave_line.rb +2 -0
  167. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +2 -0
  168. data/lib/xero-ruby/models/payroll_au/leave_period.rb +2 -0
  169. data/lib/xero-ruby/models/payroll_au/leave_type.rb +2 -0
  170. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +2 -0
  171. data/lib/xero-ruby/models/payroll_au/pay_item.rb +2 -0
  172. data/lib/xero-ruby/models/payroll_au/pay_items.rb +2 -0
  173. data/lib/xero-ruby/models/payroll_au/pay_run.rb +2 -0
  174. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +2 -0
  175. data/lib/xero-ruby/models/payroll_au/pay_template.rb +2 -0
  176. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +13 -1
  177. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +2 -0
  178. data/lib/xero-ruby/models/payroll_au/payslip.rb +2 -0
  179. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +2 -0
  180. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +2 -0
  181. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +2 -0
  182. data/lib/xero-ruby/models/payroll_au/payslips.rb +2 -0
  183. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +2 -0
  184. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +2 -0
  185. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +2 -0
  186. data/lib/xero-ruby/models/payroll_au/settings.rb +2 -0
  187. data/lib/xero-ruby/models/payroll_au/settings_object.rb +2 -0
  188. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +2 -0
  189. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +2 -0
  190. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +2 -0
  191. data/lib/xero-ruby/models/payroll_au/super_fund.rb +2 -0
  192. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +2 -0
  193. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +2 -0
  194. data/lib/xero-ruby/models/payroll_au/super_funds.rb +2 -0
  195. data/lib/xero-ruby/models/payroll_au/super_line.rb +2 -0
  196. data/lib/xero-ruby/models/payroll_au/super_membership.rb +2 -0
  197. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +2 -0
  198. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +2 -0
  199. data/lib/xero-ruby/models/payroll_au/tax_line.rb +2 -0
  200. data/lib/xero-ruby/models/payroll_au/timesheet.rb +2 -0
  201. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +2 -0
  202. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +2 -0
  203. data/lib/xero-ruby/models/payroll_au/timesheets.rb +2 -0
  204. data/lib/xero-ruby/models/payroll_au/validation_error.rb +2 -0
  205. data/lib/xero-ruby/models/payroll_nz/account.rb +2 -0
  206. data/lib/xero-ruby/models/payroll_nz/accounts.rb +2 -0
  207. data/lib/xero-ruby/models/payroll_nz/address.rb +2 -0
  208. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +2 -0
  209. data/lib/xero-ruby/models/payroll_nz/benefit.rb +2 -0
  210. data/lib/xero-ruby/models/payroll_nz/deduction.rb +2 -0
  211. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +2 -0
  212. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +2 -0
  213. data/lib/xero-ruby/models/payroll_nz/deductions.rb +2 -0
  214. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +2 -0
  215. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +2 -0
  216. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +2 -0
  217. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +2 -0
  218. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +2 -0
  219. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +2 -0
  220. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +2 -0
  221. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +2 -0
  222. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +2 -0
  223. data/lib/xero-ruby/models/payroll_nz/employee.rb +2 -0
  224. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +2 -0
  225. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +2 -0
  226. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +2 -0
  227. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +2 -0
  228. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +2 -0
  229. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +2 -0
  230. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +2 -0
  231. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +2 -0
  232. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +2 -0
  233. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +2 -0
  234. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +2 -0
  235. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +2 -0
  236. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +2 -0
  237. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +2 -0
  238. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +2 -0
  239. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +2 -0
  240. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +2 -0
  241. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +2 -0
  242. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +2 -0
  243. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +2 -0
  244. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +2 -0
  245. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +2 -0
  246. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +2 -0
  247. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +2 -0
  248. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +2 -0
  249. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +2 -0
  250. data/lib/xero-ruby/models/payroll_nz/employees.rb +2 -0
  251. data/lib/xero-ruby/models/payroll_nz/employment.rb +2 -0
  252. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +2 -0
  253. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +2 -0
  254. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +2 -0
  255. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +2 -0
  256. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +2 -0
  257. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +2 -0
  258. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +2 -0
  259. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +2 -0
  260. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +2 -0
  261. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +2 -0
  262. data/lib/xero-ruby/models/payroll_nz/pagination.rb +2 -0
  263. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +2 -0
  264. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +2 -0
  265. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +2 -0
  266. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +2 -0
  267. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +2 -0
  268. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +2 -0
  269. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +2 -0
  270. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +2 -0
  271. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +2 -0
  272. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +2 -0
  273. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +2 -0
  274. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +2 -0
  275. data/lib/xero-ruby/models/payroll_nz/problem.rb +2 -0
  276. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +2 -0
  277. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +2 -0
  278. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +2 -0
  279. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +2 -0
  280. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +2 -0
  281. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +2 -0
  282. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +2 -0
  283. data/lib/xero-ruby/models/payroll_nz/settings.rb +2 -0
  284. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +2 -0
  285. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +2 -0
  286. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +2 -0
  287. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +2 -0
  288. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +2 -0
  289. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +2 -0
  290. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +2 -0
  291. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +2 -0
  292. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +2 -0
  293. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +2 -0
  294. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +2 -0
  295. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +2 -0
  296. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +2 -0
  297. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +2 -0
  298. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +2 -0
  299. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +2 -0
  300. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +2 -0
  301. data/lib/xero-ruby/models/payroll_uk/account.rb +2 -0
  302. data/lib/xero-ruby/models/payroll_uk/accounts.rb +2 -0
  303. data/lib/xero-ruby/models/payroll_uk/address.rb +2 -0
  304. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +2 -0
  305. data/lib/xero-ruby/models/payroll_uk/benefit.rb +2 -0
  306. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +2 -0
  307. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +2 -0
  308. data/lib/xero-ruby/models/payroll_uk/benefits.rb +2 -0
  309. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +2 -0
  310. data/lib/xero-ruby/models/payroll_uk/deduction.rb +2 -0
  311. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +2 -0
  312. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +2 -0
  313. data/lib/xero-ruby/models/payroll_uk/deductions.rb +2 -0
  314. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +2 -0
  315. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +2 -0
  316. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +2 -0
  317. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +2 -0
  318. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +5 -2
  319. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +2 -0
  320. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +2 -0
  321. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +2 -0
  322. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +2 -0
  323. data/lib/xero-ruby/models/payroll_uk/employee.rb +2 -0
  324. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +2 -0
  325. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +2 -0
  326. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +2 -0
  327. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +2 -0
  328. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +2 -0
  329. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +2 -0
  330. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +2 -0
  331. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +2 -0
  332. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +2 -0
  333. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +2 -0
  334. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +2 -0
  335. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +2 -0
  336. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +2 -0
  337. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +2 -0
  338. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +2 -0
  339. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +2 -0
  340. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +2 -0
  341. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +2 -0
  342. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +2 -0
  343. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +2 -0
  344. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +2 -0
  345. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +2 -0
  346. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +2 -0
  347. data/lib/xero-ruby/models/payroll_uk/employees.rb +2 -0
  348. data/lib/xero-ruby/models/payroll_uk/employment.rb +2 -0
  349. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +2 -0
  350. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +2 -0
  351. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +2 -0
  352. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +2 -0
  353. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +2 -0
  354. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +2 -0
  355. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +2 -0
  356. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +2 -0
  357. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +2 -0
  358. data/lib/xero-ruby/models/payroll_uk/pagination.rb +2 -0
  359. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +2 -0
  360. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +2 -0
  361. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +2 -0
  362. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +2 -0
  363. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +2 -0
  364. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +2 -0
  365. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +2 -0
  366. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +2 -0
  367. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +2 -0
  368. data/lib/xero-ruby/models/payroll_uk/payslip.rb +2 -0
  369. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +2 -0
  370. data/lib/xero-ruby/models/payroll_uk/payslips.rb +2 -0
  371. data/lib/xero-ruby/models/payroll_uk/problem.rb +2 -0
  372. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +2 -0
  373. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +2 -0
  374. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +2 -0
  375. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +2 -0
  376. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +2 -0
  377. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +2 -0
  378. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +2 -0
  379. data/lib/xero-ruby/models/payroll_uk/settings.rb +2 -0
  380. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +2 -0
  381. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +2 -0
  382. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +2 -0
  383. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +2 -0
  384. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +2 -0
  385. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +2 -0
  386. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +2 -0
  387. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +2 -0
  388. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +2 -0
  389. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +2 -0
  390. data/lib/xero-ruby/models/projects/amount.rb +2 -0
  391. data/lib/xero-ruby/models/projects/error.rb +2 -0
  392. data/lib/xero-ruby/models/projects/pagination.rb +2 -0
  393. data/lib/xero-ruby/models/projects/project.rb +2 -0
  394. data/lib/xero-ruby/models/projects/project_create_or_update.rb +2 -0
  395. data/lib/xero-ruby/models/projects/project_patch.rb +2 -0
  396. data/lib/xero-ruby/models/projects/project_user.rb +2 -0
  397. data/lib/xero-ruby/models/projects/project_users.rb +2 -0
  398. data/lib/xero-ruby/models/projects/projects.rb +2 -0
  399. data/lib/xero-ruby/models/projects/task.rb +2 -0
  400. data/lib/xero-ruby/models/projects/task_create_or_update.rb +2 -0
  401. data/lib/xero-ruby/models/projects/tasks.rb +2 -0
  402. data/lib/xero-ruby/models/projects/time_entries.rb +2 -0
  403. data/lib/xero-ruby/models/projects/time_entry.rb +2 -0
  404. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +2 -0
  405. data/lib/xero-ruby/version.rb +2 -2
  406. data/lib/xero-ruby.rb +11 -0
  407. data/spec/api_client_spec.rb +25 -2
  408. data/spec/app_store/api/app_store_api_spec.rb +45 -0
  409. data/spec/app_store/models/plan_spec.rb +62 -0
  410. data/spec/app_store/models/price_spec.rb +52 -0
  411. data/spec/app_store/models/problem_details_spec.rb +70 -0
  412. data/spec/app_store/models/product_spec.rb +56 -0
  413. data/spec/app_store/models/subscription_item_spec.rb +70 -0
  414. data/spec/app_store/models/subscription_spec.rb +82 -0
  415. metadata +30 -5
@@ -326,6 +326,8 @@ module XeroRuby::Accounting
326
326
  original, date, timezone = *date_pattern.match(datestring)
327
327
  date = (date.to_i / 1000)
328
328
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
329
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
330
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
329
331
  else # handle date 'types' for small subset of payroll API's
330
332
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
331
333
  end
@@ -465,6 +465,8 @@ module XeroRuby::Accounting
465
465
  original, date, timezone = *date_pattern.match(datestring)
466
466
  date = (date.to_i / 1000)
467
467
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
468
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
469
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
468
470
  else # handle date 'types' for small subset of payroll API's
469
471
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
470
472
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -242,6 +242,8 @@ module XeroRuby::Accounting
242
242
  original, date, timezone = *date_pattern.match(datestring)
243
243
  date = (date.to_i / 1000)
244
244
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
245
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
246
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
245
247
  else # handle date 'types' for small subset of payroll API's
246
248
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
247
249
  end
@@ -531,6 +531,8 @@ module XeroRuby::Accounting
531
531
  original, date, timezone = *date_pattern.match(datestring)
532
532
  date = (date.to_i / 1000)
533
533
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
534
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
535
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
534
536
  else # handle date 'types' for small subset of payroll API's
535
537
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
536
538
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -521,6 +521,8 @@ module XeroRuby::Accounting
521
521
  original, date, timezone = *date_pattern.match(datestring)
522
522
  date = (date.to_i / 1000)
523
523
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
524
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
525
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
524
526
  else # handle date 'types' for small subset of payroll API's
525
527
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
526
528
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -431,6 +431,8 @@ module XeroRuby::Accounting
431
431
  original, date, timezone = *date_pattern.match(datestring)
432
432
  date = (date.to_i / 1000)
433
433
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
434
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
435
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
434
436
  else # handle date 'types' for small subset of payroll API's
435
437
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
436
438
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -419,6 +419,8 @@ module XeroRuby::Accounting
419
419
  original, date, timezone = *date_pattern.match(datestring)
420
420
  date = (date.to_i / 1000)
421
421
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
422
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
423
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
422
424
  else # handle date 'types' for small subset of payroll API's
423
425
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
424
426
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -16,9 +16,6 @@ module XeroRuby::Accounting
16
16
  require 'bigdecimal'
17
17
 
18
18
  class Report
19
- # See Prepayment Types
20
- attr_accessor :report_id
21
-
22
19
  # See Prepayment Types
23
20
  attr_accessor :report_name
24
21
 
@@ -63,7 +60,6 @@ module XeroRuby::Accounting
63
60
  # Attribute mapping from ruby-style variable name to JSON key.
64
61
  def self.attribute_map
65
62
  {
66
- :'report_id' => :'ReportID',
67
63
  :'report_name' => :'ReportName',
68
64
  :'report_type' => :'ReportType',
69
65
  :'report_title' => :'ReportTitle',
@@ -76,7 +72,6 @@ module XeroRuby::Accounting
76
72
  # Attribute type mapping.
77
73
  def self.openapi_types
78
74
  {
79
- :'report_id' => :'String',
80
75
  :'report_name' => :'String',
81
76
  :'report_type' => :'String',
82
77
  :'report_title' => :'String',
@@ -101,10 +96,6 @@ module XeroRuby::Accounting
101
96
  h[k.to_sym] = v
102
97
  }
103
98
 
104
- if attributes.key?(:'report_id')
105
- self.report_id = attributes[:'report_id']
106
- end
107
-
108
99
  if attributes.key?(:'report_name')
109
100
  self.report_name = attributes[:'report_name']
110
101
  end
@@ -162,7 +153,6 @@ module XeroRuby::Accounting
162
153
  def ==(o)
163
154
  return true if self.equal?(o)
164
155
  self.class == o.class &&
165
- report_id == o.report_id &&
166
156
  report_name == o.report_name &&
167
157
  report_type == o.report_type &&
168
158
  report_title == o.report_title &&
@@ -180,7 +170,7 @@ module XeroRuby::Accounting
180
170
  # Calculates hash code according to all attributes.
181
171
  # @return [Integer] Hash code
182
172
  def hash
183
- [report_id, report_name, report_type, report_title, report_date, updated_date_utc, contacts].hash
173
+ [report_name, report_type, report_title, report_date, updated_date_utc, contacts].hash
184
174
  end
185
175
 
186
176
  # Builds the object from hash
@@ -309,6 +299,8 @@ module XeroRuby::Accounting
309
299
  original, date, timezone = *date_pattern.match(datestring)
310
300
  date = (date.to_i / 1000)
311
301
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
302
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
303
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
312
304
  else # handle date 'types' for small subset of payroll API's
313
305
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
314
306
  end
@@ -222,6 +222,8 @@ module XeroRuby::Accounting
222
222
  original, date, timezone = *date_pattern.match(datestring)
223
223
  date = (date.to_i / 1000)
224
224
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
225
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
226
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
225
227
  else # handle date 'types' for small subset of payroll API's
226
228
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
227
229
  end
@@ -224,6 +224,8 @@ module XeroRuby::Accounting
224
224
  original, date, timezone = *date_pattern.match(datestring)
225
225
  date = (date.to_i / 1000)
226
226
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
227
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
228
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
227
229
  else # handle date 'types' for small subset of payroll API's
228
230
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
229
231
  end
@@ -232,6 +232,8 @@ module XeroRuby::Accounting
232
232
  original, date, timezone = *date_pattern.match(datestring)
233
233
  date = (date.to_i / 1000)
234
234
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
235
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
236
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
235
237
  else # handle date 'types' for small subset of payroll API's
236
238
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
237
239
  end
@@ -234,6 +234,8 @@ module XeroRuby::Accounting
234
234
  original, date, timezone = *date_pattern.match(datestring)
235
235
  date = (date.to_i / 1000)
236
236
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
237
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
238
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
237
239
  else # handle date 'types' for small subset of payroll API's
238
240
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
239
241
  end
@@ -246,6 +246,8 @@ module XeroRuby::Accounting
246
246
  original, date, timezone = *date_pattern.match(datestring)
247
247
  date = (date.to_i / 1000)
248
248
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
249
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
250
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
249
251
  else # handle date 'types' for small subset of payroll API's
250
252
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
251
253
  end
@@ -16,7 +16,7 @@ module XeroRuby::Accounting
16
16
  require 'bigdecimal'
17
17
 
18
18
  class ReportWithRow
19
- # Report id
19
+ # ID of the Report
20
20
  attr_accessor :report_id
21
21
 
22
22
  # Name of the report
@@ -298,6 +298,8 @@ module XeroRuby::Accounting
298
298
  original, date, timezone = *date_pattern.match(datestring)
299
299
  date = (date.to_i / 1000)
300
300
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
301
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
302
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
301
303
  else # handle date 'types' for small subset of payroll API's
302
304
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
303
305
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -212,6 +212,8 @@ module XeroRuby::Accounting
212
212
  original, date, timezone = *date_pattern.match(datestring)
213
213
  date = (date.to_i / 1000)
214
214
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
215
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
216
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
215
217
  else # handle date 'types' for small subset of payroll API's
216
218
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  end
@@ -222,6 +222,8 @@ module XeroRuby::Accounting
222
222
  original, date, timezone = *date_pattern.match(datestring)
223
223
  date = (date.to_i / 1000)
224
224
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
225
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
226
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
225
227
  else # handle date 'types' for small subset of payroll API's
226
228
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
227
229
  end
@@ -326,6 +326,8 @@ module XeroRuby::Accounting
326
326
  original, date, timezone = *date_pattern.match(datestring)
327
327
  date = (date.to_i / 1000)
328
328
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
329
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
330
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
329
331
  else # handle date 'types' for small subset of payroll API's
330
332
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
331
333
  end
@@ -236,6 +236,8 @@ module XeroRuby::Accounting
236
236
  original, date, timezone = *date_pattern.match(datestring)
237
237
  date = (date.to_i / 1000)
238
238
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
239
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
240
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
239
241
  else # handle date 'types' for small subset of payroll API's
240
242
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
241
243
  end
@@ -242,6 +242,8 @@ module XeroRuby::Accounting
242
242
  original, date, timezone = *date_pattern.match(datestring)
243
243
  date = (date.to_i / 1000)
244
244
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
245
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
246
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
245
247
  else # handle date 'types' for small subset of payroll API's
246
248
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
247
249
  end
@@ -448,6 +448,8 @@ module XeroRuby::Accounting
448
448
  original, date, timezone = *date_pattern.match(datestring)
449
449
  date = (date.to_i / 1000)
450
450
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
451
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
452
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
451
453
  else # handle date 'types' for small subset of payroll API's
452
454
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
453
455
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -422,6 +422,8 @@ module XeroRuby::Accounting
422
422
  original, date, timezone = *date_pattern.match(datestring)
423
423
  date = (date.to_i / 1000)
424
424
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
425
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
426
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
425
427
  else # handle date 'types' for small subset of payroll API's
426
428
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
427
429
  end
@@ -122,6 +122,7 @@ module XeroRuby::Accounting
122
122
  HAWAIIANSTANDARDTIME = "HAWAIIANSTANDARDTIME".freeze
123
123
  UTC11 = "UTC11".freeze
124
124
  DATELINESTANDARDTIME = "DATELINESTANDARDTIME".freeze
125
+ EASTERISLANDSTANDARDTIME = "EASTERISLANDSTANDARDTIME".freeze
125
126
 
126
127
  # Builds the enum from string
127
128
  # @param [String] The enum value in the form of the string
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -331,6 +331,8 @@ module XeroRuby::Accounting
331
331
  original, date, timezone = *date_pattern.match(datestring)
332
332
  date = (date.to_i / 1000)
333
333
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
334
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
335
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
334
336
  else # handle date 'types' for small subset of payroll API's
335
337
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
336
338
  end
@@ -294,6 +294,8 @@ module XeroRuby::Accounting
294
294
  original, date, timezone = *date_pattern.match(datestring)
295
295
  date = (date.to_i / 1000)
296
296
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
297
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
298
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
297
299
  else # handle date 'types' for small subset of payroll API's
298
300
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
299
301
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -313,6 +313,8 @@ module XeroRuby::Accounting
313
313
  original, date, timezone = *date_pattern.match(datestring)
314
314
  date = (date.to_i / 1000)
315
315
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
316
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
317
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
316
318
  else # handle date 'types' for small subset of payroll API's
317
319
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
318
320
  end
@@ -214,6 +214,8 @@ module XeroRuby::Accounting
214
214
  original, date, timezone = *date_pattern.match(datestring)
215
215
  date = (date.to_i / 1000)
216
216
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
217
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
218
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  else # handle date 'types' for small subset of payroll API's
218
220
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
219
221
  end
@@ -212,6 +212,8 @@ module XeroRuby::Accounting
212
212
  original, date, timezone = *date_pattern.match(datestring)
213
213
  date = (date.to_i / 1000)
214
214
  Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
215
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
216
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
215
217
  else # handle date 'types' for small subset of payroll API's
216
218
  Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
217
219
  end
@@ -0,0 +1,310 @@
1
+ =begin
2
+ #Xero AppStore API
3
+
4
+ #These endpoints are for Xero Partners to interact with the App Store Billing platform
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::AppStore
16
+ require 'bigdecimal'
17
+
18
+ class Plan
19
+ # The unique identifier of the plan
20
+ attr_accessor :id
21
+
22
+ # The name of the plan. It is used in the invoice line item description.
23
+ attr_accessor :name
24
+
25
+ # Status of the plan. Available statuses are ACTIVE, PENDING_ACTIVATION.
26
+ attr_accessor :status
27
+ ACTIVE = "ACTIVE".freeze
28
+ PENDING_ACTIVATION = "PENDING_ACTIVATION".freeze
29
+
30
+ # List of the subscription items belonging to the plan. It does not include cancelled subscription items.
31
+ attr_accessor :subscription_items
32
+
33
+ class EnumAttributeValidator
34
+ attr_reader :datatype
35
+ attr_reader :allowable_values
36
+
37
+ def initialize(datatype, allowable_values)
38
+ @allowable_values = allowable_values.map do |value|
39
+ case datatype.to_s
40
+ when /Integer/i
41
+ value.to_i
42
+ when /Float/i
43
+ value.to_f
44
+ else
45
+ value
46
+ end
47
+ end
48
+ end
49
+
50
+ def valid?(value)
51
+ !value || allowable_values.include?(value)
52
+ end
53
+ end
54
+
55
+ # Attribute mapping from ruby-style variable name to JSON key.
56
+ def self.attribute_map
57
+ {
58
+ :'id' => :'id',
59
+ :'name' => :'name',
60
+ :'status' => :'status',
61
+ :'subscription_items' => :'subscriptionItems'
62
+ }
63
+ end
64
+
65
+ # Attribute type mapping.
66
+ def self.openapi_types
67
+ {
68
+ :'id' => :'String',
69
+ :'name' => :'String',
70
+ :'status' => :'String',
71
+ :'subscription_items' => :'Array<SubscriptionItem>'
72
+ }
73
+ end
74
+
75
+ # Initializes the object
76
+ # @param [Hash] attributes Model attributes in the form of hash
77
+ def initialize(attributes = {})
78
+ if (!attributes.is_a?(Hash))
79
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::AppStore::Plan` initialize method"
80
+ end
81
+
82
+ # check to see if the attribute exists and convert string to symbol for hash key
83
+ attributes = attributes.each_with_object({}) { |(k, v), h|
84
+ if (!self.class.attribute_map.key?(k.to_sym))
85
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::AppStore::Plan`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ end
87
+ h[k.to_sym] = v
88
+ }
89
+
90
+ if attributes.key?(:'id')
91
+ self.id = attributes[:'id']
92
+ end
93
+
94
+ if attributes.key?(:'name')
95
+ self.name = attributes[:'name']
96
+ end
97
+
98
+ if attributes.key?(:'status')
99
+ self.status = attributes[:'status']
100
+ end
101
+
102
+ if attributes.key?(:'subscription_items')
103
+ if (value = attributes[:'subscription_items']).is_a?(Array)
104
+ self.subscription_items = value
105
+ end
106
+ end
107
+ end
108
+
109
+ # Show invalid properties with the reasons. Usually used together with valid?
110
+ # @return Array for valid properties with the reasons
111
+ def list_invalid_properties
112
+ invalid_properties = Array.new
113
+ if @id.nil?
114
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
115
+ end
116
+
117
+ if @name.nil?
118
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
119
+ end
120
+
121
+ if @status.nil?
122
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
123
+ end
124
+
125
+ if @subscription_items.nil?
126
+ invalid_properties.push('invalid value for "subscription_items", subscription_items cannot be nil.')
127
+ end
128
+
129
+ invalid_properties
130
+ end
131
+
132
+ # Check to see if the all the properties in the model are valid
133
+ # @return true if the model is valid
134
+ def valid?
135
+ return false if @id.nil?
136
+ return false if @name.nil?
137
+ return false if @status.nil?
138
+ status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "PENDING_ACTIVATION"])
139
+ return false unless status_validator.valid?(@status)
140
+ return false if @subscription_items.nil?
141
+ true
142
+ end
143
+
144
+ # Custom attribute writer method checking allowed values (enum).
145
+ # @param [Object] status Object to be assigned
146
+ def status=(status)
147
+ validator = EnumAttributeValidator.new('String', ["ACTIVE", "PENDING_ACTIVATION"])
148
+ unless validator.valid?(status)
149
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
150
+ end
151
+ @status = status
152
+ end
153
+
154
+ # Checks equality by comparing each attribute.
155
+ # @param [Object] Object to be compared
156
+ def ==(o)
157
+ return true if self.equal?(o)
158
+ self.class == o.class &&
159
+ id == o.id &&
160
+ name == o.name &&
161
+ status == o.status &&
162
+ subscription_items == o.subscription_items
163
+ end
164
+
165
+ # @see the `==` method
166
+ # @param [Object] Object to be compared
167
+ def eql?(o)
168
+ self == o
169
+ end
170
+
171
+ # Calculates hash code according to all attributes.
172
+ # @return [Integer] Hash code
173
+ def hash
174
+ [id, name, status, subscription_items].hash
175
+ end
176
+
177
+ # Builds the object from hash
178
+ # @param [Hash] attributes Model attributes in the form of hash
179
+ # @return [Object] Returns the model itself
180
+ def self.build_from_hash(attributes)
181
+ new.build_from_hash(attributes)
182
+ end
183
+
184
+ # Builds the object from hash
185
+ # @param [Hash] attributes Model attributes in the form of hash
186
+ # @return [Object] Returns the model itself
187
+ def build_from_hash(attributes)
188
+ return nil unless attributes.is_a?(Hash)
189
+ self.class.openapi_types.each_pair do |key, type|
190
+ if type =~ /\AArray<(.*)>/i
191
+ # check to ensure the input is an array given that the attribute
192
+ # is documented as an array but the input is not
193
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
194
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
195
+ end
196
+ elsif !attributes[self.class.attribute_map[key]].nil?
197
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
198
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
199
+ end
200
+
201
+ self
202
+ end
203
+
204
+ # Deserializes the data based on type
205
+ # @param string type Data type
206
+ # @param string value Value to be deserialized
207
+ # @return [Object] Deserialized data
208
+ def _deserialize(type, value)
209
+ case type.to_sym
210
+ when :DateTime
211
+ DateTime.parse(parse_date(value))
212
+ when :Date
213
+ Date.parse(parse_date(value))
214
+ when :String
215
+ value.to_s
216
+ when :Integer
217
+ value.to_i
218
+ when :Float
219
+ value.to_f
220
+ when :BigDecimal
221
+ BigDecimal(value.to_s)
222
+ when :Boolean
223
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
224
+ true
225
+ else
226
+ false
227
+ end
228
+ when :Object
229
+ # generic object (usually a Hash), return directly
230
+ value
231
+ when /\AArray<(?<inner_type>.+)>\z/
232
+ inner_type = Regexp.last_match[:inner_type]
233
+ value.map { |v| _deserialize(inner_type, v) }
234
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
235
+ k_type = Regexp.last_match[:k_type]
236
+ v_type = Regexp.last_match[:v_type]
237
+ {}.tap do |hash|
238
+ value.each do |k, v|
239
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
240
+ end
241
+ end
242
+ else # model
243
+ XeroRuby::AppStore.const_get(type).build_from_hash(value)
244
+ end
245
+ end
246
+
247
+ # Returns the string representation of the object
248
+ # @return [String] String presentation of the object
249
+ def to_s
250
+ to_hash.to_s
251
+ end
252
+
253
+ # to_body is an alias to to_hash (backward compatibility)
254
+ # @return [Hash] Returns the object in the form of hash
255
+ def to_body
256
+ to_hash
257
+ end
258
+
259
+ # Returns the object in the form of hash
260
+ # @return [Hash] Returns the object in the form of hash
261
+ def to_hash(downcase: false)
262
+ hash = {}
263
+ self.class.attribute_map.each_pair do |attr, param|
264
+ value = self.send(attr)
265
+ next if value.nil?
266
+ key = downcase ? attr : param
267
+ hash[key] = _to_hash(value, downcase: downcase)
268
+ end
269
+ hash
270
+ end
271
+
272
+ # Returns the object in the form of hash with snake_case
273
+ def to_attributes
274
+ to_hash(downcase: true)
275
+ end
276
+
277
+ # Outputs non-array value in the form of hash
278
+ # For object, use to_hash. Otherwise, just return the value
279
+ # @param [Object] value Any valid value
280
+ # @return [Hash] Returns the value in the form of hash
281
+ def _to_hash(value, downcase: false)
282
+ if value.is_a?(Array)
283
+ value.map do |v|
284
+ v.to_hash(downcase: downcase)
285
+ end
286
+ elsif value.is_a?(Hash)
287
+ {}.tap do |hash|
288
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
289
+ end
290
+ elsif value.respond_to? :to_hash
291
+ value.to_hash(downcase: downcase)
292
+ else
293
+ value
294
+ end
295
+ end
296
+
297
+ def parse_date(datestring)
298
+ if datestring.include?('Date')
299
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
300
+ original, date, timezone = *date_pattern.match(datestring)
301
+ date = (date.to_i / 1000)
302
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
303
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
304
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
305
+ else # handle date 'types' for small subset of payroll API's
306
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
307
+ end
308
+ end
309
+ end
310
+ end