xero-ruby 1.0 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (343) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +43 -3
  3. data/build_notes.md +21 -0
  4. data/docs/accounting/AccountingApi.md +1514 -722
  5. data/docs/accounting/Allocation.md +11 -1
  6. data/docs/accounting/BankTransfer.md +1 -1
  7. data/docs/accounting/BatchPayment.md +1 -1
  8. data/docs/accounting/Contact.md +2 -2
  9. data/docs/accounting/CreditNote.md +2 -2
  10. data/docs/accounting/Invoice.md +2 -2
  11. data/docs/accounting/Journal.md +1 -1
  12. data/docs/accounting/ManualJournalLine.md +2 -0
  13. data/docs/accounting/Organisation.md +3 -1
  14. data/docs/accounting/Payment.md +6 -4
  15. data/docs/accounting/Quote.md +5 -1
  16. data/docs/accounting/Report.md +1 -1
  17. data/docs/accounting/{TenNinteyNineContact.md → TenNinetyNineContact.md} +2 -2
  18. data/docs/assets/AssetApi.md +40 -16
  19. data/docs/assets/AssetType.md +1 -1
  20. data/docs/projects/Amount.md +19 -0
  21. data/docs/projects/ChargeType.md +16 -0
  22. data/docs/projects/CurrencyCode.md +16 -0
  23. data/docs/projects/Error.md +19 -0
  24. data/docs/projects/Pagination.md +23 -0
  25. data/docs/projects/Project.md +59 -0
  26. data/docs/projects/ProjectApi.md +979 -0
  27. data/docs/projects/ProjectCreateOrUpdate.md +23 -0
  28. data/docs/projects/ProjectPatch.md +17 -0
  29. data/docs/projects/ProjectStatus.md +16 -0
  30. data/docs/projects/ProjectUser.md +21 -0
  31. data/docs/projects/ProjectUsers.md +19 -0
  32. data/docs/projects/Projects.md +19 -0
  33. data/docs/projects/Task.md +45 -0
  34. data/docs/projects/TaskCreateOrUpdate.md +23 -0
  35. data/docs/projects/Tasks.md +19 -0
  36. data/docs/projects/TimeEntries.md +19 -0
  37. data/docs/projects/TimeEntry.md +33 -0
  38. data/docs/projects/TimeEntryCreateOrUpdate.md +25 -0
  39. data/lib/xero-ruby.rb +22 -3
  40. data/lib/xero-ruby/api/accounting_api.rb +85 -9
  41. data/lib/xero-ruby/api/asset_api.rb +3 -3
  42. data/lib/xero-ruby/api/project_api.rb +1035 -0
  43. data/lib/xero-ruby/api_client.rb +103 -37
  44. data/lib/xero-ruby/api_error.rb +2 -2
  45. data/lib/xero-ruby/configuration.rb +4 -5
  46. data/lib/xero-ruby/models/accounting/account.rb +61 -20
  47. data/lib/xero-ruby/models/accounting/account_type.rb +2 -2
  48. data/lib/xero-ruby/models/accounting/accounts.rb +8 -3
  49. data/lib/xero-ruby/models/accounting/accounts_payable.rb +11 -5
  50. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +11 -5
  51. data/lib/xero-ruby/models/accounting/address.rb +19 -12
  52. data/lib/xero-ruby/models/accounting/allocation.rb +66 -9
  53. data/lib/xero-ruby/models/accounting/allocations.rb +8 -3
  54. data/lib/xero-ruby/models/accounting/attachment.rb +12 -8
  55. data/lib/xero-ruby/models/accounting/attachments.rb +8 -3
  56. data/lib/xero-ruby/models/accounting/balances.rb +9 -3
  57. data/lib/xero-ruby/models/accounting/bank_transaction.rb +43 -24
  58. data/lib/xero-ruby/models/accounting/bank_transactions.rb +8 -3
  59. data/lib/xero-ruby/models/accounting/bank_transfer.rb +20 -14
  60. data/lib/xero-ruby/models/accounting/bank_transfers.rb +8 -3
  61. data/lib/xero-ruby/models/accounting/batch_payment.rb +29 -19
  62. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +11 -7
  63. data/lib/xero-ruby/models/accounting/batch_payments.rb +8 -3
  64. data/lib/xero-ruby/models/accounting/bill.rb +8 -3
  65. data/lib/xero-ruby/models/accounting/branding_theme.rb +13 -8
  66. data/lib/xero-ruby/models/accounting/branding_themes.rb +8 -3
  67. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +9 -5
  68. data/lib/xero-ruby/models/accounting/cis_setting.rb +8 -4
  69. data/lib/xero-ruby/models/accounting/cis_settings.rb +8 -3
  70. data/lib/xero-ruby/models/accounting/contact.rb +51 -37
  71. data/lib/xero-ruby/models/accounting/contact_group.rb +12 -6
  72. data/lib/xero-ruby/models/accounting/contact_groups.rb +8 -3
  73. data/lib/xero-ruby/models/accounting/contact_person.rb +10 -6
  74. data/lib/xero-ruby/models/accounting/contacts.rb +8 -3
  75. data/lib/xero-ruby/models/accounting/country_code.rb +2 -2
  76. data/lib/xero-ruby/models/accounting/credit_note.rb +47 -30
  77. data/lib/xero-ruby/models/accounting/credit_notes.rb +8 -3
  78. data/lib/xero-ruby/models/accounting/currencies.rb +8 -3
  79. data/lib/xero-ruby/models/accounting/currency.rb +9 -4
  80. data/lib/xero-ruby/models/accounting/currency_code.rb +4 -4
  81. data/lib/xero-ruby/models/accounting/element.rb +14 -4
  82. data/lib/xero-ruby/models/accounting/employee.rb +17 -8
  83. data/lib/xero-ruby/models/accounting/employees.rb +8 -3
  84. data/lib/xero-ruby/models/accounting/error.rb +10 -6
  85. data/lib/xero-ruby/models/accounting/expense_claim.rb +26 -15
  86. data/lib/xero-ruby/models/accounting/expense_claims.rb +8 -3
  87. data/lib/xero-ruby/models/accounting/external_link.rb +14 -4
  88. data/lib/xero-ruby/models/accounting/history_record.rb +10 -6
  89. data/lib/xero-ruby/models/accounting/history_records.rb +8 -3
  90. data/lib/xero-ruby/models/accounting/invoice.rb +69 -46
  91. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +7 -3
  92. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +8 -3
  93. data/lib/xero-ruby/models/accounting/invoices.rb +8 -3
  94. data/lib/xero-ruby/models/accounting/item.rb +24 -18
  95. data/lib/xero-ruby/models/accounting/items.rb +8 -3
  96. data/lib/xero-ruby/models/accounting/journal.rb +40 -11
  97. data/lib/xero-ruby/models/accounting/journal_line.rb +21 -16
  98. data/lib/xero-ruby/models/accounting/journals.rb +8 -3
  99. data/lib/xero-ruby/models/accounting/line_amount_types.rb +2 -2
  100. data/lib/xero-ruby/models/accounting/line_item.rb +25 -21
  101. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +10 -6
  102. data/lib/xero-ruby/models/accounting/linked_transaction.rb +25 -13
  103. data/lib/xero-ruby/models/accounting/linked_transactions.rb +8 -3
  104. data/lib/xero-ruby/models/accounting/manual_journal.rb +25 -15
  105. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +26 -12
  106. data/lib/xero-ruby/models/accounting/manual_journals.rb +8 -3
  107. data/lib/xero-ruby/models/accounting/online_invoice.rb +7 -3
  108. data/lib/xero-ruby/models/accounting/online_invoices.rb +8 -3
  109. data/lib/xero-ruby/models/accounting/organisation.rb +122 -32
  110. data/lib/xero-ruby/models/accounting/organisations.rb +8 -3
  111. data/lib/xero-ruby/models/accounting/overpayment.rb +36 -23
  112. data/lib/xero-ruby/models/accounting/overpayments.rb +8 -3
  113. data/lib/xero-ruby/models/accounting/payment.rb +57 -24
  114. data/lib/xero-ruby/models/accounting/payment_delete.rb +7 -3
  115. data/lib/xero-ruby/models/accounting/payment_service.rb +12 -8
  116. data/lib/xero-ruby/models/accounting/payment_services.rb +8 -3
  117. data/lib/xero-ruby/models/accounting/payment_term.rb +9 -3
  118. data/lib/xero-ruby/models/accounting/payment_term_type.rb +2 -2
  119. data/lib/xero-ruby/models/accounting/payments.rb +8 -3
  120. data/lib/xero-ruby/models/accounting/phone.rb +16 -6
  121. data/lib/xero-ruby/models/accounting/prepayment.rb +37 -23
  122. data/lib/xero-ruby/models/accounting/prepayments.rb +8 -3
  123. data/lib/xero-ruby/models/accounting/purchase.rb +11 -7
  124. data/lib/xero-ruby/models/accounting/purchase_order.rb +45 -33
  125. data/lib/xero-ruby/models/accounting/purchase_orders.rb +8 -3
  126. data/lib/xero-ruby/models/accounting/quote.rb +58 -28
  127. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +2 -2
  128. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +3 -2
  129. data/lib/xero-ruby/models/accounting/quotes.rb +8 -3
  130. data/lib/xero-ruby/models/accounting/receipt.rb +32 -19
  131. data/lib/xero-ruby/models/accounting/receipts.rb +8 -3
  132. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +30 -17
  133. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +8 -3
  134. data/lib/xero-ruby/models/accounting/report.rb +15 -9
  135. data/lib/xero-ruby/models/accounting/report_attribute.rb +9 -3
  136. data/lib/xero-ruby/models/accounting/report_cell.rb +9 -3
  137. data/lib/xero-ruby/models/accounting/report_fields.rb +10 -3
  138. data/lib/xero-ruby/models/accounting/report_row.rb +10 -3
  139. data/lib/xero-ruby/models/accounting/report_rows.rb +11 -3
  140. data/lib/xero-ruby/models/accounting/report_with_row.rb +15 -9
  141. data/lib/xero-ruby/models/accounting/report_with_rows.rb +8 -3
  142. data/lib/xero-ruby/models/accounting/reports.rb +8 -3
  143. data/lib/xero-ruby/models/accounting/request_empty.rb +7 -3
  144. data/lib/xero-ruby/models/accounting/row_type.rb +2 -2
  145. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +8 -4
  146. data/lib/xero-ruby/models/accounting/schedule.rb +23 -11
  147. data/lib/xero-ruby/models/accounting/tax_component.rb +11 -7
  148. data/lib/xero-ruby/models/accounting/tax_rate.rb +100 -18
  149. data/lib/xero-ruby/models/accounting/tax_rates.rb +8 -3
  150. data/lib/xero-ruby/models/accounting/tax_type.rb +6 -2
  151. data/lib/xero-ruby/models/accounting/{ten_nintey_nine_contact.rb → ten_ninety_nine_contact.rb} +44 -40
  152. data/lib/xero-ruby/models/accounting/time_zone.rb +2 -2
  153. data/lib/xero-ruby/models/accounting/tracking_categories.rb +8 -3
  154. data/lib/xero-ruby/models/accounting/tracking_category.rb +15 -8
  155. data/lib/xero-ruby/models/accounting/tracking_option.rb +13 -6
  156. data/lib/xero-ruby/models/accounting/tracking_options.rb +8 -3
  157. data/lib/xero-ruby/models/accounting/user.rb +20 -9
  158. data/lib/xero-ruby/models/accounting/users.rb +8 -3
  159. data/lib/xero-ruby/models/accounting/validation_error.rb +7 -3
  160. data/lib/xero-ruby/models/assets/asset.rb +24 -17
  161. data/lib/xero-ruby/models/assets/asset_status.rb +2 -2
  162. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +2 -2
  163. data/lib/xero-ruby/models/assets/asset_type.rb +13 -13
  164. data/lib/xero-ruby/models/assets/assets.rb +9 -3
  165. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +19 -15
  166. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +26 -11
  167. data/lib/xero-ruby/models/assets/error.rb +11 -7
  168. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +12 -8
  169. data/lib/xero-ruby/models/assets/pagination.rb +11 -3
  170. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +11 -7
  171. data/lib/xero-ruby/models/assets/setting.rb +14 -10
  172. data/lib/xero-ruby/models/projects/amount.rb +218 -0
  173. data/lib/xero-ruby/models/projects/charge_type.rb +38 -0
  174. data/lib/xero-ruby/models/projects/currency_code.rb +199 -0
  175. data/lib/xero-ruby/models/projects/error.rb +218 -0
  176. data/lib/xero-ruby/models/projects/pagination.rb +238 -0
  177. data/lib/xero-ruby/models/projects/project.rb +423 -0
  178. data/lib/xero-ruby/models/projects/project_create_or_update.rb +243 -0
  179. data/lib/xero-ruby/models/projects/project_patch.rb +213 -0
  180. data/lib/xero-ruby/models/projects/project_status.rb +37 -0
  181. data/lib/xero-ruby/models/projects/project_user.rb +228 -0
  182. data/lib/xero-ruby/models/projects/project_users.rb +220 -0
  183. data/lib/xero-ruby/models/projects/projects.rb +220 -0
  184. data/lib/xero-ruby/models/projects/task.rb +385 -0
  185. data/lib/xero-ruby/models/projects/task_create_or_update.rb +253 -0
  186. data/lib/xero-ruby/models/projects/tasks.rb +220 -0
  187. data/lib/xero-ruby/models/projects/time_entries.rb +220 -0
  188. data/lib/xero-ruby/models/projects/time_entry.rb +324 -0
  189. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +268 -0
  190. data/lib/xero-ruby/version.rb +3 -3
  191. data/spec/accounting/api/accounting_api_spec.rb +19 -6
  192. data/spec/accounting/models/account_spec.rb +1 -1
  193. data/spec/accounting/models/account_type_spec.rb +1 -1
  194. data/spec/accounting/models/accounts_payable_spec.rb +1 -1
  195. data/spec/accounting/models/accounts_receivable_spec.rb +1 -1
  196. data/spec/accounting/models/accounts_spec.rb +1 -1
  197. data/spec/accounting/models/address_spec.rb +1 -1
  198. data/spec/accounting/models/allocation_spec.rb +1 -1
  199. data/spec/accounting/models/allocations_spec.rb +1 -1
  200. data/spec/accounting/models/attachment_spec.rb +1 -1
  201. data/spec/accounting/models/attachments_spec.rb +1 -1
  202. data/spec/accounting/models/balances_spec.rb +1 -1
  203. data/spec/accounting/models/bank_transaction_spec.rb +1 -1
  204. data/spec/accounting/models/bank_transactions_spec.rb +1 -1
  205. data/spec/accounting/models/bank_transfer_spec.rb +1 -1
  206. data/spec/accounting/models/bank_transfers_spec.rb +1 -1
  207. data/spec/accounting/models/batch_payment_details_spec.rb +1 -1
  208. data/spec/accounting/models/batch_payment_spec.rb +1 -1
  209. data/spec/accounting/models/batch_payments_spec.rb +1 -1
  210. data/spec/accounting/models/bill_spec.rb +1 -1
  211. data/spec/accounting/models/branding_theme_spec.rb +1 -1
  212. data/spec/accounting/models/branding_themes_spec.rb +1 -1
  213. data/spec/accounting/models/cis_org_setting_spec.rb +1 -1
  214. data/spec/accounting/models/cis_setting_spec.rb +1 -1
  215. data/spec/accounting/models/cis_settings_spec.rb +1 -1
  216. data/spec/accounting/models/contact_group_spec.rb +1 -1
  217. data/spec/accounting/models/contact_groups_spec.rb +1 -1
  218. data/spec/accounting/models/contact_person_spec.rb +1 -1
  219. data/spec/accounting/models/contact_spec.rb +1 -1
  220. data/spec/accounting/models/contacts_spec.rb +1 -1
  221. data/spec/accounting/models/country_code_spec.rb +1 -1
  222. data/spec/accounting/models/credit_note_spec.rb +1 -1
  223. data/spec/accounting/models/credit_notes_spec.rb +1 -1
  224. data/spec/accounting/models/currencies_spec.rb +1 -1
  225. data/spec/accounting/models/currency_code_spec.rb +1 -1
  226. data/spec/accounting/models/currency_spec.rb +1 -1
  227. data/spec/accounting/models/element_spec.rb +1 -1
  228. data/spec/accounting/models/employee_spec.rb +1 -1
  229. data/spec/accounting/models/employees_spec.rb +1 -1
  230. data/spec/accounting/models/error_spec.rb +1 -1
  231. data/spec/accounting/models/expense_claim_spec.rb +1 -1
  232. data/spec/accounting/models/expense_claims_spec.rb +1 -1
  233. data/spec/accounting/models/external_link_spec.rb +1 -1
  234. data/spec/accounting/models/history_record_spec.rb +1 -1
  235. data/spec/accounting/models/history_records_spec.rb +1 -1
  236. data/spec/accounting/models/invoice_reminder_spec.rb +1 -1
  237. data/spec/accounting/models/invoice_reminders_spec.rb +1 -1
  238. data/spec/accounting/models/invoice_spec.rb +1 -1
  239. data/spec/accounting/models/invoices_spec.rb +1 -1
  240. data/spec/accounting/models/item_spec.rb +1 -1
  241. data/spec/accounting/models/items_spec.rb +1 -1
  242. data/spec/accounting/models/journal_line_spec.rb +1 -1
  243. data/spec/accounting/models/journal_spec.rb +1 -1
  244. data/spec/accounting/models/journals_spec.rb +1 -1
  245. data/spec/accounting/models/line_amount_types_spec.rb +1 -1
  246. data/spec/accounting/models/line_item_spec.rb +1 -1
  247. data/spec/accounting/models/line_item_tracking_spec.rb +1 -1
  248. data/spec/accounting/models/linked_transaction_spec.rb +1 -1
  249. data/spec/accounting/models/linked_transactions_spec.rb +1 -1
  250. data/spec/accounting/models/manual_journal_line_spec.rb +1 -1
  251. data/spec/accounting/models/manual_journal_spec.rb +1 -1
  252. data/spec/accounting/models/manual_journals_spec.rb +1 -1
  253. data/spec/accounting/models/online_invoice_spec.rb +1 -1
  254. data/spec/accounting/models/online_invoices_spec.rb +1 -1
  255. data/spec/accounting/models/organisation_spec.rb +1 -1
  256. data/spec/accounting/models/organisations_spec.rb +1 -1
  257. data/spec/accounting/models/overpayment_spec.rb +1 -1
  258. data/spec/accounting/models/overpayments_spec.rb +1 -1
  259. data/spec/accounting/models/payment_delete_spec.rb +1 -1
  260. data/spec/accounting/models/payment_service_spec.rb +1 -1
  261. data/spec/accounting/models/payment_services_spec.rb +1 -1
  262. data/spec/accounting/models/payment_spec.rb +7 -1
  263. data/spec/accounting/models/payment_term_spec.rb +1 -1
  264. data/spec/accounting/models/payment_term_type_spec.rb +1 -1
  265. data/spec/accounting/models/payments_spec.rb +1 -1
  266. data/spec/accounting/models/phone_spec.rb +1 -1
  267. data/spec/accounting/models/prepayment_spec.rb +1 -1
  268. data/spec/accounting/models/prepayments_spec.rb +1 -1
  269. data/spec/accounting/models/purchase_order_spec.rb +1 -1
  270. data/spec/accounting/models/purchase_orders_spec.rb +1 -1
  271. data/spec/accounting/models/purchase_spec.rb +1 -1
  272. data/spec/accounting/models/quote_line_amount_types_spec.rb +1 -1
  273. data/spec/accounting/models/quote_spec.rb +1 -1
  274. data/spec/accounting/models/quote_status_codes_spec.rb +1 -1
  275. data/spec/accounting/models/quotes_spec.rb +1 -1
  276. data/spec/accounting/models/receipt_spec.rb +1 -1
  277. data/spec/accounting/models/receipts_spec.rb +1 -1
  278. data/spec/accounting/models/repeating_invoice_spec.rb +1 -1
  279. data/spec/accounting/models/repeating_invoices_spec.rb +1 -1
  280. data/spec/accounting/models/report_attribute_spec.rb +1 -1
  281. data/spec/accounting/models/report_cell_spec.rb +1 -1
  282. data/spec/accounting/models/report_fields_spec.rb +1 -1
  283. data/spec/accounting/models/report_row_spec.rb +1 -1
  284. data/spec/accounting/models/report_rows_spec.rb +1 -1
  285. data/spec/accounting/models/report_spec.rb +1 -1
  286. data/spec/accounting/models/report_with_row_spec.rb +1 -1
  287. data/spec/accounting/models/report_with_rows_spec.rb +1 -1
  288. data/spec/accounting/models/reports_spec.rb +1 -1
  289. data/spec/accounting/models/request_empty_spec.rb +1 -1
  290. data/spec/accounting/models/row_type_spec.rb +1 -1
  291. data/spec/accounting/models/sales_tracking_category_spec.rb +1 -1
  292. data/spec/accounting/models/schedule_spec.rb +1 -1
  293. data/spec/accounting/models/tax_component_spec.rb +1 -1
  294. data/spec/accounting/models/tax_rate_spec.rb +2 -2
  295. data/spec/accounting/models/tax_rates_spec.rb +1 -1
  296. data/spec/accounting/models/tax_type_spec.rb +1 -1
  297. data/spec/accounting/models/ten_nintey_nine_contact_spec.rb +7 -7
  298. data/spec/accounting/models/time_zone_spec.rb +1 -1
  299. data/spec/accounting/models/tracking_categories_spec.rb +1 -1
  300. data/spec/accounting/models/tracking_category_spec.rb +1 -1
  301. data/spec/accounting/models/tracking_option_spec.rb +1 -1
  302. data/spec/accounting/models/tracking_options_spec.rb +1 -1
  303. data/spec/accounting/models/user_spec.rb +1 -1
  304. data/spec/accounting/models/users_spec.rb +1 -1
  305. data/spec/accounting/models/validation_error_spec.rb +1 -1
  306. data/spec/api_client_spec.rb +120 -33
  307. data/spec/assets/api/asset_api_spec.rb +4 -4
  308. data/spec/assets/models/asset_spec.rb +1 -1
  309. data/spec/assets/models/asset_status_query_param_spec.rb +1 -1
  310. data/spec/assets/models/asset_status_spec.rb +1 -1
  311. data/spec/assets/models/asset_type_spec.rb +1 -1
  312. data/spec/assets/models/assets_spec.rb +1 -1
  313. data/spec/assets/models/book_depreciation_detail_spec.rb +1 -1
  314. data/spec/assets/models/book_depreciation_setting_spec.rb +1 -1
  315. data/spec/assets/models/error_spec.rb +1 -1
  316. data/spec/assets/models/field_validation_errors_element_spec.rb +1 -1
  317. data/spec/assets/models/pagination_spec.rb +1 -1
  318. data/spec/assets/models/resource_validation_errors_element_spec.rb +1 -1
  319. data/spec/assets/models/setting_spec.rb +1 -1
  320. data/spec/configuration_spec.rb +8 -24
  321. data/spec/projects/api/project_api_spec.rb +229 -0
  322. data/spec/projects/models/amount_spec.rb +47 -0
  323. data/spec/projects/models/charge_type_spec.rb +35 -0
  324. data/spec/projects/models/currency_code_spec.rb +35 -0
  325. data/spec/projects/models/error_spec.rb +47 -0
  326. data/spec/projects/models/pagination_spec.rb +59 -0
  327. data/spec/projects/models/project_create_or_update_spec.rb +59 -0
  328. data/spec/projects/models/project_patch_spec.rb +41 -0
  329. data/spec/projects/models/project_spec.rb +167 -0
  330. data/spec/projects/models/project_status_spec.rb +35 -0
  331. data/spec/projects/models/project_user_spec.rb +53 -0
  332. data/spec/projects/models/project_users_spec.rb +47 -0
  333. data/spec/projects/models/projects_spec.rb +47 -0
  334. data/spec/projects/models/task_create_or_update_spec.rb +59 -0
  335. data/spec/projects/models/task_spec.rb +129 -0
  336. data/spec/projects/models/tasks_spec.rb +47 -0
  337. data/spec/projects/models/time_entries_spec.rb +47 -0
  338. data/spec/projects/models/time_entry_create_or_update_spec.rb +65 -0
  339. data/spec/projects/models/time_entry_spec.rb +93 -0
  340. data/spec/spec_helper.rb +1 -1
  341. data/xero-ruby.gemspec +3 -4
  342. metadata +85 -9
  343. data/xero-ruby.gem +0 -0
@@ -0,0 +1,59 @@
1
+ # XeroRuby::Projects::Project
2
+
3
+ ## Properties
4
+
5
+ Name | Type | Description | Notes
6
+ ------------ | ------------- | ------------- | -------------
7
+ **project_id** | **String** | Identifier of the project. | [optional]
8
+ **contact_id** | **String** | Identifier of the contact this project was created for. | [optional]
9
+ **name** | **String** | Name of the project. |
10
+ **currency_code** | [**CurrencyCode**](CurrencyCode.md) | | [optional]
11
+ **minutes_logged** | **Integer** | A total of minutes logged against all tasks on the Project. | [optional]
12
+ **total_task_amount** | [**Amount**](Amount.md) | | [optional]
13
+ **total_expense_amount** | [**Amount**](Amount.md) | | [optional]
14
+ **estimate_amount** | [**Amount**](Amount.md) | | [optional]
15
+ **minutes_to_be_invoiced** | **Integer** | Minutes which have not been invoiced across all chargeable tasks in the project. | [optional]
16
+ **task_amount_to_be_invoiced** | [**Amount**](Amount.md) | | [optional]
17
+ **task_amount_invoiced** | [**Amount**](Amount.md) | | [optional]
18
+ **expense_amount_to_be_invoiced** | [**Amount**](Amount.md) | | [optional]
19
+ **expense_amount_invoiced** | [**Amount**](Amount.md) | | [optional]
20
+ **project_amount_invoiced** | [**Amount**](Amount.md) | | [optional]
21
+ **deposit** | [**Amount**](Amount.md) | | [optional]
22
+ **deposit_applied** | [**Amount**](Amount.md) | | [optional]
23
+ **credit_note_amount** | [**Amount**](Amount.md) | | [optional]
24
+ **deadline_utc** | **DateTime** | Deadline for the project. UTC Date Time in ISO-8601 format. | [optional]
25
+ **total_invoiced** | [**Amount**](Amount.md) | | [optional]
26
+ **total_to_be_invoiced** | [**Amount**](Amount.md) | | [optional]
27
+ **estimate** | [**Amount**](Amount.md) | | [optional]
28
+ **status** | [**ProjectStatus**](ProjectStatus.md) | | [optional]
29
+
30
+ ## Code Sample
31
+
32
+ ```ruby
33
+ require 'XeroRuby::Projects'
34
+
35
+ instance = XeroRuby::Projects::Project.new(project_id: 254553fa-2be8-4991-bd5e-70a97ea12ef8,
36
+ contact_id: 01234567-89ab-cdef-0123-456789abcdef,
37
+ name: New Kitchen,
38
+ currency_code: null,
39
+ minutes_logged: 0,
40
+ total_task_amount: null,
41
+ total_expense_amount: null,
42
+ estimate_amount: null,
43
+ minutes_to_be_invoiced: 0,
44
+ task_amount_to_be_invoiced: null,
45
+ task_amount_invoiced: null,
46
+ expense_amount_to_be_invoiced: null,
47
+ expense_amount_invoiced: null,
48
+ project_amount_invoiced: null,
49
+ deposit: null,
50
+ deposit_applied: null,
51
+ credit_note_amount: null,
52
+ deadline_utc: 2019-12-10T12:59:59Z,
53
+ total_invoiced: null,
54
+ total_to_be_invoiced: null,
55
+ estimate: null,
56
+ status: null)
57
+ ```
58
+
59
+
@@ -0,0 +1,979 @@
1
+ # XeroRuby::Projects::ProjectApi
2
+
3
+ All URIs are relative to *https://api.xero.com/projects.xro/2.0*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**create_project**](ProjectApi.md#create_project) | **POST** /projects | create one or more new projects
8
+ [**create_time_entry**](ProjectApi.md#create_time_entry) | **POST** /projects/{projectId}/time | Allows you to create a task
9
+ [**delete_time_entry**](ProjectApi.md#delete_time_entry) | **DELETE** /projects/{projectId}/time/{timeEntryId} | Allows you to delete a time entry
10
+ [**get_project**](ProjectApi.md#get_project) | **GET** /projects/{projectId} | Allows you to retrieve a single project
11
+ [**get_project_users**](ProjectApi.md#get_project_users) | **GET** /projectsusers | list all project users
12
+ [**get_projects**](ProjectApi.md#get_projects) | **GET** /projects | list all projects
13
+ [**get_task**](ProjectApi.md#get_task) | **GET** /projects/{projectId}/tasks/{taskId} | Allows you to retrieve a single project
14
+ [**get_tasks**](ProjectApi.md#get_tasks) | **GET** /projects/{projectId}/tasks | Allows you to retrieve a single project
15
+ [**get_time_entries**](ProjectApi.md#get_time_entries) | **GET** /projects/{projectId}/time | Allows you to retrieve the time entries associated with a specific project
16
+ [**get_time_entry**](ProjectApi.md#get_time_entry) | **GET** /projects/{projectId}/time/{timeEntryId} | Allows you to get a single time entry in a project
17
+ [**patch_project**](ProjectApi.md#patch_project) | **PATCH** /projects/{projectId} | creates a project for the specified contact
18
+ [**update_project**](ProjectApi.md#update_project) | **PUT** /projects/{projectId} | update a specific project
19
+ [**update_time_entry**](ProjectApi.md#update_time_entry) | **PUT** /projects/{projectId}/time/{timeEntryId} | Allows you to update time entry in a project
20
+
21
+
22
+
23
+ ## create_project
24
+
25
+ > Project create_project(xero_tenant_id, project_create_or_update)
26
+
27
+ create one or more new projects
28
+
29
+ ### Example
30
+
31
+ ```ruby
32
+ # load the gem
33
+ require 'xero-ruby'
34
+
35
+ creds = {
36
+ client_id: ENV['CLIENT_ID'],
37
+ client_secret: ENV['CLIENT_SECRET'],
38
+ redirect_uri: ENV['REDIRECT_URI'],
39
+ scopes: ENV['SCOPES']
40
+ }
41
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
42
+
43
+ token_set = fetch_valid_token_set(user) # example
44
+
45
+ xero_client.refresh_token_set(token_set)
46
+
47
+ # depending on the methods you need to use
48
+ # accounting_api
49
+ api_instance = xero_client.accounting_api
50
+ # :assets_api
51
+ api_instance = xero_client.asset_api
52
+ # :projects_api
53
+ api_instance = xero_client.projects_api
54
+
55
+
56
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
57
+ project_create_or_update = { "contactId":"00000000-0000-0000-000-000000000000", "name":"New Kitchen", "deadlineUtc":"2019-12-10T12:59:59Z", "estimateAmount":"99.99" } # ProjectCreateOrUpdate | Create a new project with ProjectCreateOrUpdate object
58
+ begin
59
+ #create one or more new projects
60
+ result = api_instance.create_project(xero_tenant_id, project_create_or_update)
61
+ p result
62
+ rescue XeroRuby::Projects::ApiError => e
63
+ puts "Exception when calling ProjectApi->create_project: #{e}"
64
+ end
65
+ ```
66
+
67
+ ### Parameters
68
+
69
+
70
+ Name | Type | Description | Notes
71
+ ------------- | ------------- | ------------- | -------------
72
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
73
+ **project_create_or_update** | [**ProjectCreateOrUpdate**](ProjectCreateOrUpdate.md)| Create a new project with ProjectCreateOrUpdate object |
74
+
75
+ ### Return type
76
+
77
+ [**Project**](Project.md)
78
+
79
+ ### Authorization
80
+
81
+ [OAuth2](../README.md#OAuth2)
82
+
83
+ ### HTTP request headers
84
+
85
+ - **Content-Type**: application/json
86
+ - **Accept**: application/json
87
+
88
+
89
+ ## create_time_entry
90
+
91
+ > TimeEntry create_time_entry(xero_tenant_id, project_id, time_entry_create_or_update)
92
+
93
+ Allows you to create a task
94
+
95
+ Allows you to create a specific task
96
+
97
+ ### Example
98
+
99
+ ```ruby
100
+ # load the gem
101
+ require 'xero-ruby'
102
+
103
+ creds = {
104
+ client_id: ENV['CLIENT_ID'],
105
+ client_secret: ENV['CLIENT_SECRET'],
106
+ redirect_uri: ENV['REDIRECT_URI'],
107
+ scopes: ENV['SCOPES']
108
+ }
109
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
110
+
111
+ token_set = fetch_valid_token_set(user) # example
112
+
113
+ xero_client.refresh_token_set(token_set)
114
+
115
+ # depending on the methods you need to use
116
+ # accounting_api
117
+ api_instance = xero_client.accounting_api
118
+ # :assets_api
119
+ api_instance = xero_client.asset_api
120
+ # :projects_api
121
+ api_instance = xero_client.projects_api
122
+
123
+
124
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
125
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
126
+ time_entry_create_or_update = { "userId":"740add2a-a703-4b8a-a670-1093919c2040", "taskId":"7be77337-feec-4458-bb1b-dbaa5a4aafce", "dateUtc":"2020-02-26T15:00:00Z", "duration":30, "description":"My description" } # TimeEntryCreateOrUpdate | The time entry object you are creating
127
+ begin
128
+ #Allows you to create a task
129
+ result = api_instance.create_time_entry(xero_tenant_id, project_id, time_entry_create_or_update)
130
+ p result
131
+ rescue XeroRuby::Projects::ApiError => e
132
+ puts "Exception when calling ProjectApi->create_time_entry: #{e}"
133
+ end
134
+ ```
135
+
136
+ ### Parameters
137
+
138
+
139
+ Name | Type | Description | Notes
140
+ ------------- | ------------- | ------------- | -------------
141
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
142
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
143
+ **time_entry_create_or_update** | [**TimeEntryCreateOrUpdate**](TimeEntryCreateOrUpdate.md)| The time entry object you are creating |
144
+
145
+ ### Return type
146
+
147
+ [**TimeEntry**](TimeEntry.md)
148
+
149
+ ### Authorization
150
+
151
+ [OAuth2](../README.md#OAuth2)
152
+
153
+ ### HTTP request headers
154
+
155
+ - **Content-Type**: application/json
156
+ - **Accept**: application/json
157
+
158
+
159
+ ## delete_time_entry
160
+
161
+ > delete_time_entry(xero_tenant_id, project_id, time_entry_id)
162
+
163
+ Allows you to delete a time entry
164
+
165
+ Allows you to delete a specific time entry
166
+
167
+ ### Example
168
+
169
+ ```ruby
170
+ # load the gem
171
+ require 'xero-ruby'
172
+
173
+ creds = {
174
+ client_id: ENV['CLIENT_ID'],
175
+ client_secret: ENV['CLIENT_SECRET'],
176
+ redirect_uri: ENV['REDIRECT_URI'],
177
+ scopes: ENV['SCOPES']
178
+ }
179
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
180
+
181
+ token_set = fetch_valid_token_set(user) # example
182
+
183
+ xero_client.refresh_token_set(token_set)
184
+
185
+ # depending on the methods you need to use
186
+ # accounting_api
187
+ api_instance = xero_client.accounting_api
188
+ # :assets_api
189
+ api_instance = xero_client.asset_api
190
+ # :projects_api
191
+ api_instance = xero_client.projects_api
192
+
193
+
194
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
195
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
196
+ time_entry_id = 'time_entry_id_example' # String | You can specify an individual task by appending the id to the endpoint
197
+ begin
198
+ #Allows you to delete a time entry
199
+ api_instance.delete_time_entry(xero_tenant_id, project_id, time_entry_id)
200
+ rescue XeroRuby::Projects::ApiError => e
201
+ puts "Exception when calling ProjectApi->delete_time_entry: #{e}"
202
+ end
203
+ ```
204
+
205
+ ### Parameters
206
+
207
+
208
+ Name | Type | Description | Notes
209
+ ------------- | ------------- | ------------- | -------------
210
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
211
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
212
+ **time_entry_id** | [**String**](.md)| You can specify an individual task by appending the id to the endpoint |
213
+
214
+ ### Return type
215
+
216
+ nil (empty response body)
217
+
218
+ ### Authorization
219
+
220
+ [OAuth2](../README.md#OAuth2)
221
+
222
+ ### HTTP request headers
223
+
224
+ - **Content-Type**: Not defined
225
+ - **Accept**: Not defined
226
+
227
+
228
+ ## get_project
229
+
230
+ > Project get_project(xero_tenant_id, project_id)
231
+
232
+ Allows you to retrieve a single project
233
+
234
+ Allows you to retrieve a specific project
235
+
236
+ ### Example
237
+
238
+ ```ruby
239
+ # load the gem
240
+ require 'xero-ruby'
241
+
242
+ creds = {
243
+ client_id: ENV['CLIENT_ID'],
244
+ client_secret: ENV['CLIENT_SECRET'],
245
+ redirect_uri: ENV['REDIRECT_URI'],
246
+ scopes: ENV['SCOPES']
247
+ }
248
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
249
+
250
+ token_set = fetch_valid_token_set(user) # example
251
+
252
+ xero_client.refresh_token_set(token_set)
253
+
254
+ # depending on the methods you need to use
255
+ # accounting_api
256
+ api_instance = xero_client.accounting_api
257
+ # :assets_api
258
+ api_instance = xero_client.asset_api
259
+ # :projects_api
260
+ api_instance = xero_client.projects_api
261
+
262
+
263
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
264
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
265
+ begin
266
+ #Allows you to retrieve a single project
267
+ result = api_instance.get_project(xero_tenant_id, project_id)
268
+ p result
269
+ rescue XeroRuby::Projects::ApiError => e
270
+ puts "Exception when calling ProjectApi->get_project: #{e}"
271
+ end
272
+ ```
273
+
274
+ ### Parameters
275
+
276
+
277
+ Name | Type | Description | Notes
278
+ ------------- | ------------- | ------------- | -------------
279
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
280
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
281
+
282
+ ### Return type
283
+
284
+ [**Project**](Project.md)
285
+
286
+ ### Authorization
287
+
288
+ [OAuth2](../README.md#OAuth2)
289
+
290
+ ### HTTP request headers
291
+
292
+ - **Content-Type**: Not defined
293
+ - **Accept**: application/json
294
+
295
+
296
+ ## get_project_users
297
+
298
+ > ProjectUsers get_project_users(xero_tenant_id, opts)
299
+
300
+ list all project users
301
+
302
+ Allows you to retrieve the users on a projects.
303
+
304
+ ### Example
305
+
306
+ ```ruby
307
+ # load the gem
308
+ require 'xero-ruby'
309
+
310
+ creds = {
311
+ client_id: ENV['CLIENT_ID'],
312
+ client_secret: ENV['CLIENT_SECRET'],
313
+ redirect_uri: ENV['REDIRECT_URI'],
314
+ scopes: ENV['SCOPES']
315
+ }
316
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
317
+
318
+ token_set = fetch_valid_token_set(user) # example
319
+
320
+ xero_client.refresh_token_set(token_set)
321
+
322
+ # depending on the methods you need to use
323
+ # accounting_api
324
+ api_instance = xero_client.accounting_api
325
+ # :assets_api
326
+ api_instance = xero_client.asset_api
327
+ # :projects_api
328
+ api_instance = xero_client.projects_api
329
+
330
+
331
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
332
+ opts = {
333
+ page: 1, # Integer | set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
334
+
335
+ page_size: 50 # Integer | Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
336
+ }
337
+
338
+ begin
339
+ #list all project users
340
+ result = api_instance.get_project_users(xero_tenant_id, opts)
341
+ p result
342
+ rescue XeroRuby::Projects::ApiError => e
343
+ puts "Exception when calling ProjectApi->get_project_users: #{e}"
344
+ end
345
+ ```
346
+
347
+ ### Parameters
348
+
349
+
350
+ Name | Type | Description | Notes
351
+ ------------- | ------------- | ------------- | -------------
352
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
353
+ **page** | **Integer**| set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. | [optional] [default to 1]
354
+ **page_size** | **Integer**| Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500. | [optional] [default to 50]
355
+
356
+ ### Return type
357
+
358
+ [**ProjectUsers**](ProjectUsers.md)
359
+
360
+ ### Authorization
361
+
362
+ [OAuth2](../README.md#OAuth2)
363
+
364
+ ### HTTP request headers
365
+
366
+ - **Content-Type**: Not defined
367
+ - **Accept**: application/json
368
+
369
+
370
+ ## get_projects
371
+
372
+ > Projects get_projects(xero_tenant_id, opts)
373
+
374
+ list all projects
375
+
376
+ Allows you to retrieve, create and update projects.
377
+
378
+ ### Example
379
+
380
+ ```ruby
381
+ # load the gem
382
+ require 'xero-ruby'
383
+
384
+ creds = {
385
+ client_id: ENV['CLIENT_ID'],
386
+ client_secret: ENV['CLIENT_SECRET'],
387
+ redirect_uri: ENV['REDIRECT_URI'],
388
+ scopes: ENV['SCOPES']
389
+ }
390
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
391
+
392
+ token_set = fetch_valid_token_set(user) # example
393
+
394
+ xero_client.refresh_token_set(token_set)
395
+
396
+ # depending on the methods you need to use
397
+ # accounting_api
398
+ api_instance = xero_client.accounting_api
399
+ # :assets_api
400
+ api_instance = xero_client.asset_api
401
+ # :projects_api
402
+ api_instance = xero_client.projects_api
403
+
404
+
405
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
406
+ opts = {
407
+ project_ids: ['project_ids_example'], # Array<String> | Search for all projects that match a comma separated list of projectIds
408
+
409
+ contact_id: 'contact_id_example', # String | Filter for projects for a specific contact
410
+
411
+ states: 'states_example', # String | Filter for projects in a particular state (INPROGRESS or CLOSED)
412
+
413
+ page: 1, # Integer | set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
414
+
415
+ page_size: 50 # Integer | Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
416
+ }
417
+
418
+ begin
419
+ #list all projects
420
+ result = api_instance.get_projects(xero_tenant_id, opts)
421
+ p result
422
+ rescue XeroRuby::Projects::ApiError => e
423
+ puts "Exception when calling ProjectApi->get_projects: #{e}"
424
+ end
425
+ ```
426
+
427
+ ### Parameters
428
+
429
+
430
+ Name | Type | Description | Notes
431
+ ------------- | ------------- | ------------- | -------------
432
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
433
+ **project_ids** | [**Array&lt;String&gt;**](String.md)| Search for all projects that match a comma separated list of projectIds | [optional]
434
+ **contact_id** | [**String**](.md)| Filter for projects for a specific contact | [optional]
435
+ **states** | **String**| Filter for projects in a particular state (INPROGRESS or CLOSED) | [optional]
436
+ **page** | **Integer**| set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. | [optional] [default to 1]
437
+ **page_size** | **Integer**| Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500. | [optional] [default to 50]
438
+
439
+ ### Return type
440
+
441
+ [**Projects**](Projects.md)
442
+
443
+ ### Authorization
444
+
445
+ [OAuth2](../README.md#OAuth2)
446
+
447
+ ### HTTP request headers
448
+
449
+ - **Content-Type**: Not defined
450
+ - **Accept**: application/json
451
+
452
+
453
+ ## get_task
454
+
455
+ > Task get_task(xero_tenant_id, project_id, task_id)
456
+
457
+ Allows you to retrieve a single project
458
+
459
+ Allows you to retrieve a specific project
460
+
461
+ ### Example
462
+
463
+ ```ruby
464
+ # load the gem
465
+ require 'xero-ruby'
466
+
467
+ creds = {
468
+ client_id: ENV['CLIENT_ID'],
469
+ client_secret: ENV['CLIENT_SECRET'],
470
+ redirect_uri: ENV['REDIRECT_URI'],
471
+ scopes: ENV['SCOPES']
472
+ }
473
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
474
+
475
+ token_set = fetch_valid_token_set(user) # example
476
+
477
+ xero_client.refresh_token_set(token_set)
478
+
479
+ # depending on the methods you need to use
480
+ # accounting_api
481
+ api_instance = xero_client.accounting_api
482
+ # :assets_api
483
+ api_instance = xero_client.asset_api
484
+ # :projects_api
485
+ api_instance = xero_client.projects_api
486
+
487
+
488
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
489
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
490
+ task_id = 'task_id_example' # String | You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskId}
491
+ begin
492
+ #Allows you to retrieve a single project
493
+ result = api_instance.get_task(xero_tenant_id, project_id, task_id)
494
+ p result
495
+ rescue XeroRuby::Projects::ApiError => e
496
+ puts "Exception when calling ProjectApi->get_task: #{e}"
497
+ end
498
+ ```
499
+
500
+ ### Parameters
501
+
502
+
503
+ Name | Type | Description | Notes
504
+ ------------- | ------------- | ------------- | -------------
505
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
506
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
507
+ **task_id** | [**String**](.md)| You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskId} |
508
+
509
+ ### Return type
510
+
511
+ [**Task**](Task.md)
512
+
513
+ ### Authorization
514
+
515
+ [OAuth2](../README.md#OAuth2)
516
+
517
+ ### HTTP request headers
518
+
519
+ - **Content-Type**: Not defined
520
+ - **Accept**: application/json
521
+
522
+
523
+ ## get_tasks
524
+
525
+ > Tasks get_tasks(xero_tenant_id, project_id, opts)
526
+
527
+ Allows you to retrieve a single project
528
+
529
+ Allows you to retrieve a specific project
530
+
531
+ ### Example
532
+
533
+ ```ruby
534
+ # load the gem
535
+ require 'xero-ruby'
536
+
537
+ creds = {
538
+ client_id: ENV['CLIENT_ID'],
539
+ client_secret: ENV['CLIENT_SECRET'],
540
+ redirect_uri: ENV['REDIRECT_URI'],
541
+ scopes: ENV['SCOPES']
542
+ }
543
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
544
+
545
+ token_set = fetch_valid_token_set(user) # example
546
+
547
+ xero_client.refresh_token_set(token_set)
548
+
549
+ # depending on the methods you need to use
550
+ # accounting_api
551
+ api_instance = xero_client.accounting_api
552
+ # :assets_api
553
+ api_instance = xero_client.asset_api
554
+ # :projects_api
555
+ api_instance = xero_client.projects_api
556
+
557
+
558
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
559
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
560
+ opts = {
561
+ page: 1, # Integer | Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
562
+
563
+ page_size: 10, # Integer | Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
564
+
565
+ task_ids: 'task_ids_example' # String | taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds={taskId},{taskId}
566
+ }
567
+
568
+ begin
569
+ #Allows you to retrieve a single project
570
+ result = api_instance.get_tasks(xero_tenant_id, project_id, opts)
571
+ p result
572
+ rescue XeroRuby::Projects::ApiError => e
573
+ puts "Exception when calling ProjectApi->get_tasks: #{e}"
574
+ end
575
+ ```
576
+
577
+ ### Parameters
578
+
579
+
580
+ Name | Type | Description | Notes
581
+ ------------- | ------------- | ------------- | -------------
582
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
583
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
584
+ **page** | **Integer**| Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. | [optional]
585
+ **page_size** | **Integer**| Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500. | [optional]
586
+ **task_ids** | **String**| taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskId},{taskId} | [optional]
587
+
588
+ ### Return type
589
+
590
+ [**Tasks**](Tasks.md)
591
+
592
+ ### Authorization
593
+
594
+ [OAuth2](../README.md#OAuth2)
595
+
596
+ ### HTTP request headers
597
+
598
+ - **Content-Type**: Not defined
599
+ - **Accept**: application/json
600
+
601
+
602
+ ## get_time_entries
603
+
604
+ > TimeEntries get_time_entries(xero_tenant_id, project_id, opts)
605
+
606
+ Allows you to retrieve the time entries associated with a specific project
607
+
608
+ Allows you to retrieve the time entries associated with a specific project
609
+
610
+ ### Example
611
+
612
+ ```ruby
613
+ # load the gem
614
+ require 'xero-ruby'
615
+
616
+ creds = {
617
+ client_id: ENV['CLIENT_ID'],
618
+ client_secret: ENV['CLIENT_SECRET'],
619
+ redirect_uri: ENV['REDIRECT_URI'],
620
+ scopes: ENV['SCOPES']
621
+ }
622
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
623
+
624
+ token_set = fetch_valid_token_set(user) # example
625
+
626
+ xero_client.refresh_token_set(token_set)
627
+
628
+ # depending on the methods you need to use
629
+ # accounting_api
630
+ api_instance = xero_client.accounting_api
631
+ # :assets_api
632
+ api_instance = xero_client.asset_api
633
+ # :projects_api
634
+ api_instance = xero_client.projects_api
635
+
636
+
637
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
638
+ project_id = 'project_id_example' # String | Identifier of the project, that the task (which the time entry is logged against) belongs to.
639
+ opts = {
640
+ user_id: 'user_id_example', # String | The xero user identifier of the person who logged time.
641
+
642
+ task_id: 'task_id_example', # String | Identifier of the task that time entry is logged against.
643
+
644
+ invoice_id: 'invoice_id_example', # String | Finds all time entries for this invoice.
645
+
646
+ contact_id: 'contact_id_example', # String | Finds all time entries for this contact identifier.
647
+
648
+ page: 1, # Integer | Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
649
+
650
+ page_size: 10, # Integer | Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
651
+
652
+ states: ['states_example'], # Array<String> | Comma-separated list of states to find. Will find all time entries that are in the status of whatever’s specified.
653
+
654
+ is_chargeable: true, # Boolean | Finds all time entries which relate to tasks with the charge type `TIME` or `FIXED`.
655
+
656
+ date_after_utc: DateTime.parse('2013-10-20T19:20:30+01:00'), # DateTime | ISO 8601 UTC date. Finds all time entries on or after this date filtered on the `dateUtc` field.
657
+
658
+ date_before_utc: DateTime.parse('2013-10-20T19:20:30+01:00') # DateTime | ISO 8601 UTC date. Finds all time entries on or before this date filtered on the `dateUtc` field.
659
+ }
660
+
661
+ begin
662
+ #Allows you to retrieve the time entries associated with a specific project
663
+ result = api_instance.get_time_entries(xero_tenant_id, project_id, opts)
664
+ p result
665
+ rescue XeroRuby::Projects::ApiError => e
666
+ puts "Exception when calling ProjectApi->get_time_entries: #{e}"
667
+ end
668
+ ```
669
+
670
+ ### Parameters
671
+
672
+
673
+ Name | Type | Description | Notes
674
+ ------------- | ------------- | ------------- | -------------
675
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
676
+ **project_id** | [**String**](.md)| Identifier of the project, that the task (which the time entry is logged against) belongs to. |
677
+ **user_id** | [**String**](.md)| The xero user identifier of the person who logged time. | [optional]
678
+ **task_id** | [**String**](.md)| Identifier of the task that time entry is logged against. | [optional]
679
+ **invoice_id** | [**String**](.md)| Finds all time entries for this invoice. | [optional]
680
+ **contact_id** | [**String**](.md)| Finds all time entries for this contact identifier. | [optional]
681
+ **page** | **Integer**| Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. | [optional]
682
+ **page_size** | **Integer**| Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500. | [optional]
683
+ **states** | [**Array&lt;String&gt;**](String.md)| Comma-separated list of states to find. Will find all time entries that are in the status of whatever’s specified. | [optional]
684
+ **is_chargeable** | **Boolean**| Finds all time entries which relate to tasks with the charge type &#x60;TIME&#x60; or &#x60;FIXED&#x60;. | [optional]
685
+ **date_after_utc** | **DateTime**| ISO 8601 UTC date. Finds all time entries on or after this date filtered on the &#x60;dateUtc&#x60; field. | [optional]
686
+ **date_before_utc** | **DateTime**| ISO 8601 UTC date. Finds all time entries on or before this date filtered on the &#x60;dateUtc&#x60; field. | [optional]
687
+
688
+ ### Return type
689
+
690
+ [**TimeEntries**](TimeEntries.md)
691
+
692
+ ### Authorization
693
+
694
+ [OAuth2](../README.md#OAuth2)
695
+
696
+ ### HTTP request headers
697
+
698
+ - **Content-Type**: Not defined
699
+ - **Accept**: application/json
700
+
701
+
702
+ ## get_time_entry
703
+
704
+ > TimeEntry get_time_entry(xero_tenant_id, project_id, time_entry_id)
705
+
706
+ Allows you to get a single time entry in a project
707
+
708
+ Allows you to upget a single time entry in a project
709
+
710
+ ### Example
711
+
712
+ ```ruby
713
+ # load the gem
714
+ require 'xero-ruby'
715
+
716
+ creds = {
717
+ client_id: ENV['CLIENT_ID'],
718
+ client_secret: ENV['CLIENT_SECRET'],
719
+ redirect_uri: ENV['REDIRECT_URI'],
720
+ scopes: ENV['SCOPES']
721
+ }
722
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
723
+
724
+ token_set = fetch_valid_token_set(user) # example
725
+
726
+ xero_client.refresh_token_set(token_set)
727
+
728
+ # depending on the methods you need to use
729
+ # accounting_api
730
+ api_instance = xero_client.accounting_api
731
+ # :assets_api
732
+ api_instance = xero_client.asset_api
733
+ # :projects_api
734
+ api_instance = xero_client.projects_api
735
+
736
+
737
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
738
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
739
+ time_entry_id = 'time_entry_id_example' # String | You can specify an individual time entry by appending the id to the endpoint
740
+ begin
741
+ #Allows you to get a single time entry in a project
742
+ result = api_instance.get_time_entry(xero_tenant_id, project_id, time_entry_id)
743
+ p result
744
+ rescue XeroRuby::Projects::ApiError => e
745
+ puts "Exception when calling ProjectApi->get_time_entry: #{e}"
746
+ end
747
+ ```
748
+
749
+ ### Parameters
750
+
751
+
752
+ Name | Type | Description | Notes
753
+ ------------- | ------------- | ------------- | -------------
754
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
755
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
756
+ **time_entry_id** | [**String**](.md)| You can specify an individual time entry by appending the id to the endpoint |
757
+
758
+ ### Return type
759
+
760
+ [**TimeEntry**](TimeEntry.md)
761
+
762
+ ### Authorization
763
+
764
+ [OAuth2](../README.md#OAuth2)
765
+
766
+ ### HTTP request headers
767
+
768
+ - **Content-Type**: Not defined
769
+ - **Accept**: application/json
770
+
771
+
772
+ ## patch_project
773
+
774
+ > patch_project(xero_tenant_id, project_id, project_patch)
775
+
776
+ creates a project for the specified contact
777
+
778
+ Allows you to update a specific projects.
779
+
780
+ ### Example
781
+
782
+ ```ruby
783
+ # load the gem
784
+ require 'xero-ruby'
785
+
786
+ creds = {
787
+ client_id: ENV['CLIENT_ID'],
788
+ client_secret: ENV['CLIENT_SECRET'],
789
+ redirect_uri: ENV['REDIRECT_URI'],
790
+ scopes: ENV['SCOPES']
791
+ }
792
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
793
+
794
+ token_set = fetch_valid_token_set(user) # example
795
+
796
+ xero_client.refresh_token_set(token_set)
797
+
798
+ # depending on the methods you need to use
799
+ # accounting_api
800
+ api_instance = xero_client.accounting_api
801
+ # :assets_api
802
+ api_instance = xero_client.asset_api
803
+ # :projects_api
804
+ api_instance = xero_client.projects_api
805
+
806
+
807
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
808
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
809
+ project_patch = { "status": "INPROGRESS" } # ProjectPatch | Update the status of an existing Project
810
+ begin
811
+ #creates a project for the specified contact
812
+ api_instance.patch_project(xero_tenant_id, project_id, project_patch)
813
+ rescue XeroRuby::Projects::ApiError => e
814
+ puts "Exception when calling ProjectApi->patch_project: #{e}"
815
+ end
816
+ ```
817
+
818
+ ### Parameters
819
+
820
+
821
+ Name | Type | Description | Notes
822
+ ------------- | ------------- | ------------- | -------------
823
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
824
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
825
+ **project_patch** | [**ProjectPatch**](ProjectPatch.md)| Update the status of an existing Project |
826
+
827
+ ### Return type
828
+
829
+ nil (empty response body)
830
+
831
+ ### Authorization
832
+
833
+ [OAuth2](../README.md#OAuth2)
834
+
835
+ ### HTTP request headers
836
+
837
+ - **Content-Type**: application/json
838
+ - **Accept**: application/json
839
+
840
+
841
+ ## update_project
842
+
843
+ > update_project(xero_tenant_id, project_id, project_create_or_update)
844
+
845
+ update a specific project
846
+
847
+ Allows you to update a specific projects.
848
+
849
+ ### Example
850
+
851
+ ```ruby
852
+ # load the gem
853
+ require 'xero-ruby'
854
+
855
+ creds = {
856
+ client_id: ENV['CLIENT_ID'],
857
+ client_secret: ENV['CLIENT_SECRET'],
858
+ redirect_uri: ENV['REDIRECT_URI'],
859
+ scopes: ENV['SCOPES']
860
+ }
861
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
862
+
863
+ token_set = fetch_valid_token_set(user) # example
864
+
865
+ xero_client.refresh_token_set(token_set)
866
+
867
+ # depending on the methods you need to use
868
+ # accounting_api
869
+ api_instance = xero_client.accounting_api
870
+ # :assets_api
871
+ api_instance = xero_client.asset_api
872
+ # :projects_api
873
+ api_instance = xero_client.projects_api
874
+
875
+
876
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
877
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
878
+ project_create_or_update = { "name": "New Kitchen", "deadlineUtc": "2017-04-23T18:25:43.511Z", "estimateAmount": 99.99 } # ProjectCreateOrUpdate | Request of type ProjectCreateOrUpdate
879
+ begin
880
+ #update a specific project
881
+ api_instance.update_project(xero_tenant_id, project_id, project_create_or_update)
882
+ rescue XeroRuby::Projects::ApiError => e
883
+ puts "Exception when calling ProjectApi->update_project: #{e}"
884
+ end
885
+ ```
886
+
887
+ ### Parameters
888
+
889
+
890
+ Name | Type | Description | Notes
891
+ ------------- | ------------- | ------------- | -------------
892
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
893
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
894
+ **project_create_or_update** | [**ProjectCreateOrUpdate**](ProjectCreateOrUpdate.md)| Request of type ProjectCreateOrUpdate |
895
+
896
+ ### Return type
897
+
898
+ nil (empty response body)
899
+
900
+ ### Authorization
901
+
902
+ [OAuth2](../README.md#OAuth2)
903
+
904
+ ### HTTP request headers
905
+
906
+ - **Content-Type**: application/json
907
+ - **Accept**: application/json
908
+
909
+
910
+ ## update_time_entry
911
+
912
+ > update_time_entry(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update)
913
+
914
+ Allows you to update time entry in a project
915
+
916
+ Allows you to update time entry in a project
917
+
918
+ ### Example
919
+
920
+ ```ruby
921
+ # load the gem
922
+ require 'xero-ruby'
923
+
924
+ creds = {
925
+ client_id: ENV['CLIENT_ID'],
926
+ client_secret: ENV['CLIENT_SECRET'],
927
+ redirect_uri: ENV['REDIRECT_URI'],
928
+ scopes: ENV['SCOPES']
929
+ }
930
+ xero_client = XeroRuby::ApiClient.new(credentials: creds)
931
+
932
+ token_set = fetch_valid_token_set(user) # example
933
+
934
+ xero_client.refresh_token_set(token_set)
935
+
936
+ # depending on the methods you need to use
937
+ # accounting_api
938
+ api_instance = xero_client.accounting_api
939
+ # :assets_api
940
+ api_instance = xero_client.asset_api
941
+ # :projects_api
942
+ api_instance = xero_client.projects_api
943
+
944
+
945
+ xero_tenant_id = 'xero_tenant_id_example' # String | Xero identifier for Tenant
946
+ project_id = 'project_id_example' # String | You can specify an individual project by appending the projectId to the endpoint
947
+ time_entry_id = 'time_entry_id_example' # String | You can specify an individual time entry by appending the id to the endpoint
948
+ time_entry_create_or_update = { "userId":"740add2a-a703-4b8a-a670-1093919c2040", "taskId":"7be77337-feec-4458-bb1b-dbaa5a4aafce", "dateUtc":"2020-02-27T15:00:00Z", "duration":45, "description":"My UPDATED description" } # TimeEntryCreateOrUpdate | The time entry object you are updating
949
+ begin
950
+ #Allows you to update time entry in a project
951
+ api_instance.update_time_entry(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update)
952
+ rescue XeroRuby::Projects::ApiError => e
953
+ puts "Exception when calling ProjectApi->update_time_entry: #{e}"
954
+ end
955
+ ```
956
+
957
+ ### Parameters
958
+
959
+
960
+ Name | Type | Description | Notes
961
+ ------------- | ------------- | ------------- | -------------
962
+ **xero_tenant_id** | **String**| Xero identifier for Tenant |
963
+ **project_id** | [**String**](.md)| You can specify an individual project by appending the projectId to the endpoint |
964
+ **time_entry_id** | [**String**](.md)| You can specify an individual time entry by appending the id to the endpoint |
965
+ **time_entry_create_or_update** | [**TimeEntryCreateOrUpdate**](TimeEntryCreateOrUpdate.md)| The time entry object you are updating |
966
+
967
+ ### Return type
968
+
969
+ nil (empty response body)
970
+
971
+ ### Authorization
972
+
973
+ [OAuth2](../README.md#OAuth2)
974
+
975
+ ### HTTP request headers
976
+
977
+ - **Content-Type**: application/json
978
+ - **Accept**: Not defined
979
+