merge_ruby_client 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/lib/merge_ruby_client/accounting/audit_trail/client.rb +2 -4
  3. data/lib/merge_ruby_client/accounting/client.rb +7 -0
  4. data/lib/merge_ruby_client/accounting/link_token/client.rb +4 -8
  5. data/lib/merge_ruby_client/accounting/payments/client.rb +0 -4
  6. data/lib/merge_ruby_client/accounting/selective_sync/client.rb +218 -0
  7. data/lib/merge_ruby_client/accounting/types/account.rb +4 -4
  8. data/lib/merge_ruby_client/accounting/types/accounting_attachment.rb +4 -4
  9. data/lib/merge_ruby_client/accounting/types/accounting_period.rb +4 -4
  10. data/lib/merge_ruby_client/accounting/types/accounting_phone_number.rb +4 -4
  11. data/lib/merge_ruby_client/accounting/types/address.rb +4 -4
  12. data/lib/merge_ruby_client/accounting/types/audit_log_event.rb +0 -6
  13. data/lib/merge_ruby_client/accounting/types/balance_sheet.rb +4 -4
  14. data/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb +4 -4
  15. data/lib/merge_ruby_client/accounting/types/company_info.rb +4 -4
  16. data/lib/merge_ruby_client/accounting/types/condition_schema.rb +136 -0
  17. data/lib/merge_ruby_client/accounting/types/condition_type_enum.rb +22 -0
  18. data/lib/merge_ruby_client/accounting/types/contact.rb +4 -4
  19. data/lib/merge_ruby_client/accounting/types/credit_note.rb +4 -4
  20. data/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb +13 -5
  21. data/lib/merge_ruby_client/accounting/types/event_type_enum.rb +0 -6
  22. data/lib/merge_ruby_client/accounting/types/expense.rb +4 -4
  23. data/lib/merge_ruby_client/accounting/types/expense_line.rb +4 -4
  24. data/lib/merge_ruby_client/accounting/types/income_statement.rb +4 -4
  25. data/lib/merge_ruby_client/accounting/types/invoice.rb +4 -4
  26. data/lib/merge_ruby_client/accounting/types/invoice_line_item.rb +4 -4
  27. data/lib/merge_ruby_client/accounting/types/item.rb +4 -4
  28. data/lib/merge_ruby_client/accounting/types/journal_entry.rb +4 -4
  29. data/lib/merge_ruby_client/accounting/types/journal_line.rb +4 -4
  30. data/lib/merge_ruby_client/accounting/types/linked_account_condition.rb +104 -0
  31. data/lib/merge_ruby_client/accounting/types/linked_account_condition_request.rb +87 -0
  32. data/lib/merge_ruby_client/accounting/types/linked_account_selective_sync_configuration.rb +65 -0
  33. data/lib/merge_ruby_client/accounting/types/linked_account_selective_sync_configuration_request.rb +63 -0
  34. data/lib/merge_ruby_client/accounting/types/operator_schema.rb +68 -0
  35. data/lib/merge_ruby_client/accounting/types/paginated_condition_schema_list.rb +80 -0
  36. data/lib/merge_ruby_client/accounting/types/patched_payment_request.rb +1 -14
  37. data/lib/merge_ruby_client/accounting/types/payment.rb +5 -18
  38. data/lib/merge_ruby_client/accounting/types/payment_line_item.rb +4 -4
  39. data/lib/merge_ruby_client/accounting/types/payment_request.rb +1 -14
  40. data/lib/merge_ruby_client/accounting/types/purchase_order.rb +4 -4
  41. data/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb +4 -4
  42. data/lib/merge_ruby_client/accounting/types/remote_field_api.rb +2 -16
  43. data/lib/merge_ruby_client/accounting/types/report_item.rb +4 -4
  44. data/lib/merge_ruby_client/accounting/types/tax_rate.rb +10 -12
  45. data/lib/merge_ruby_client/accounting/types/tax_rate_company.rb +1 -2
  46. data/lib/merge_ruby_client/accounting/types/tracking_category.rb +4 -4
  47. data/lib/merge_ruby_client/accounting/types/transaction.rb +4 -4
  48. data/lib/merge_ruby_client/accounting/types/transaction_line_item.rb +6 -6
  49. data/lib/merge_ruby_client/accounting/types/vendor_credit.rb +4 -4
  50. data/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb +4 -4
  51. data/lib/merge_ruby_client/ats/audit_trail/client.rb +2 -4
  52. data/lib/merge_ruby_client/ats/client.rb +7 -0
  53. data/lib/merge_ruby_client/ats/job_postings/client.rb +4 -16
  54. data/lib/merge_ruby_client/ats/link_token/client.rb +4 -8
  55. data/lib/merge_ruby_client/ats/selective_sync/client.rb +218 -0
  56. data/lib/merge_ruby_client/ats/types/activity.rb +4 -4
  57. data/lib/merge_ruby_client/ats/types/application.rb +4 -4
  58. data/lib/merge_ruby_client/ats/types/attachment.rb +4 -4
  59. data/lib/merge_ruby_client/ats/types/audit_log_event.rb +0 -6
  60. data/lib/merge_ruby_client/ats/types/candidate.rb +4 -4
  61. data/lib/merge_ruby_client/ats/types/condition_schema.rb +136 -0
  62. data/lib/merge_ruby_client/ats/types/condition_type_enum.rb +22 -0
  63. data/lib/merge_ruby_client/ats/types/department.rb +4 -4
  64. data/lib/merge_ruby_client/ats/types/eeoc.rb +4 -4
  65. data/lib/merge_ruby_client/ats/types/email_address.rb +4 -4
  66. data/lib/merge_ruby_client/ats/types/event_type_enum.rb +0 -6
  67. data/lib/merge_ruby_client/ats/types/job.rb +4 -4
  68. data/lib/merge_ruby_client/ats/types/job_interview_stage.rb +4 -4
  69. data/lib/merge_ruby_client/ats/types/job_posting.rb +4 -4
  70. data/lib/merge_ruby_client/ats/types/linked_account_condition.rb +104 -0
  71. data/lib/merge_ruby_client/ats/types/linked_account_condition_request.rb +87 -0
  72. data/lib/merge_ruby_client/ats/types/linked_account_selective_sync_configuration.rb +65 -0
  73. data/lib/merge_ruby_client/ats/types/linked_account_selective_sync_configuration_request.rb +63 -0
  74. data/lib/merge_ruby_client/ats/types/offer.rb +4 -4
  75. data/lib/merge_ruby_client/ats/types/office.rb +4 -4
  76. data/lib/merge_ruby_client/ats/types/operator_schema.rb +68 -0
  77. data/lib/merge_ruby_client/ats/types/paginated_condition_schema_list.rb +80 -0
  78. data/lib/merge_ruby_client/ats/types/phone_number.rb +4 -4
  79. data/lib/merge_ruby_client/ats/types/reject_reason.rb +4 -4
  80. data/lib/merge_ruby_client/ats/types/remote_field_api.rb +2 -16
  81. data/lib/merge_ruby_client/ats/types/remote_user.rb +4 -4
  82. data/lib/merge_ruby_client/ats/types/scheduled_interview.rb +4 -4
  83. data/lib/merge_ruby_client/ats/types/scorecard.rb +4 -4
  84. data/lib/merge_ruby_client/ats/types/screening_question.rb +4 -4
  85. data/lib/merge_ruby_client/ats/types/screening_question_option.rb +4 -4
  86. data/lib/merge_ruby_client/ats/types/tag.rb +4 -4
  87. data/lib/merge_ruby_client/ats/types/url.rb +4 -4
  88. data/lib/merge_ruby_client/crm/accounts/client.rb +0 -4
  89. data/lib/merge_ruby_client/crm/audit_trail/client.rb +2 -4
  90. data/lib/merge_ruby_client/crm/client.rb +7 -0
  91. data/lib/merge_ruby_client/crm/custom_objects/client.rb +2 -2
  92. data/lib/merge_ruby_client/crm/link_token/client.rb +4 -8
  93. data/lib/merge_ruby_client/crm/selective_sync/client.rb +218 -0
  94. data/lib/merge_ruby_client/crm/types/account.rb +4 -4
  95. data/lib/merge_ruby_client/crm/types/account_request.rb +1 -13
  96. data/lib/merge_ruby_client/crm/types/address.rb +4 -4
  97. data/lib/merge_ruby_client/crm/types/association.rb +6 -6
  98. data/lib/merge_ruby_client/crm/types/association_association_type.rb +0 -1
  99. data/lib/merge_ruby_client/crm/types/association_sub_type.rb +4 -4
  100. data/lib/merge_ruby_client/crm/types/association_type.rb +6 -8
  101. data/lib/merge_ruby_client/crm/types/audit_log_event.rb +0 -6
  102. data/lib/merge_ruby_client/crm/types/condition_schema.rb +136 -0
  103. data/lib/merge_ruby_client/crm/types/condition_type_enum.rb +22 -0
  104. data/lib/merge_ruby_client/crm/types/contact.rb +4 -4
  105. data/lib/merge_ruby_client/crm/types/custom_object.rb +8 -8
  106. data/lib/merge_ruby_client/crm/types/custom_object_class.rb +8 -10
  107. data/lib/merge_ruby_client/crm/types/email_address.rb +4 -4
  108. data/lib/merge_ruby_client/crm/types/engagement.rb +4 -4
  109. data/lib/merge_ruby_client/crm/types/engagement_type.rb +4 -4
  110. data/lib/merge_ruby_client/crm/types/event_type_enum.rb +0 -6
  111. data/lib/merge_ruby_client/crm/types/lead.rb +4 -4
  112. data/lib/merge_ruby_client/crm/types/linked_account_condition.rb +104 -0
  113. data/lib/merge_ruby_client/crm/types/linked_account_condition_request.rb +87 -0
  114. data/lib/merge_ruby_client/crm/types/linked_account_selective_sync_configuration.rb +65 -0
  115. data/lib/merge_ruby_client/crm/types/linked_account_selective_sync_configuration_request.rb +63 -0
  116. data/lib/merge_ruby_client/crm/types/note.rb +4 -4
  117. data/lib/merge_ruby_client/crm/types/operator_schema.rb +68 -0
  118. data/lib/merge_ruby_client/crm/types/opportunity.rb +4 -4
  119. data/lib/merge_ruby_client/crm/types/paginated_condition_schema_list.rb +80 -0
  120. data/lib/merge_ruby_client/crm/types/patched_account_request.rb +1 -13
  121. data/lib/merge_ruby_client/crm/types/phone_number.rb +4 -4
  122. data/lib/merge_ruby_client/crm/types/remote_field_api.rb +2 -16
  123. data/lib/merge_ruby_client/crm/types/remote_field_class_for_custom_object_class.rb +4 -4
  124. data/lib/merge_ruby_client/crm/types/stage.rb +4 -4
  125. data/lib/merge_ruby_client/crm/types/task.rb +4 -4
  126. data/lib/merge_ruby_client/crm/types/user.rb +4 -4
  127. data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +2 -4
  128. data/lib/merge_ruby_client/filestorage/client.rb +7 -0
  129. data/lib/merge_ruby_client/filestorage/link_token/client.rb +4 -8
  130. data/lib/merge_ruby_client/filestorage/selective_sync/client.rb +218 -0
  131. data/lib/merge_ruby_client/filestorage/types/audit_log_event.rb +0 -6
  132. data/lib/merge_ruby_client/filestorage/types/condition_schema.rb +136 -0
  133. data/lib/merge_ruby_client/filestorage/types/condition_type_enum.rb +22 -0
  134. data/lib/merge_ruby_client/filestorage/types/drive.rb +4 -4
  135. data/lib/merge_ruby_client/filestorage/types/event_type_enum.rb +0 -6
  136. data/lib/merge_ruby_client/filestorage/types/file.rb +4 -4
  137. data/lib/merge_ruby_client/filestorage/types/folder.rb +4 -4
  138. data/lib/merge_ruby_client/filestorage/types/group.rb +4 -4
  139. data/lib/merge_ruby_client/filestorage/types/linked_account_condition.rb +104 -0
  140. data/lib/merge_ruby_client/filestorage/types/linked_account_condition_request.rb +87 -0
  141. data/lib/merge_ruby_client/filestorage/types/linked_account_selective_sync_configuration.rb +65 -0
  142. data/lib/merge_ruby_client/filestorage/types/linked_account_selective_sync_configuration_request.rb +63 -0
  143. data/lib/merge_ruby_client/filestorage/types/operator_schema.rb +68 -0
  144. data/lib/merge_ruby_client/filestorage/types/paginated_condition_schema_list.rb +80 -0
  145. data/lib/merge_ruby_client/filestorage/types/permission.rb +4 -4
  146. data/lib/merge_ruby_client/filestorage/types/remote_field_api.rb +2 -16
  147. data/lib/merge_ruby_client/filestorage/types/user.rb +4 -4
  148. data/lib/merge_ruby_client/hris/audit_trail/client.rb +2 -4
  149. data/lib/merge_ruby_client/hris/client.rb +7 -0
  150. data/lib/merge_ruby_client/hris/groups/client.rb +2 -10
  151. data/lib/merge_ruby_client/hris/link_token/client.rb +4 -8
  152. data/lib/merge_ruby_client/hris/selective_sync/client.rb +218 -0
  153. data/lib/merge_ruby_client/hris/types/audit_log_event.rb +0 -6
  154. data/lib/merge_ruby_client/hris/types/bank_info.rb +4 -4
  155. data/lib/merge_ruby_client/hris/types/benefit.rb +4 -4
  156. data/lib/merge_ruby_client/hris/types/company.rb +4 -4
  157. data/lib/merge_ruby_client/hris/types/condition_schema.rb +136 -0
  158. data/lib/merge_ruby_client/hris/types/condition_type_enum.rb +22 -0
  159. data/lib/merge_ruby_client/hris/types/deduction.rb +4 -4
  160. data/lib/merge_ruby_client/hris/types/dependent.rb +4 -4
  161. data/lib/merge_ruby_client/hris/types/earning.rb +4 -4
  162. data/lib/merge_ruby_client/hris/types/employee.rb +4 -4
  163. data/lib/merge_ruby_client/hris/types/employee_payroll_run.rb +4 -4
  164. data/lib/merge_ruby_client/hris/types/employer_benefit.rb +4 -4
  165. data/lib/merge_ruby_client/hris/types/employment.rb +4 -4
  166. data/lib/merge_ruby_client/hris/types/event_type_enum.rb +0 -6
  167. data/lib/merge_ruby_client/hris/types/group.rb +5 -19
  168. data/lib/merge_ruby_client/hris/types/linked_account_condition.rb +104 -0
  169. data/lib/merge_ruby_client/hris/types/linked_account_condition_request.rb +87 -0
  170. data/lib/merge_ruby_client/hris/types/linked_account_selective_sync_configuration.rb +65 -0
  171. data/lib/merge_ruby_client/hris/types/linked_account_selective_sync_configuration_request.rb +63 -0
  172. data/lib/merge_ruby_client/hris/types/location.rb +4 -4
  173. data/lib/merge_ruby_client/hris/types/operator_schema.rb +68 -0
  174. data/lib/merge_ruby_client/hris/types/paginated_condition_schema_list.rb +80 -0
  175. data/lib/merge_ruby_client/hris/types/pay_group.rb +4 -4
  176. data/lib/merge_ruby_client/hris/types/payroll_run.rb +4 -4
  177. data/lib/merge_ruby_client/hris/types/remote_field_api.rb +2 -16
  178. data/lib/merge_ruby_client/hris/types/tax.rb +4 -4
  179. data/lib/merge_ruby_client/hris/types/team.rb +4 -4
  180. data/lib/merge_ruby_client/hris/types/time_off.rb +4 -4
  181. data/lib/merge_ruby_client/hris/types/time_off_balance.rb +4 -4
  182. data/lib/merge_ruby_client/hris/types/timesheet_entry.rb +4 -4
  183. data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +2 -4
  184. data/lib/merge_ruby_client/ticketing/client.rb +7 -0
  185. data/lib/merge_ruby_client/ticketing/contacts/client.rb +0 -127
  186. data/lib/merge_ruby_client/ticketing/link_token/client.rb +4 -8
  187. data/lib/merge_ruby_client/ticketing/selective_sync/client.rb +218 -0
  188. data/lib/merge_ruby_client/ticketing/types/account.rb +4 -4
  189. data/lib/merge_ruby_client/ticketing/types/attachment.rb +4 -4
  190. data/lib/merge_ruby_client/ticketing/types/audit_log_event.rb +0 -6
  191. data/lib/merge_ruby_client/ticketing/types/collection.rb +4 -4
  192. data/lib/merge_ruby_client/ticketing/types/comment.rb +4 -4
  193. data/lib/merge_ruby_client/ticketing/types/condition_schema.rb +136 -0
  194. data/lib/merge_ruby_client/ticketing/types/condition_type_enum.rb +22 -0
  195. data/lib/merge_ruby_client/ticketing/types/contact.rb +4 -4
  196. data/lib/merge_ruby_client/ticketing/types/event_type_enum.rb +0 -6
  197. data/lib/merge_ruby_client/ticketing/types/linked_account_condition.rb +104 -0
  198. data/lib/merge_ruby_client/ticketing/types/linked_account_condition_request.rb +87 -0
  199. data/lib/merge_ruby_client/ticketing/types/linked_account_selective_sync_configuration.rb +65 -0
  200. data/lib/merge_ruby_client/ticketing/types/linked_account_selective_sync_configuration_request.rb +63 -0
  201. data/lib/merge_ruby_client/ticketing/types/operator_schema.rb +68 -0
  202. data/lib/merge_ruby_client/ticketing/types/paginated_condition_schema_list.rb +80 -0
  203. data/lib/merge_ruby_client/ticketing/types/project.rb +4 -4
  204. data/lib/merge_ruby_client/ticketing/types/remote_field_api.rb +2 -16
  205. data/lib/merge_ruby_client/ticketing/types/role.rb +4 -4
  206. data/lib/merge_ruby_client/ticketing/types/tag.rb +4 -4
  207. data/lib/merge_ruby_client/ticketing/types/team.rb +4 -4
  208. data/lib/merge_ruby_client/ticketing/types/ticket.rb +4 -4
  209. data/lib/merge_ruby_client/ticketing/types/user.rb +4 -4
  210. data/lib/merge_ruby_client.rb +7 -7
  211. data/lib/requests.rb +2 -12
  212. data/lib/types_export.rb +153 -115
  213. metadata +56 -12
  214. data/lib/merge_ruby_client/accounting/types/payment_type_enum.rb +0 -12
  215. data/lib/merge_ruby_client/accounting/types/remote_field_api_coverage.rb +0 -54
  216. data/lib/merge_ruby_client/ats/types/remote_field_api_coverage.rb +0 -54
  217. data/lib/merge_ruby_client/crm/types/remote_field_api_coverage.rb +0 -54
  218. data/lib/merge_ruby_client/filestorage/types/remote_field_api_coverage.rb +0 -54
  219. data/lib/merge_ruby_client/hris/types/remote_field_api_coverage.rb +0 -54
  220. data/lib/merge_ruby_client/ticketing/types/contact_request.rb +0 -125
  221. data/lib/merge_ruby_client/ticketing/types/contact_request_account.rb +0 -56
  222. data/lib/merge_ruby_client/ticketing/types/remote_field_api_coverage.rb +0 -54
  223. data/lib/merge_ruby_client/ticketing/types/ticketing_contact_response.rb +0 -101
@@ -0,0 +1,136 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "condition_type_enum"
4
+ require_relative "operator_schema"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Merge
9
+ module Accounting
10
+ class ConditionSchema
11
+ # @return [String] The ID of the condition schema. This ID is used when updating selective syncs
12
+ # for a linked account.
13
+ attr_reader :id
14
+ # @return [String] The common model for which a condition schema is defined.
15
+ attr_reader :common_model
16
+ # @return [String]
17
+ attr_reader :native_name
18
+ # @return [String]
19
+ attr_reader :field_name
20
+ # @return [Boolean] Whether this condition can only be applied once. If false, the condition can be
21
+ # AND'd together multiple times.
22
+ attr_reader :is_unique
23
+ # @return [Merge::Accounting::ConditionTypeEnum] The type of value(s) that can be set for this condition.
24
+ # - `BOOLEAN` - BOOLEAN
25
+ # - `DATE` - DATE
26
+ # - `DATE_TIME` - DATE_TIME
27
+ # - `INTEGER` - INTEGER
28
+ # - `FLOAT` - FLOAT
29
+ # - `STRING` - STRING
30
+ # - `LIST_OF_STRINGS` - LIST_OF_STRINGS
31
+ attr_reader :condition_type
32
+ # @return [Array<Merge::Accounting::OperatorSchema>] The schemas for the operators that can be used on a condition.
33
+ attr_reader :operators
34
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
35
+ attr_reader :additional_properties
36
+ # @return [Object]
37
+ attr_reader :_field_set
38
+ protected :_field_set
39
+
40
+ OMIT = Object.new
41
+
42
+ # @param id [String] The ID of the condition schema. This ID is used when updating selective syncs
43
+ # for a linked account.
44
+ # @param common_model [String] The common model for which a condition schema is defined.
45
+ # @param native_name [String]
46
+ # @param field_name [String]
47
+ # @param is_unique [Boolean] Whether this condition can only be applied once. If false, the condition can be
48
+ # AND'd together multiple times.
49
+ # @param condition_type [Merge::Accounting::ConditionTypeEnum] The type of value(s) that can be set for this condition.
50
+ # - `BOOLEAN` - BOOLEAN
51
+ # - `DATE` - DATE
52
+ # - `DATE_TIME` - DATE_TIME
53
+ # - `INTEGER` - INTEGER
54
+ # - `FLOAT` - FLOAT
55
+ # - `STRING` - STRING
56
+ # - `LIST_OF_STRINGS` - LIST_OF_STRINGS
57
+ # @param operators [Array<Merge::Accounting::OperatorSchema>] The schemas for the operators that can be used on a condition.
58
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
59
+ # @return [Merge::Accounting::ConditionSchema]
60
+ def initialize(id:, condition_type:, operators:, common_model: OMIT, native_name: OMIT, field_name: OMIT,
61
+ is_unique: OMIT, additional_properties: nil)
62
+ @id = id
63
+ @common_model = common_model if common_model != OMIT
64
+ @native_name = native_name if native_name != OMIT
65
+ @field_name = field_name if field_name != OMIT
66
+ @is_unique = is_unique if is_unique != OMIT
67
+ @condition_type = condition_type
68
+ @operators = operators
69
+ @additional_properties = additional_properties
70
+ @_field_set = {
71
+ "id": id,
72
+ "common_model": common_model,
73
+ "native_name": native_name,
74
+ "field_name": field_name,
75
+ "is_unique": is_unique,
76
+ "condition_type": condition_type,
77
+ "operators": operators
78
+ }.reject do |_k, v|
79
+ v == OMIT
80
+ end
81
+ end
82
+
83
+ # Deserialize a JSON object to an instance of ConditionSchema
84
+ #
85
+ # @param json_object [String]
86
+ # @return [Merge::Accounting::ConditionSchema]
87
+ def self.from_json(json_object:)
88
+ struct = JSON.parse(json_object, object_class: OpenStruct)
89
+ parsed_json = JSON.parse(json_object)
90
+ id = struct["id"]
91
+ common_model = struct["common_model"]
92
+ native_name = struct["native_name"]
93
+ field_name = struct["field_name"]
94
+ is_unique = struct["is_unique"]
95
+ condition_type = struct["condition_type"]
96
+ operators = parsed_json["operators"]&.map do |v|
97
+ v = v.to_json
98
+ Merge::Accounting::OperatorSchema.from_json(json_object: v)
99
+ end
100
+ new(
101
+ id: id,
102
+ common_model: common_model,
103
+ native_name: native_name,
104
+ field_name: field_name,
105
+ is_unique: is_unique,
106
+ condition_type: condition_type,
107
+ operators: operators,
108
+ additional_properties: struct
109
+ )
110
+ end
111
+
112
+ # Serialize an instance of ConditionSchema to a JSON object
113
+ #
114
+ # @return [String]
115
+ def to_json(*_args)
116
+ @_field_set&.to_json
117
+ end
118
+
119
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
120
+ # hash and check each fields type against the current object's property
121
+ # definitions.
122
+ #
123
+ # @param obj [Object]
124
+ # @return [Void]
125
+ def self.validate_raw(obj:)
126
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
127
+ obj.common_model&.is_a?(String) != false || raise("Passed value for field obj.common_model is not the expected type, validation failed.")
128
+ obj.native_name&.is_a?(String) != false || raise("Passed value for field obj.native_name is not the expected type, validation failed.")
129
+ obj.field_name&.is_a?(String) != false || raise("Passed value for field obj.field_name is not the expected type, validation failed.")
130
+ obj.is_unique&.is_a?(Boolean) != false || raise("Passed value for field obj.is_unique is not the expected type, validation failed.")
131
+ obj.condition_type.is_a?(Merge::Accounting::ConditionTypeEnum) != false || raise("Passed value for field obj.condition_type is not the expected type, validation failed.")
132
+ obj.operators.is_a?(Array) != false || raise("Passed value for field obj.operators is not the expected type, validation failed.")
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Merge
4
+ module Accounting
5
+ # - `BOOLEAN` - BOOLEAN
6
+ # - `DATE` - DATE
7
+ # - `DATE_TIME` - DATE_TIME
8
+ # - `INTEGER` - INTEGER
9
+ # - `FLOAT` - FLOAT
10
+ # - `STRING` - STRING
11
+ # - `LIST_OF_STRINGS` - LIST_OF_STRINGS
12
+ class ConditionTypeEnum
13
+ BOOLEAN = "BOOLEAN"
14
+ DATE = "DATE"
15
+ DATE_TIME = "DATE_TIME"
16
+ INTEGER = "INTEGER"
17
+ FLOAT = "FLOAT"
18
+ STRING = "STRING"
19
+ LIST_OF_STRINGS = "LIST_OF_STRINGS"
20
+ end
21
+ end
22
+ end
@@ -25,9 +25,9 @@ module Merge
25
25
  attr_reader :id
26
26
  # @return [String] The third-party API ID of the matching object.
27
27
  attr_reader :remote_id
28
- # @return [DateTime] The datetime that this object was created by Merge.
28
+ # @return [DateTime]
29
29
  attr_reader :created_at
30
- # @return [DateTime] The datetime that this object was modified by Merge.
30
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
31
31
  attr_reader :modified_at
32
32
  # @return [String] The contact's name.
33
33
  attr_reader :name
@@ -70,8 +70,8 @@ module Merge
70
70
 
71
71
  # @param id [String]
72
72
  # @param remote_id [String] The third-party API ID of the matching object.
73
- # @param created_at [DateTime] The datetime that this object was created by Merge.
74
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
73
+ # @param created_at [DateTime]
74
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
75
75
  # @param name [String] The contact's name.
76
76
  # @param is_supplier [Boolean] Whether the contact is a supplier.
77
77
  # @param is_customer [Boolean] Whether the contact is a customer.
@@ -30,9 +30,9 @@ module Merge
30
30
  attr_reader :id
31
31
  # @return [String] The third-party API ID of the matching object.
32
32
  attr_reader :remote_id
33
- # @return [DateTime] The datetime that this object was created by Merge.
33
+ # @return [DateTime]
34
34
  attr_reader :created_at
35
- # @return [DateTime] The datetime that this object was modified by Merge.
35
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
36
36
  attr_reader :modified_at
37
37
  # @return [DateTime] The credit note's transaction date.
38
38
  attr_reader :transaction_date
@@ -393,8 +393,8 @@ module Merge
393
393
 
394
394
  # @param id [String]
395
395
  # @param remote_id [String] The third-party API ID of the matching object.
396
- # @param created_at [DateTime] The datetime that this object was created by Merge.
397
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
396
+ # @param created_at [DateTime]
397
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
398
398
  # @param transaction_date [DateTime] The credit note's transaction date.
399
399
  # @param status [Merge::Accounting::CreditNoteStatusEnum] The credit note's status.
400
400
  # - `SUBMITTED` - SUBMITTED
@@ -13,9 +13,9 @@ module Merge
13
13
  attr_reader :id
14
14
  # @return [String] The third-party API ID of the matching object.
15
15
  attr_reader :remote_id
16
- # @return [DateTime] The datetime that this object was created by Merge.
16
+ # @return [DateTime]
17
17
  attr_reader :created_at
18
- # @return [DateTime] The datetime that this object was modified by Merge.
18
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
19
19
  attr_reader :modified_at
20
20
  # @return [Merge::Accounting::CreditNoteLineItemItem]
21
21
  attr_reader :item
@@ -29,6 +29,8 @@ module Merge
29
29
  attr_reader :memo
30
30
  # @return [String] The credit note line item's unit price.
31
31
  attr_reader :unit_price
32
+ # @return [String] The credit note line item's tax rate.
33
+ attr_reader :tax_rate
32
34
  # @return [String] The credit note line item's total.
33
35
  attr_reader :total_line_amount
34
36
  # @return [String] The credit note line item's associated tracking category.
@@ -52,14 +54,15 @@ module Merge
52
54
 
53
55
  # @param id [String]
54
56
  # @param remote_id [String] The third-party API ID of the matching object.
55
- # @param created_at [DateTime] The datetime that this object was created by Merge.
56
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
57
+ # @param created_at [DateTime]
58
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
57
59
  # @param item [Merge::Accounting::CreditNoteLineItemItem]
58
60
  # @param name [String] The credit note line item's name.
59
61
  # @param description [String] The description of the item that is owed.
60
62
  # @param quantity [String] The credit note line item's quantity.
61
63
  # @param memo [String] The credit note line item's memo.
62
64
  # @param unit_price [String] The credit note line item's unit price.
65
+ # @param tax_rate [String] The credit note line item's tax rate.
63
66
  # @param total_line_amount [String] The credit note line item's total.
64
67
  # @param tracking_category [String] The credit note line item's associated tracking category.
65
68
  # @param tracking_categories [Array<String>] The credit note line item's associated tracking categories.
@@ -70,7 +73,7 @@ module Merge
70
73
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
71
74
  # @return [Merge::Accounting::CreditNoteLineItem]
72
75
  def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, item: OMIT, name: OMIT,
73
- description: OMIT, quantity: OMIT, memo: OMIT, unit_price: OMIT, total_line_amount: OMIT, tracking_category: OMIT, account: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil)
76
+ description: OMIT, quantity: OMIT, memo: OMIT, unit_price: OMIT, tax_rate: OMIT, total_line_amount: OMIT, tracking_category: OMIT, account: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil)
74
77
  @id = id if id != OMIT
75
78
  @remote_id = remote_id if remote_id != OMIT
76
79
  @created_at = created_at if created_at != OMIT
@@ -81,6 +84,7 @@ module Merge
81
84
  @quantity = quantity if quantity != OMIT
82
85
  @memo = memo if memo != OMIT
83
86
  @unit_price = unit_price if unit_price != OMIT
87
+ @tax_rate = tax_rate if tax_rate != OMIT
84
88
  @total_line_amount = total_line_amount if total_line_amount != OMIT
85
89
  @tracking_category = tracking_category if tracking_category != OMIT
86
90
  @tracking_categories = tracking_categories
@@ -99,6 +103,7 @@ module Merge
99
103
  "quantity": quantity,
100
104
  "memo": memo,
101
105
  "unit_price": unit_price,
106
+ "tax_rate": tax_rate,
102
107
  "total_line_amount": total_line_amount,
103
108
  "tracking_category": tracking_category,
104
109
  "tracking_categories": tracking_categories,
@@ -132,6 +137,7 @@ module Merge
132
137
  quantity = struct["quantity"]
133
138
  memo = struct["memo"]
134
139
  unit_price = struct["unit_price"]
140
+ tax_rate = struct["tax_rate"]
135
141
  total_line_amount = struct["total_line_amount"]
136
142
  tracking_category = struct["tracking_category"]
137
143
  tracking_categories = struct["tracking_categories"]
@@ -154,6 +160,7 @@ module Merge
154
160
  quantity: quantity,
155
161
  memo: memo,
156
162
  unit_price: unit_price,
163
+ tax_rate: tax_rate,
157
164
  total_line_amount: total_line_amount,
158
165
  tracking_category: tracking_category,
159
166
  tracking_categories: tracking_categories,
@@ -188,6 +195,7 @@ module Merge
188
195
  obj.quantity&.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
189
196
  obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.")
190
197
  obj.unit_price&.is_a?(String) != false || raise("Passed value for field obj.unit_price is not the expected type, validation failed.")
198
+ obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.")
191
199
  obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.")
192
200
  obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.")
193
201
  obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.")
@@ -43,9 +43,6 @@ module Merge
43
43
  # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC
44
44
  # - `MUTED_ISSUE` - MUTED_ISSUE
45
45
  # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK
46
- # - `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK
47
- # - `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK
48
- # - `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED
49
46
  class EventTypeEnum
50
47
  CREATED_REMOTE_PRODUCTION_API_KEY = "CREATED_REMOTE_PRODUCTION_API_KEY"
51
48
  DELETED_REMOTE_PRODUCTION_API_KEY = "DELETED_REMOTE_PRODUCTION_API_KEY"
@@ -81,9 +78,6 @@ module Merge
81
78
  FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC"
82
79
  MUTED_ISSUE = "MUTED_ISSUE"
83
80
  GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK"
84
- ENABLED_MERGE_WEBHOOK = "ENABLED_MERGE_WEBHOOK"
85
- DISABLED_MERGE_WEBHOOK = "DISABLED_MERGE_WEBHOOK"
86
- MERGE_WEBHOOK_TARGET_CHANGED = "MERGE_WEBHOOK_TARGET_CHANGED"
87
81
  end
88
82
  end
89
83
  end
@@ -31,9 +31,9 @@ module Merge
31
31
  attr_reader :id
32
32
  # @return [String] The third-party API ID of the matching object.
33
33
  attr_reader :remote_id
34
- # @return [DateTime] The datetime that this object was created by Merge.
34
+ # @return [DateTime]
35
35
  attr_reader :created_at
36
- # @return [DateTime] The datetime that this object was modified by Merge.
36
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
37
37
  attr_reader :modified_at
38
38
  # @return [DateTime] When the transaction occurred.
39
39
  attr_reader :transaction_date
@@ -386,8 +386,8 @@ module Merge
386
386
 
387
387
  # @param id [String]
388
388
  # @param remote_id [String] The third-party API ID of the matching object.
389
- # @param created_at [DateTime] The datetime that this object was created by Merge.
390
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
389
+ # @param created_at [DateTime]
390
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
391
391
  # @param transaction_date [DateTime] When the transaction occurred.
392
392
  # @param remote_created_at [DateTime] When the expense was created.
393
393
  # @param account [Merge::Accounting::ExpenseAccount] The expense's payment account.
@@ -22,9 +22,9 @@ module Merge
22
22
  attr_reader :id
23
23
  # @return [String] The third-party API ID of the matching object.
24
24
  attr_reader :remote_id
25
- # @return [DateTime] The datetime that this object was created by Merge.
25
+ # @return [DateTime]
26
26
  attr_reader :created_at
27
- # @return [DateTime] The datetime that this object was modified by Merge.
27
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
28
28
  attr_reader :modified_at
29
29
  # @return [Merge::Accounting::ExpenseLineItem] The line's item.
30
30
  attr_reader :item
@@ -365,8 +365,8 @@ module Merge
365
365
 
366
366
  # @param id [String]
367
367
  # @param remote_id [String] The third-party API ID of the matching object.
368
- # @param created_at [DateTime] The datetime that this object was created by Merge.
369
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
368
+ # @param created_at [DateTime]
369
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
370
370
  # @param item [Merge::Accounting::ExpenseLineItem] The line's item.
371
371
  # @param net_amount [Float] The line's net amount.
372
372
  # @param tracking_category [Merge::Accounting::ExpenseLineTrackingCategory]
@@ -24,9 +24,9 @@ module Merge
24
24
  attr_reader :id
25
25
  # @return [String] The third-party API ID of the matching object.
26
26
  attr_reader :remote_id
27
- # @return [DateTime] The datetime that this object was created by Merge.
27
+ # @return [DateTime]
28
28
  attr_reader :created_at
29
- # @return [DateTime] The datetime that this object was modified by Merge.
29
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
30
30
  attr_reader :modified_at
31
31
  # @return [String] The income statement's name.
32
32
  attr_reader :name
@@ -375,8 +375,8 @@ module Merge
375
375
 
376
376
  # @param id [String]
377
377
  # @param remote_id [String] The third-party API ID of the matching object.
378
- # @param created_at [DateTime] The datetime that this object was created by Merge.
379
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
378
+ # @param created_at [DateTime]
379
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
380
380
  # @param name [String] The income statement's name.
381
381
  # @param currency [Merge::Accounting::CurrencyEnum] The income statement's currency.
382
382
  # - `XUA` - ADB Unit of Account
@@ -29,9 +29,9 @@ module Merge
29
29
  attr_reader :id
30
30
  # @return [String] The third-party API ID of the matching object.
31
31
  attr_reader :remote_id
32
- # @return [DateTime] The datetime that this object was created by Merge.
32
+ # @return [DateTime]
33
33
  attr_reader :created_at
34
- # @return [DateTime] The datetime that this object was modified by Merge.
34
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
35
35
  attr_reader :modified_at
36
36
  # @return [Merge::Accounting::InvoiceTypeEnum] Whether the invoice is an accounts receivable or accounts payable. If `type` is
37
37
  # `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is `ACCOUNTS_RECEIVABLE`,
@@ -412,8 +412,8 @@ module Merge
412
412
 
413
413
  # @param id [String]
414
414
  # @param remote_id [String] The third-party API ID of the matching object.
415
- # @param created_at [DateTime] The datetime that this object was created by Merge.
416
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
415
+ # @param created_at [DateTime]
416
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
417
417
  # @param type [Merge::Accounting::InvoiceTypeEnum] Whether the invoice is an accounts receivable or accounts payable. If `type` is
418
418
  # `ACCOUNTS_PAYABLE`, the invoice is a bill. If `type` is `ACCOUNTS_RECEIVABLE`,
419
419
  # it is an invoice.
@@ -22,9 +22,9 @@ module Merge
22
22
  attr_reader :id
23
23
  # @return [String] The third-party API ID of the matching object.
24
24
  attr_reader :remote_id
25
- # @return [DateTime] The datetime that this object was created by Merge.
25
+ # @return [DateTime]
26
26
  attr_reader :created_at
27
- # @return [DateTime] The datetime that this object was modified by Merge.
27
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
28
28
  attr_reader :modified_at
29
29
  # @return [String] The line item's description.
30
30
  attr_reader :description
@@ -369,8 +369,8 @@ module Merge
369
369
 
370
370
  # @param id [String]
371
371
  # @param remote_id [String] The third-party API ID of the matching object.
372
- # @param created_at [DateTime] The datetime that this object was created by Merge.
373
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
372
+ # @param created_at [DateTime]
373
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
374
374
  # @param description [String] The line item's description.
375
375
  # @param unit_price [Float] The line item's unit price.
376
376
  # @param quantity [Float] The line item's quantity.
@@ -21,9 +21,9 @@ module Merge
21
21
  attr_reader :id
22
22
  # @return [String] The third-party API ID of the matching object.
23
23
  attr_reader :remote_id
24
- # @return [DateTime] The datetime that this object was created by Merge.
24
+ # @return [DateTime]
25
25
  attr_reader :created_at
26
- # @return [DateTime] The datetime that this object was modified by Merge.
26
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
27
27
  attr_reader :modified_at
28
28
  # @return [String] The item's name.
29
29
  attr_reader :name
@@ -60,8 +60,8 @@ module Merge
60
60
 
61
61
  # @param id [String]
62
62
  # @param remote_id [String] The third-party API ID of the matching object.
63
- # @param created_at [DateTime] The datetime that this object was created by Merge.
64
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
63
+ # @param created_at [DateTime]
64
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
65
65
  # @param name [String] The item's name.
66
66
  # @param status [Merge::Accounting::Status7D1Enum] The item's status.
67
67
  # - `ACTIVE` - ACTIVE
@@ -32,9 +32,9 @@ module Merge
32
32
  attr_reader :id
33
33
  # @return [String] The third-party API ID of the matching object.
34
34
  attr_reader :remote_id
35
- # @return [DateTime] The datetime that this object was created by Merge.
35
+ # @return [DateTime]
36
36
  attr_reader :created_at
37
- # @return [DateTime] The datetime that this object was modified by Merge.
37
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
38
38
  attr_reader :modified_at
39
39
  # @return [DateTime] The journal entry's transaction date.
40
40
  attr_reader :transaction_date
@@ -389,8 +389,8 @@ module Merge
389
389
 
390
390
  # @param id [String]
391
391
  # @param remote_id [String] The third-party API ID of the matching object.
392
- # @param created_at [DateTime] The datetime that this object was created by Merge.
393
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
392
+ # @param created_at [DateTime]
393
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
394
394
  # @param transaction_date [DateTime] The journal entry's transaction date.
395
395
  # @param remote_created_at [DateTime] When the third party's journal entry was created.
396
396
  # @param remote_updated_at [DateTime] When the third party's journal entry was updated.
@@ -21,9 +21,9 @@ module Merge
21
21
  attr_reader :id
22
22
  # @return [String] The third-party API ID of the matching object.
23
23
  attr_reader :remote_id
24
- # @return [DateTime] The datetime that this object was created by Merge.
24
+ # @return [DateTime]
25
25
  attr_reader :created_at
26
- # @return [DateTime] The datetime that this object was modified by Merge.
26
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
27
27
  attr_reader :modified_at
28
28
  # @return [Merge::Accounting::JournalLineAccount]
29
29
  attr_reader :account
@@ -362,8 +362,8 @@ module Merge
362
362
 
363
363
  # @param id [String]
364
364
  # @param remote_id [String] The third-party API ID of the matching object.
365
- # @param created_at [DateTime] The datetime that this object was created by Merge.
366
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
365
+ # @param created_at [DateTime]
366
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
367
367
  # @param account [Merge::Accounting::JournalLineAccount]
368
368
  # @param net_amount [Float] The value of the line item including taxes and other fees.
369
369
  # @param tracking_category [Merge::Accounting::JournalLineTrackingCategory]
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Merge
7
+ module Accounting
8
+ class LinkedAccountCondition
9
+ # @return [String] The ID indicating which condition schema to use for a specific condition.
10
+ attr_reader :condition_schema_id
11
+ # @return [String] The common model for a specific condition.
12
+ attr_reader :common_model
13
+ # @return [String]
14
+ attr_reader :native_name
15
+ # @return [String] The operator for a specific condition.
16
+ attr_reader :operator
17
+ # @return [Object]
18
+ attr_reader :value
19
+ # @return [String]
20
+ attr_reader :field_name
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 condition_schema_id [String] The ID indicating which condition schema to use for a specific condition.
30
+ # @param common_model [String] The common model for a specific condition.
31
+ # @param native_name [String]
32
+ # @param operator [String] The operator for a specific condition.
33
+ # @param value [Object]
34
+ # @param field_name [String]
35
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
36
+ # @return [Merge::Accounting::LinkedAccountCondition]
37
+ def initialize(condition_schema_id:, operator:, common_model: OMIT, native_name: OMIT, value: OMIT,
38
+ field_name: OMIT, additional_properties: nil)
39
+ @condition_schema_id = condition_schema_id
40
+ @common_model = common_model if common_model != OMIT
41
+ @native_name = native_name if native_name != OMIT
42
+ @operator = operator
43
+ @value = value if value != OMIT
44
+ @field_name = field_name if field_name != OMIT
45
+ @additional_properties = additional_properties
46
+ @_field_set = {
47
+ "condition_schema_id": condition_schema_id,
48
+ "common_model": common_model,
49
+ "native_name": native_name,
50
+ "operator": operator,
51
+ "value": value,
52
+ "field_name": field_name
53
+ }.reject do |_k, v|
54
+ v == OMIT
55
+ end
56
+ end
57
+
58
+ # Deserialize a JSON object to an instance of LinkedAccountCondition
59
+ #
60
+ # @param json_object [String]
61
+ # @return [Merge::Accounting::LinkedAccountCondition]
62
+ def self.from_json(json_object:)
63
+ struct = JSON.parse(json_object, object_class: OpenStruct)
64
+ condition_schema_id = struct["condition_schema_id"]
65
+ common_model = struct["common_model"]
66
+ native_name = struct["native_name"]
67
+ operator = struct["operator"]
68
+ value = struct["value"]
69
+ field_name = struct["field_name"]
70
+ new(
71
+ condition_schema_id: condition_schema_id,
72
+ common_model: common_model,
73
+ native_name: native_name,
74
+ operator: operator,
75
+ value: value,
76
+ field_name: field_name,
77
+ additional_properties: struct
78
+ )
79
+ end
80
+
81
+ # Serialize an instance of LinkedAccountCondition to a JSON object
82
+ #
83
+ # @return [String]
84
+ def to_json(*_args)
85
+ @_field_set&.to_json
86
+ end
87
+
88
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
89
+ # hash and check each fields type against the current object's property
90
+ # definitions.
91
+ #
92
+ # @param obj [Object]
93
+ # @return [Void]
94
+ def self.validate_raw(obj:)
95
+ obj.condition_schema_id.is_a?(String) != false || raise("Passed value for field obj.condition_schema_id is not the expected type, validation failed.")
96
+ obj.common_model&.is_a?(String) != false || raise("Passed value for field obj.common_model is not the expected type, validation failed.")
97
+ obj.native_name&.is_a?(String) != false || raise("Passed value for field obj.native_name is not the expected type, validation failed.")
98
+ obj.operator.is_a?(String) != false || raise("Passed value for field obj.operator is not the expected type, validation failed.")
99
+ obj.value&.is_a?(Object) != false || raise("Passed value for field obj.value is not the expected type, validation failed.")
100
+ obj.field_name&.is_a?(String) != false || raise("Passed value for field obj.field_name is not the expected type, validation failed.")
101
+ end
102
+ end
103
+ end
104
+ end