xero-apimatic-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +175 -0
  4. data/bin/console +15 -0
  5. data/lib/xero_ap_is/api_helper.rb +10 -0
  6. data/lib/xero_ap_is/apis/accounting_api.rb +8328 -0
  7. data/lib/xero_ap_is/apis/asset_api.rb +210 -0
  8. data/lib/xero_ap_is/apis/bank_feeds_api.rb +268 -0
  9. data/lib/xero_ap_is/apis/base_api.rb +67 -0
  10. data/lib/xero_ap_is/apis/identity_api.rb +51 -0
  11. data/lib/xero_ap_is/apis/oauth_authorization_api.rb +87 -0
  12. data/lib/xero_ap_is/apis/project_api.rb +662 -0
  13. data/lib/xero_ap_is/client.rb +110 -0
  14. data/lib/xero_ap_is/configuration.rb +196 -0
  15. data/lib/xero_ap_is/exceptions/api_exception.rb +21 -0
  16. data/lib/xero_ap_is/exceptions/asset_types400_error_exception.rb +72 -0
  17. data/lib/xero_ap_is/exceptions/assets400_error_exception.rb +72 -0
  18. data/lib/xero_ap_is/exceptions/error_error1_exception.rb +63 -0
  19. data/lib/xero_ap_is/exceptions/error_error2_exception.rb +51 -0
  20. data/lib/xero_ap_is/exceptions/error_exception.rb +72 -0
  21. data/lib/xero_ap_is/exceptions/feed_connections_error_exception.rb +60 -0
  22. data/lib/xero_ap_is/exceptions/oauth_provider_exception.rb +64 -0
  23. data/lib/xero_ap_is/exceptions/statements_error_exception.rb +60 -0
  24. data/lib/xero_ap_is/http/api_response.rb +19 -0
  25. data/lib/xero_ap_is/http/auth/basic_auth.rb +62 -0
  26. data/lib/xero_ap_is/http/auth/oauth_2.rb +161 -0
  27. data/lib/xero_ap_is/http/http_call_back.rb +10 -0
  28. data/lib/xero_ap_is/http/http_method_enum.rb +10 -0
  29. data/lib/xero_ap_is/http/http_request.rb +10 -0
  30. data/lib/xero_ap_is/http/http_response.rb +10 -0
  31. data/lib/xero_ap_is/http/proxy_settings.rb +22 -0
  32. data/lib/xero_ap_is/logging/configuration/api_logging_configuration.rb +186 -0
  33. data/lib/xero_ap_is/logging/sdk_logger.rb +17 -0
  34. data/lib/xero_ap_is/models/access_token.rb +116 -0
  35. data/lib/xero_ap_is/models/account.rb +300 -0
  36. data/lib/xero_ap_is/models/account_type.rb +100 -0
  37. data/lib/xero_ap_is/models/account_type1.rb +37 -0
  38. data/lib/xero_ap_is/models/accounts.rb +84 -0
  39. data/lib/xero_ap_is/models/accounts_payable.rb +85 -0
  40. data/lib/xero_ap_is/models/accounts_receivable.rb +85 -0
  41. data/lib/xero_ap_is/models/action.rb +85 -0
  42. data/lib/xero_ap_is/models/actions.rb +84 -0
  43. data/lib/xero_ap_is/models/address.rb +167 -0
  44. data/lib/xero_ap_is/models/address_for_organisation.rb +167 -0
  45. data/lib/xero_ap_is/models/address_type.rb +40 -0
  46. data/lib/xero_ap_is/models/address_type1.rb +36 -0
  47. data/lib/xero_ap_is/models/allocation.rb +174 -0
  48. data/lib/xero_ap_is/models/allocations.rb +85 -0
  49. data/lib/xero_ap_is/models/amount.rb +85 -0
  50. data/lib/xero_ap_is/models/asset.rb +249 -0
  51. data/lib/xero_ap_is/models/asset_status.rb +40 -0
  52. data/lib/xero_ap_is/models/asset_status_query_param.rb +40 -0
  53. data/lib/xero_ap_is/models/asset_type.rb +154 -0
  54. data/lib/xero_ap_is/models/assets.rb +94 -0
  55. data/lib/xero_ap_is/models/attachment.rb +126 -0
  56. data/lib/xero_ap_is/models/attachments.rb +85 -0
  57. data/lib/xero_ap_is/models/averaging_method.rb +36 -0
  58. data/lib/xero_ap_is/models/balance_details.rb +98 -0
  59. data/lib/xero_ap_is/models/balances.rb +89 -0
  60. data/lib/xero_ap_is/models/bank_account_type.rb +44 -0
  61. data/lib/xero_ap_is/models/bank_transaction.rb +319 -0
  62. data/lib/xero_ap_is/models/bank_transactions.rb +114 -0
  63. data/lib/xero_ap_is/models/bank_transfer.rb +224 -0
  64. data/lib/xero_ap_is/models/bank_transfers.rb +85 -0
  65. data/lib/xero_ap_is/models/base_model.rb +110 -0
  66. data/lib/xero_ap_is/models/batch_payment.rb +275 -0
  67. data/lib/xero_ap_is/models/batch_payment_delete.rb +84 -0
  68. data/lib/xero_ap_is/models/batch_payment_delete_by_url_param.rb +73 -0
  69. data/lib/xero_ap_is/models/batch_payment_details.rb +128 -0
  70. data/lib/xero_ap_is/models/batch_payments.rb +85 -0
  71. data/lib/xero_ap_is/models/bill.rb +85 -0
  72. data/lib/xero_ap_is/models/book_depreciation_detail.rb +243 -0
  73. data/lib/xero_ap_is/models/book_depreciation_setting.rb +170 -0
  74. data/lib/xero_ap_is/models/branding_theme.rb +129 -0
  75. data/lib/xero_ap_is/models/branding_themes.rb +85 -0
  76. data/lib/xero_ap_is/models/budget.rb +145 -0
  77. data/lib/xero_ap_is/models/budget_balance.rb +105 -0
  78. data/lib/xero_ap_is/models/budget_line.rb +105 -0
  79. data/lib/xero_ap_is/models/budgets.rb +84 -0
  80. data/lib/xero_ap_is/models/charge_type.rb +42 -0
  81. data/lib/xero_ap_is/models/cis_org_setting.rb +105 -0
  82. data/lib/xero_ap_is/models/cis_org_settings.rb +85 -0
  83. data/lib/xero_ap_is/models/cis_setting.rb +86 -0
  84. data/lib/xero_ap_is/models/cis_settings.rb +85 -0
  85. data/lib/xero_ap_is/models/class1.rb +113 -0
  86. data/lib/xero_ap_is/models/connection.rb +155 -0
  87. data/lib/xero_ap_is/models/contact.rb +661 -0
  88. data/lib/xero_ap_is/models/contact_group.rb +119 -0
  89. data/lib/xero_ap_is/models/contact_groups.rb +85 -0
  90. data/lib/xero_ap_is/models/contact_person.rb +108 -0
  91. data/lib/xero_ap_is/models/contact_status.rb +40 -0
  92. data/lib/xero_ap_is/models/contacts.rb +113 -0
  93. data/lib/xero_ap_is/models/conversion_balances.rb +108 -0
  94. data/lib/xero_ap_is/models/conversion_date.rb +87 -0
  95. data/lib/xero_ap_is/models/country_code.rb +990 -0
  96. data/lib/xero_ap_is/models/credit_debit_indicator.rb +37 -0
  97. data/lib/xero_ap_is/models/credit_note.rb +453 -0
  98. data/lib/xero_ap_is/models/credit_notes.rb +113 -0
  99. data/lib/xero_ap_is/models/currencies.rb +85 -0
  100. data/lib/xero_ap_is/models/currency.rb +85 -0
  101. data/lib/xero_ap_is/models/currency_code.rb +700 -0
  102. data/lib/xero_ap_is/models/currency_code1.rb +680 -0
  103. data/lib/xero_ap_is/models/depreciation_calculation_method.rb +40 -0
  104. data/lib/xero_ap_is/models/depreciation_method.rb +52 -0
  105. data/lib/xero_ap_is/models/due_date_type.rb +52 -0
  106. data/lib/xero_ap_is/models/edition.rb +38 -0
  107. data/lib/xero_ap_is/models/element.rb +160 -0
  108. data/lib/xero_ap_is/models/employee.rb +160 -0
  109. data/lib/xero_ap_is/models/employees.rb +85 -0
  110. data/lib/xero_ap_is/models/end_balance.rb +89 -0
  111. data/lib/xero_ap_is/models/error1.rb +138 -0
  112. data/lib/xero_ap_is/models/error2.rb +106 -0
  113. data/lib/xero_ap_is/models/error3.rb +85 -0
  114. data/lib/xero_ap_is/models/expense_claim.rb +209 -0
  115. data/lib/xero_ap_is/models/expense_claims.rb +85 -0
  116. data/lib/xero_ap_is/models/external_link.rb +95 -0
  117. data/lib/xero_ap_is/models/federal_tax_classification.rb +56 -0
  118. data/lib/xero_ap_is/models/feed_connection.rb +177 -0
  119. data/lib/xero_ap_is/models/feed_connections.rb +94 -0
  120. data/lib/xero_ap_is/models/field_validation_errors_element.rb +127 -0
  121. data/lib/xero_ap_is/models/history_record.rb +105 -0
  122. data/lib/xero_ap_is/models/history_records.rb +85 -0
  123. data/lib/xero_ap_is/models/import_summary.rb +87 -0
  124. data/lib/xero_ap_is/models/import_summary_accounts.rb +154 -0
  125. data/lib/xero_ap_is/models/import_summary_object.rb +76 -0
  126. data/lib/xero_ap_is/models/import_summary_organisation.rb +75 -0
  127. data/lib/xero_ap_is/models/invoice.rb +586 -0
  128. data/lib/xero_ap_is/models/invoice_address.rb +158 -0
  129. data/lib/xero_ap_is/models/invoice_address_type.rb +37 -0
  130. data/lib/xero_ap_is/models/invoice_reminder.rb +75 -0
  131. data/lib/xero_ap_is/models/invoice_reminders.rb +85 -0
  132. data/lib/xero_ap_is/models/invoices.rb +113 -0
  133. data/lib/xero_ap_is/models/item.rb +259 -0
  134. data/lib/xero_ap_is/models/items.rb +84 -0
  135. data/lib/xero_ap_is/models/journal.rb +157 -0
  136. data/lib/xero_ap_is/models/journal_line.rb +201 -0
  137. data/lib/xero_ap_is/models/journals.rb +103 -0
  138. data/lib/xero_ap_is/models/line_amount_types.rb +41 -0
  139. data/lib/xero_ap_is/models/line_item.rb +287 -0
  140. data/lib/xero_ap_is/models/line_item_item.rb +95 -0
  141. data/lib/xero_ap_is/models/line_item_tracking.rb +108 -0
  142. data/lib/xero_ap_is/models/link_type.rb +48 -0
  143. data/lib/xero_ap_is/models/linked_transaction.rb +215 -0
  144. data/lib/xero_ap_is/models/linked_transactions.rb +85 -0
  145. data/lib/xero_ap_is/models/manual_journal.rb +255 -0
  146. data/lib/xero_ap_is/models/manual_journal_line.rb +156 -0
  147. data/lib/xero_ap_is/models/manual_journals.rb +114 -0
  148. data/lib/xero_ap_is/models/mclass.rb +48 -0
  149. data/lib/xero_ap_is/models/oauth_provider_error.rb +62 -0
  150. data/lib/xero_ap_is/models/oauth_scope_oauth_2.rb +113 -0
  151. data/lib/xero_ap_is/models/oauth_token.rb +96 -0
  152. data/lib/xero_ap_is/models/online_invoice.rb +77 -0
  153. data/lib/xero_ap_is/models/online_invoices.rb +85 -0
  154. data/lib/xero_ap_is/models/order_by.rb +56 -0
  155. data/lib/xero_ap_is/models/organisation.rb +467 -0
  156. data/lib/xero_ap_is/models/organisation_entity_type.rb +80 -0
  157. data/lib/xero_ap_is/models/organisation_role.rb +61 -0
  158. data/lib/xero_ap_is/models/organisation_type.rb +80 -0
  159. data/lib/xero_ap_is/models/organisations.rb +85 -0
  160. data/lib/xero_ap_is/models/overpayment.rb +309 -0
  161. data/lib/xero_ap_is/models/overpayments.rb +113 -0
  162. data/lib/xero_ap_is/models/pagination.rb +105 -0
  163. data/lib/xero_ap_is/models/payment.rb +381 -0
  164. data/lib/xero_ap_is/models/payment_delete.rb +73 -0
  165. data/lib/xero_ap_is/models/payment_service.rb +143 -0
  166. data/lib/xero_ap_is/models/payment_services.rb +85 -0
  167. data/lib/xero_ap_is/models/payment_term.rb +85 -0
  168. data/lib/xero_ap_is/models/payment_term_type.rb +44 -0
  169. data/lib/xero_ap_is/models/payment_type.rb +60 -0
  170. data/lib/xero_ap_is/models/payments.rb +113 -0
  171. data/lib/xero_ap_is/models/phone.rb +108 -0
  172. data/lib/xero_ap_is/models/phone_type.rb +48 -0
  173. data/lib/xero_ap_is/models/prepayment.rb +309 -0
  174. data/lib/xero_ap_is/models/prepayments.rb +113 -0
  175. data/lib/xero_ap_is/models/project.rb +328 -0
  176. data/lib/xero_ap_is/models/project_create_or_update.rb +115 -0
  177. data/lib/xero_ap_is/models/project_patch.rb +73 -0
  178. data/lib/xero_ap_is/models/project_status.rb +36 -0
  179. data/lib/xero_ap_is/models/project_user.rb +95 -0
  180. data/lib/xero_ap_is/models/project_users.rb +94 -0
  181. data/lib/xero_ap_is/models/projects.rb +94 -0
  182. data/lib/xero_ap_is/models/purchase.rb +112 -0
  183. data/lib/xero_ap_is/models/purchase_order.rb +408 -0
  184. data/lib/xero_ap_is/models/purchase_orders.rb +114 -0
  185. data/lib/xero_ap_is/models/purchases_default_line_amount_type.rb +42 -0
  186. data/lib/xero_ap_is/models/quote.rb +338 -0
  187. data/lib/xero_ap_is/models/quote_line_amount_types.rb +41 -0
  188. data/lib/xero_ap_is/models/quote_status_codes.rb +52 -0
  189. data/lib/xero_ap_is/models/quotes.rb +84 -0
  190. data/lib/xero_ap_is/models/receipt.rb +287 -0
  191. data/lib/xero_ap_is/models/receipts.rb +84 -0
  192. data/lib/xero_ap_is/models/refresh_token.rb +106 -0
  193. data/lib/xero_ap_is/models/repeating_invoice.rb +290 -0
  194. data/lib/xero_ap_is/models/repeating_invoices.rb +85 -0
  195. data/lib/xero_ap_is/models/report.rb +136 -0
  196. data/lib/xero_ap_is/models/report_attribute.rb +85 -0
  197. data/lib/xero_ap_is/models/report_cell.rb +94 -0
  198. data/lib/xero_ap_is/models/report_fields.rb +95 -0
  199. data/lib/xero_ap_is/models/report_row.rb +104 -0
  200. data/lib/xero_ap_is/models/report_rows.rb +123 -0
  201. data/lib/xero_ap_is/models/report_tax_type.rb +424 -0
  202. data/lib/xero_ap_is/models/report_type.rb +26 -0
  203. data/lib/xero_ap_is/models/report_with_row.rb +176 -0
  204. data/lib/xero_ap_is/models/report_with_rows.rb +84 -0
  205. data/lib/xero_ap_is/models/reports.rb +84 -0
  206. data/lib/xero_ap_is/models/request_empty.rb +75 -0
  207. data/lib/xero_ap_is/models/resource_validation_errors_element.rb +116 -0
  208. data/lib/xero_ap_is/models/row_type.rb +44 -0
  209. data/lib/xero_ap_is/models/sales_default_line_amount_type.rb +42 -0
  210. data/lib/xero_ap_is/models/sales_tax_basis.rb +60 -0
  211. data/lib/xero_ap_is/models/sales_tax_period.rb +88 -0
  212. data/lib/xero_ap_is/models/sales_tracking_category.rb +89 -0
  213. data/lib/xero_ap_is/models/schedule.rb +140 -0
  214. data/lib/xero_ap_is/models/setting.rb +175 -0
  215. data/lib/xero_ap_is/models/setup.rb +117 -0
  216. data/lib/xero_ap_is/models/sort_direction.rb +36 -0
  217. data/lib/xero_ap_is/models/source_transaction_type_code.rb +38 -0
  218. data/lib/xero_ap_is/models/source_type.rb +128 -0
  219. data/lib/xero_ap_is/models/start_balance.rb +88 -0
  220. data/lib/xero_ap_is/models/statement.rb +194 -0
  221. data/lib/xero_ap_is/models/statement_line.rb +162 -0
  222. data/lib/xero_ap_is/models/statements.rb +94 -0
  223. data/lib/xero_ap_is/models/status.rb +41 -0
  224. data/lib/xero_ap_is/models/status1.rb +38 -0
  225. data/lib/xero_ap_is/models/status10.rb +40 -0
  226. data/lib/xero_ap_is/models/status11.rb +44 -0
  227. data/lib/xero_ap_is/models/status110.rb +40 -0
  228. data/lib/xero_ap_is/models/status111.rb +43 -0
  229. data/lib/xero_ap_is/models/status12.rb +48 -0
  230. data/lib/xero_ap_is/models/status13.rb +48 -0
  231. data/lib/xero_ap_is/models/status14.rb +52 -0
  232. data/lib/xero_ap_is/models/status15.rb +48 -0
  233. data/lib/xero_ap_is/models/status16.rb +36 -0
  234. data/lib/xero_ap_is/models/status17.rb +48 -0
  235. data/lib/xero_ap_is/models/status18.rb +40 -0
  236. data/lib/xero_ap_is/models/status19.rb +44 -0
  237. data/lib/xero_ap_is/models/status2.rb +40 -0
  238. data/lib/xero_ap_is/models/status20.rb +48 -0
  239. data/lib/xero_ap_is/models/status21.rb +36 -0
  240. data/lib/xero_ap_is/models/status22.rb +44 -0
  241. data/lib/xero_ap_is/models/status3.rb +52 -0
  242. data/lib/xero_ap_is/models/status4.rb +40 -0
  243. data/lib/xero_ap_is/models/status5.rb +40 -0
  244. data/lib/xero_ap_is/models/status6.rb +52 -0
  245. data/lib/xero_ap_is/models/status7.rb +36 -0
  246. data/lib/xero_ap_is/models/status8.rb +37 -0
  247. data/lib/xero_ap_is/models/status9.rb +40 -0
  248. data/lib/xero_ap_is/models/system_account.rb +110 -0
  249. data/lib/xero_ap_is/models/task.rb +234 -0
  250. data/lib/xero_ap_is/models/task_create_or_update.rb +105 -0
  251. data/lib/xero_ap_is/models/tasks.rb +94 -0
  252. data/lib/xero_ap_is/models/tax_breakdown_component.rb +172 -0
  253. data/lib/xero_ap_is/models/tax_component.rb +108 -0
  254. data/lib/xero_ap_is/models/tax_number_type.rb +45 -0
  255. data/lib/xero_ap_is/models/tax_rate.rb +213 -0
  256. data/lib/xero_ap_is/models/tax_rates.rb +85 -0
  257. data/lib/xero_ap_is/models/tax_type.rb +520 -0
  258. data/lib/xero_ap_is/models/taxability.rb +48 -0
  259. data/lib/xero_ap_is/models/ten_ninety_nine_contact.rb +318 -0
  260. data/lib/xero_ap_is/models/time_entries.rb +94 -0
  261. data/lib/xero_ap_is/models/time_entry.rb +179 -0
  262. data/lib/xero_ap_is/models/time_entry_create_or_update.rb +120 -0
  263. data/lib/xero_ap_is/models/time_zone.rb +592 -0
  264. data/lib/xero_ap_is/models/timeframe.rb +40 -0
  265. data/lib/xero_ap_is/models/tracking_categories.rb +85 -0
  266. data/lib/xero_ap_is/models/tracking_category.rb +140 -0
  267. data/lib/xero_ap_is/models/tracking_option.rb +109 -0
  268. data/lib/xero_ap_is/models/tracking_options.rb +84 -0
  269. data/lib/xero_ap_is/models/type.rb +60 -0
  270. data/lib/xero_ap_is/models/type1.rb +26 -0
  271. data/lib/xero_ap_is/models/type10.rb +36 -0
  272. data/lib/xero_ap_is/models/type11.rb +114 -0
  273. data/lib/xero_ap_is/models/type2.rb +48 -0
  274. data/lib/xero_ap_is/models/type3.rb +60 -0
  275. data/lib/xero_ap_is/models/type4.rb +44 -0
  276. data/lib/xero_ap_is/models/type5.rb +40 -0
  277. data/lib/xero_ap_is/models/type6.rb +36 -0
  278. data/lib/xero_ap_is/models/type7.rb +37 -0
  279. data/lib/xero_ap_is/models/type8.rb +36 -0
  280. data/lib/xero_ap_is/models/type9.rb +26 -0
  281. data/lib/xero_ap_is/models/unit.rb +36 -0
  282. data/lib/xero_ap_is/models/user.rb +139 -0
  283. data/lib/xero_ap_is/models/users.rb +84 -0
  284. data/lib/xero_ap_is/models/validation_error.rb +75 -0
  285. data/lib/xero_ap_is/models/version.rb +68 -0
  286. data/lib/xero_ap_is/utilities/date_time_helper.rb +11 -0
  287. data/lib/xero_ap_is/utilities/file_wrapper.rb +28 -0
  288. data/lib/xero_ap_is.rb +309 -0
  289. metadata +372 -0
@@ -0,0 +1,95 @@
1
+ # xero_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module XeroApIs
7
+ # LineItemItem Model.
8
+ class LineItemItem < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # User defined item code (max length = 30)
13
+ # @return [String]
14
+ attr_accessor :code
15
+
16
+ # The name of the item (max length = 50)
17
+ # @return [String]
18
+ attr_accessor :name
19
+
20
+ # The Xero identifier for an Item
21
+ # @return [UUID | String]
22
+ attr_accessor :item_id
23
+
24
+ # A mapping from model property names to API property names.
25
+ def self.names
26
+ @_hash = {} if @_hash.nil?
27
+ @_hash['code'] = 'Code'
28
+ @_hash['name'] = 'Name'
29
+ @_hash['item_id'] = 'ItemID'
30
+ @_hash
31
+ end
32
+
33
+ # An array for optional fields
34
+ def self.optionals
35
+ %w[
36
+ code
37
+ name
38
+ item_id
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(code: SKIP, name: SKIP, item_id: SKIP,
48
+ additional_properties: nil)
49
+ # Add additional model properties to the instance
50
+ additional_properties = {} if additional_properties.nil?
51
+
52
+ @code = code unless code == SKIP
53
+ @name = name unless name == SKIP
54
+ @item_id = item_id unless item_id == SKIP
55
+ @additional_properties = additional_properties
56
+ end
57
+
58
+ # Creates an instance of the object from a hash.
59
+ def self.from_hash(hash)
60
+ return nil unless hash
61
+
62
+ # Extract variables from the hash.
63
+ code = hash.key?('Code') ? hash['Code'] : SKIP
64
+ name = hash.key?('Name') ? hash['Name'] : SKIP
65
+ item_id = hash.key?('ItemID') ? hash['ItemID'] : SKIP
66
+
67
+ # Create a new hash for additional properties, removing known properties.
68
+ new_hash = hash.reject { |k, _| names.value?(k) }
69
+
70
+ additional_properties = APIHelper.get_additional_properties(
71
+ new_hash, proc { |value| value }
72
+ )
73
+
74
+ # Create object from extracted values.
75
+ LineItemItem.new(code: code,
76
+ name: name,
77
+ item_id: item_id,
78
+ additional_properties: additional_properties)
79
+ end
80
+
81
+ # Provides a human-readable string representation of the object.
82
+ def to_s
83
+ class_name = self.class.name.split('::').last
84
+ "<#{class_name} code: #{@code}, name: #{@name}, item_id: #{@item_id},"\
85
+ " additional_properties: #{@additional_properties}>"
86
+ end
87
+
88
+ # Provides a debugging-friendly string with detailed object information.
89
+ def inspect
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} code: #{@code.inspect}, name: #{@name.inspect}, item_id:"\
92
+ " #{@item_id.inspect}, additional_properties: #{@additional_properties}>"
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,108 @@
1
+ # xero_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module XeroApIs
7
+ # LineItemTracking Model.
8
+ class LineItemTracking < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The Xero identifier for a tracking category
13
+ # @return [UUID | String]
14
+ attr_accessor :tracking_category_id
15
+
16
+ # The Xero identifier for a tracking category option
17
+ # @return [UUID | String]
18
+ attr_accessor :tracking_option_id
19
+
20
+ # The name of the tracking category
21
+ # @return [String]
22
+ attr_accessor :name
23
+
24
+ # See Tracking Options
25
+ # @return [String]
26
+ attr_accessor :option
27
+
28
+ # A mapping from model property names to API property names.
29
+ def self.names
30
+ @_hash = {} if @_hash.nil?
31
+ @_hash['tracking_category_id'] = 'TrackingCategoryID'
32
+ @_hash['tracking_option_id'] = 'TrackingOptionID'
33
+ @_hash['name'] = 'Name'
34
+ @_hash['option'] = 'Option'
35
+ @_hash
36
+ end
37
+
38
+ # An array for optional fields
39
+ def self.optionals
40
+ %w[
41
+ tracking_category_id
42
+ tracking_option_id
43
+ name
44
+ option
45
+ ]
46
+ end
47
+
48
+ # An array for nullable fields
49
+ def self.nullables
50
+ []
51
+ end
52
+
53
+ def initialize(tracking_category_id: SKIP, tracking_option_id: SKIP,
54
+ name: SKIP, option: SKIP, additional_properties: nil)
55
+ # Add additional model properties to the instance
56
+ additional_properties = {} if additional_properties.nil?
57
+
58
+ @tracking_category_id = tracking_category_id unless tracking_category_id == SKIP
59
+ @tracking_option_id = tracking_option_id unless tracking_option_id == SKIP
60
+ @name = name unless name == SKIP
61
+ @option = option unless option == SKIP
62
+ @additional_properties = additional_properties
63
+ end
64
+
65
+ # Creates an instance of the object from a hash.
66
+ def self.from_hash(hash)
67
+ return nil unless hash
68
+
69
+ # Extract variables from the hash.
70
+ tracking_category_id =
71
+ hash.key?('TrackingCategoryID') ? hash['TrackingCategoryID'] : SKIP
72
+ tracking_option_id =
73
+ hash.key?('TrackingOptionID') ? hash['TrackingOptionID'] : SKIP
74
+ name = hash.key?('Name') ? hash['Name'] : SKIP
75
+ option = hash.key?('Option') ? hash['Option'] : SKIP
76
+
77
+ # Create a new hash for additional properties, removing known properties.
78
+ new_hash = hash.reject { |k, _| names.value?(k) }
79
+
80
+ additional_properties = APIHelper.get_additional_properties(
81
+ new_hash, proc { |value| value }
82
+ )
83
+
84
+ # Create object from extracted values.
85
+ LineItemTracking.new(tracking_category_id: tracking_category_id,
86
+ tracking_option_id: tracking_option_id,
87
+ name: name,
88
+ option: option,
89
+ additional_properties: additional_properties)
90
+ end
91
+
92
+ # Provides a human-readable string representation of the object.
93
+ def to_s
94
+ class_name = self.class.name.split('::').last
95
+ "<#{class_name} tracking_category_id: #{@tracking_category_id}, tracking_option_id:"\
96
+ " #{@tracking_option_id}, name: #{@name}, option: #{@option}, additional_properties:"\
97
+ " #{@additional_properties}>"
98
+ end
99
+
100
+ # Provides a debugging-friendly string with detailed object information.
101
+ def inspect
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} tracking_category_id: #{@tracking_category_id.inspect}, tracking_option_id:"\
104
+ " #{@tracking_option_id.inspect}, name: #{@name.inspect}, option: #{@option.inspect},"\
105
+ " additional_properties: #{@additional_properties}>"
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,48 @@
1
+ # xero_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module XeroApIs
7
+ # See External link types
8
+ class LinkType
9
+ LINK_TYPE = [
10
+ # TODO: Write general description for FACEBOOK
11
+ FACEBOOK = 'Facebook'.freeze,
12
+
13
+ # TODO: Write general description for GOOGLEPLUS
14
+ GOOGLEPLUS = 'GooglePlus'.freeze,
15
+
16
+ # TODO: Write general description for LINKEDIN
17
+ LINKEDIN = 'LinkedIn'.freeze,
18
+
19
+ # TODO: Write general description for TWITTER
20
+ TWITTER = 'Twitter'.freeze,
21
+
22
+ # TODO: Write general description for WEBSITE
23
+ WEBSITE = 'Website'.freeze
24
+ ].freeze
25
+
26
+ def self.validate(value)
27
+ return false if value.nil?
28
+
29
+ LINK_TYPE.include?(value)
30
+ end
31
+
32
+ def self.from_value(value, default_value = FACEBOOK)
33
+ return default_value if value.nil?
34
+
35
+ str = value.to_s.strip
36
+
37
+ case str.downcase
38
+ when 'facebook' then FACEBOOK
39
+ when 'googleplus' then GOOGLEPLUS
40
+ when 'linkedin' then LINKEDIN
41
+ when 'twitter' then TWITTER
42
+ when 'website' then WEBSITE
43
+ else
44
+ default_value
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,215 @@
1
+ # xero_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module XeroApIs
7
+ # LinkedTransaction Model.
8
+ class LinkedTransaction < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Filter by the SourceTransactionID. Get all the linked transactions created
13
+ # from a particular ACCPAY invoice
14
+ # @return [UUID | String]
15
+ attr_accessor :source_transaction_id
16
+
17
+ # The line item identifier from the source transaction.
18
+ # @return [UUID | String]
19
+ attr_accessor :source_line_item_id
20
+
21
+ # Filter by the combination of ContactID and Status. Get all the linked
22
+ # transactions that have been assigned to a particular customer and have a
23
+ # particular status e.g. GET
24
+ # /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=
25
+ # APPROVED.
26
+ # @return [UUID | String]
27
+ attr_accessor :contact_id
28
+
29
+ # Filter by the TargetTransactionID. Get all the linked transactions
30
+ # allocated to a particular ACCREC invoice
31
+ # @return [UUID | String]
32
+ attr_accessor :target_transaction_id
33
+
34
+ # The line item identifier from the target transaction. It is possible to
35
+ # link multiple billable expenses to the same TargetLineItemID.
36
+ # @return [UUID | String]
37
+ attr_accessor :target_line_item_id
38
+
39
+ # The Xero identifier for an Linked Transaction
40
+ # e.g./LinkedTransactions/297c2dc5-cc47-4afd-8ec8-74990b8761e9
41
+ # @return [UUID | String]
42
+ attr_accessor :linked_transaction_id
43
+
44
+ # Filter by the combination of ContactID and Status. Get all the linked
45
+ # transactions that have been assigned to a particular customer and have a
46
+ # particular status e.g. GET
47
+ # /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=
48
+ # APPROVED.
49
+ # @return [Status14]
50
+ attr_accessor :status
51
+
52
+ # This will always be BILLABLEEXPENSE. More types may be added in future.
53
+ # @return [Type9]
54
+ attr_accessor :type
55
+
56
+ # The last modified date in UTC format
57
+ # @return [String]
58
+ attr_accessor :updated_date_utc
59
+
60
+ # The Type of the source tranasction. This will be ACCPAY if the linked
61
+ # transaction was created from an invoice and SPEND if it was created from a
62
+ # bank transaction.
63
+ # @return [SourceTransactionTypeCode]
64
+ attr_accessor :source_transaction_type_code
65
+
66
+ # Displays array of validation error messages from the API
67
+ # @return [Array[ValidationError]]
68
+ attr_accessor :validation_errors
69
+
70
+ # A mapping from model property names to API property names.
71
+ def self.names
72
+ @_hash = {} if @_hash.nil?
73
+ @_hash['source_transaction_id'] = 'SourceTransactionID'
74
+ @_hash['source_line_item_id'] = 'SourceLineItemID'
75
+ @_hash['contact_id'] = 'ContactID'
76
+ @_hash['target_transaction_id'] = 'TargetTransactionID'
77
+ @_hash['target_line_item_id'] = 'TargetLineItemID'
78
+ @_hash['linked_transaction_id'] = 'LinkedTransactionID'
79
+ @_hash['status'] = 'Status'
80
+ @_hash['type'] = 'Type'
81
+ @_hash['updated_date_utc'] = 'UpdatedDateUTC'
82
+ @_hash['source_transaction_type_code'] = 'SourceTransactionTypeCode'
83
+ @_hash['validation_errors'] = 'ValidationErrors'
84
+ @_hash
85
+ end
86
+
87
+ # An array for optional fields
88
+ def self.optionals
89
+ %w[
90
+ source_transaction_id
91
+ source_line_item_id
92
+ contact_id
93
+ target_transaction_id
94
+ target_line_item_id
95
+ linked_transaction_id
96
+ status
97
+ type
98
+ updated_date_utc
99
+ source_transaction_type_code
100
+ validation_errors
101
+ ]
102
+ end
103
+
104
+ # An array for nullable fields
105
+ def self.nullables
106
+ []
107
+ end
108
+
109
+ def initialize(source_transaction_id: SKIP, source_line_item_id: SKIP,
110
+ contact_id: SKIP, target_transaction_id: SKIP,
111
+ target_line_item_id: SKIP, linked_transaction_id: SKIP,
112
+ status: SKIP, type: SKIP, updated_date_utc: SKIP,
113
+ source_transaction_type_code: SKIP, validation_errors: SKIP,
114
+ additional_properties: nil)
115
+ # Add additional model properties to the instance
116
+ additional_properties = {} if additional_properties.nil?
117
+
118
+ @source_transaction_id = source_transaction_id unless source_transaction_id == SKIP
119
+ @source_line_item_id = source_line_item_id unless source_line_item_id == SKIP
120
+ @contact_id = contact_id unless contact_id == SKIP
121
+ @target_transaction_id = target_transaction_id unless target_transaction_id == SKIP
122
+ @target_line_item_id = target_line_item_id unless target_line_item_id == SKIP
123
+ @linked_transaction_id = linked_transaction_id unless linked_transaction_id == SKIP
124
+ @status = status unless status == SKIP
125
+ @type = type unless type == SKIP
126
+ @updated_date_utc = updated_date_utc unless updated_date_utc == SKIP
127
+ unless source_transaction_type_code == SKIP
128
+ @source_transaction_type_code =
129
+ source_transaction_type_code
130
+ end
131
+ @validation_errors = validation_errors unless validation_errors == SKIP
132
+ @additional_properties = additional_properties
133
+ end
134
+
135
+ # Creates an instance of the object from a hash.
136
+ def self.from_hash(hash)
137
+ return nil unless hash
138
+
139
+ # Extract variables from the hash.
140
+ source_transaction_id =
141
+ hash.key?('SourceTransactionID') ? hash['SourceTransactionID'] : SKIP
142
+ source_line_item_id =
143
+ hash.key?('SourceLineItemID') ? hash['SourceLineItemID'] : SKIP
144
+ contact_id = hash.key?('ContactID') ? hash['ContactID'] : SKIP
145
+ target_transaction_id =
146
+ hash.key?('TargetTransactionID') ? hash['TargetTransactionID'] : SKIP
147
+ target_line_item_id =
148
+ hash.key?('TargetLineItemID') ? hash['TargetLineItemID'] : SKIP
149
+ linked_transaction_id =
150
+ hash.key?('LinkedTransactionID') ? hash['LinkedTransactionID'] : SKIP
151
+ status = hash.key?('Status') ? hash['Status'] : SKIP
152
+ type = hash.key?('Type') ? hash['Type'] : SKIP
153
+ updated_date_utc =
154
+ hash.key?('UpdatedDateUTC') ? hash['UpdatedDateUTC'] : SKIP
155
+ source_transaction_type_code =
156
+ hash.key?('SourceTransactionTypeCode') ? hash['SourceTransactionTypeCode'] : SKIP
157
+ # Parameter is an array, so we need to iterate through it
158
+ validation_errors = nil
159
+ unless hash['ValidationErrors'].nil?
160
+ validation_errors = []
161
+ hash['ValidationErrors'].each do |structure|
162
+ validation_errors << (ValidationError.from_hash(structure) if structure)
163
+ end
164
+ end
165
+
166
+ validation_errors = SKIP unless hash.key?('ValidationErrors')
167
+
168
+ # Create a new hash for additional properties, removing known properties.
169
+ new_hash = hash.reject { |k, _| names.value?(k) }
170
+
171
+ additional_properties = APIHelper.get_additional_properties(
172
+ new_hash, proc { |value| value }
173
+ )
174
+
175
+ # Create object from extracted values.
176
+ LinkedTransaction.new(source_transaction_id: source_transaction_id,
177
+ source_line_item_id: source_line_item_id,
178
+ contact_id: contact_id,
179
+ target_transaction_id: target_transaction_id,
180
+ target_line_item_id: target_line_item_id,
181
+ linked_transaction_id: linked_transaction_id,
182
+ status: status,
183
+ type: type,
184
+ updated_date_utc: updated_date_utc,
185
+ source_transaction_type_code: source_transaction_type_code,
186
+ validation_errors: validation_errors,
187
+ additional_properties: additional_properties)
188
+ end
189
+
190
+ # Provides a human-readable string representation of the object.
191
+ def to_s
192
+ class_name = self.class.name.split('::').last
193
+ "<#{class_name} source_transaction_id: #{@source_transaction_id}, source_line_item_id:"\
194
+ " #{@source_line_item_id}, contact_id: #{@contact_id}, target_transaction_id:"\
195
+ " #{@target_transaction_id}, target_line_item_id: #{@target_line_item_id},"\
196
+ " linked_transaction_id: #{@linked_transaction_id}, status: #{@status}, type: #{@type},"\
197
+ " updated_date_utc: #{@updated_date_utc}, source_transaction_type_code:"\
198
+ " #{@source_transaction_type_code}, validation_errors: #{@validation_errors},"\
199
+ " additional_properties: #{@additional_properties}>"
200
+ end
201
+
202
+ # Provides a debugging-friendly string with detailed object information.
203
+ def inspect
204
+ class_name = self.class.name.split('::').last
205
+ "<#{class_name} source_transaction_id: #{@source_transaction_id.inspect},"\
206
+ " source_line_item_id: #{@source_line_item_id.inspect}, contact_id: #{@contact_id.inspect},"\
207
+ " target_transaction_id: #{@target_transaction_id.inspect}, target_line_item_id:"\
208
+ " #{@target_line_item_id.inspect}, linked_transaction_id: #{@linked_transaction_id.inspect},"\
209
+ " status: #{@status.inspect}, type: #{@type.inspect}, updated_date_utc:"\
210
+ " #{@updated_date_utc.inspect}, source_transaction_type_code:"\
211
+ " #{@source_transaction_type_code.inspect}, validation_errors:"\
212
+ " #{@validation_errors.inspect}, additional_properties: #{@additional_properties}>"
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,85 @@
1
+ # xero_ap_is
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module XeroApIs
7
+ # LinkedTransactions Model.
8
+ class LinkedTransactions < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Array[LinkedTransaction]]
14
+ attr_accessor :linked_transactions
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['linked_transactions'] = 'LinkedTransactions'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ linked_transactions
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(linked_transactions: SKIP, additional_properties: nil)
36
+ # Add additional model properties to the instance
37
+ additional_properties = {} if additional_properties.nil?
38
+
39
+ @linked_transactions = linked_transactions unless linked_transactions == SKIP
40
+ @additional_properties = additional_properties
41
+ end
42
+
43
+ # Creates an instance of the object from a hash.
44
+ def self.from_hash(hash)
45
+ return nil unless hash
46
+
47
+ # Extract variables from the hash.
48
+ # Parameter is an array, so we need to iterate through it
49
+ linked_transactions = nil
50
+ unless hash['LinkedTransactions'].nil?
51
+ linked_transactions = []
52
+ hash['LinkedTransactions'].each do |structure|
53
+ linked_transactions << (LinkedTransaction.from_hash(structure) if structure)
54
+ end
55
+ end
56
+
57
+ linked_transactions = SKIP unless hash.key?('LinkedTransactions')
58
+
59
+ # Create a new hash for additional properties, removing known properties.
60
+ new_hash = hash.reject { |k, _| names.value?(k) }
61
+
62
+ additional_properties = APIHelper.get_additional_properties(
63
+ new_hash, proc { |value| value }
64
+ )
65
+
66
+ # Create object from extracted values.
67
+ LinkedTransactions.new(linked_transactions: linked_transactions,
68
+ additional_properties: additional_properties)
69
+ end
70
+
71
+ # Provides a human-readable string representation of the object.
72
+ def to_s
73
+ class_name = self.class.name.split('::').last
74
+ "<#{class_name} linked_transactions: #{@linked_transactions}, additional_properties:"\
75
+ " #{@additional_properties}>"
76
+ end
77
+
78
+ # Provides a debugging-friendly string with detailed object information.
79
+ def inspect
80
+ class_name = self.class.name.split('::').last
81
+ "<#{class_name} linked_transactions: #{@linked_transactions.inspect},"\
82
+ " additional_properties: #{@additional_properties}>"
83
+ end
84
+ end
85
+ end