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,338 @@
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
+ # Quote Model.
8
+ class Quote < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # QuoteID GUID is automatically generated and is returned after create or
13
+ # GET.
14
+ # @return [UUID | String]
15
+ attr_accessor :quote_id
16
+
17
+ # Unique alpha numeric code identifying a quote (Max Length = 255)
18
+ # @return [String]
19
+ attr_accessor :quote_number
20
+
21
+ # Additional reference number
22
+ # @return [String]
23
+ attr_accessor :reference
24
+
25
+ # Terms of the quote
26
+ # @return [String]
27
+ attr_accessor :terms
28
+
29
+ # Terms of the quote
30
+ # @return [Contact]
31
+ attr_accessor :contact
32
+
33
+ # See LineItems
34
+ # @return [Array[LineItem]]
35
+ attr_accessor :line_items
36
+
37
+ # Date quote was issued – YYYY-MM-DD. If the Date element is not specified
38
+ # it will default to the current date based on the timezone setting of the
39
+ # organisation
40
+ # @return [String]
41
+ attr_accessor :date
42
+
43
+ # Date the quote was issued (YYYY-MM-DD)
44
+ # @return [String]
45
+ attr_accessor :date_string
46
+
47
+ # Date the quote expires – YYYY-MM-DD.
48
+ # @return [String]
49
+ attr_accessor :expiry_date
50
+
51
+ # Date the quote expires – YYYY-MM-DD.
52
+ # @return [String]
53
+ attr_accessor :expiry_date_string
54
+
55
+ # The status of the quote.
56
+ # @return [QuoteStatusCodes]
57
+ attr_accessor :status
58
+
59
+ # 3 letter alpha code for the currency – see list of currency codes
60
+ # @return [CurrencyCode]
61
+ attr_accessor :currency_code
62
+
63
+ # The currency rate for a multicurrency quote
64
+ # @return [Float]
65
+ attr_accessor :currency_rate
66
+
67
+ # Total of quote excluding taxes.
68
+ # @return [Float]
69
+ attr_accessor :sub_total
70
+
71
+ # Total tax on quote
72
+ # @return [Float]
73
+ attr_accessor :total_tax
74
+
75
+ # Total of Quote tax inclusive (i.e. SubTotal + TotalTax). This will be
76
+ # ignored if it doesn’t equal the sum of the LineAmounts
77
+ # @return [Float]
78
+ attr_accessor :total
79
+
80
+ # Total of discounts applied on the quote line items
81
+ # @return [Float]
82
+ attr_accessor :total_discount
83
+
84
+ # Title text for the quote
85
+ # @return [String]
86
+ attr_accessor :title
87
+
88
+ # Summary text for the quote
89
+ # @return [String]
90
+ attr_accessor :summary
91
+
92
+ # See BrandingThemes
93
+ # @return [UUID | String]
94
+ attr_accessor :branding_theme_id
95
+
96
+ # Last modified date UTC format
97
+ # @return [String]
98
+ attr_accessor :updated_date_utc
99
+
100
+ # Line amounts are exclusive of tax by default if you don’t specify this
101
+ # element. See Line Amount Types
102
+ # @return [QuoteLineAmountTypes]
103
+ attr_accessor :line_amount_types
104
+
105
+ # A string to indicate if a invoice status
106
+ # @return [String]
107
+ attr_accessor :status_attribute_string
108
+
109
+ # Displays array of validation error messages from the API
110
+ # @return [Array[ValidationError]]
111
+ attr_accessor :validation_errors
112
+
113
+ # A mapping from model property names to API property names.
114
+ def self.names
115
+ @_hash = {} if @_hash.nil?
116
+ @_hash['quote_id'] = 'QuoteID'
117
+ @_hash['quote_number'] = 'QuoteNumber'
118
+ @_hash['reference'] = 'Reference'
119
+ @_hash['terms'] = 'Terms'
120
+ @_hash['contact'] = 'Contact'
121
+ @_hash['line_items'] = 'LineItems'
122
+ @_hash['date'] = 'Date'
123
+ @_hash['date_string'] = 'DateString'
124
+ @_hash['expiry_date'] = 'ExpiryDate'
125
+ @_hash['expiry_date_string'] = 'ExpiryDateString'
126
+ @_hash['status'] = 'Status'
127
+ @_hash['currency_code'] = 'CurrencyCode'
128
+ @_hash['currency_rate'] = 'CurrencyRate'
129
+ @_hash['sub_total'] = 'SubTotal'
130
+ @_hash['total_tax'] = 'TotalTax'
131
+ @_hash['total'] = 'Total'
132
+ @_hash['total_discount'] = 'TotalDiscount'
133
+ @_hash['title'] = 'Title'
134
+ @_hash['summary'] = 'Summary'
135
+ @_hash['branding_theme_id'] = 'BrandingThemeID'
136
+ @_hash['updated_date_utc'] = 'UpdatedDateUTC'
137
+ @_hash['line_amount_types'] = 'LineAmountTypes'
138
+ @_hash['status_attribute_string'] = 'StatusAttributeString'
139
+ @_hash['validation_errors'] = 'ValidationErrors'
140
+ @_hash
141
+ end
142
+
143
+ # An array for optional fields
144
+ def self.optionals
145
+ %w[
146
+ quote_id
147
+ quote_number
148
+ reference
149
+ terms
150
+ contact
151
+ line_items
152
+ date
153
+ date_string
154
+ expiry_date
155
+ expiry_date_string
156
+ status
157
+ currency_code
158
+ currency_rate
159
+ sub_total
160
+ total_tax
161
+ total
162
+ total_discount
163
+ title
164
+ summary
165
+ branding_theme_id
166
+ updated_date_utc
167
+ line_amount_types
168
+ status_attribute_string
169
+ validation_errors
170
+ ]
171
+ end
172
+
173
+ # An array for nullable fields
174
+ def self.nullables
175
+ []
176
+ end
177
+
178
+ def initialize(quote_id: SKIP, quote_number: SKIP, reference: SKIP,
179
+ terms: SKIP, contact: SKIP, line_items: SKIP, date: SKIP,
180
+ date_string: SKIP, expiry_date: SKIP,
181
+ expiry_date_string: SKIP, status: SKIP, currency_code: SKIP,
182
+ currency_rate: SKIP, sub_total: SKIP, total_tax: SKIP,
183
+ total: SKIP, total_discount: SKIP, title: SKIP,
184
+ summary: SKIP, branding_theme_id: SKIP,
185
+ updated_date_utc: SKIP, line_amount_types: SKIP,
186
+ status_attribute_string: SKIP, validation_errors: SKIP,
187
+ additional_properties: nil)
188
+ # Add additional model properties to the instance
189
+ additional_properties = {} if additional_properties.nil?
190
+
191
+ @quote_id = quote_id unless quote_id == SKIP
192
+ @quote_number = quote_number unless quote_number == SKIP
193
+ @reference = reference unless reference == SKIP
194
+ @terms = terms unless terms == SKIP
195
+ @contact = contact unless contact == SKIP
196
+ @line_items = line_items unless line_items == SKIP
197
+ @date = date unless date == SKIP
198
+ @date_string = date_string unless date_string == SKIP
199
+ @expiry_date = expiry_date unless expiry_date == SKIP
200
+ @expiry_date_string = expiry_date_string unless expiry_date_string == SKIP
201
+ @status = status unless status == SKIP
202
+ @currency_code = currency_code unless currency_code == SKIP
203
+ @currency_rate = currency_rate unless currency_rate == SKIP
204
+ @sub_total = sub_total unless sub_total == SKIP
205
+ @total_tax = total_tax unless total_tax == SKIP
206
+ @total = total unless total == SKIP
207
+ @total_discount = total_discount unless total_discount == SKIP
208
+ @title = title unless title == SKIP
209
+ @summary = summary unless summary == SKIP
210
+ @branding_theme_id = branding_theme_id unless branding_theme_id == SKIP
211
+ @updated_date_utc = updated_date_utc unless updated_date_utc == SKIP
212
+ @line_amount_types = line_amount_types unless line_amount_types == SKIP
213
+ @status_attribute_string = status_attribute_string unless status_attribute_string == SKIP
214
+ @validation_errors = validation_errors unless validation_errors == SKIP
215
+ @additional_properties = additional_properties
216
+ end
217
+
218
+ # Creates an instance of the object from a hash.
219
+ def self.from_hash(hash)
220
+ return nil unless hash
221
+
222
+ # Extract variables from the hash.
223
+ quote_id = hash.key?('QuoteID') ? hash['QuoteID'] : SKIP
224
+ quote_number = hash.key?('QuoteNumber') ? hash['QuoteNumber'] : SKIP
225
+ reference = hash.key?('Reference') ? hash['Reference'] : SKIP
226
+ terms = hash.key?('Terms') ? hash['Terms'] : SKIP
227
+ contact = Contact.from_hash(hash['Contact']) if hash['Contact']
228
+ # Parameter is an array, so we need to iterate through it
229
+ line_items = nil
230
+ unless hash['LineItems'].nil?
231
+ line_items = []
232
+ hash['LineItems'].each do |structure|
233
+ line_items << (LineItem.from_hash(structure) if structure)
234
+ end
235
+ end
236
+
237
+ line_items = SKIP unless hash.key?('LineItems')
238
+ date = hash.key?('Date') ? hash['Date'] : SKIP
239
+ date_string = hash.key?('DateString') ? hash['DateString'] : SKIP
240
+ expiry_date = hash.key?('ExpiryDate') ? hash['ExpiryDate'] : SKIP
241
+ expiry_date_string =
242
+ hash.key?('ExpiryDateString') ? hash['ExpiryDateString'] : SKIP
243
+ status = hash.key?('Status') ? hash['Status'] : SKIP
244
+ currency_code = hash.key?('CurrencyCode') ? hash['CurrencyCode'] : SKIP
245
+ currency_rate = hash.key?('CurrencyRate') ? hash['CurrencyRate'] : SKIP
246
+ sub_total = hash.key?('SubTotal') ? hash['SubTotal'] : SKIP
247
+ total_tax = hash.key?('TotalTax') ? hash['TotalTax'] : SKIP
248
+ total = hash.key?('Total') ? hash['Total'] : SKIP
249
+ total_discount = hash.key?('TotalDiscount') ? hash['TotalDiscount'] : SKIP
250
+ title = hash.key?('Title') ? hash['Title'] : SKIP
251
+ summary = hash.key?('Summary') ? hash['Summary'] : SKIP
252
+ branding_theme_id =
253
+ hash.key?('BrandingThemeID') ? hash['BrandingThemeID'] : SKIP
254
+ updated_date_utc =
255
+ hash.key?('UpdatedDateUTC') ? hash['UpdatedDateUTC'] : SKIP
256
+ line_amount_types =
257
+ hash.key?('LineAmountTypes') ? hash['LineAmountTypes'] : SKIP
258
+ status_attribute_string =
259
+ hash.key?('StatusAttributeString') ? hash['StatusAttributeString'] : SKIP
260
+ # Parameter is an array, so we need to iterate through it
261
+ validation_errors = nil
262
+ unless hash['ValidationErrors'].nil?
263
+ validation_errors = []
264
+ hash['ValidationErrors'].each do |structure|
265
+ validation_errors << (ValidationError.from_hash(structure) if structure)
266
+ end
267
+ end
268
+
269
+ validation_errors = SKIP unless hash.key?('ValidationErrors')
270
+
271
+ # Create a new hash for additional properties, removing known properties.
272
+ new_hash = hash.reject { |k, _| names.value?(k) }
273
+
274
+ additional_properties = APIHelper.get_additional_properties(
275
+ new_hash, proc { |value| value }
276
+ )
277
+
278
+ # Create object from extracted values.
279
+ Quote.new(quote_id: quote_id,
280
+ quote_number: quote_number,
281
+ reference: reference,
282
+ terms: terms,
283
+ contact: contact,
284
+ line_items: line_items,
285
+ date: date,
286
+ date_string: date_string,
287
+ expiry_date: expiry_date,
288
+ expiry_date_string: expiry_date_string,
289
+ status: status,
290
+ currency_code: currency_code,
291
+ currency_rate: currency_rate,
292
+ sub_total: sub_total,
293
+ total_tax: total_tax,
294
+ total: total,
295
+ total_discount: total_discount,
296
+ title: title,
297
+ summary: summary,
298
+ branding_theme_id: branding_theme_id,
299
+ updated_date_utc: updated_date_utc,
300
+ line_amount_types: line_amount_types,
301
+ status_attribute_string: status_attribute_string,
302
+ validation_errors: validation_errors,
303
+ additional_properties: additional_properties)
304
+ end
305
+
306
+ # Provides a human-readable string representation of the object.
307
+ def to_s
308
+ class_name = self.class.name.split('::').last
309
+ "<#{class_name} quote_id: #{@quote_id}, quote_number: #{@quote_number}, reference:"\
310
+ " #{@reference}, terms: #{@terms}, contact: #{@contact}, line_items: #{@line_items}, date:"\
311
+ " #{@date}, date_string: #{@date_string}, expiry_date: #{@expiry_date}, expiry_date_string:"\
312
+ " #{@expiry_date_string}, status: #{@status}, currency_code: #{@currency_code},"\
313
+ " currency_rate: #{@currency_rate}, sub_total: #{@sub_total}, total_tax: #{@total_tax},"\
314
+ " total: #{@total}, total_discount: #{@total_discount}, title: #{@title}, summary:"\
315
+ " #{@summary}, branding_theme_id: #{@branding_theme_id}, updated_date_utc:"\
316
+ " #{@updated_date_utc}, line_amount_types: #{@line_amount_types}, status_attribute_string:"\
317
+ " #{@status_attribute_string}, validation_errors: #{@validation_errors},"\
318
+ " additional_properties: #{@additional_properties}>"
319
+ end
320
+
321
+ # Provides a debugging-friendly string with detailed object information.
322
+ def inspect
323
+ class_name = self.class.name.split('::').last
324
+ "<#{class_name} quote_id: #{@quote_id.inspect}, quote_number: #{@quote_number.inspect},"\
325
+ " reference: #{@reference.inspect}, terms: #{@terms.inspect}, contact: #{@contact.inspect},"\
326
+ " line_items: #{@line_items.inspect}, date: #{@date.inspect}, date_string:"\
327
+ " #{@date_string.inspect}, expiry_date: #{@expiry_date.inspect}, expiry_date_string:"\
328
+ " #{@expiry_date_string.inspect}, status: #{@status.inspect}, currency_code:"\
329
+ " #{@currency_code.inspect}, currency_rate: #{@currency_rate.inspect}, sub_total:"\
330
+ " #{@sub_total.inspect}, total_tax: #{@total_tax.inspect}, total: #{@total.inspect},"\
331
+ " total_discount: #{@total_discount.inspect}, title: #{@title.inspect}, summary:"\
332
+ " #{@summary.inspect}, branding_theme_id: #{@branding_theme_id.inspect}, updated_date_utc:"\
333
+ " #{@updated_date_utc.inspect}, line_amount_types: #{@line_amount_types.inspect},"\
334
+ " status_attribute_string: #{@status_attribute_string.inspect}, validation_errors:"\
335
+ " #{@validation_errors.inspect}, additional_properties: #{@additional_properties}>"
336
+ end
337
+ end
338
+ end
@@ -0,0 +1,41 @@
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
+ # Line amounts are exclusive of tax by default if you don’t specify this
8
+ # element. See Line Amount Types
9
+ class QuoteLineAmountTypes
10
+ QUOTE_LINE_AMOUNT_TYPES = [
11
+ # TODO: Write general description for EXCLUSIVE
12
+ EXCLUSIVE = 'EXCLUSIVE'.freeze,
13
+
14
+ # TODO: Write general description for INCLUSIVE
15
+ INCLUSIVE = 'INCLUSIVE'.freeze,
16
+
17
+ # TODO: Write general description for NOTAX
18
+ NOTAX = 'NOTAX'.freeze
19
+ ].freeze
20
+
21
+ def self.validate(value)
22
+ return false if value.nil?
23
+
24
+ QUOTE_LINE_AMOUNT_TYPES.include?(value)
25
+ end
26
+
27
+ def self.from_value(value, default_value = EXCLUSIVE)
28
+ return default_value if value.nil?
29
+
30
+ str = value.to_s.strip
31
+
32
+ case str.downcase
33
+ when 'exclusive' then EXCLUSIVE
34
+ when 'inclusive' then INCLUSIVE
35
+ when 'notax' then NOTAX
36
+ else
37
+ default_value
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,52 @@
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
+ # The status of the quote.
8
+ class QuoteStatusCodes
9
+ QUOTE_STATUS_CODES = [
10
+ # TODO: Write general description for DRAFT
11
+ DRAFT = 'DRAFT'.freeze,
12
+
13
+ # TODO: Write general description for SENT
14
+ SENT = 'SENT'.freeze,
15
+
16
+ # TODO: Write general description for DECLINED
17
+ DECLINED = 'DECLINED'.freeze,
18
+
19
+ # TODO: Write general description for ACCEPTED
20
+ ACCEPTED = 'ACCEPTED'.freeze,
21
+
22
+ # TODO: Write general description for INVOICED
23
+ INVOICED = 'INVOICED'.freeze,
24
+
25
+ # TODO: Write general description for DELETED
26
+ DELETED = 'DELETED'.freeze
27
+ ].freeze
28
+
29
+ def self.validate(value)
30
+ return false if value.nil?
31
+
32
+ QUOTE_STATUS_CODES.include?(value)
33
+ end
34
+
35
+ def self.from_value(value, default_value = DRAFT)
36
+ return default_value if value.nil?
37
+
38
+ str = value.to_s.strip
39
+
40
+ case str.downcase
41
+ when 'draft' then DRAFT
42
+ when 'sent' then SENT
43
+ when 'declined' then DECLINED
44
+ when 'accepted' then ACCEPTED
45
+ when 'invoiced' then INVOICED
46
+ when 'deleted' then DELETED
47
+ else
48
+ default_value
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,84 @@
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
+ # Quotes Model.
8
+ class Quotes < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [Array[Quote]]
14
+ attr_accessor :quotes
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['quotes'] = 'Quotes'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ %w[
26
+ quotes
27
+ ]
28
+ end
29
+
30
+ # An array for nullable fields
31
+ def self.nullables
32
+ []
33
+ end
34
+
35
+ def initialize(quotes: SKIP, additional_properties: nil)
36
+ # Add additional model properties to the instance
37
+ additional_properties = {} if additional_properties.nil?
38
+
39
+ @quotes = quotes unless quotes == 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
+ quotes = nil
50
+ unless hash['Quotes'].nil?
51
+ quotes = []
52
+ hash['Quotes'].each do |structure|
53
+ quotes << (Quote.from_hash(structure) if structure)
54
+ end
55
+ end
56
+
57
+ quotes = SKIP unless hash.key?('Quotes')
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
+ Quotes.new(quotes: quotes,
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} quotes: #{@quotes}, additional_properties: #{@additional_properties}>"
75
+ end
76
+
77
+ # Provides a debugging-friendly string with detailed object information.
78
+ def inspect
79
+ class_name = self.class.name.split('::').last
80
+ "<#{class_name} quotes: #{@quotes.inspect}, additional_properties:"\
81
+ " #{@additional_properties}>"
82
+ end
83
+ end
84
+ end