merge_ruby_client 1.1.0 → 2.1.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/lib/merge_ruby_client/accounting/accounting_periods/client.rb +2 -2
  3. data/lib/merge_ruby_client/accounting/accounts/client.rb +18 -10
  4. data/lib/merge_ruby_client/accounting/attachments/client.rb +2 -2
  5. data/lib/merge_ruby_client/accounting/audit_trail/client.rb +8 -6
  6. data/lib/merge_ruby_client/accounting/balance_sheets/client.rb +2 -2
  7. data/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb +2 -2
  8. data/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb +2 -2
  9. data/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb +2 -2
  10. data/lib/merge_ruby_client/accounting/client.rb +14 -0
  11. data/lib/merge_ruby_client/accounting/company_info/client.rb +2 -2
  12. data/lib/merge_ruby_client/accounting/contacts/client.rb +187 -10
  13. data/lib/merge_ruby_client/accounting/credit_notes/client.rb +2 -2
  14. data/lib/merge_ruby_client/accounting/employees/client.rb +35 -8
  15. data/lib/merge_ruby_client/accounting/expense_reports/client.rb +765 -0
  16. data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_lines_list_request_expand.rb +73 -0
  17. data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_list_request_expand.rb +25 -0
  18. data/lib/merge_ruby_client/accounting/expense_reports/types/expense_reports_retrieve_request_expand.rb +25 -0
  19. data/lib/merge_ruby_client/accounting/expenses/client.rb +18 -10
  20. data/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb +2 -2
  21. data/lib/merge_ruby_client/accounting/income_statements/client.rb +2 -2
  22. data/lib/merge_ruby_client/accounting/invoices/client.rb +18 -10
  23. data/lib/merge_ruby_client/accounting/issues/client.rb +2 -2
  24. data/lib/merge_ruby_client/accounting/items/client.rb +334 -2
  25. data/lib/merge_ruby_client/accounting/journal_entries/client.rb +18 -10
  26. data/lib/merge_ruby_client/accounting/linked_accounts/client.rb +2 -2
  27. data/lib/merge_ruby_client/accounting/payment_methods/client.rb +2 -2
  28. data/lib/merge_ruby_client/accounting/payment_terms/client.rb +2 -2
  29. data/lib/merge_ruby_client/accounting/payments/client.rb +18 -10
  30. data/lib/merge_ruby_client/accounting/projects/client.rb +251 -0
  31. data/lib/merge_ruby_client/accounting/projects/types/projects_list_request_expand.rb +13 -0
  32. data/lib/merge_ruby_client/accounting/projects/types/projects_retrieve_request_expand.rb +13 -0
  33. data/lib/merge_ruby_client/accounting/purchase_orders/client.rb +18 -10
  34. data/lib/merge_ruby_client/accounting/sync_status/client.rb +2 -2
  35. data/lib/merge_ruby_client/accounting/tax_rates/client.rb +2 -2
  36. data/lib/merge_ruby_client/accounting/tracking_categories/client.rb +18 -10
  37. data/lib/merge_ruby_client/accounting/transactions/client.rb +2 -2
  38. data/lib/merge_ruby_client/accounting/transactions/types/transactions_list_request_expand.rb +32 -0
  39. data/lib/merge_ruby_client/accounting/transactions/types/transactions_retrieve_request_expand.rb +32 -0
  40. data/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb +10 -2
  41. data/lib/merge_ruby_client/accounting/types/audit_log_event.rb +2 -0
  42. data/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb +29 -1
  43. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_contact.rb +56 -0
  44. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_project.rb +55 -0
  45. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb +29 -1
  46. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_contact.rb +56 -0
  47. data/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_project.rb +55 -0
  48. data/lib/merge_ruby_client/accounting/types/event_type_enum.rb +2 -0
  49. data/lib/merge_ruby_client/accounting/types/expense_line.rb +15 -1
  50. data/lib/merge_ruby_client/accounting/types/expense_line_project.rb +55 -0
  51. data/lib/merge_ruby_client/accounting/types/expense_line_request.rb +15 -1
  52. data/lib/merge_ruby_client/accounting/types/expense_line_request_project.rb +55 -0
  53. data/lib/merge_ruby_client/accounting/types/expense_report.rb +869 -0
  54. data/lib/merge_ruby_client/accounting/types/expense_report_company.rb +56 -0
  55. data/lib/merge_ruby_client/accounting/types/expense_report_line.rb +921 -0
  56. data/lib/merge_ruby_client/accounting/types/expense_report_line_account.rb +55 -0
  57. data/lib/merge_ruby_client/accounting/types/expense_report_line_company.rb +56 -0
  58. data/lib/merge_ruby_client/accounting/types/expense_report_line_contact.rb +55 -0
  59. data/lib/merge_ruby_client/accounting/types/expense_report_line_employee.rb +57 -0
  60. data/lib/merge_ruby_client/accounting/types/expense_report_line_project.rb +55 -0
  61. data/lib/merge_ruby_client/accounting/types/expense_report_line_request.rb +899 -0
  62. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_account.rb +55 -0
  63. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_company.rb +56 -0
  64. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_contact.rb +55 -0
  65. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_employee.rb +57 -0
  66. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_project.rb +55 -0
  67. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_tax_rate.rb +55 -0
  68. data/lib/merge_ruby_client/accounting/types/expense_report_line_tax_rate.rb +55 -0
  69. data/lib/merge_ruby_client/accounting/types/expense_report_request.rb +819 -0
  70. data/lib/merge_ruby_client/accounting/types/expense_report_request_accounting_period.rb +56 -0
  71. data/lib/merge_ruby_client/accounting/types/expense_report_request_company.rb +56 -0
  72. data/lib/merge_ruby_client/accounting/types/expense_report_request_employee.rb +57 -0
  73. data/lib/merge_ruby_client/accounting/types/expense_report_response.rb +101 -0
  74. data/lib/merge_ruby_client/accounting/types/expense_report_status_enum.rb +16 -0
  75. data/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb +23 -1
  76. data/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb +23 -1
  77. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb +15 -1
  78. data/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_project.rb +55 -0
  79. data/lib/merge_ruby_client/accounting/types/invoice_line_item.rb +29 -1
  80. data/lib/merge_ruby_client/accounting/types/invoice_line_item_contact.rb +56 -0
  81. data/lib/merge_ruby_client/accounting/types/invoice_line_item_project.rb +55 -0
  82. data/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb +29 -1
  83. data/lib/merge_ruby_client/accounting/types/invoice_line_item_request_contact.rb +56 -0
  84. data/lib/merge_ruby_client/accounting/types/invoice_line_item_request_project.rb +55 -0
  85. data/lib/merge_ruby_client/accounting/types/item.rb +18 -1
  86. data/lib/merge_ruby_client/accounting/types/item_request_request.rb +202 -0
  87. data/lib/merge_ruby_client/accounting/types/item_request_request_company.rb +56 -0
  88. data/lib/merge_ruby_client/accounting/types/item_request_request_purchase_account.rb +56 -0
  89. data/lib/merge_ruby_client/accounting/types/item_request_request_purchase_tax_rate.rb +56 -0
  90. data/lib/merge_ruby_client/accounting/types/item_request_request_sales_account.rb +56 -0
  91. data/lib/merge_ruby_client/accounting/types/item_request_request_sales_tax_rate.rb +56 -0
  92. data/lib/merge_ruby_client/accounting/types/item_response.rb +101 -0
  93. data/lib/merge_ruby_client/accounting/types/journal_line.rb +15 -1
  94. data/lib/merge_ruby_client/accounting/types/journal_line_project.rb +55 -0
  95. data/lib/merge_ruby_client/accounting/types/journal_line_request.rb +15 -1
  96. data/lib/merge_ruby_client/accounting/types/journal_line_request_project.rb +55 -0
  97. data/lib/merge_ruby_client/accounting/types/paginated_expense_report_line_list.rb +80 -0
  98. data/lib/merge_ruby_client/accounting/types/paginated_expense_report_list.rb +80 -0
  99. data/lib/merge_ruby_client/accounting/types/paginated_project_list.rb +80 -0
  100. data/lib/merge_ruby_client/accounting/types/patched_contact_request.rb +188 -0
  101. data/lib/merge_ruby_client/accounting/types/patched_contact_request_addresses_item.rb +55 -0
  102. data/lib/merge_ruby_client/accounting/types/patched_item_request_request.rb +172 -0
  103. data/lib/merge_ruby_client/accounting/types/project.rb +162 -0
  104. data/lib/merge_ruby_client/accounting/types/project_company.rb +56 -0
  105. data/lib/merge_ruby_client/accounting/types/project_contact.rb +56 -0
  106. data/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb +12 -1
  107. data/lib/merge_ruby_client/accounting/types/remote_field_class.rb +9 -1
  108. data/lib/merge_ruby_client/accounting/types/type_2_bb_enum.rb +16 -0
  109. data/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb +29 -1
  110. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_contact.rb +55 -0
  111. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_project.rb +55 -0
  112. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb +29 -1
  113. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_contact.rb +55 -0
  114. data/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_project.rb +55 -0
  115. data/lib/merge_ruby_client/accounting/vendor_credits/client.rb +2 -2
  116. data/lib/merge_ruby_client/ats/activities/client.rb +2 -2
  117. data/lib/merge_ruby_client/ats/applications/client.rb +2 -2
  118. data/lib/merge_ruby_client/ats/attachments/client.rb +2 -2
  119. data/lib/merge_ruby_client/ats/audit_trail/client.rb +8 -6
  120. data/lib/merge_ruby_client/ats/candidates/client.rb +2 -2
  121. data/lib/merge_ruby_client/ats/departments/client.rb +2 -2
  122. data/lib/merge_ruby_client/ats/eeocs/client.rb +2 -2
  123. data/lib/merge_ruby_client/ats/interviews/client.rb +2 -2
  124. data/lib/merge_ruby_client/ats/issues/client.rb +2 -2
  125. data/lib/merge_ruby_client/ats/job_interview_stages/client.rb +2 -2
  126. data/lib/merge_ruby_client/ats/job_postings/client.rb +2 -2
  127. data/lib/merge_ruby_client/ats/jobs/client.rb +4 -4
  128. data/lib/merge_ruby_client/ats/linked_accounts/client.rb +2 -2
  129. data/lib/merge_ruby_client/ats/offers/client.rb +2 -2
  130. data/lib/merge_ruby_client/ats/offices/client.rb +2 -2
  131. data/lib/merge_ruby_client/ats/reject_reasons/client.rb +2 -2
  132. data/lib/merge_ruby_client/ats/scorecards/client.rb +2 -2
  133. data/lib/merge_ruby_client/ats/sync_status/client.rb +2 -2
  134. data/lib/merge_ruby_client/ats/tags/client.rb +2 -2
  135. data/lib/merge_ruby_client/ats/types/account_details_and_actions.rb +10 -2
  136. data/lib/merge_ruby_client/ats/types/audit_log_event.rb +2 -0
  137. data/lib/merge_ruby_client/ats/types/event_type_enum.rb +2 -0
  138. data/lib/merge_ruby_client/ats/users/client.rb +2 -2
  139. data/lib/merge_ruby_client/crm/accounts/client.rb +10 -6
  140. data/lib/merge_ruby_client/crm/association_types/client.rb +2 -2
  141. data/lib/merge_ruby_client/crm/associations/client.rb +10 -2
  142. data/lib/merge_ruby_client/crm/audit_trail/client.rb +8 -6
  143. data/lib/merge_ruby_client/crm/contacts/client.rb +10 -6
  144. data/lib/merge_ruby_client/crm/custom_object_classes/client.rb +2 -2
  145. data/lib/merge_ruby_client/crm/custom_objects/client.rb +14 -6
  146. data/lib/merge_ruby_client/crm/engagement_types/client.rb +10 -6
  147. data/lib/merge_ruby_client/crm/engagements/client.rb +10 -6
  148. data/lib/merge_ruby_client/crm/issues/client.rb +2 -2
  149. data/lib/merge_ruby_client/crm/leads/client.rb +10 -6
  150. data/lib/merge_ruby_client/crm/linked_accounts/client.rb +2 -2
  151. data/lib/merge_ruby_client/crm/notes/client.rb +10 -6
  152. data/lib/merge_ruby_client/crm/opportunities/client.rb +10 -6
  153. data/lib/merge_ruby_client/crm/stages/client.rb +10 -6
  154. data/lib/merge_ruby_client/crm/sync_status/client.rb +22 -8
  155. data/lib/merge_ruby_client/crm/tasks/client.rb +10 -6
  156. data/lib/merge_ruby_client/crm/types/audit_log_event.rb +2 -0
  157. data/lib/merge_ruby_client/crm/types/custom_object_request.rb +26 -3
  158. data/lib/merge_ruby_client/crm/types/event_type_enum.rb +2 -0
  159. data/lib/merge_ruby_client/crm/types/remote_field_class.rb +9 -1
  160. data/lib/merge_ruby_client/crm/users/client.rb +10 -6
  161. data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +8 -6
  162. data/lib/merge_ruby_client/filestorage/drives/client.rb +2 -2
  163. data/lib/merge_ruby_client/filestorage/files/client.rb +70 -16
  164. data/lib/merge_ruby_client/filestorage/files/types/files_download_request_meta_list_request_order_by.rb +14 -0
  165. data/lib/merge_ruby_client/filestorage/files/types/files_list_request_order_by.rb +14 -0
  166. data/lib/merge_ruby_client/filestorage/folders/client.rb +2 -2
  167. data/lib/merge_ruby_client/filestorage/groups/client.rb +2 -2
  168. data/lib/merge_ruby_client/filestorage/issues/client.rb +2 -2
  169. data/lib/merge_ruby_client/filestorage/linked_accounts/client.rb +2 -2
  170. data/lib/merge_ruby_client/filestorage/sync_status/client.rb +22 -8
  171. data/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb +10 -2
  172. data/lib/merge_ruby_client/filestorage/types/audit_log_event.rb +2 -0
  173. data/lib/merge_ruby_client/filestorage/types/download_request_meta.rb +2 -9
  174. data/lib/merge_ruby_client/filestorage/types/event_type_enum.rb +2 -0
  175. data/lib/merge_ruby_client/filestorage/types/file.rb +13 -1
  176. data/lib/merge_ruby_client/filestorage/types/file_request.rb +13 -1
  177. data/lib/merge_ruby_client/filestorage/users/client.rb +2 -2
  178. data/lib/merge_ruby_client/hris/audit_trail/client.rb +8 -6
  179. data/lib/merge_ruby_client/hris/bank_info/client.rb +2 -2
  180. data/lib/merge_ruby_client/hris/benefits/client.rb +2 -2
  181. data/lib/merge_ruby_client/hris/companies/client.rb +2 -2
  182. data/lib/merge_ruby_client/hris/dependents/client.rb +8 -4
  183. data/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb +2 -2
  184. data/lib/merge_ruby_client/hris/employees/client.rb +8 -4
  185. data/lib/merge_ruby_client/hris/employer_benefits/client.rb +2 -2
  186. data/lib/merge_ruby_client/hris/employments/client.rb +2 -2
  187. data/lib/merge_ruby_client/hris/groups/client.rb +2 -2
  188. data/lib/merge_ruby_client/hris/issues/client.rb +2 -2
  189. data/lib/merge_ruby_client/hris/linked_accounts/client.rb +2 -2
  190. data/lib/merge_ruby_client/hris/locations/client.rb +2 -2
  191. data/lib/merge_ruby_client/hris/pay_groups/client.rb +2 -2
  192. data/lib/merge_ruby_client/hris/payroll_runs/client.rb +2 -2
  193. data/lib/merge_ruby_client/hris/sync_status/client.rb +2 -2
  194. data/lib/merge_ruby_client/hris/teams/client.rb +2 -2
  195. data/lib/merge_ruby_client/hris/time_off/client.rb +2 -2
  196. data/lib/merge_ruby_client/hris/time_off_balances/client.rb +2 -2
  197. data/lib/merge_ruby_client/hris/timesheet_entries/client.rb +2 -2
  198. data/lib/merge_ruby_client/hris/types/account_details_and_actions.rb +10 -2
  199. data/lib/merge_ruby_client/hris/types/audit_log_event.rb +2 -0
  200. data/lib/merge_ruby_client/hris/types/benefit.rb +9 -9
  201. data/lib/merge_ruby_client/hris/types/event_type_enum.rb +2 -0
  202. data/lib/merge_ruby_client/ticketing/accounts/client.rb +2 -2
  203. data/lib/merge_ruby_client/ticketing/attachments/client.rb +2 -2
  204. data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +8 -6
  205. data/lib/merge_ruby_client/ticketing/collections/client.rb +4 -4
  206. data/lib/merge_ruby_client/ticketing/comments/client.rb +2 -2
  207. data/lib/merge_ruby_client/ticketing/contacts/client.rb +2 -2
  208. data/lib/merge_ruby_client/ticketing/issues/client.rb +2 -2
  209. data/lib/merge_ruby_client/ticketing/linked_accounts/client.rb +2 -2
  210. data/lib/merge_ruby_client/ticketing/projects/client.rb +4 -4
  211. data/lib/merge_ruby_client/ticketing/roles/client.rb +2 -2
  212. data/lib/merge_ruby_client/ticketing/sync_status/client.rb +2 -2
  213. data/lib/merge_ruby_client/ticketing/tags/client.rb +2 -2
  214. data/lib/merge_ruby_client/ticketing/teams/client.rb +2 -2
  215. data/lib/merge_ruby_client/ticketing/tickets/client.rb +40 -20
  216. data/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb +10 -2
  217. data/lib/merge_ruby_client/ticketing/types/audit_log_event.rb +2 -0
  218. data/lib/merge_ruby_client/ticketing/types/collection.rb +18 -16
  219. data/lib/merge_ruby_client/ticketing/types/{access_level_enum.rb → collection_access_level_enum.rb} +3 -1
  220. data/lib/merge_ruby_client/ticketing/types/event_type_enum.rb +2 -0
  221. data/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb +28 -9
  222. data/lib/merge_ruby_client/ticketing/types/remote_field_class.rb +9 -1
  223. data/lib/merge_ruby_client/ticketing/types/ticket.rb +20 -1
  224. data/lib/merge_ruby_client/ticketing/types/ticket_access_level_enum.rb +16 -0
  225. data/lib/merge_ruby_client/ticketing/types/ticket_request.rb +20 -1
  226. data/lib/merge_ruby_client/ticketing/users/client.rb +2 -2
  227. data/lib/merge_ruby_client.rb +14 -14
  228. data/lib/requests.rb +2 -2
  229. data/lib/types_export.rb +473 -409
  230. metadata +69 -3
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "accounting_period"
5
+
6
+ module Merge
7
+ module Accounting
8
+ # The accounting period the report was posted in
9
+ class ExpenseReportRequestAccountingPeriod
10
+ # Deserialize a JSON object to an instance of ExpenseReportRequestAccountingPeriod
11
+ #
12
+ # @param json_object [String]
13
+ # @return [Merge::Accounting::ExpenseReportRequestAccountingPeriod]
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::AccountingPeriod.validate_raw(obj: struct)
26
+ return Merge::Accounting::AccountingPeriod.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::AccountingPeriod.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 "company_info"
5
+
6
+ module Merge
7
+ module Accounting
8
+ # The subsidiary that the expense report is created in
9
+ class ExpenseReportRequestCompany
10
+ # Deserialize a JSON object to an instance of ExpenseReportRequestCompany
11
+ #
12
+ # @param json_object [String]
13
+ # @return [Merge::Accounting::ExpenseReportRequestCompany]
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::CompanyInfo.validate_raw(obj: struct)
26
+ return Merge::Accounting::CompanyInfo.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::CompanyInfo.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,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "employee"
5
+
6
+ module Merge
7
+ module Accounting
8
+ # Identifier for the employee who submitted or is associated with the expense
9
+ # report
10
+ class ExpenseReportRequestEmployee
11
+ # Deserialize a JSON object to an instance of ExpenseReportRequestEmployee
12
+ #
13
+ # @param json_object [String]
14
+ # @return [Merge::Accounting::ExpenseReportRequestEmployee]
15
+ def self.from_json(json_object:)
16
+ struct = JSON.parse(json_object, object_class: OpenStruct)
17
+ begin
18
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
19
+ return struct unless struct.nil?
20
+
21
+ return nil
22
+ rescue StandardError
23
+ # noop
24
+ end
25
+ begin
26
+ Merge::Accounting::Employee.validate_raw(obj: struct)
27
+ return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil?
28
+
29
+ return nil
30
+ rescue StandardError
31
+ # noop
32
+ end
33
+ struct
34
+ end
35
+
36
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
37
+ # hash and check each fields type against the current object's property
38
+ # definitions.
39
+ #
40
+ # @param obj [Object]
41
+ # @return [Void]
42
+ def self.validate_raw(obj:)
43
+ begin
44
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
45
+ rescue StandardError
46
+ # noop
47
+ end
48
+ begin
49
+ return Merge::Accounting::Employee.validate_raw(obj: obj)
50
+ rescue StandardError
51
+ # noop
52
+ end
53
+ raise("Passed value matched no type within the union, validation failed.")
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "expense_report"
4
+ require_relative "warning_validation_problem"
5
+ require_relative "error_validation_problem"
6
+ require_relative "debug_mode_log"
7
+ require "ostruct"
8
+ require "json"
9
+
10
+ module Merge
11
+ module Accounting
12
+ class ExpenseReportResponse
13
+ # @return [Merge::Accounting::ExpenseReport]
14
+ attr_reader :model
15
+ # @return [Array<Merge::Accounting::WarningValidationProblem>]
16
+ attr_reader :warnings
17
+ # @return [Array<Merge::Accounting::ErrorValidationProblem>]
18
+ attr_reader :errors
19
+ # @return [Array<Merge::Accounting::DebugModeLog>]
20
+ attr_reader :logs
21
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
22
+ attr_reader :additional_properties
23
+ # @return [Object]
24
+ attr_reader :_field_set
25
+ protected :_field_set
26
+
27
+ OMIT = Object.new
28
+
29
+ # @param model [Merge::Accounting::ExpenseReport]
30
+ # @param warnings [Array<Merge::Accounting::WarningValidationProblem>]
31
+ # @param errors [Array<Merge::Accounting::ErrorValidationProblem>]
32
+ # @param logs [Array<Merge::Accounting::DebugModeLog>]
33
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
34
+ # @return [Merge::Accounting::ExpenseReportResponse]
35
+ def initialize(model:, warnings:, errors:, logs: OMIT, additional_properties: nil)
36
+ @model = model
37
+ @warnings = warnings
38
+ @errors = errors
39
+ @logs = logs if logs != OMIT
40
+ @additional_properties = additional_properties
41
+ @_field_set = { "model": model, "warnings": warnings, "errors": errors, "logs": logs }.reject do |_k, v|
42
+ v == OMIT
43
+ end
44
+ end
45
+
46
+ # Deserialize a JSON object to an instance of ExpenseReportResponse
47
+ #
48
+ # @param json_object [String]
49
+ # @return [Merge::Accounting::ExpenseReportResponse]
50
+ def self.from_json(json_object:)
51
+ struct = JSON.parse(json_object, object_class: OpenStruct)
52
+ parsed_json = JSON.parse(json_object)
53
+ if parsed_json["model"].nil?
54
+ model = nil
55
+ else
56
+ model = parsed_json["model"].to_json
57
+ model = Merge::Accounting::ExpenseReport.from_json(json_object: model)
58
+ end
59
+ warnings = parsed_json["warnings"]&.map do |item|
60
+ item = item.to_json
61
+ Merge::Accounting::WarningValidationProblem.from_json(json_object: item)
62
+ end
63
+ errors = parsed_json["errors"]&.map do |item|
64
+ item = item.to_json
65
+ Merge::Accounting::ErrorValidationProblem.from_json(json_object: item)
66
+ end
67
+ logs = parsed_json["logs"]&.map do |item|
68
+ item = item.to_json
69
+ Merge::Accounting::DebugModeLog.from_json(json_object: item)
70
+ end
71
+ new(
72
+ model: model,
73
+ warnings: warnings,
74
+ errors: errors,
75
+ logs: logs,
76
+ additional_properties: struct
77
+ )
78
+ end
79
+
80
+ # Serialize an instance of ExpenseReportResponse to a JSON object
81
+ #
82
+ # @return [String]
83
+ def to_json(*_args)
84
+ @_field_set&.to_json
85
+ end
86
+
87
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
88
+ # hash and check each fields type against the current object's property
89
+ # definitions.
90
+ #
91
+ # @param obj [Object]
92
+ # @return [Void]
93
+ def self.validate_raw(obj:)
94
+ Merge::Accounting::ExpenseReport.validate_raw(obj: obj.model)
95
+ obj.warnings.is_a?(Array) != false || raise("Passed value for field obj.warnings is not the expected type, validation failed.")
96
+ obj.errors.is_a?(Array) != false || raise("Passed value for field obj.errors is not the expected type, validation failed.")
97
+ obj.logs&.is_a?(Array) != false || raise("Passed value for field obj.logs is not the expected type, validation failed.")
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Merge
4
+ module Accounting
5
+ # * `DRAFT` - DRAFT
6
+ # * `SUBMITTED` - SUBMITTED
7
+ # * `APPROVED` - APPROVED
8
+ # * `REJECTED` - REJECTED
9
+ class ExpenseReportStatusEnum
10
+ DRAFT = "DRAFT"
11
+ SUBMITTED = "SUBMITTED"
12
+ APPROVED = "APPROVED"
13
+ REJECTED = "REJECTED"
14
+ end
15
+ end
16
+ end
@@ -28,6 +28,8 @@ module Merge
28
28
  # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
29
29
  attr_reader :purchase_order
30
30
  # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
31
+ attr_reader :expense_report
32
+ # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
31
33
  attr_reader :tracking_category
32
34
  # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
33
35
  attr_reader :journal_entry
@@ -54,6 +56,8 @@ module Merge
54
56
  # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
55
57
  attr_reader :payment_method
56
58
  # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
59
+ attr_reader :project
60
+ # @return [Array<Merge::Accounting::ExternalTargetFieldApi>]
57
61
  attr_reader :payment_term
58
62
  # @return [OpenStruct] Additional properties unmapped to the current class definition
59
63
  attr_reader :additional_properties
@@ -73,6 +77,7 @@ module Merge
73
77
  # @param credit_note [Array<Merge::Accounting::ExternalTargetFieldApi>]
74
78
  # @param item [Array<Merge::Accounting::ExternalTargetFieldApi>]
75
79
  # @param purchase_order [Array<Merge::Accounting::ExternalTargetFieldApi>]
80
+ # @param expense_report [Array<Merge::Accounting::ExternalTargetFieldApi>]
76
81
  # @param tracking_category [Array<Merge::Accounting::ExternalTargetFieldApi>]
77
82
  # @param journal_entry [Array<Merge::Accounting::ExternalTargetFieldApi>]
78
83
  # @param tax_rate [Array<Merge::Accounting::ExternalTargetFieldApi>]
@@ -86,11 +91,12 @@ module Merge
86
91
  # @param bank_feed_account [Array<Merge::Accounting::ExternalTargetFieldApi>]
87
92
  # @param employee [Array<Merge::Accounting::ExternalTargetFieldApi>]
88
93
  # @param payment_method [Array<Merge::Accounting::ExternalTargetFieldApi>]
94
+ # @param project [Array<Merge::Accounting::ExternalTargetFieldApi>]
89
95
  # @param payment_term [Array<Merge::Accounting::ExternalTargetFieldApi>]
90
96
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
91
97
  # @return [Merge::Accounting::ExternalTargetFieldApiResponse]
92
98
  def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, cash_flow_statement: OMIT,
93
- company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, payment_method: OMIT, payment_term: OMIT, additional_properties: nil)
99
+ company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, expense_report: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, payment_method: OMIT, project: OMIT, payment_term: OMIT, additional_properties: nil)
94
100
  @account = account if account != OMIT
95
101
  @accounting_attachment = accounting_attachment if accounting_attachment != OMIT
96
102
  @balance_sheet = balance_sheet if balance_sheet != OMIT
@@ -101,6 +107,7 @@ module Merge
101
107
  @credit_note = credit_note if credit_note != OMIT
102
108
  @item = item if item != OMIT
103
109
  @purchase_order = purchase_order if purchase_order != OMIT
110
+ @expense_report = expense_report if expense_report != OMIT
104
111
  @tracking_category = tracking_category if tracking_category != OMIT
105
112
  @journal_entry = journal_entry if journal_entry != OMIT
106
113
  @tax_rate = tax_rate if tax_rate != OMIT
@@ -114,6 +121,7 @@ module Merge
114
121
  @bank_feed_account = bank_feed_account if bank_feed_account != OMIT
115
122
  @employee = employee if employee != OMIT
116
123
  @payment_method = payment_method if payment_method != OMIT
124
+ @project = project if project != OMIT
117
125
  @payment_term = payment_term if payment_term != OMIT
118
126
  @additional_properties = additional_properties
119
127
  @_field_set = {
@@ -127,6 +135,7 @@ module Merge
127
135
  "CreditNote": credit_note,
128
136
  "Item": item,
129
137
  "PurchaseOrder": purchase_order,
138
+ "ExpenseReport": expense_report,
130
139
  "TrackingCategory": tracking_category,
131
140
  "JournalEntry": journal_entry,
132
141
  "TaxRate": tax_rate,
@@ -140,6 +149,7 @@ module Merge
140
149
  "BankFeedAccount": bank_feed_account,
141
150
  "Employee": employee,
142
151
  "PaymentMethod": payment_method,
152
+ "Project": project,
143
153
  "PaymentTerm": payment_term
144
154
  }.reject do |_k, v|
145
155
  v == OMIT
@@ -193,6 +203,10 @@ module Merge
193
203
  item = item.to_json
194
204
  Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item)
195
205
  end
206
+ expense_report = parsed_json["ExpenseReport"]&.map do |item|
207
+ item = item.to_json
208
+ Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item)
209
+ end
196
210
  tracking_category = parsed_json["TrackingCategory"]&.map do |item|
197
211
  item = item.to_json
198
212
  Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item)
@@ -245,6 +259,10 @@ module Merge
245
259
  item = item.to_json
246
260
  Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item)
247
261
  end
262
+ project = parsed_json["Project"]&.map do |item|
263
+ item = item.to_json
264
+ Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item)
265
+ end
248
266
  payment_term = parsed_json["PaymentTerm"]&.map do |item|
249
267
  item = item.to_json
250
268
  Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item)
@@ -260,6 +278,7 @@ module Merge
260
278
  credit_note: credit_note,
261
279
  item: item,
262
280
  purchase_order: purchase_order,
281
+ expense_report: expense_report,
263
282
  tracking_category: tracking_category,
264
283
  journal_entry: journal_entry,
265
284
  tax_rate: tax_rate,
@@ -273,6 +292,7 @@ module Merge
273
292
  bank_feed_account: bank_feed_account,
274
293
  employee: employee,
275
294
  payment_method: payment_method,
295
+ project: project,
276
296
  payment_term: payment_term,
277
297
  additional_properties: struct
278
298
  )
@@ -302,6 +322,7 @@ module Merge
302
322
  obj.credit_note&.is_a?(Array) != false || raise("Passed value for field obj.credit_note is not the expected type, validation failed.")
303
323
  obj.item&.is_a?(Array) != false || raise("Passed value for field obj.item is not the expected type, validation failed.")
304
324
  obj.purchase_order&.is_a?(Array) != false || raise("Passed value for field obj.purchase_order is not the expected type, validation failed.")
325
+ obj.expense_report&.is_a?(Array) != false || raise("Passed value for field obj.expense_report is not the expected type, validation failed.")
305
326
  obj.tracking_category&.is_a?(Array) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.")
306
327
  obj.journal_entry&.is_a?(Array) != false || raise("Passed value for field obj.journal_entry is not the expected type, validation failed.")
307
328
  obj.tax_rate&.is_a?(Array) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.")
@@ -315,6 +336,7 @@ module Merge
315
336
  obj.bank_feed_account&.is_a?(Array) != false || raise("Passed value for field obj.bank_feed_account is not the expected type, validation failed.")
316
337
  obj.employee&.is_a?(Array) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.")
317
338
  obj.payment_method&.is_a?(Array) != false || raise("Passed value for field obj.payment_method is not the expected type, validation failed.")
339
+ obj.project&.is_a?(Array) != false || raise("Passed value for field obj.project is not the expected type, validation failed.")
318
340
  obj.payment_term&.is_a?(Array) != false || raise("Passed value for field obj.payment_term is not the expected type, validation failed.")
319
341
  end
320
342
  end
@@ -28,6 +28,8 @@ module Merge
28
28
  # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
29
29
  attr_reader :purchase_order
30
30
  # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
31
+ attr_reader :expense_report
32
+ # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
31
33
  attr_reader :tracking_category
32
34
  # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
33
35
  attr_reader :journal_entry
@@ -54,6 +56,8 @@ module Merge
54
56
  # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
55
57
  attr_reader :payment_method
56
58
  # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
59
+ attr_reader :project
60
+ # @return [Array<Merge::Accounting::FieldMappingApiInstance>]
57
61
  attr_reader :payment_term
58
62
  # @return [OpenStruct] Additional properties unmapped to the current class definition
59
63
  attr_reader :additional_properties
@@ -73,6 +77,7 @@ module Merge
73
77
  # @param credit_note [Array<Merge::Accounting::FieldMappingApiInstance>]
74
78
  # @param item [Array<Merge::Accounting::FieldMappingApiInstance>]
75
79
  # @param purchase_order [Array<Merge::Accounting::FieldMappingApiInstance>]
80
+ # @param expense_report [Array<Merge::Accounting::FieldMappingApiInstance>]
76
81
  # @param tracking_category [Array<Merge::Accounting::FieldMappingApiInstance>]
77
82
  # @param journal_entry [Array<Merge::Accounting::FieldMappingApiInstance>]
78
83
  # @param tax_rate [Array<Merge::Accounting::FieldMappingApiInstance>]
@@ -86,11 +91,12 @@ module Merge
86
91
  # @param bank_feed_account [Array<Merge::Accounting::FieldMappingApiInstance>]
87
92
  # @param employee [Array<Merge::Accounting::FieldMappingApiInstance>]
88
93
  # @param payment_method [Array<Merge::Accounting::FieldMappingApiInstance>]
94
+ # @param project [Array<Merge::Accounting::FieldMappingApiInstance>]
89
95
  # @param payment_term [Array<Merge::Accounting::FieldMappingApiInstance>]
90
96
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
91
97
  # @return [Merge::Accounting::FieldMappingApiInstanceResponse]
92
98
  def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, cash_flow_statement: OMIT,
93
- company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, payment_method: OMIT, payment_term: OMIT, additional_properties: nil)
99
+ company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, expense_report: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, payment_method: OMIT, project: OMIT, payment_term: OMIT, additional_properties: nil)
94
100
  @account = account if account != OMIT
95
101
  @accounting_attachment = accounting_attachment if accounting_attachment != OMIT
96
102
  @balance_sheet = balance_sheet if balance_sheet != OMIT
@@ -101,6 +107,7 @@ module Merge
101
107
  @credit_note = credit_note if credit_note != OMIT
102
108
  @item = item if item != OMIT
103
109
  @purchase_order = purchase_order if purchase_order != OMIT
110
+ @expense_report = expense_report if expense_report != OMIT
104
111
  @tracking_category = tracking_category if tracking_category != OMIT
105
112
  @journal_entry = journal_entry if journal_entry != OMIT
106
113
  @tax_rate = tax_rate if tax_rate != OMIT
@@ -114,6 +121,7 @@ module Merge
114
121
  @bank_feed_account = bank_feed_account if bank_feed_account != OMIT
115
122
  @employee = employee if employee != OMIT
116
123
  @payment_method = payment_method if payment_method != OMIT
124
+ @project = project if project != OMIT
117
125
  @payment_term = payment_term if payment_term != OMIT
118
126
  @additional_properties = additional_properties
119
127
  @_field_set = {
@@ -127,6 +135,7 @@ module Merge
127
135
  "CreditNote": credit_note,
128
136
  "Item": item,
129
137
  "PurchaseOrder": purchase_order,
138
+ "ExpenseReport": expense_report,
130
139
  "TrackingCategory": tracking_category,
131
140
  "JournalEntry": journal_entry,
132
141
  "TaxRate": tax_rate,
@@ -140,6 +149,7 @@ module Merge
140
149
  "BankFeedAccount": bank_feed_account,
141
150
  "Employee": employee,
142
151
  "PaymentMethod": payment_method,
152
+ "Project": project,
143
153
  "PaymentTerm": payment_term
144
154
  }.reject do |_k, v|
145
155
  v == OMIT
@@ -193,6 +203,10 @@ module Merge
193
203
  item = item.to_json
194
204
  Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item)
195
205
  end
206
+ expense_report = parsed_json["ExpenseReport"]&.map do |item|
207
+ item = item.to_json
208
+ Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item)
209
+ end
196
210
  tracking_category = parsed_json["TrackingCategory"]&.map do |item|
197
211
  item = item.to_json
198
212
  Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item)
@@ -245,6 +259,10 @@ module Merge
245
259
  item = item.to_json
246
260
  Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item)
247
261
  end
262
+ project = parsed_json["Project"]&.map do |item|
263
+ item = item.to_json
264
+ Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item)
265
+ end
248
266
  payment_term = parsed_json["PaymentTerm"]&.map do |item|
249
267
  item = item.to_json
250
268
  Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item)
@@ -260,6 +278,7 @@ module Merge
260
278
  credit_note: credit_note,
261
279
  item: item,
262
280
  purchase_order: purchase_order,
281
+ expense_report: expense_report,
263
282
  tracking_category: tracking_category,
264
283
  journal_entry: journal_entry,
265
284
  tax_rate: tax_rate,
@@ -273,6 +292,7 @@ module Merge
273
292
  bank_feed_account: bank_feed_account,
274
293
  employee: employee,
275
294
  payment_method: payment_method,
295
+ project: project,
276
296
  payment_term: payment_term,
277
297
  additional_properties: struct
278
298
  )
@@ -302,6 +322,7 @@ module Merge
302
322
  obj.credit_note&.is_a?(Array) != false || raise("Passed value for field obj.credit_note is not the expected type, validation failed.")
303
323
  obj.item&.is_a?(Array) != false || raise("Passed value for field obj.item is not the expected type, validation failed.")
304
324
  obj.purchase_order&.is_a?(Array) != false || raise("Passed value for field obj.purchase_order is not the expected type, validation failed.")
325
+ obj.expense_report&.is_a?(Array) != false || raise("Passed value for field obj.expense_report is not the expected type, validation failed.")
305
326
  obj.tracking_category&.is_a?(Array) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.")
306
327
  obj.journal_entry&.is_a?(Array) != false || raise("Passed value for field obj.journal_entry is not the expected type, validation failed.")
307
328
  obj.tax_rate&.is_a?(Array) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.")
@@ -315,6 +336,7 @@ module Merge
315
336
  obj.bank_feed_account&.is_a?(Array) != false || raise("Passed value for field obj.bank_feed_account is not the expected type, validation failed.")
316
337
  obj.employee&.is_a?(Array) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.")
317
338
  obj.payment_method&.is_a?(Array) != false || raise("Passed value for field obj.payment_method is not the expected type, validation failed.")
339
+ obj.project&.is_a?(Array) != false || raise("Passed value for field obj.project is not the expected type, validation failed.")
318
340
  obj.payment_term&.is_a?(Array) != false || raise("Passed value for field obj.payment_term is not the expected type, validation failed.")
319
341
  end
320
342
  end
@@ -5,6 +5,7 @@ require_relative "general_ledger_transaction_line_account"
5
5
  require_relative "general_ledger_transaction_line_company"
6
6
  require_relative "general_ledger_transaction_line_employee"
7
7
  require_relative "general_ledger_transaction_line_contact"
8
+ require_relative "general_ledger_transaction_line_project"
8
9
  require_relative "transaction_currency_enum"
9
10
  require_relative "general_ledger_transaction_line_tracking_categories_item"
10
11
  require_relative "general_ledger_transaction_line_item"
@@ -37,6 +38,8 @@ module Merge
37
38
  attr_reader :employee
38
39
  # @return [Merge::Accounting::GeneralLedgerTransactionLineContact]
39
40
  attr_reader :contact
41
+ # @return [Merge::Accounting::GeneralLedgerTransactionLineProject]
42
+ attr_reader :project
40
43
  # @return [Merge::Accounting::TransactionCurrencyEnum] The base currency of the transaction
41
44
  # * `XUA` - ADB Unit of Account
42
45
  # * `AFN` - Afghan Afghani
@@ -692,6 +695,7 @@ module Merge
692
695
  # @param company [Merge::Accounting::GeneralLedgerTransactionLineCompany] The company the GeneralLedgerTransaction belongs to.
693
696
  # @param employee [Merge::Accounting::GeneralLedgerTransactionLineEmployee]
694
697
  # @param contact [Merge::Accounting::GeneralLedgerTransactionLineContact]
698
+ # @param project [Merge::Accounting::GeneralLedgerTransactionLineProject]
695
699
  # @param base_currency [Merge::Accounting::TransactionCurrencyEnum] The base currency of the transaction
696
700
  # * `XUA` - ADB Unit of Account
697
701
  # * `AFN` - Afghan Afghani
@@ -1322,7 +1326,7 @@ module Merge
1322
1326
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
1323
1327
  # @return [Merge::Accounting::GeneralLedgerTransactionLine]
1324
1328
  def initialize(debit_amount:, credit_amount:, foreign_debit_amount:, foreign_credit_amount:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, account: OMIT, company: OMIT,
1325
- employee: OMIT, contact: OMIT, base_currency: OMIT, transaction_currency: OMIT, exchange_rate: OMIT, description: OMIT, tracking_categories: OMIT, item: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, additional_properties: nil)
1329
+ employee: OMIT, contact: OMIT, project: OMIT, base_currency: OMIT, transaction_currency: OMIT, exchange_rate: OMIT, description: OMIT, tracking_categories: OMIT, item: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, additional_properties: nil)
1326
1330
  @id = id if id != OMIT
1327
1331
  @remote_id = remote_id if remote_id != OMIT
1328
1332
  @created_at = created_at if created_at != OMIT
@@ -1331,6 +1335,7 @@ module Merge
1331
1335
  @company = company if company != OMIT
1332
1336
  @employee = employee if employee != OMIT
1333
1337
  @contact = contact if contact != OMIT
1338
+ @project = project if project != OMIT
1334
1339
  @base_currency = base_currency if base_currency != OMIT
1335
1340
  @transaction_currency = transaction_currency if transaction_currency != OMIT
1336
1341
  @exchange_rate = exchange_rate if exchange_rate != OMIT
@@ -1353,6 +1358,7 @@ module Merge
1353
1358
  "company": company,
1354
1359
  "employee": employee,
1355
1360
  "contact": contact,
1361
+ "project": project,
1356
1362
  "base_currency": base_currency,
1357
1363
  "transaction_currency": transaction_currency,
1358
1364
  "exchange_rate": exchange_rate,
@@ -1405,6 +1411,12 @@ module Merge
1405
1411
  contact = parsed_json["contact"].to_json
1406
1412
  contact = Merge::Accounting::GeneralLedgerTransactionLineContact.from_json(json_object: contact)
1407
1413
  end
1414
+ if parsed_json["project"].nil?
1415
+ project = nil
1416
+ else
1417
+ project = parsed_json["project"].to_json
1418
+ project = Merge::Accounting::GeneralLedgerTransactionLineProject.from_json(json_object: project)
1419
+ end
1408
1420
  base_currency = parsed_json["base_currency"]
1409
1421
  transaction_currency = parsed_json["transaction_currency"]
1410
1422
  exchange_rate = parsed_json["exchange_rate"]
@@ -1434,6 +1446,7 @@ module Merge
1434
1446
  company: company,
1435
1447
  employee: employee,
1436
1448
  contact: contact,
1449
+ project: project,
1437
1450
  base_currency: base_currency,
1438
1451
  transaction_currency: transaction_currency,
1439
1452
  exchange_rate: exchange_rate,
@@ -1472,6 +1485,7 @@ module Merge
1472
1485
  obj.company.nil? || Merge::Accounting::GeneralLedgerTransactionLineCompany.validate_raw(obj: obj.company)
1473
1486
  obj.employee.nil? || Merge::Accounting::GeneralLedgerTransactionLineEmployee.validate_raw(obj: obj.employee)
1474
1487
  obj.contact.nil? || Merge::Accounting::GeneralLedgerTransactionLineContact.validate_raw(obj: obj.contact)
1488
+ obj.project.nil? || Merge::Accounting::GeneralLedgerTransactionLineProject.validate_raw(obj: obj.project)
1475
1489
  obj.base_currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.base_currency is not the expected type, validation failed.")
1476
1490
  obj.transaction_currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.transaction_currency is not the expected type, validation failed.")
1477
1491
  obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.")
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "project"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class GeneralLedgerTransactionLineProject
9
+ # Deserialize a JSON object to an instance of GeneralLedgerTransactionLineProject
10
+ #
11
+ # @param json_object [String]
12
+ # @return [Merge::Accounting::GeneralLedgerTransactionLineProject]
13
+ def self.from_json(json_object:)
14
+ struct = JSON.parse(json_object, object_class: OpenStruct)
15
+ begin
16
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
17
+ return struct unless struct.nil?
18
+
19
+ return nil
20
+ rescue StandardError
21
+ # noop
22
+ end
23
+ begin
24
+ Merge::Accounting::Project.validate_raw(obj: struct)
25
+ return Merge::Accounting::Project.from_json(json_object: struct) unless struct.nil?
26
+
27
+ return nil
28
+ rescue StandardError
29
+ # noop
30
+ end
31
+ struct
32
+ end
33
+
34
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
35
+ # hash and check each fields type against the current object's property
36
+ # definitions.
37
+ #
38
+ # @param obj [Object]
39
+ # @return [Void]
40
+ def self.validate_raw(obj:)
41
+ begin
42
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
43
+ rescue StandardError
44
+ # noop
45
+ end
46
+ begin
47
+ return Merge::Accounting::Project.validate_raw(obj: obj)
48
+ rescue StandardError
49
+ # noop
50
+ end
51
+ raise("Passed value matched no type within the union, validation failed.")
52
+ end
53
+ end
54
+ end
55
+ end