merge_ruby_client 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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