merge_ruby_client 0.1.3 → 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 (481) hide show
  1. checksums.yaml +4 -4
  2. data/lib/merge_ruby_client/accounting/accounting_periods/client.rb +18 -4
  3. data/lib/merge_ruby_client/accounting/accounts/client.rb +26 -8
  4. data/lib/merge_ruby_client/accounting/async_passthrough/client.rb +5 -5
  5. data/lib/merge_ruby_client/accounting/async_passthrough/types/async_passthrough_retrieve_response.rb +57 -0
  6. data/lib/merge_ruby_client/accounting/async_tasks/client.rb +99 -0
  7. data/lib/merge_ruby_client/accounting/attachments/client.rb +16 -4
  8. data/lib/merge_ruby_client/accounting/audit_trail/client.rb +12 -4
  9. data/lib/merge_ruby_client/accounting/balance_sheets/client.rb +16 -4
  10. data/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb +369 -0
  11. data/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb +408 -0
  12. data/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb +16 -4
  13. data/lib/merge_ruby_client/accounting/client.rb +35 -0
  14. data/lib/merge_ruby_client/accounting/company_info/client.rb +16 -4
  15. data/lib/merge_ruby_client/accounting/contacts/client.rb +149 -10
  16. data/lib/merge_ruby_client/accounting/credit_notes/client.rb +193 -4
  17. data/lib/merge_ruby_client/accounting/employees/client.rb +216 -0
  18. data/lib/merge_ruby_client/accounting/expenses/client.rb +249 -10
  19. data/lib/merge_ruby_client/accounting/expenses/types/expenses_list_request_expand.rb +32 -0
  20. data/lib/merge_ruby_client/accounting/expenses/types/expenses_retrieve_request_expand.rb +32 -0
  21. data/lib/merge_ruby_client/accounting/field_mapping/client.rb +36 -16
  22. data/lib/merge_ruby_client/accounting/force_resync/client.rb +2 -2
  23. data/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb +253 -0
  24. data/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_list_request_expand.rb +25 -0
  25. data/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand.rb +25 -0
  26. data/lib/merge_ruby_client/accounting/income_statements/client.rb +16 -4
  27. data/lib/merge_ruby_client/accounting/invoices/client.rb +284 -14
  28. data/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_expand.rb +1792 -0
  29. data/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_status.rb +16 -0
  30. data/lib/merge_ruby_client/accounting/invoices/types/invoices_retrieve_request_expand.rb +1792 -0
  31. data/lib/merge_ruby_client/accounting/issues/client.rb +10 -4
  32. data/lib/merge_ruby_client/accounting/items/client.rb +16 -4
  33. data/lib/merge_ruby_client/accounting/items/types/items_list_request_expand.rb +24 -0
  34. data/lib/merge_ruby_client/accounting/items/types/items_retrieve_request_expand.rb +24 -0
  35. data/lib/merge_ruby_client/accounting/journal_entries/client.rb +247 -10
  36. data/lib/merge_ruby_client/accounting/link_token/client.rb +25 -4
  37. data/lib/merge_ruby_client/accounting/linked_accounts/client.rb +2 -2
  38. data/lib/merge_ruby_client/accounting/payments/client.rb +249 -12
  39. data/lib/merge_ruby_client/accounting/purchase_orders/client.rb +247 -10
  40. data/lib/merge_ruby_client/accounting/scopes/client.rb +12 -12
  41. data/lib/merge_ruby_client/accounting/tax_rates/client.rb +16 -4
  42. data/lib/merge_ruby_client/accounting/tracking_categories/client.rb +16 -4
  43. data/lib/merge_ruby_client/accounting/transactions/client.rb +16 -4
  44. data/lib/merge_ruby_client/accounting/types/account.rb +48 -7
  45. data/lib/merge_ruby_client/accounting/types/account_account_type_enum.rb +34 -0
  46. data/lib/merge_ruby_client/accounting/types/account_details.rb +11 -2
  47. data/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb +11 -2
  48. data/lib/merge_ruby_client/accounting/types/account_details_and_actions_status_enum.rb +2 -0
  49. data/lib/merge_ruby_client/accounting/types/account_integration.rb +20 -8
  50. data/lib/merge_ruby_client/accounting/types/account_request.rb +42 -5
  51. data/lib/merge_ruby_client/accounting/types/accounting_attachment.rb +6 -2
  52. data/lib/merge_ruby_client/accounting/types/accounting_period.rb +47 -19
  53. data/lib/merge_ruby_client/accounting/types/async_post_task.rb +74 -0
  54. data/lib/merge_ruby_client/accounting/types/async_post_task_result.rb +69 -0
  55. data/lib/merge_ruby_client/accounting/types/async_post_task_status_enum.rb +16 -0
  56. data/lib/merge_ruby_client/accounting/types/audit_log_event.rb +14 -0
  57. data/lib/merge_ruby_client/accounting/types/balance_sheet.rb +10 -6
  58. data/lib/merge_ruby_client/accounting/types/bank_feed_account.rb +834 -0
  59. data/lib/merge_ruby_client/accounting/types/bank_feed_account_account_type_enum.rb +12 -0
  60. data/lib/merge_ruby_client/accounting/types/bank_feed_account_request.rb +788 -0
  61. data/lib/merge_ruby_client/accounting/types/bank_feed_account_response.rb +101 -0
  62. data/lib/merge_ruby_client/accounting/types/bank_feed_transaction.rb +209 -0
  63. data/lib/merge_ruby_client/accounting/types/bank_feed_transaction_bank_feed_account.rb +56 -0
  64. data/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request.rb +167 -0
  65. data/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request_bank_feed_account.rb +57 -0
  66. data/lib/merge_ruby_client/accounting/types/bank_feed_transaction_response.rb +101 -0
  67. data/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb +10 -6
  68. data/lib/merge_ruby_client/accounting/types/company_info.rb +10 -6
  69. data/lib/merge_ruby_client/accounting/types/component_type_enum.rb +12 -0
  70. data/lib/merge_ruby_client/accounting/types/contact.rb +20 -4
  71. data/lib/merge_ruby_client/accounting/types/contact_request.rb +14 -2
  72. data/lib/merge_ruby_client/accounting/types/credit_note.rb +43 -15
  73. data/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note.rb +132 -0
  74. data/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_invoice.rb +56 -0
  75. data/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request.rb +120 -0
  76. data/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request_invoice.rb +56 -0
  77. data/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice.rb +132 -0
  78. data/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice_credit_note.rb +56 -0
  79. data/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb +20 -3
  80. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb +194 -0
  81. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_company.rb +56 -0
  82. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_item.rb +55 -0
  83. data/lib/merge_ruby_client/accounting/types/credit_note_request.rb +875 -0
  84. data/lib/merge_ruby_client/accounting/types/credit_note_request_accounting_period.rb +56 -0
  85. data/lib/merge_ruby_client/accounting/types/credit_note_request_applied_payments_item.rb +55 -0
  86. data/lib/merge_ruby_client/accounting/types/credit_note_request_company.rb +56 -0
  87. data/lib/merge_ruby_client/accounting/types/credit_note_request_contact.rb +56 -0
  88. data/lib/merge_ruby_client/accounting/types/credit_note_request_line_items_item.rb +55 -0
  89. data/lib/merge_ruby_client/accounting/types/credit_note_request_payments_item.rb +55 -0
  90. data/lib/merge_ruby_client/accounting/types/credit_note_request_tracking_categories_item.rb +56 -0
  91. data/lib/merge_ruby_client/accounting/types/credit_note_response.rb +101 -0
  92. data/lib/merge_ruby_client/accounting/types/credit_or_debit_enum.rb +12 -0
  93. data/lib/merge_ruby_client/accounting/types/employee.rb +199 -0
  94. data/lib/merge_ruby_client/accounting/types/employee_company.rb +55 -0
  95. data/lib/merge_ruby_client/accounting/types/event_type_enum.rb +11 -0
  96. data/lib/merge_ruby_client/accounting/types/expense.rb +48 -8
  97. data/lib/merge_ruby_client/accounting/types/expense_employee.rb +56 -0
  98. data/lib/merge_ruby_client/accounting/types/expense_line.rb +37 -11
  99. data/lib/merge_ruby_client/accounting/types/expense_line_employee.rb +56 -0
  100. data/lib/merge_ruby_client/accounting/types/expense_line_request.rb +44 -10
  101. data/lib/merge_ruby_client/accounting/types/expense_line_request_employee.rb +56 -0
  102. data/lib/merge_ruby_client/accounting/types/expense_request.rb +42 -6
  103. data/lib/merge_ruby_client/accounting/types/expense_request_employee.rb +56 -0
  104. data/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb +35 -2
  105. data/lib/merge_ruby_client/accounting/types/{accounting_period_status_enum.rb → feed_status_enum.rb} +1 -1
  106. data/lib/merge_ruby_client/accounting/types/field_format_enum.rb +20 -0
  107. data/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field.rb +8 -6
  108. data/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb +35 -2
  109. data/lib/merge_ruby_client/accounting/types/field_permission_deserializer.rb +14 -14
  110. data/lib/merge_ruby_client/accounting/types/field_permission_deserializer_request.rb +14 -14
  111. data/lib/merge_ruby_client/accounting/types/field_type_enum.rb +20 -0
  112. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction.rb +248 -0
  113. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_accounting_period.rb +57 -0
  114. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_company.rb +56 -0
  115. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_general_ledger_transaction_lines_item.rb +56 -0
  116. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb +1490 -0
  117. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_account.rb +55 -0
  118. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_company.rb +56 -0
  119. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_contact.rb +55 -0
  120. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_employee.rb +55 -0
  121. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_item.rb +55 -0
  122. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_tracking_categories_item.rb +56 -0
  123. data/lib/merge_ruby_client/accounting/types/income_statement.rb +10 -6
  124. data/lib/merge_ruby_client/accounting/types/invoice.rb +101 -33
  125. data/lib/merge_ruby_client/accounting/types/invoice_applied_credit_notes_item.rb +55 -0
  126. data/lib/merge_ruby_client/accounting/types/invoice_applied_vendor_credits_item.rb +55 -0
  127. data/lib/merge_ruby_client/accounting/types/invoice_employee.rb +56 -0
  128. data/lib/merge_ruby_client/accounting/types/invoice_line_item.rb +50 -12
  129. data/lib/merge_ruby_client/accounting/types/invoice_line_item_employee.rb +56 -0
  130. data/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb +44 -10
  131. data/lib/merge_ruby_client/accounting/types/invoice_line_item_request_employee.rb +56 -0
  132. data/lib/merge_ruby_client/accounting/types/invoice_request.rb +46 -10
  133. data/lib/merge_ruby_client/accounting/types/invoice_request_employee.rb +56 -0
  134. data/lib/merge_ruby_client/accounting/types/item.rb +35 -3
  135. data/lib/merge_ruby_client/accounting/types/item_format_enum.rb +20 -0
  136. data/lib/merge_ruby_client/accounting/types/item_purchase_tax_rate.rb +56 -0
  137. data/lib/merge_ruby_client/accounting/types/item_sales_tax_rate.rb +56 -0
  138. data/lib/merge_ruby_client/accounting/types/item_schema.rb +82 -0
  139. data/lib/merge_ruby_client/accounting/types/item_type_enum.rb +20 -0
  140. data/lib/merge_ruby_client/accounting/types/journal_entry.rb +56 -28
  141. data/lib/merge_ruby_client/accounting/types/journal_entry_request.rb +28 -6
  142. data/lib/merge_ruby_client/accounting/types/journal_line.rb +42 -10
  143. data/lib/merge_ruby_client/accounting/types/journal_line_request.rb +36 -8
  144. data/lib/merge_ruby_client/accounting/types/language_enum.rb +12 -0
  145. data/lib/merge_ruby_client/accounting/types/paginated_bank_feed_account_list.rb +80 -0
  146. data/lib/merge_ruby_client/accounting/types/paginated_bank_feed_transaction_list.rb +80 -0
  147. data/lib/merge_ruby_client/accounting/types/paginated_employee_list.rb +80 -0
  148. data/lib/merge_ruby_client/accounting/types/paginated_general_ledger_transaction_list.rb +81 -0
  149. data/lib/merge_ruby_client/accounting/types/paginated_remote_field_class_list.rb +80 -0
  150. data/lib/merge_ruby_client/accounting/types/patched_payment_request.rb +18 -6
  151. data/lib/merge_ruby_client/accounting/types/patched_payment_request_applied_to_lines_item.rb +4 -4
  152. data/lib/merge_ruby_client/accounting/types/payment.rb +42 -26
  153. data/lib/merge_ruby_client/accounting/types/payment_line_item_request.rb +14 -2
  154. data/lib/merge_ruby_client/accounting/types/payment_request.rb +18 -6
  155. data/lib/merge_ruby_client/accounting/types/purchase_order.rb +48 -22
  156. data/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb +32 -8
  157. data/lib/merge_ruby_client/accounting/types/purchase_order_line_item_request.rb +26 -6
  158. data/lib/merge_ruby_client/accounting/types/purchase_order_request.rb +28 -6
  159. data/lib/merge_ruby_client/accounting/types/remote_data.rb +8 -2
  160. data/lib/merge_ruby_client/accounting/types/remote_field.rb +75 -0
  161. data/lib/merge_ruby_client/accounting/types/remote_field_api.rb +3 -3
  162. data/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb +35 -2
  163. data/lib/merge_ruby_client/accounting/types/remote_field_class.rb +145 -0
  164. data/lib/merge_ruby_client/accounting/types/remote_field_request.rb +75 -0
  165. data/lib/merge_ruby_client/accounting/types/remote_field_request_remote_field_class.rb +55 -0
  166. data/lib/merge_ruby_client/accounting/types/report_item.rb +16 -2
  167. data/lib/merge_ruby_client/accounting/types/status_895_enum.rb +12 -0
  168. data/lib/merge_ruby_client/accounting/types/tax_component.rb +150 -0
  169. data/lib/merge_ruby_client/accounting/types/tax_rate.rb +73 -16
  170. data/lib/merge_ruby_client/accounting/types/tax_rate_tax_components_item.rb +55 -0
  171. data/lib/merge_ruby_client/accounting/types/tracking_category.rb +12 -20
  172. data/lib/merge_ruby_client/accounting/types/tracking_category_company.rb +1 -1
  173. data/lib/merge_ruby_client/accounting/types/transaction.rb +21 -7
  174. data/lib/merge_ruby_client/accounting/types/{currency_enum.rb → transaction_currency_enum.rb} +1 -1
  175. data/lib/merge_ruby_client/accounting/types/transaction_line_item.rb +14 -10
  176. data/lib/merge_ruby_client/accounting/types/underlying_transaction_type_enum.rb +22 -0
  177. data/lib/merge_ruby_client/accounting/types/vendor_credit.rb +35 -9
  178. data/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice.rb +132 -0
  179. data/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice_vendor_credit.rb +56 -0
  180. data/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit.rb +132 -0
  181. data/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_invoice.rb +56 -0
  182. data/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.rb +120 -0
  183. data/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request_invoice.rb +56 -0
  184. data/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb +17 -5
  185. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb +157 -0
  186. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_account.rb +56 -0
  187. data/lib/merge_ruby_client/accounting/types/vendor_credit_request.rb +813 -0
  188. data/lib/merge_ruby_client/accounting/types/vendor_credit_request_accounting_period.rb +56 -0
  189. data/lib/merge_ruby_client/accounting/types/vendor_credit_request_company.rb +56 -0
  190. data/lib/merge_ruby_client/accounting/types/vendor_credit_request_tracking_categories_item.rb +56 -0
  191. data/lib/merge_ruby_client/accounting/types/vendor_credit_request_vendor.rb +56 -0
  192. data/lib/merge_ruby_client/accounting/types/vendor_credit_response.rb +101 -0
  193. data/lib/merge_ruby_client/accounting/vendor_credits/client.rb +183 -4
  194. data/lib/merge_ruby_client/ats/activities/client.rb +16 -4
  195. data/lib/merge_ruby_client/ats/applications/client.rb +30 -4
  196. data/lib/merge_ruby_client/ats/applications/types/applications_list_request_expand.rb +192 -0
  197. data/lib/merge_ruby_client/ats/applications/types/applications_retrieve_request_expand.rb +192 -0
  198. data/lib/merge_ruby_client/ats/async_passthrough/client.rb +5 -5
  199. data/lib/merge_ruby_client/ats/async_passthrough/types/async_passthrough_retrieve_response.rb +57 -0
  200. data/lib/merge_ruby_client/ats/attachments/client.rb +16 -4
  201. data/lib/merge_ruby_client/ats/audit_trail/client.rb +12 -4
  202. data/lib/merge_ruby_client/ats/candidates/client.rb +16 -4
  203. data/lib/merge_ruby_client/ats/departments/client.rb +16 -4
  204. data/lib/merge_ruby_client/ats/eeocs/client.rb +16 -4
  205. data/lib/merge_ruby_client/ats/field_mapping/client.rb +36 -16
  206. data/lib/merge_ruby_client/ats/force_resync/client.rb +2 -2
  207. data/lib/merge_ruby_client/ats/interviews/client.rb +16 -4
  208. data/lib/merge_ruby_client/ats/issues/client.rb +10 -4
  209. data/lib/merge_ruby_client/ats/job_interview_stages/client.rb +16 -4
  210. data/lib/merge_ruby_client/ats/job_postings/client.rb +16 -4
  211. data/lib/merge_ruby_client/ats/jobs/client.rb +32 -8
  212. data/lib/merge_ruby_client/ats/link_token/client.rb +25 -4
  213. data/lib/merge_ruby_client/ats/linked_accounts/client.rb +2 -2
  214. data/lib/merge_ruby_client/ats/offers/client.rb +16 -4
  215. data/lib/merge_ruby_client/ats/offices/client.rb +16 -4
  216. data/lib/merge_ruby_client/ats/reject_reasons/client.rb +16 -4
  217. data/lib/merge_ruby_client/ats/scopes/client.rb +12 -12
  218. data/lib/merge_ruby_client/ats/scorecards/client.rb +16 -4
  219. data/lib/merge_ruby_client/ats/tags/client.rb +16 -4
  220. data/lib/merge_ruby_client/ats/types/account_details.rb +11 -2
  221. data/lib/merge_ruby_client/ats/types/account_details_and_actions.rb +11 -2
  222. data/lib/merge_ruby_client/ats/types/account_details_and_actions_status_enum.rb +2 -0
  223. data/lib/merge_ruby_client/ats/types/account_integration.rb +20 -8
  224. data/lib/merge_ruby_client/ats/types/activity.rb +8 -4
  225. data/lib/merge_ruby_client/ats/types/activity_request.rb +2 -2
  226. data/lib/merge_ruby_client/ats/types/application.rb +21 -3
  227. data/lib/merge_ruby_client/ats/types/application_request.rb +13 -1
  228. data/lib/merge_ruby_client/ats/types/application_request_screening_question_answers_item.rb +56 -0
  229. data/lib/merge_ruby_client/ats/types/application_screening_question_answers_item.rb +56 -0
  230. data/lib/merge_ruby_client/ats/types/attachment.rb +8 -2
  231. data/lib/merge_ruby_client/ats/types/audit_log_event.rb +14 -0
  232. data/lib/merge_ruby_client/ats/types/candidate.rb +8 -2
  233. data/lib/merge_ruby_client/ats/types/department.rb +6 -2
  234. data/lib/merge_ruby_client/ats/types/eeoc.rb +6 -2
  235. data/lib/merge_ruby_client/ats/types/email_address.rb +16 -2
  236. data/lib/merge_ruby_client/ats/types/event_type_enum.rb +11 -0
  237. data/lib/merge_ruby_client/ats/types/field_mapping_api_instance_remote_field.rb +8 -6
  238. data/lib/merge_ruby_client/ats/types/field_permission_deserializer.rb +14 -14
  239. data/lib/merge_ruby_client/ats/types/field_permission_deserializer_request.rb +14 -14
  240. data/lib/merge_ruby_client/ats/types/job.rb +6 -2
  241. data/lib/merge_ruby_client/ats/types/job_interview_stage.rb +6 -2
  242. data/lib/merge_ruby_client/ats/types/job_posting.rb +6 -2
  243. data/lib/merge_ruby_client/ats/types/language_enum.rb +12 -0
  244. data/lib/merge_ruby_client/ats/types/offer.rb +6 -2
  245. data/lib/merge_ruby_client/ats/types/office.rb +6 -2
  246. data/lib/merge_ruby_client/ats/types/phone_number.rb +16 -2
  247. data/lib/merge_ruby_client/ats/types/reject_reason.rb +6 -2
  248. data/lib/merge_ruby_client/ats/types/remote_data.rb +8 -2
  249. data/lib/merge_ruby_client/ats/types/remote_field_api.rb +3 -3
  250. data/lib/merge_ruby_client/ats/types/remote_user.rb +6 -2
  251. data/lib/merge_ruby_client/ats/types/scheduled_interview.rb +6 -2
  252. data/lib/merge_ruby_client/ats/types/scorecard.rb +6 -2
  253. data/lib/merge_ruby_client/ats/types/screening_question.rb +16 -2
  254. data/lib/merge_ruby_client/ats/types/screening_question_answer.rb +136 -0
  255. data/lib/merge_ruby_client/ats/types/screening_question_answer_question.rb +58 -0
  256. data/lib/merge_ruby_client/ats/types/screening_question_answer_request.rb +113 -0
  257. data/lib/merge_ruby_client/ats/types/screening_question_answer_request_question.rb +59 -0
  258. data/lib/merge_ruby_client/ats/types/screening_question_option.rb +16 -2
  259. data/lib/merge_ruby_client/ats/types/tag.rb +6 -2
  260. data/lib/merge_ruby_client/ats/types/url.rb +17 -2
  261. data/lib/merge_ruby_client/ats/users/client.rb +16 -4
  262. data/lib/merge_ruby_client/crm/accounts/client.rb +38 -8
  263. data/lib/merge_ruby_client/crm/association_types/client.rb +16 -4
  264. data/lib/merge_ruby_client/crm/associations/client.rb +16 -4
  265. data/lib/merge_ruby_client/crm/async_passthrough/client.rb +5 -5
  266. data/lib/merge_ruby_client/crm/async_passthrough/types/async_passthrough_retrieve_response.rb +57 -0
  267. data/lib/merge_ruby_client/crm/audit_trail/client.rb +12 -4
  268. data/lib/merge_ruby_client/crm/contacts/client.rb +38 -8
  269. data/lib/merge_ruby_client/crm/custom_object_classes/client.rb +16 -4
  270. data/lib/merge_ruby_client/crm/custom_objects/client.rb +127 -4
  271. data/lib/merge_ruby_client/crm/engagement_types/client.rb +38 -8
  272. data/lib/merge_ruby_client/crm/engagements/client.rb +38 -8
  273. data/lib/merge_ruby_client/crm/field_mapping/client.rb +36 -16
  274. data/lib/merge_ruby_client/crm/force_resync/client.rb +2 -2
  275. data/lib/merge_ruby_client/crm/issues/client.rb +10 -4
  276. data/lib/merge_ruby_client/crm/leads/client.rb +38 -8
  277. data/lib/merge_ruby_client/crm/link_token/client.rb +25 -4
  278. data/lib/merge_ruby_client/crm/linked_accounts/client.rb +2 -2
  279. data/lib/merge_ruby_client/crm/notes/client.rb +38 -8
  280. data/lib/merge_ruby_client/crm/opportunities/client.rb +44 -8
  281. data/lib/merge_ruby_client/crm/scopes/client.rb +12 -12
  282. data/lib/merge_ruby_client/crm/stages/client.rb +38 -8
  283. data/lib/merge_ruby_client/crm/tasks/client.rb +38 -8
  284. data/lib/merge_ruby_client/crm/types/account.rb +8 -2
  285. data/lib/merge_ruby_client/crm/types/account_details.rb +11 -2
  286. data/lib/merge_ruby_client/crm/types/account_details_and_actions.rb +11 -2
  287. data/lib/merge_ruby_client/crm/types/account_details_and_actions_status_enum.rb +2 -0
  288. data/lib/merge_ruby_client/crm/types/account_integration.rb +20 -8
  289. data/lib/merge_ruby_client/crm/types/association.rb +6 -6
  290. data/lib/merge_ruby_client/crm/types/audit_log_event.rb +14 -0
  291. data/lib/merge_ruby_client/crm/types/contact.rb +8 -2
  292. data/lib/merge_ruby_client/crm/types/engagement.rb +6 -2
  293. data/lib/merge_ruby_client/crm/types/event_type_enum.rb +11 -0
  294. data/lib/merge_ruby_client/crm/types/field_mapping_api_instance_remote_field.rb +8 -6
  295. data/lib/merge_ruby_client/crm/types/field_permission_deserializer.rb +14 -14
  296. data/lib/merge_ruby_client/crm/types/field_permission_deserializer_request.rb +14 -14
  297. data/lib/merge_ruby_client/crm/types/language_enum.rb +12 -0
  298. data/lib/merge_ruby_client/crm/types/lead.rb +8 -2
  299. data/lib/merge_ruby_client/crm/types/note.rb +8 -2
  300. data/lib/merge_ruby_client/crm/types/opportunity.rb +8 -2
  301. data/lib/merge_ruby_client/crm/types/remote_data.rb +8 -2
  302. data/lib/merge_ruby_client/crm/types/remote_field.rb +3 -3
  303. data/lib/merge_ruby_client/crm/types/remote_field_api.rb +3 -3
  304. data/lib/merge_ruby_client/crm/types/remote_field_request.rb +3 -3
  305. data/lib/merge_ruby_client/crm/types/stage.rb +6 -2
  306. data/lib/merge_ruby_client/crm/types/task.rb +6 -2
  307. data/lib/merge_ruby_client/crm/types/user.rb +6 -2
  308. data/lib/merge_ruby_client/crm/users/client.rb +44 -10
  309. data/lib/merge_ruby_client/filestorage/async_passthrough/client.rb +5 -5
  310. data/lib/merge_ruby_client/filestorage/async_passthrough/types/async_passthrough_retrieve_response.rb +57 -0
  311. data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +12 -4
  312. data/lib/merge_ruby_client/filestorage/drives/client.rb +16 -4
  313. data/lib/merge_ruby_client/filestorage/field_mapping/client.rb +36 -16
  314. data/lib/merge_ruby_client/filestorage/files/client.rb +20 -8
  315. data/lib/merge_ruby_client/filestorage/folders/client.rb +18 -6
  316. data/lib/merge_ruby_client/filestorage/force_resync/client.rb +2 -2
  317. data/lib/merge_ruby_client/filestorage/groups/client.rb +32 -8
  318. data/lib/merge_ruby_client/filestorage/issues/client.rb +10 -4
  319. data/lib/merge_ruby_client/filestorage/link_token/client.rb +25 -4
  320. data/lib/merge_ruby_client/filestorage/linked_accounts/client.rb +4 -6
  321. data/lib/merge_ruby_client/filestorage/scopes/client.rb +12 -12
  322. data/lib/merge_ruby_client/filestorage/types/account_details.rb +11 -2
  323. data/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb +11 -2
  324. data/lib/merge_ruby_client/filestorage/types/account_details_and_actions_status_enum.rb +2 -0
  325. data/lib/merge_ruby_client/filestorage/types/account_integration.rb +20 -8
  326. data/lib/merge_ruby_client/filestorage/types/audit_log_event.rb +14 -0
  327. data/lib/merge_ruby_client/filestorage/types/drive.rb +13 -5
  328. data/lib/merge_ruby_client/filestorage/types/event_type_enum.rb +11 -0
  329. data/lib/merge_ruby_client/filestorage/types/field_mapping_api_instance_remote_field.rb +8 -6
  330. data/lib/merge_ruby_client/filestorage/types/field_permission_deserializer.rb +14 -14
  331. data/lib/merge_ruby_client/filestorage/types/field_permission_deserializer_request.rb +14 -14
  332. data/lib/merge_ruby_client/filestorage/types/file.rb +16 -8
  333. data/lib/merge_ruby_client/filestorage/types/file_request.rb +3 -3
  334. data/lib/merge_ruby_client/filestorage/types/folder.rb +16 -8
  335. data/lib/merge_ruby_client/filestorage/types/folder_request.rb +3 -3
  336. data/lib/merge_ruby_client/filestorage/types/group.rb +27 -7
  337. data/lib/merge_ruby_client/filestorage/types/group_child_groups_item.rb +55 -0
  338. data/lib/merge_ruby_client/filestorage/types/language_enum.rb +12 -0
  339. data/lib/merge_ruby_client/filestorage/types/permission.rb +8 -4
  340. data/lib/merge_ruby_client/filestorage/types/permission_group.rb +2 -1
  341. data/lib/merge_ruby_client/filestorage/types/permission_request.rb +8 -4
  342. data/lib/merge_ruby_client/filestorage/types/permission_request_group.rb +2 -1
  343. data/lib/merge_ruby_client/filestorage/types/permission_request_user.rb +2 -1
  344. data/lib/merge_ruby_client/filestorage/types/permission_user.rb +2 -1
  345. data/lib/merge_ruby_client/filestorage/types/remote_data.rb +75 -0
  346. data/lib/merge_ruby_client/filestorage/types/remote_field_api.rb +3 -3
  347. data/lib/merge_ruby_client/filestorage/types/user.rb +13 -5
  348. data/lib/merge_ruby_client/filestorage/users/client.rb +16 -4
  349. data/lib/merge_ruby_client/hris/async_passthrough/client.rb +5 -5
  350. data/lib/merge_ruby_client/hris/async_passthrough/types/async_passthrough_retrieve_response.rb +57 -0
  351. data/lib/merge_ruby_client/hris/audit_trail/client.rb +12 -4
  352. data/lib/merge_ruby_client/hris/bank_info/client.rb +20 -6
  353. data/lib/merge_ruby_client/hris/benefits/client.rb +16 -4
  354. data/lib/merge_ruby_client/hris/companies/client.rb +16 -4
  355. data/lib/merge_ruby_client/hris/dependents/client.rb +16 -4
  356. data/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb +16 -4
  357. data/lib/merge_ruby_client/hris/employees/client.rb +16 -4
  358. data/lib/merge_ruby_client/hris/employer_benefits/client.rb +16 -4
  359. data/lib/merge_ruby_client/hris/employments/client.rb +20 -6
  360. data/lib/merge_ruby_client/hris/field_mapping/client.rb +36 -16
  361. data/lib/merge_ruby_client/hris/force_resync/client.rb +2 -2
  362. data/lib/merge_ruby_client/hris/groups/client.rb +16 -4
  363. data/lib/merge_ruby_client/hris/issues/client.rb +10 -4
  364. data/lib/merge_ruby_client/hris/link_token/client.rb +25 -4
  365. data/lib/merge_ruby_client/hris/linked_accounts/client.rb +4 -6
  366. data/lib/merge_ruby_client/hris/locations/client.rb +28 -12
  367. data/lib/merge_ruby_client/hris/locations/types/locations_list_request_remote_fields.rb +13 -0
  368. data/lib/merge_ruby_client/hris/locations/types/locations_list_request_show_enum_origins.rb +13 -0
  369. data/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_remote_fields.rb +13 -0
  370. data/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_show_enum_origins.rb +13 -0
  371. data/lib/merge_ruby_client/hris/pay_groups/client.rb +16 -4
  372. data/lib/merge_ruby_client/hris/payroll_runs/client.rb +16 -4
  373. data/lib/merge_ruby_client/hris/scopes/client.rb +12 -12
  374. data/lib/merge_ruby_client/hris/teams/client.rb +16 -4
  375. data/lib/merge_ruby_client/hris/time_off/client.rb +16 -4
  376. data/lib/merge_ruby_client/hris/time_off_balances/client.rb +16 -4
  377. data/lib/merge_ruby_client/hris/timesheet_entries/client.rb +42 -20
  378. data/lib/merge_ruby_client/hris/types/account_details.rb +11 -2
  379. data/lib/merge_ruby_client/hris/types/account_details_and_actions.rb +11 -2
  380. data/lib/merge_ruby_client/hris/types/account_details_and_actions_status_enum.rb +2 -0
  381. data/lib/merge_ruby_client/hris/types/account_integration.rb +20 -8
  382. data/lib/merge_ruby_client/hris/types/audit_log_event.rb +14 -0
  383. data/lib/merge_ruby_client/hris/types/bank_info.rb +6 -2
  384. data/lib/merge_ruby_client/hris/types/benefit.rb +6 -2
  385. data/lib/merge_ruby_client/hris/types/company.rb +6 -2
  386. data/lib/merge_ruby_client/hris/types/deduction.rb +6 -2
  387. data/lib/merge_ruby_client/hris/types/dependent.rb +6 -2
  388. data/lib/merge_ruby_client/hris/types/earning.rb +6 -2
  389. data/lib/merge_ruby_client/hris/types/employee.rb +10 -3
  390. data/lib/merge_ruby_client/hris/types/employee_payroll_run.rb +6 -2
  391. data/lib/merge_ruby_client/hris/types/employee_request.rb +2 -1
  392. data/lib/merge_ruby_client/hris/types/employer_benefit.rb +13 -5
  393. data/lib/merge_ruby_client/hris/types/employment.rb +13 -7
  394. data/lib/merge_ruby_client/hris/types/event_type_enum.rb +11 -0
  395. data/lib/merge_ruby_client/hris/types/field_mapping_api_instance_remote_field.rb +8 -6
  396. data/lib/merge_ruby_client/hris/types/field_permission_deserializer.rb +14 -14
  397. data/lib/merge_ruby_client/hris/types/field_permission_deserializer_request.rb +14 -14
  398. data/lib/merge_ruby_client/hris/types/group.rb +6 -2
  399. data/lib/merge_ruby_client/hris/types/language_enum.rb +12 -0
  400. data/lib/merge_ruby_client/hris/types/location.rb +6 -2
  401. data/lib/merge_ruby_client/hris/types/pay_group.rb +6 -2
  402. data/lib/merge_ruby_client/hris/types/payroll_run.rb +6 -2
  403. data/lib/merge_ruby_client/hris/types/remote_data.rb +8 -2
  404. data/lib/merge_ruby_client/hris/types/remote_field_api.rb +3 -3
  405. data/lib/merge_ruby_client/hris/types/tax.rb +6 -2
  406. data/lib/merge_ruby_client/hris/types/team.rb +6 -2
  407. data/lib/merge_ruby_client/hris/types/time_off.rb +8 -2
  408. data/lib/merge_ruby_client/hris/types/time_off_balance.rb +14 -6
  409. data/lib/merge_ruby_client/hris/types/timesheet_entry.rb +23 -9
  410. data/lib/merge_ruby_client/hris/types/timesheet_entry_employee.rb +56 -0
  411. data/lib/merge_ruby_client/hris/types/timesheet_entry_request.rb +10 -4
  412. data/lib/merge_ruby_client/hris/types/timesheet_entry_request_employee.rb +56 -0
  413. data/lib/merge_ruby_client/ticketing/accounts/client.rb +16 -4
  414. data/lib/merge_ruby_client/ticketing/async_passthrough/client.rb +5 -5
  415. data/lib/merge_ruby_client/ticketing/async_passthrough/types/async_passthrough_retrieve_response.rb +57 -0
  416. data/lib/merge_ruby_client/ticketing/attachments/client.rb +18 -6
  417. data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +12 -4
  418. data/lib/merge_ruby_client/ticketing/collections/client.rb +22 -104
  419. data/lib/merge_ruby_client/ticketing/collections/types/collections_list_request_expand.rb +13 -0
  420. data/lib/merge_ruby_client/ticketing/collections/types/collections_retrieve_request_expand.rb +13 -0
  421. data/lib/merge_ruby_client/ticketing/comments/client.rb +16 -4
  422. data/lib/merge_ruby_client/ticketing/contacts/client.rb +16 -4
  423. data/lib/merge_ruby_client/ticketing/field_mapping/client.rb +36 -16
  424. data/lib/merge_ruby_client/ticketing/force_resync/client.rb +2 -2
  425. data/lib/merge_ruby_client/ticketing/issues/client.rb +10 -4
  426. data/lib/merge_ruby_client/ticketing/link_token/client.rb +25 -4
  427. data/lib/merge_ruby_client/ticketing/linked_accounts/client.rb +4 -6
  428. data/lib/merge_ruby_client/ticketing/projects/client.rb +32 -8
  429. data/lib/merge_ruby_client/ticketing/roles/client.rb +16 -4
  430. data/lib/merge_ruby_client/ticketing/scopes/client.rb +12 -12
  431. data/lib/merge_ruby_client/ticketing/tags/client.rb +16 -4
  432. data/lib/merge_ruby_client/ticketing/teams/client.rb +16 -4
  433. data/lib/merge_ruby_client/ticketing/tickets/client.rb +92 -45
  434. data/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_expand.rb +128 -0
  435. data/lib/merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_expand.rb +128 -0
  436. data/lib/merge_ruby_client/ticketing/tickets/types/tickets_viewers_list_request_expand.rb +13 -0
  437. data/lib/merge_ruby_client/ticketing/types/account.rb +6 -2
  438. data/lib/merge_ruby_client/ticketing/types/account_details.rb +11 -2
  439. data/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb +11 -2
  440. data/lib/merge_ruby_client/ticketing/types/account_details_and_actions_status_enum.rb +2 -0
  441. data/lib/merge_ruby_client/ticketing/types/account_integration.rb +20 -8
  442. data/lib/merge_ruby_client/ticketing/types/attachment.rb +8 -2
  443. data/lib/merge_ruby_client/ticketing/types/audit_log_event.rb +14 -0
  444. data/lib/merge_ruby_client/ticketing/types/collection.rb +22 -6
  445. data/lib/merge_ruby_client/ticketing/types/collection_teams_item.rb +55 -0
  446. data/lib/merge_ruby_client/ticketing/types/comment.rb +20 -6
  447. data/lib/merge_ruby_client/ticketing/types/comment_contact.rb +3 -1
  448. data/lib/merge_ruby_client/ticketing/types/comment_request.rb +12 -4
  449. data/lib/merge_ruby_client/ticketing/types/comment_request_contact.rb +3 -1
  450. data/lib/merge_ruby_client/ticketing/types/comment_request_user.rb +3 -1
  451. data/lib/merge_ruby_client/ticketing/types/comment_user.rb +3 -1
  452. data/lib/merge_ruby_client/ticketing/types/contact.rb +6 -2
  453. data/lib/merge_ruby_client/ticketing/types/event_type_enum.rb +11 -0
  454. data/lib/merge_ruby_client/ticketing/types/field_mapping_api_instance_remote_field.rb +8 -6
  455. data/lib/merge_ruby_client/ticketing/types/field_permission_deserializer.rb +14 -14
  456. data/lib/merge_ruby_client/ticketing/types/field_permission_deserializer_request.rb +14 -14
  457. data/lib/merge_ruby_client/ticketing/types/language_enum.rb +12 -0
  458. data/lib/merge_ruby_client/ticketing/types/paginated_viewer_list.rb +80 -0
  459. data/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb +27 -7
  460. data/lib/merge_ruby_client/ticketing/types/project.rb +6 -2
  461. data/lib/merge_ruby_client/ticketing/types/remote_data.rb +8 -2
  462. data/lib/merge_ruby_client/ticketing/types/remote_field_api.rb +3 -3
  463. data/lib/merge_ruby_client/ticketing/types/role.rb +6 -2
  464. data/lib/merge_ruby_client/ticketing/types/tag.rb +16 -4
  465. data/lib/merge_ruby_client/ticketing/types/team.rb +8 -4
  466. data/lib/merge_ruby_client/ticketing/types/ticket.rb +38 -8
  467. data/lib/merge_ruby_client/ticketing/types/ticket_assigned_teams_item.rb +55 -0
  468. data/lib/merge_ruby_client/ticketing/types/ticket_request.rb +31 -7
  469. data/lib/merge_ruby_client/ticketing/types/ticket_request_assigned_teams_item.rb +55 -0
  470. data/lib/merge_ruby_client/ticketing/types/user.rb +10 -3
  471. data/lib/merge_ruby_client/ticketing/types/viewer.rb +123 -0
  472. data/lib/merge_ruby_client/ticketing/types/viewer_team.rb +56 -0
  473. data/lib/merge_ruby_client/ticketing/types/viewer_user.rb +56 -0
  474. data/lib/merge_ruby_client/ticketing/users/client.rb +16 -4
  475. data/lib/merge_ruby_client.rb +7 -7
  476. data/lib/requests.rb +2 -2
  477. data/lib/types_export.rb +248 -122
  478. metadata +141 -10
  479. data/lib/merge_ruby_client/ticketing/collections/types/collections_users_list_request_expand.rb +0 -13
  480. data/lib/merge_ruby_client/ticketing/tickets/types/tickets_collaborators_list_request_expand.rb +0 -13
  481. data/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_status.rb +0 -14
@@ -3,13 +3,15 @@
3
3
  require_relative "invoice_type_enum"
4
4
  require_relative "invoice_request_contact"
5
5
  require "date"
6
+ require_relative "invoice_request_employee"
6
7
  require_relative "invoice_status_enum"
7
8
  require_relative "invoice_request_company"
8
- require_relative "currency_enum"
9
+ require_relative "transaction_currency_enum"
9
10
  require_relative "invoice_request_payments_item"
10
11
  require_relative "invoice_request_tracking_categories_item"
11
12
  require_relative "invoice_line_item_request"
12
13
  require_relative "invoice_request_purchase_orders_item"
14
+ require_relative "remote_field_request"
13
15
  require "ostruct"
14
16
  require "json"
15
17
 
@@ -17,10 +19,10 @@ module Merge
17
19
  module Accounting
18
20
  # # The Invoice Object
19
21
  # ### Description
20
- # The `Invoice` object represents an itemized record of goods and/or services
21
- # sold to a customer.
22
- # If type = accounts_payable `Invoice` is a bill, if type = accounts_receivable
23
- # it's an invoice.
22
+ # The `Invoice` object represents an itemized record of goods and/or services sold
23
+ # to a customer or bought from a vendor.
24
+ # Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. References an
25
+ # Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`.
24
26
  # ### Usage Example
25
27
  # Fetch from the `LIST Invoices` endpoint and view a company's invoices.
26
28
  class InvoiceRequest
@@ -40,6 +42,8 @@ module Merge
40
42
  attr_reader :due_date
41
43
  # @return [DateTime] The invoice's paid date.
42
44
  attr_reader :paid_on_date
45
+ # @return [Merge::Accounting::InvoiceRequestEmployee] The employee this overall transaction relates to.
46
+ attr_reader :employee
43
47
  # @return [String] The invoice's private note.
44
48
  attr_reader :memo
45
49
  # @return [Merge::Accounting::InvoiceStatusEnum] The status of the invoice.
@@ -52,7 +56,7 @@ module Merge
52
56
  attr_reader :status
53
57
  # @return [Merge::Accounting::InvoiceRequestCompany] The company the invoice belongs to.
54
58
  attr_reader :company
55
- # @return [Merge::Accounting::CurrencyEnum] The invoice's currency.
59
+ # @return [Merge::Accounting::TransactionCurrencyEnum] The invoice's currency.
56
60
  # - `XUA` - ADB Unit of Account
57
61
  # - `AFN` - Afghan Afghani
58
62
  # - `AFA` - Afghan Afghani (1927–2002)
@@ -368,6 +372,9 @@ module Merge
368
372
  attr_reader :sub_total
369
373
  # @return [Float] The total amount being paid in taxes.
370
374
  attr_reader :total_tax_amount
375
+ # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive,
376
+ # `False` if exclusive.
377
+ attr_reader :inclusive_of_tax
371
378
  # @return [Float] The invoice's total amount.
372
379
  attr_reader :total_amount
373
380
  # @return [Float] The invoice's remaining balance.
@@ -384,6 +391,8 @@ module Merge
384
391
  attr_reader :integration_params
385
392
  # @return [Hash{String => Object}]
386
393
  attr_reader :linked_account_params
394
+ # @return [Array<Merge::Accounting::RemoteFieldRequest>]
395
+ attr_reader :remote_fields
387
396
  # @return [OpenStruct] Additional properties unmapped to the current class definition
388
397
  attr_reader :additional_properties
389
398
  # @return [Object]
@@ -402,6 +411,7 @@ module Merge
402
411
  # @param issue_date [DateTime] The invoice's issue date.
403
412
  # @param due_date [DateTime] The invoice's due date.
404
413
  # @param paid_on_date [DateTime] The invoice's paid date.
414
+ # @param employee [Merge::Accounting::InvoiceRequestEmployee] The employee this overall transaction relates to.
405
415
  # @param memo [String] The invoice's private note.
406
416
  # @param status [Merge::Accounting::InvoiceStatusEnum] The status of the invoice.
407
417
  # - `PAID` - PAID
@@ -411,7 +421,7 @@ module Merge
411
421
  # - `OPEN` - OPEN
412
422
  # - `VOID` - VOID
413
423
  # @param company [Merge::Accounting::InvoiceRequestCompany] The company the invoice belongs to.
414
- # @param currency [Merge::Accounting::CurrencyEnum] The invoice's currency.
424
+ # @param currency [Merge::Accounting::TransactionCurrencyEnum] The invoice's currency.
415
425
  # - `XUA` - ADB Unit of Account
416
426
  # - `AFN` - Afghan Afghani
417
427
  # - `AFA` - Afghan Afghani (1927–2002)
@@ -722,6 +732,8 @@ module Merge
722
732
  # @param total_discount [Float] The total discounts applied to the total cost.
723
733
  # @param sub_total [Float] The total amount being paid before taxes.
724
734
  # @param total_tax_amount [Float] The total amount being paid in taxes.
735
+ # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive,
736
+ # `False` if exclusive.
725
737
  # @param total_amount [Float] The invoice's total amount.
726
738
  # @param balance [Float] The invoice's remaining balance.
727
739
  # @param payments [Array<Merge::Accounting::InvoiceRequestPaymentsItem>] Array of `Payment` object IDs.
@@ -730,16 +742,18 @@ module Merge
730
742
  # @param purchase_orders [Array<Merge::Accounting::InvoiceRequestPurchaseOrdersItem>]
731
743
  # @param integration_params [Hash{String => Object}]
732
744
  # @param linked_account_params [Hash{String => Object}]
745
+ # @param remote_fields [Array<Merge::Accounting::RemoteFieldRequest>]
733
746
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
734
747
  # @return [Merge::Accounting::InvoiceRequest]
735
748
  def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_date: OMIT, paid_on_date: OMIT,
736
- memo: OMIT, status: OMIT, company: OMIT, currency: OMIT, exchange_rate: OMIT, total_discount: OMIT, sub_total: OMIT, total_tax_amount: OMIT, total_amount: OMIT, balance: OMIT, payments: OMIT, tracking_categories: OMIT, line_items: OMIT, purchase_orders: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil)
749
+ employee: OMIT, memo: OMIT, status: OMIT, company: OMIT, currency: OMIT, exchange_rate: OMIT, total_discount: OMIT, sub_total: OMIT, total_tax_amount: OMIT, inclusive_of_tax: OMIT, total_amount: OMIT, balance: OMIT, payments: OMIT, tracking_categories: OMIT, line_items: OMIT, purchase_orders: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil)
737
750
  @type = type if type != OMIT
738
751
  @contact = contact if contact != OMIT
739
752
  @number = number if number != OMIT
740
753
  @issue_date = issue_date if issue_date != OMIT
741
754
  @due_date = due_date if due_date != OMIT
742
755
  @paid_on_date = paid_on_date if paid_on_date != OMIT
756
+ @employee = employee if employee != OMIT
743
757
  @memo = memo if memo != OMIT
744
758
  @status = status if status != OMIT
745
759
  @company = company if company != OMIT
@@ -748,6 +762,7 @@ module Merge
748
762
  @total_discount = total_discount if total_discount != OMIT
749
763
  @sub_total = sub_total if sub_total != OMIT
750
764
  @total_tax_amount = total_tax_amount if total_tax_amount != OMIT
765
+ @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT
751
766
  @total_amount = total_amount if total_amount != OMIT
752
767
  @balance = balance if balance != OMIT
753
768
  @payments = payments if payments != OMIT
@@ -756,6 +771,7 @@ module Merge
756
771
  @purchase_orders = purchase_orders if purchase_orders != OMIT
757
772
  @integration_params = integration_params if integration_params != OMIT
758
773
  @linked_account_params = linked_account_params if linked_account_params != OMIT
774
+ @remote_fields = remote_fields if remote_fields != OMIT
759
775
  @additional_properties = additional_properties
760
776
  @_field_set = {
761
777
  "type": type,
@@ -764,6 +780,7 @@ module Merge
764
780
  "issue_date": issue_date,
765
781
  "due_date": due_date,
766
782
  "paid_on_date": paid_on_date,
783
+ "employee": employee,
767
784
  "memo": memo,
768
785
  "status": status,
769
786
  "company": company,
@@ -772,6 +789,7 @@ module Merge
772
789
  "total_discount": total_discount,
773
790
  "sub_total": sub_total,
774
791
  "total_tax_amount": total_tax_amount,
792
+ "inclusive_of_tax": inclusive_of_tax,
775
793
  "total_amount": total_amount,
776
794
  "balance": balance,
777
795
  "payments": payments,
@@ -779,7 +797,8 @@ module Merge
779
797
  "line_items": line_items,
780
798
  "purchase_orders": purchase_orders,
781
799
  "integration_params": integration_params,
782
- "linked_account_params": linked_account_params
800
+ "linked_account_params": linked_account_params,
801
+ "remote_fields": remote_fields
783
802
  }.reject do |_k, v|
784
803
  v == OMIT
785
804
  end
@@ -803,6 +822,12 @@ module Merge
803
822
  issue_date = (DateTime.parse(parsed_json["issue_date"]) unless parsed_json["issue_date"].nil?)
804
823
  due_date = (DateTime.parse(parsed_json["due_date"]) unless parsed_json["due_date"].nil?)
805
824
  paid_on_date = (DateTime.parse(parsed_json["paid_on_date"]) unless parsed_json["paid_on_date"].nil?)
825
+ if parsed_json["employee"].nil?
826
+ employee = nil
827
+ else
828
+ employee = parsed_json["employee"].to_json
829
+ employee = Merge::Accounting::InvoiceRequestEmployee.from_json(json_object: employee)
830
+ end
806
831
  memo = parsed_json["memo"]
807
832
  status = parsed_json["status"]
808
833
  if parsed_json["company"].nil?
@@ -816,6 +841,7 @@ module Merge
816
841
  total_discount = parsed_json["total_discount"]
817
842
  sub_total = parsed_json["sub_total"]
818
843
  total_tax_amount = parsed_json["total_tax_amount"]
844
+ inclusive_of_tax = parsed_json["inclusive_of_tax"]
819
845
  total_amount = parsed_json["total_amount"]
820
846
  balance = parsed_json["balance"]
821
847
  payments = parsed_json["payments"]&.map do |item|
@@ -836,6 +862,10 @@ module Merge
836
862
  end
837
863
  integration_params = parsed_json["integration_params"]
838
864
  linked_account_params = parsed_json["linked_account_params"]
865
+ remote_fields = parsed_json["remote_fields"]&.map do |item|
866
+ item = item.to_json
867
+ Merge::Accounting::RemoteFieldRequest.from_json(json_object: item)
868
+ end
839
869
  new(
840
870
  type: type,
841
871
  contact: contact,
@@ -843,6 +873,7 @@ module Merge
843
873
  issue_date: issue_date,
844
874
  due_date: due_date,
845
875
  paid_on_date: paid_on_date,
876
+ employee: employee,
846
877
  memo: memo,
847
878
  status: status,
848
879
  company: company,
@@ -851,6 +882,7 @@ module Merge
851
882
  total_discount: total_discount,
852
883
  sub_total: sub_total,
853
884
  total_tax_amount: total_tax_amount,
885
+ inclusive_of_tax: inclusive_of_tax,
854
886
  total_amount: total_amount,
855
887
  balance: balance,
856
888
  payments: payments,
@@ -859,6 +891,7 @@ module Merge
859
891
  purchase_orders: purchase_orders,
860
892
  integration_params: integration_params,
861
893
  linked_account_params: linked_account_params,
894
+ remote_fields: remote_fields,
862
895
  additional_properties: struct
863
896
  )
864
897
  end
@@ -883,14 +916,16 @@ module Merge
883
916
  obj.issue_date&.is_a?(DateTime) != false || raise("Passed value for field obj.issue_date is not the expected type, validation failed.")
884
917
  obj.due_date&.is_a?(DateTime) != false || raise("Passed value for field obj.due_date is not the expected type, validation failed.")
885
918
  obj.paid_on_date&.is_a?(DateTime) != false || raise("Passed value for field obj.paid_on_date is not the expected type, validation failed.")
919
+ obj.employee.nil? || Merge::Accounting::InvoiceRequestEmployee.validate_raw(obj: obj.employee)
886
920
  obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.")
887
921
  obj.status&.is_a?(Merge::Accounting::InvoiceStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
888
922
  obj.company.nil? || Merge::Accounting::InvoiceRequestCompany.validate_raw(obj: obj.company)
889
- obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.")
923
+ obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.")
890
924
  obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.")
891
925
  obj.total_discount&.is_a?(Float) != false || raise("Passed value for field obj.total_discount is not the expected type, validation failed.")
892
926
  obj.sub_total&.is_a?(Float) != false || raise("Passed value for field obj.sub_total is not the expected type, validation failed.")
893
927
  obj.total_tax_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_tax_amount is not the expected type, validation failed.")
928
+ obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.")
894
929
  obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.")
895
930
  obj.balance&.is_a?(Float) != false || raise("Passed value for field obj.balance is not the expected type, validation failed.")
896
931
  obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.")
@@ -899,6 +934,7 @@ module Merge
899
934
  obj.purchase_orders&.is_a?(Array) != false || raise("Passed value for field obj.purchase_orders is not the expected type, validation failed.")
900
935
  obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.")
901
936
  obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.")
937
+ obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.")
902
938
  end
903
939
  end
904
940
  end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "employee"
5
+
6
+ module Merge
7
+ module Accounting
8
+ # The employee this overall transaction relates to.
9
+ class InvoiceRequestEmployee
10
+ # Deserialize a JSON object to an instance of InvoiceRequestEmployee
11
+ #
12
+ # @param json_object [String]
13
+ # @return [Merge::Accounting::InvoiceRequestEmployee]
14
+ def self.from_json(json_object:)
15
+ struct = JSON.parse(json_object, object_class: OpenStruct)
16
+ begin
17
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
18
+ return struct unless struct.nil?
19
+
20
+ return nil
21
+ rescue StandardError
22
+ # noop
23
+ end
24
+ begin
25
+ Merge::Accounting::Employee.validate_raw(obj: struct)
26
+ return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil?
27
+
28
+ return nil
29
+ rescue StandardError
30
+ # noop
31
+ end
32
+ struct
33
+ end
34
+
35
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
36
+ # hash and check each fields type against the current object's property
37
+ # definitions.
38
+ #
39
+ # @param obj [Object]
40
+ # @return [Void]
41
+ def self.validate_raw(obj:)
42
+ begin
43
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
44
+ rescue StandardError
45
+ # noop
46
+ end
47
+ begin
48
+ return Merge::Accounting::Employee.validate_raw(obj: obj)
49
+ rescue StandardError
50
+ # noop
51
+ end
52
+ raise("Passed value matched no type within the union, validation failed.")
53
+ end
54
+ end
55
+ end
56
+ end
@@ -5,6 +5,8 @@ require_relative "status_7_d_1_enum"
5
5
  require_relative "item_purchase_account"
6
6
  require_relative "item_sales_account"
7
7
  require_relative "item_company"
8
+ require_relative "item_purchase_tax_rate"
9
+ require_relative "item_sales_tax_rate"
8
10
  require_relative "remote_data"
9
11
  require "ostruct"
10
12
  require "json"
@@ -41,10 +43,16 @@ module Merge
41
43
  attr_reader :sales_account
42
44
  # @return [Merge::Accounting::ItemCompany] The company the item belongs to.
43
45
  attr_reader :company
46
+ # @return [Merge::Accounting::ItemPurchaseTaxRate] The default purchase tax rate for this item.
47
+ attr_reader :purchase_tax_rate
48
+ # @return [Merge::Accounting::ItemSalesTaxRate] The default sales tax rate for this item.
49
+ attr_reader :sales_tax_rate
44
50
  # @return [DateTime] When the third party's item note was updated.
45
51
  attr_reader :remote_updated_at
46
52
  # @return [Boolean] Indicates whether or not this object has been deleted in the third party
47
- # platform.
53
+ # platform. Full coverage deletion detection is a premium add-on. Native deletion
54
+ # detection is offered for free with limited coverage. [Learn
55
+ # more](https://docs.merge.dev/integrations/hris/supported-features/).
48
56
  attr_reader :remote_was_deleted
49
57
  # @return [Hash{String => Object}]
50
58
  attr_reader :field_mappings
@@ -71,15 +79,19 @@ module Merge
71
79
  # @param purchase_account [Merge::Accounting::ItemPurchaseAccount] References the default account used to record a purchase of the item.
72
80
  # @param sales_account [Merge::Accounting::ItemSalesAccount] References the default account used to record a sale.
73
81
  # @param company [Merge::Accounting::ItemCompany] The company the item belongs to.
82
+ # @param purchase_tax_rate [Merge::Accounting::ItemPurchaseTaxRate] The default purchase tax rate for this item.
83
+ # @param sales_tax_rate [Merge::Accounting::ItemSalesTaxRate] The default sales tax rate for this item.
74
84
  # @param remote_updated_at [DateTime] When the third party's item note was updated.
75
85
  # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party
76
- # platform.
86
+ # platform. Full coverage deletion detection is a premium add-on. Native deletion
87
+ # detection is offered for free with limited coverage. [Learn
88
+ # more](https://docs.merge.dev/integrations/hris/supported-features/).
77
89
  # @param field_mappings [Hash{String => Object}]
78
90
  # @param remote_data [Array<Merge::Accounting::RemoteData>]
79
91
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
80
92
  # @return [Merge::Accounting::Item]
81
93
  def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, status: OMIT,
82
- unit_price: OMIT, purchase_price: OMIT, purchase_account: OMIT, sales_account: OMIT, company: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil)
94
+ unit_price: OMIT, purchase_price: OMIT, purchase_account: OMIT, sales_account: OMIT, company: OMIT, purchase_tax_rate: OMIT, sales_tax_rate: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil)
83
95
  @id = id if id != OMIT
84
96
  @remote_id = remote_id if remote_id != OMIT
85
97
  @created_at = created_at if created_at != OMIT
@@ -91,6 +103,8 @@ module Merge
91
103
  @purchase_account = purchase_account if purchase_account != OMIT
92
104
  @sales_account = sales_account if sales_account != OMIT
93
105
  @company = company if company != OMIT
106
+ @purchase_tax_rate = purchase_tax_rate if purchase_tax_rate != OMIT
107
+ @sales_tax_rate = sales_tax_rate if sales_tax_rate != OMIT
94
108
  @remote_updated_at = remote_updated_at if remote_updated_at != OMIT
95
109
  @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT
96
110
  @field_mappings = field_mappings if field_mappings != OMIT
@@ -108,6 +122,8 @@ module Merge
108
122
  "purchase_account": purchase_account,
109
123
  "sales_account": sales_account,
110
124
  "company": company,
125
+ "purchase_tax_rate": purchase_tax_rate,
126
+ "sales_tax_rate": sales_tax_rate,
111
127
  "remote_updated_at": remote_updated_at,
112
128
  "remote_was_deleted": remote_was_deleted,
113
129
  "field_mappings": field_mappings,
@@ -150,6 +166,18 @@ module Merge
150
166
  company = parsed_json["company"].to_json
151
167
  company = Merge::Accounting::ItemCompany.from_json(json_object: company)
152
168
  end
169
+ if parsed_json["purchase_tax_rate"].nil?
170
+ purchase_tax_rate = nil
171
+ else
172
+ purchase_tax_rate = parsed_json["purchase_tax_rate"].to_json
173
+ purchase_tax_rate = Merge::Accounting::ItemPurchaseTaxRate.from_json(json_object: purchase_tax_rate)
174
+ end
175
+ if parsed_json["sales_tax_rate"].nil?
176
+ sales_tax_rate = nil
177
+ else
178
+ sales_tax_rate = parsed_json["sales_tax_rate"].to_json
179
+ sales_tax_rate = Merge::Accounting::ItemSalesTaxRate.from_json(json_object: sales_tax_rate)
180
+ end
153
181
  remote_updated_at = unless parsed_json["remote_updated_at"].nil?
154
182
  DateTime.parse(parsed_json["remote_updated_at"])
155
183
  end
@@ -171,6 +199,8 @@ module Merge
171
199
  purchase_account: purchase_account,
172
200
  sales_account: sales_account,
173
201
  company: company,
202
+ purchase_tax_rate: purchase_tax_rate,
203
+ sales_tax_rate: sales_tax_rate,
174
204
  remote_updated_at: remote_updated_at,
175
205
  remote_was_deleted: remote_was_deleted,
176
206
  field_mappings: field_mappings,
@@ -204,6 +234,8 @@ module Merge
204
234
  obj.purchase_account.nil? || Merge::Accounting::ItemPurchaseAccount.validate_raw(obj: obj.purchase_account)
205
235
  obj.sales_account.nil? || Merge::Accounting::ItemSalesAccount.validate_raw(obj: obj.sales_account)
206
236
  obj.company.nil? || Merge::Accounting::ItemCompany.validate_raw(obj: obj.company)
237
+ obj.purchase_tax_rate.nil? || Merge::Accounting::ItemPurchaseTaxRate.validate_raw(obj: obj.purchase_tax_rate)
238
+ obj.sales_tax_rate.nil? || Merge::Accounting::ItemSalesTaxRate.validate_raw(obj: obj.sales_tax_rate)
207
239
  obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.")
208
240
  obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.")
209
241
  obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.")
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Merge
4
+ module Accounting
5
+ # - `string` - uuid
6
+ # - `number` - url
7
+ # - `date` - email
8
+ # - `datetime` - phone
9
+ # - `bool` - currency
10
+ # - `list` - decimal
11
+ class ItemFormatEnum
12
+ STRING = "string"
13
+ NUMBER = "number"
14
+ DATE = "date"
15
+ DATETIME = "datetime"
16
+ BOOL = "bool"
17
+ LIST = "list"
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "tax_rate"
5
+
6
+ module Merge
7
+ module Accounting
8
+ # The default purchase tax rate for this item.
9
+ class ItemPurchaseTaxRate
10
+ # Deserialize a JSON object to an instance of ItemPurchaseTaxRate
11
+ #
12
+ # @param json_object [String]
13
+ # @return [Merge::Accounting::ItemPurchaseTaxRate]
14
+ def self.from_json(json_object:)
15
+ struct = JSON.parse(json_object, object_class: OpenStruct)
16
+ begin
17
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
18
+ return struct unless struct.nil?
19
+
20
+ return nil
21
+ rescue StandardError
22
+ # noop
23
+ end
24
+ begin
25
+ Merge::Accounting::TaxRate.validate_raw(obj: struct)
26
+ return Merge::Accounting::TaxRate.from_json(json_object: struct) unless struct.nil?
27
+
28
+ return nil
29
+ rescue StandardError
30
+ # noop
31
+ end
32
+ struct
33
+ end
34
+
35
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
36
+ # hash and check each fields type against the current object's property
37
+ # definitions.
38
+ #
39
+ # @param obj [Object]
40
+ # @return [Void]
41
+ def self.validate_raw(obj:)
42
+ begin
43
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
44
+ rescue StandardError
45
+ # noop
46
+ end
47
+ begin
48
+ return Merge::Accounting::TaxRate.validate_raw(obj: obj)
49
+ rescue StandardError
50
+ # noop
51
+ end
52
+ raise("Passed value matched no type within the union, validation failed.")
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "tax_rate"
5
+
6
+ module Merge
7
+ module Accounting
8
+ # The default sales tax rate for this item.
9
+ class ItemSalesTaxRate
10
+ # Deserialize a JSON object to an instance of ItemSalesTaxRate
11
+ #
12
+ # @param json_object [String]
13
+ # @return [Merge::Accounting::ItemSalesTaxRate]
14
+ def self.from_json(json_object:)
15
+ struct = JSON.parse(json_object, object_class: OpenStruct)
16
+ begin
17
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
18
+ return struct unless struct.nil?
19
+
20
+ return nil
21
+ rescue StandardError
22
+ # noop
23
+ end
24
+ begin
25
+ Merge::Accounting::TaxRate.validate_raw(obj: struct)
26
+ return Merge::Accounting::TaxRate.from_json(json_object: struct) unless struct.nil?
27
+
28
+ return nil
29
+ rescue StandardError
30
+ # noop
31
+ end
32
+ struct
33
+ end
34
+
35
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
36
+ # hash and check each fields type against the current object's property
37
+ # definitions.
38
+ #
39
+ # @param obj [Object]
40
+ # @return [Void]
41
+ def self.validate_raw(obj:)
42
+ begin
43
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
44
+ rescue StandardError
45
+ # noop
46
+ end
47
+ begin
48
+ return Merge::Accounting::TaxRate.validate_raw(obj: obj)
49
+ rescue StandardError
50
+ # noop
51
+ end
52
+ raise("Passed value matched no type within the union, validation failed.")
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "item_type_enum"
4
+ require_relative "item_format_enum"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Merge
9
+ module Accounting
10
+ class ItemSchema
11
+ # @return [Merge::Accounting::ItemTypeEnum]
12
+ attr_reader :item_type
13
+ # @return [Merge::Accounting::ItemFormatEnum]
14
+ attr_reader :item_format
15
+ # @return [Array<String>]
16
+ attr_reader :item_choices
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param item_type [Merge::Accounting::ItemTypeEnum]
26
+ # @param item_format [Merge::Accounting::ItemFormatEnum]
27
+ # @param item_choices [Array<String>]
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [Merge::Accounting::ItemSchema]
30
+ def initialize(item_type: OMIT, item_format: OMIT, item_choices: OMIT, additional_properties: nil)
31
+ @item_type = item_type if item_type != OMIT
32
+ @item_format = item_format if item_format != OMIT
33
+ @item_choices = item_choices if item_choices != OMIT
34
+ @additional_properties = additional_properties
35
+ @_field_set = {
36
+ "item_type": item_type,
37
+ "item_format": item_format,
38
+ "item_choices": item_choices
39
+ }.reject do |_k, v|
40
+ v == OMIT
41
+ end
42
+ end
43
+
44
+ # Deserialize a JSON object to an instance of ItemSchema
45
+ #
46
+ # @param json_object [String]
47
+ # @return [Merge::Accounting::ItemSchema]
48
+ def self.from_json(json_object:)
49
+ struct = JSON.parse(json_object, object_class: OpenStruct)
50
+ parsed_json = JSON.parse(json_object)
51
+ item_type = parsed_json["item_type"]
52
+ item_format = parsed_json["item_format"]
53
+ item_choices = parsed_json["item_choices"]
54
+ new(
55
+ item_type: item_type,
56
+ item_format: item_format,
57
+ item_choices: item_choices,
58
+ additional_properties: struct
59
+ )
60
+ end
61
+
62
+ # Serialize an instance of ItemSchema to a JSON object
63
+ #
64
+ # @return [String]
65
+ def to_json(*_args)
66
+ @_field_set&.to_json
67
+ end
68
+
69
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
70
+ # hash and check each fields type against the current object's property
71
+ # definitions.
72
+ #
73
+ # @param obj [Object]
74
+ # @return [Void]
75
+ def self.validate_raw(obj:)
76
+ obj.item_type&.is_a?(Merge::Accounting::ItemTypeEnum) != false || raise("Passed value for field obj.item_type is not the expected type, validation failed.")
77
+ obj.item_format&.is_a?(Merge::Accounting::ItemFormatEnum) != false || raise("Passed value for field obj.item_format is not the expected type, validation failed.")
78
+ obj.item_choices&.is_a?(Array) != false || raise("Passed value for field obj.item_choices is not the expected type, validation failed.")
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Merge
4
+ module Accounting
5
+ # - `string` - string
6
+ # - `number` - number
7
+ # - `date` - date
8
+ # - `datetime` - datetime
9
+ # - `bool` - bool
10
+ # - `list` - list
11
+ class ItemTypeEnum
12
+ STRING = "string"
13
+ NUMBER = "number"
14
+ DATE = "date"
15
+ DATETIME = "datetime"
16
+ BOOL = "bool"
17
+ LIST = "list"
18
+ end
19
+ end
20
+ end