merge_ruby_client 2.0.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 (159) 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 +2 -2
  4. data/lib/merge_ruby_client/accounting/attachments/client.rb +2 -2
  5. data/lib/merge_ruby_client/accounting/audit_trail/client.rb +2 -2
  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 +7 -0
  11. data/lib/merge_ruby_client/accounting/company_info/client.rb +2 -2
  12. data/lib/merge_ruby_client/accounting/contacts/client.rb +173 -4
  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 +6 -6
  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 +6 -6
  23. data/lib/merge_ruby_client/accounting/issues/client.rb +2 -2
  24. data/lib/merge_ruby_client/accounting/items/client.rb +2 -2
  25. data/lib/merge_ruby_client/accounting/journal_entries/client.rb +6 -6
  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 +6 -6
  30. data/lib/merge_ruby_client/accounting/projects/client.rb +35 -8
  31. data/lib/merge_ruby_client/accounting/purchase_orders/client.rb +6 -6
  32. data/lib/merge_ruby_client/accounting/sync_status/client.rb +2 -2
  33. data/lib/merge_ruby_client/accounting/tax_rates/client.rb +2 -2
  34. data/lib/merge_ruby_client/accounting/tracking_categories/client.rb +2 -2
  35. data/lib/merge_ruby_client/accounting/transactions/client.rb +2 -2
  36. data/lib/merge_ruby_client/accounting/transactions/types/transactions_list_request_expand.rb +32 -0
  37. data/lib/merge_ruby_client/accounting/transactions/types/transactions_retrieve_request_expand.rb +32 -0
  38. data/lib/merge_ruby_client/accounting/types/expense_report.rb +869 -0
  39. data/lib/merge_ruby_client/accounting/types/expense_report_company.rb +56 -0
  40. data/lib/merge_ruby_client/accounting/types/expense_report_line.rb +921 -0
  41. data/lib/merge_ruby_client/accounting/types/expense_report_line_account.rb +55 -0
  42. data/lib/merge_ruby_client/accounting/types/expense_report_line_company.rb +56 -0
  43. data/lib/merge_ruby_client/accounting/types/expense_report_line_contact.rb +55 -0
  44. data/lib/merge_ruby_client/accounting/types/expense_report_line_employee.rb +57 -0
  45. data/lib/merge_ruby_client/accounting/types/expense_report_line_project.rb +55 -0
  46. data/lib/merge_ruby_client/accounting/types/expense_report_line_request.rb +899 -0
  47. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_account.rb +55 -0
  48. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_company.rb +56 -0
  49. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_contact.rb +55 -0
  50. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_employee.rb +57 -0
  51. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_project.rb +55 -0
  52. data/lib/merge_ruby_client/accounting/types/expense_report_line_request_tax_rate.rb +55 -0
  53. data/lib/merge_ruby_client/accounting/types/expense_report_line_tax_rate.rb +55 -0
  54. data/lib/merge_ruby_client/accounting/types/expense_report_request.rb +819 -0
  55. data/lib/merge_ruby_client/accounting/types/expense_report_request_accounting_period.rb +56 -0
  56. data/lib/merge_ruby_client/accounting/types/expense_report_request_company.rb +56 -0
  57. data/lib/merge_ruby_client/accounting/types/expense_report_request_employee.rb +57 -0
  58. data/lib/merge_ruby_client/accounting/types/expense_report_response.rb +101 -0
  59. data/lib/merge_ruby_client/accounting/types/expense_report_status_enum.rb +16 -0
  60. data/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb +12 -1
  61. data/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb +12 -1
  62. data/lib/merge_ruby_client/accounting/types/item.rb +18 -1
  63. data/lib/merge_ruby_client/accounting/types/paginated_expense_report_line_list.rb +80 -0
  64. data/lib/merge_ruby_client/accounting/types/paginated_expense_report_list.rb +80 -0
  65. data/lib/merge_ruby_client/accounting/types/patched_contact_request.rb +188 -0
  66. data/lib/merge_ruby_client/accounting/types/patched_contact_request_addresses_item.rb +55 -0
  67. data/lib/merge_ruby_client/accounting/types/remote_field_class.rb +9 -1
  68. data/lib/merge_ruby_client/accounting/vendor_credits/client.rb +2 -2
  69. data/lib/merge_ruby_client/ats/activities/client.rb +2 -2
  70. data/lib/merge_ruby_client/ats/applications/client.rb +2 -2
  71. data/lib/merge_ruby_client/ats/attachments/client.rb +2 -2
  72. data/lib/merge_ruby_client/ats/audit_trail/client.rb +2 -2
  73. data/lib/merge_ruby_client/ats/candidates/client.rb +2 -2
  74. data/lib/merge_ruby_client/ats/departments/client.rb +2 -2
  75. data/lib/merge_ruby_client/ats/eeocs/client.rb +2 -2
  76. data/lib/merge_ruby_client/ats/interviews/client.rb +2 -2
  77. data/lib/merge_ruby_client/ats/issues/client.rb +2 -2
  78. data/lib/merge_ruby_client/ats/job_interview_stages/client.rb +2 -2
  79. data/lib/merge_ruby_client/ats/job_postings/client.rb +2 -2
  80. data/lib/merge_ruby_client/ats/jobs/client.rb +4 -4
  81. data/lib/merge_ruby_client/ats/linked_accounts/client.rb +2 -2
  82. data/lib/merge_ruby_client/ats/offers/client.rb +2 -2
  83. data/lib/merge_ruby_client/ats/offices/client.rb +2 -2
  84. data/lib/merge_ruby_client/ats/reject_reasons/client.rb +2 -2
  85. data/lib/merge_ruby_client/ats/scorecards/client.rb +2 -2
  86. data/lib/merge_ruby_client/ats/sync_status/client.rb +2 -2
  87. data/lib/merge_ruby_client/ats/tags/client.rb +2 -2
  88. data/lib/merge_ruby_client/ats/types/event_type_enum.rb +1 -0
  89. data/lib/merge_ruby_client/ats/users/client.rb +2 -2
  90. data/lib/merge_ruby_client/crm/accounts/client.rb +4 -4
  91. data/lib/merge_ruby_client/crm/association_types/client.rb +2 -2
  92. data/lib/merge_ruby_client/crm/associations/client.rb +10 -2
  93. data/lib/merge_ruby_client/crm/audit_trail/client.rb +2 -2
  94. data/lib/merge_ruby_client/crm/contacts/client.rb +4 -4
  95. data/lib/merge_ruby_client/crm/custom_object_classes/client.rb +2 -2
  96. data/lib/merge_ruby_client/crm/custom_objects/client.rb +4 -4
  97. data/lib/merge_ruby_client/crm/engagement_types/client.rb +4 -4
  98. data/lib/merge_ruby_client/crm/engagements/client.rb +4 -4
  99. data/lib/merge_ruby_client/crm/issues/client.rb +2 -2
  100. data/lib/merge_ruby_client/crm/leads/client.rb +4 -4
  101. data/lib/merge_ruby_client/crm/linked_accounts/client.rb +2 -2
  102. data/lib/merge_ruby_client/crm/notes/client.rb +4 -4
  103. data/lib/merge_ruby_client/crm/opportunities/client.rb +4 -4
  104. data/lib/merge_ruby_client/crm/stages/client.rb +4 -4
  105. data/lib/merge_ruby_client/crm/sync_status/client.rb +2 -2
  106. data/lib/merge_ruby_client/crm/tasks/client.rb +4 -4
  107. data/lib/merge_ruby_client/crm/types/remote_field_class.rb +9 -1
  108. data/lib/merge_ruby_client/crm/users/client.rb +4 -4
  109. data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +2 -2
  110. data/lib/merge_ruby_client/filestorage/drives/client.rb +2 -2
  111. data/lib/merge_ruby_client/filestorage/files/client.rb +28 -10
  112. data/lib/merge_ruby_client/filestorage/folders/client.rb +2 -2
  113. data/lib/merge_ruby_client/filestorage/groups/client.rb +2 -2
  114. data/lib/merge_ruby_client/filestorage/issues/client.rb +2 -2
  115. data/lib/merge_ruby_client/filestorage/linked_accounts/client.rb +2 -2
  116. data/lib/merge_ruby_client/filestorage/sync_status/client.rb +2 -2
  117. data/lib/merge_ruby_client/filestorage/users/client.rb +2 -2
  118. data/lib/merge_ruby_client/hris/audit_trail/client.rb +2 -2
  119. data/lib/merge_ruby_client/hris/bank_info/client.rb +2 -2
  120. data/lib/merge_ruby_client/hris/benefits/client.rb +2 -2
  121. data/lib/merge_ruby_client/hris/companies/client.rb +2 -2
  122. data/lib/merge_ruby_client/hris/dependents/client.rb +8 -4
  123. data/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb +2 -2
  124. data/lib/merge_ruby_client/hris/employees/client.rb +8 -4
  125. data/lib/merge_ruby_client/hris/employer_benefits/client.rb +2 -2
  126. data/lib/merge_ruby_client/hris/employments/client.rb +2 -2
  127. data/lib/merge_ruby_client/hris/groups/client.rb +2 -2
  128. data/lib/merge_ruby_client/hris/issues/client.rb +2 -2
  129. data/lib/merge_ruby_client/hris/linked_accounts/client.rb +2 -2
  130. data/lib/merge_ruby_client/hris/locations/client.rb +2 -2
  131. data/lib/merge_ruby_client/hris/pay_groups/client.rb +2 -2
  132. data/lib/merge_ruby_client/hris/payroll_runs/client.rb +2 -2
  133. data/lib/merge_ruby_client/hris/sync_status/client.rb +2 -2
  134. data/lib/merge_ruby_client/hris/teams/client.rb +2 -2
  135. data/lib/merge_ruby_client/hris/time_off/client.rb +2 -2
  136. data/lib/merge_ruby_client/hris/time_off_balances/client.rb +2 -2
  137. data/lib/merge_ruby_client/hris/timesheet_entries/client.rb +2 -2
  138. data/lib/merge_ruby_client/hris/types/benefit.rb +9 -9
  139. data/lib/merge_ruby_client/ticketing/accounts/client.rb +2 -2
  140. data/lib/merge_ruby_client/ticketing/attachments/client.rb +2 -2
  141. data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +2 -2
  142. data/lib/merge_ruby_client/ticketing/collections/client.rb +4 -4
  143. data/lib/merge_ruby_client/ticketing/comments/client.rb +2 -2
  144. data/lib/merge_ruby_client/ticketing/contacts/client.rb +2 -2
  145. data/lib/merge_ruby_client/ticketing/issues/client.rb +2 -2
  146. data/lib/merge_ruby_client/ticketing/linked_accounts/client.rb +2 -2
  147. data/lib/merge_ruby_client/ticketing/projects/client.rb +4 -4
  148. data/lib/merge_ruby_client/ticketing/roles/client.rb +2 -2
  149. data/lib/merge_ruby_client/ticketing/sync_status/client.rb +2 -2
  150. data/lib/merge_ruby_client/ticketing/tags/client.rb +2 -2
  151. data/lib/merge_ruby_client/ticketing/teams/client.rb +2 -2
  152. data/lib/merge_ruby_client/ticketing/tickets/client.rb +14 -10
  153. data/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb +9 -9
  154. data/lib/merge_ruby_client/ticketing/types/remote_field_class.rb +9 -1
  155. data/lib/merge_ruby_client/ticketing/users/client.rb +2 -2
  156. data/lib/merge_ruby_client.rb +7 -7
  157. data/lib/requests.rb +2 -2
  158. data/lib/types_export.rb +230 -201
  159. metadata +32 -2
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "account"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class ExpenseReportLineRequestAccount
9
+ # Deserialize a JSON object to an instance of ExpenseReportLineRequestAccount
10
+ #
11
+ # @param json_object [String]
12
+ # @return [Merge::Accounting::ExpenseReportLineRequestAccount]
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::Account.validate_raw(obj: struct)
25
+ return Merge::Accounting::Account.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::Account.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
@@ -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 ExpenseReportLineRequestCompany
10
+ # Deserialize a JSON object to an instance of ExpenseReportLineRequestCompany
11
+ #
12
+ # @param json_object [String]
13
+ # @return [Merge::Accounting::ExpenseReportLineRequestCompany]
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,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "contact"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class ExpenseReportLineRequestContact
9
+ # Deserialize a JSON object to an instance of ExpenseReportLineRequestContact
10
+ #
11
+ # @param json_object [String]
12
+ # @return [Merge::Accounting::ExpenseReportLineRequestContact]
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::Contact.validate_raw(obj: struct)
25
+ return Merge::Accounting::Contact.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::Contact.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
@@ -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 ExpenseReportLineRequestEmployee
11
+ # Deserialize a JSON object to an instance of ExpenseReportLineRequestEmployee
12
+ #
13
+ # @param json_object [String]
14
+ # @return [Merge::Accounting::ExpenseReportLineRequestEmployee]
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,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "project"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class ExpenseReportLineRequestProject
9
+ # Deserialize a JSON object to an instance of ExpenseReportLineRequestProject
10
+ #
11
+ # @param json_object [String]
12
+ # @return [Merge::Accounting::ExpenseReportLineRequestProject]
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
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "tax_rate"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class ExpenseReportLineRequestTaxRate
9
+ # Deserialize a JSON object to an instance of ExpenseReportLineRequestTaxRate
10
+ #
11
+ # @param json_object [String]
12
+ # @return [Merge::Accounting::ExpenseReportLineRequestTaxRate]
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::TaxRate.validate_raw(obj: struct)
25
+ return Merge::Accounting::TaxRate.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::TaxRate.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
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "tax_rate"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class ExpenseReportLineTaxRate
9
+ # Deserialize a JSON object to an instance of ExpenseReportLineTaxRate
10
+ #
11
+ # @param json_object [String]
12
+ # @return [Merge::Accounting::ExpenseReportLineTaxRate]
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::TaxRate.validate_raw(obj: struct)
25
+ return Merge::Accounting::TaxRate.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::TaxRate.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