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,218 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../types/linked_account_selective_sync_configuration"
5
+ require "json"
6
+ require_relative "../types/linked_account_selective_sync_configuration_request"
7
+ require_relative "../types/paginated_condition_schema_list"
8
+ require "async"
9
+
10
+ module Merge
11
+ module Ticketing
12
+ class SelectiveSyncClient
13
+ # @return [Merge::RequestClient]
14
+ attr_reader :request_client
15
+
16
+ # @param request_client [Merge::RequestClient]
17
+ # @return [Merge::Ticketing::SelectiveSyncClient]
18
+ def initialize(request_client:)
19
+ @request_client = request_client
20
+ end
21
+
22
+ # Get a linked account's selective syncs.
23
+ #
24
+ # @param request_options [Merge::RequestOptions]
25
+ # @return [Array<Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration>]
26
+ # @example
27
+ # api = Merge::Client.new(
28
+ # environment: Environment::PRODUCTION,
29
+ # base_url: "https://api.example.com",
30
+ # api_key: "YOUR_AUTH_TOKEN"
31
+ # )
32
+ # api.ticketing.configurations_list
33
+ def configurations_list(request_options: nil)
34
+ response = @request_client.conn.get do |req|
35
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
36
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
37
+ req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil?
38
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
39
+ req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/selective-sync/configurations"
40
+ end
41
+ parsed_json = JSON.parse(response.body)
42
+ parsed_json&.map do |v|
43
+ v = v.to_json
44
+ Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration.from_json(json_object: v)
45
+ end
46
+ end
47
+
48
+ # Replace a linked account's selective syncs.
49
+ #
50
+ # @param sync_configurations [Array<Hash>] The selective syncs associated with a linked account.Request of type Array<Merge::Ticketing::LinkedAccountSelectiveSyncConfigurationRequest>, as a Hash
51
+ # * :linked_account_conditions (Array<Merge::Ticketing::LinkedAccountConditionRequest>)
52
+ # @param request_options [Merge::RequestOptions]
53
+ # @return [Array<Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration>]
54
+ # @example
55
+ # api = Merge::Client.new(
56
+ # environment: Environment::PRODUCTION,
57
+ # base_url: "https://api.example.com",
58
+ # api_key: "YOUR_AUTH_TOKEN"
59
+ # )
60
+ # api.ticketing.configurations_update(sync_configurations: [{ linked_account_conditions: }])
61
+ def configurations_update(sync_configurations:, request_options: nil)
62
+ response = @request_client.conn.put do |req|
63
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
64
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
65
+ req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil?
66
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
67
+ req.body = {
68
+ **(request_options&.additional_body_parameters || {}),
69
+ sync_configurations: sync_configurations
70
+ }.compact
71
+ req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/selective-sync/configurations"
72
+ end
73
+ parsed_json = JSON.parse(response.body)
74
+ parsed_json&.map do |v|
75
+ v = v.to_json
76
+ Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration.from_json(json_object: v)
77
+ end
78
+ end
79
+
80
+ # Get metadata for the conditions available to a linked account.
81
+ #
82
+ # @param common_model [String]
83
+ # @param cursor [String] The pagination cursor value.
84
+ # @param page_size [Integer] Number of results to return per page.
85
+ # @param request_options [Merge::RequestOptions]
86
+ # @return [Merge::Ticketing::PaginatedConditionSchemaList]
87
+ # @example
88
+ # api = Merge::Client.new(
89
+ # environment: Environment::PRODUCTION,
90
+ # base_url: "https://api.example.com",
91
+ # api_key: "YOUR_AUTH_TOKEN"
92
+ # )
93
+ # api.ticketing.meta_list
94
+ def meta_list(common_model: nil, cursor: nil, page_size: nil, request_options: nil)
95
+ response = @request_client.conn.get do |req|
96
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
97
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
98
+ req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil?
99
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
100
+ req.params = {
101
+ **(request_options&.additional_query_parameters || {}),
102
+ "common_model": common_model,
103
+ "cursor": cursor,
104
+ "page_size": page_size
105
+ }.compact
106
+ req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/selective-sync/meta"
107
+ end
108
+ Merge::Ticketing::PaginatedConditionSchemaList.from_json(json_object: response.body)
109
+ end
110
+ end
111
+
112
+ class AsyncSelectiveSyncClient
113
+ # @return [Merge::AsyncRequestClient]
114
+ attr_reader :request_client
115
+
116
+ # @param request_client [Merge::AsyncRequestClient]
117
+ # @return [Merge::Ticketing::AsyncSelectiveSyncClient]
118
+ def initialize(request_client:)
119
+ @request_client = request_client
120
+ end
121
+
122
+ # Get a linked account's selective syncs.
123
+ #
124
+ # @param request_options [Merge::RequestOptions]
125
+ # @return [Array<Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration>]
126
+ # @example
127
+ # api = Merge::Client.new(
128
+ # environment: Environment::PRODUCTION,
129
+ # base_url: "https://api.example.com",
130
+ # api_key: "YOUR_AUTH_TOKEN"
131
+ # )
132
+ # api.ticketing.configurations_list
133
+ def configurations_list(request_options: nil)
134
+ Async do
135
+ response = @request_client.conn.get do |req|
136
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
137
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
138
+ req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil?
139
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
140
+ req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/selective-sync/configurations"
141
+ end
142
+ parsed_json = JSON.parse(response.body)
143
+ parsed_json&.map do |v|
144
+ v = v.to_json
145
+ Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration.from_json(json_object: v)
146
+ end
147
+ end
148
+ end
149
+
150
+ # Replace a linked account's selective syncs.
151
+ #
152
+ # @param sync_configurations [Array<Hash>] The selective syncs associated with a linked account.Request of type Array<Merge::Ticketing::LinkedAccountSelectiveSyncConfigurationRequest>, as a Hash
153
+ # * :linked_account_conditions (Array<Merge::Ticketing::LinkedAccountConditionRequest>)
154
+ # @param request_options [Merge::RequestOptions]
155
+ # @return [Array<Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration>]
156
+ # @example
157
+ # api = Merge::Client.new(
158
+ # environment: Environment::PRODUCTION,
159
+ # base_url: "https://api.example.com",
160
+ # api_key: "YOUR_AUTH_TOKEN"
161
+ # )
162
+ # api.ticketing.configurations_update(sync_configurations: [{ linked_account_conditions: }])
163
+ def configurations_update(sync_configurations:, request_options: nil)
164
+ Async do
165
+ response = @request_client.conn.put do |req|
166
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
167
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
168
+ req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil?
169
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
170
+ req.body = {
171
+ **(request_options&.additional_body_parameters || {}),
172
+ sync_configurations: sync_configurations
173
+ }.compact
174
+ req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/selective-sync/configurations"
175
+ end
176
+ parsed_json = JSON.parse(response.body)
177
+ parsed_json&.map do |v|
178
+ v = v.to_json
179
+ Merge::Ticketing::LinkedAccountSelectiveSyncConfiguration.from_json(json_object: v)
180
+ end
181
+ end
182
+ end
183
+
184
+ # Get metadata for the conditions available to a linked account.
185
+ #
186
+ # @param common_model [String]
187
+ # @param cursor [String] The pagination cursor value.
188
+ # @param page_size [Integer] Number of results to return per page.
189
+ # @param request_options [Merge::RequestOptions]
190
+ # @return [Merge::Ticketing::PaginatedConditionSchemaList]
191
+ # @example
192
+ # api = Merge::Client.new(
193
+ # environment: Environment::PRODUCTION,
194
+ # base_url: "https://api.example.com",
195
+ # api_key: "YOUR_AUTH_TOKEN"
196
+ # )
197
+ # api.ticketing.meta_list
198
+ def meta_list(common_model: nil, cursor: nil, page_size: nil, request_options: nil)
199
+ Async do
200
+ response = @request_client.conn.get do |req|
201
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
202
+ req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
203
+ req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil?
204
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
205
+ req.params = {
206
+ **(request_options&.additional_query_parameters || {}),
207
+ "common_model": common_model,
208
+ "cursor": cursor,
209
+ "page_size": page_size
210
+ }.compact
211
+ req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/selective-sync/meta"
212
+ end
213
+ Merge::Ticketing::PaginatedConditionSchemaList.from_json(json_object: response.body)
214
+ end
215
+ end
216
+ end
217
+ end
218
+ end
@@ -20,9 +20,9 @@ module Merge
20
20
  attr_reader :id
21
21
  # @return [String] The third-party API ID of the matching object.
22
22
  attr_reader :remote_id
23
- # @return [DateTime] The datetime that this object was created by Merge.
23
+ # @return [DateTime]
24
24
  attr_reader :created_at
25
- # @return [DateTime] The datetime that this object was modified by Merge.
25
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
26
26
  attr_reader :modified_at
27
27
  # @return [String] The account's name.
28
28
  attr_reader :name
@@ -45,8 +45,8 @@ module Merge
45
45
 
46
46
  # @param id [String]
47
47
  # @param remote_id [String] The third-party API ID of the matching object.
48
- # @param created_at [DateTime] The datetime that this object was created by Merge.
49
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
48
+ # @param created_at [DateTime]
49
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
50
50
  # @param name [String] The account's name.
51
51
  # @param domains [Array<String>] The account's domain names.
52
52
  # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party
@@ -18,9 +18,9 @@ module Merge
18
18
  attr_reader :id
19
19
  # @return [String] The third-party API ID of the matching object.
20
20
  attr_reader :remote_id
21
- # @return [DateTime] The datetime that this object was created by Merge.
21
+ # @return [DateTime]
22
22
  attr_reader :created_at
23
- # @return [DateTime] The datetime that this object was modified by Merge.
23
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
24
24
  attr_reader :modified_at
25
25
  # @return [String] The attachment's name. It is required to include the file extension in the
26
26
  # attachment's name.
@@ -52,8 +52,8 @@ module Merge
52
52
 
53
53
  # @param id [String]
54
54
  # @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.
55
+ # @param created_at [DateTime]
56
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
57
57
  # @param file_name [String] The attachment's name. It is required to include the file extension in the
58
58
  # attachment's name.
59
59
  # @param ticket [Merge::Ticketing::AttachmentTicket] The ticket associated with the attachment.
@@ -68,9 +68,6 @@ module Merge
68
68
  # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC
69
69
  # - `MUTED_ISSUE` - MUTED_ISSUE
70
70
  # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK
71
- # - `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK
72
- # - `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK
73
- # - `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED
74
71
  attr_reader :event_type
75
72
  # @return [String]
76
73
  attr_reader :event_description
@@ -138,9 +135,6 @@ module Merge
138
135
  # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC
139
136
  # - `MUTED_ISSUE` - MUTED_ISSUE
140
137
  # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK
141
- # - `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK
142
- # - `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK
143
- # - `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED
144
138
  # @param event_description [String]
145
139
  # @param created_at [DateTime]
146
140
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
@@ -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 collection's name.
30
30
  attr_reader :name
@@ -58,8 +58,8 @@ module Merge
58
58
 
59
59
  # @param id [String]
60
60
  # @param remote_id [String] The third-party API ID of the matching object.
61
- # @param created_at [DateTime] The datetime that this object was created by Merge.
62
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
61
+ # @param created_at [DateTime]
62
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
63
63
  # @param name [String] The collection's name.
64
64
  # @param description [String] The collection's description.
65
65
  # @param collection_type [Merge::Ticketing::CollectionTypeEnum] The collection's type.
@@ -20,9 +20,9 @@ module Merge
20
20
  attr_reader :id
21
21
  # @return [String] The third-party API ID of the matching object.
22
22
  attr_reader :remote_id
23
- # @return [DateTime] The datetime that this object was created by Merge.
23
+ # @return [DateTime]
24
24
  attr_reader :created_at
25
- # @return [DateTime] The datetime that this object was modified by Merge.
25
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
26
26
  attr_reader :modified_at
27
27
  # @return [Merge::Ticketing::CommentUser] The author of the Comment, if the author is a User.
28
28
  attr_reader :user
@@ -54,8 +54,8 @@ module Merge
54
54
 
55
55
  # @param id [String]
56
56
  # @param remote_id [String] The third-party API ID of the matching object.
57
- # @param created_at [DateTime] The datetime that this object was created by Merge.
58
- # @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
59
59
  # @param user [Merge::Ticketing::CommentUser] The author of the Comment, if the author is a User.
60
60
  # @param contact [Merge::Ticketing::CommentContact] The author of the Comment, if the author is a Contact.
61
61
  # @param body [String] The comment's text body.
@@ -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 Ticketing
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::Ticketing::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::Ticketing::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::Ticketing::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::Ticketing::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::Ticketing::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::Ticketing::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::Ticketing::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::Ticketing::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 Ticketing
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
@@ -19,9 +19,9 @@ module Merge
19
19
  attr_reader :id
20
20
  # @return [String] The third-party API ID of the matching object.
21
21
  attr_reader :remote_id
22
- # @return [DateTime] The datetime that this object was created by Merge.
22
+ # @return [DateTime]
23
23
  attr_reader :created_at
24
- # @return [DateTime] The datetime that this object was modified by Merge.
24
+ # @return [DateTime] This is the datetime that this object was last updated by Merge
25
25
  attr_reader :modified_at
26
26
  # @return [String] The contact's name.
27
27
  attr_reader :name
@@ -50,8 +50,8 @@ module Merge
50
50
 
51
51
  # @param id [String]
52
52
  # @param remote_id [String] The third-party API ID of the matching object.
53
- # @param created_at [DateTime] The datetime that this object was created by Merge.
54
- # @param modified_at [DateTime] The datetime that this object was modified by Merge.
53
+ # @param created_at [DateTime]
54
+ # @param modified_at [DateTime] This is the datetime that this object was last updated by Merge
55
55
  # @param name [String] The contact's name.
56
56
  # @param email_address [String] The contact's email address.
57
57
  # @param phone_number [String] The contact's phone number.
@@ -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
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Merge
7
+ module Ticketing
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::Ticketing::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::Ticketing::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