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.
- checksums.yaml +4 -4
- data/lib/merge_ruby_client/accounting/audit_trail/client.rb +2 -4
- data/lib/merge_ruby_client/accounting/client.rb +7 -0
- data/lib/merge_ruby_client/accounting/link_token/client.rb +4 -8
- data/lib/merge_ruby_client/accounting/payments/client.rb +0 -4
- data/lib/merge_ruby_client/accounting/selective_sync/client.rb +218 -0
- data/lib/merge_ruby_client/accounting/types/account.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/accounting_attachment.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/accounting_period.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/accounting_phone_number.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/address.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/audit_log_event.rb +0 -6
- data/lib/merge_ruby_client/accounting/types/balance_sheet.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/company_info.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/condition_schema.rb +136 -0
- data/lib/merge_ruby_client/accounting/types/condition_type_enum.rb +22 -0
- data/lib/merge_ruby_client/accounting/types/contact.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/credit_note.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb +13 -5
- data/lib/merge_ruby_client/accounting/types/event_type_enum.rb +0 -6
- data/lib/merge_ruby_client/accounting/types/expense.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/expense_line.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/income_statement.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/invoice.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/invoice_line_item.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/item.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/journal_entry.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/journal_line.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/linked_account_condition.rb +104 -0
- data/lib/merge_ruby_client/accounting/types/linked_account_condition_request.rb +87 -0
- data/lib/merge_ruby_client/accounting/types/linked_account_selective_sync_configuration.rb +65 -0
- data/lib/merge_ruby_client/accounting/types/linked_account_selective_sync_configuration_request.rb +63 -0
- data/lib/merge_ruby_client/accounting/types/operator_schema.rb +68 -0
- data/lib/merge_ruby_client/accounting/types/paginated_condition_schema_list.rb +80 -0
- data/lib/merge_ruby_client/accounting/types/patched_payment_request.rb +1 -14
- data/lib/merge_ruby_client/accounting/types/payment.rb +5 -18
- data/lib/merge_ruby_client/accounting/types/payment_line_item.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/payment_request.rb +1 -14
- data/lib/merge_ruby_client/accounting/types/purchase_order.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/remote_field_api.rb +2 -16
- data/lib/merge_ruby_client/accounting/types/report_item.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/tax_rate.rb +10 -12
- data/lib/merge_ruby_client/accounting/types/tax_rate_company.rb +1 -2
- data/lib/merge_ruby_client/accounting/types/tracking_category.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/transaction.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/transaction_line_item.rb +6 -6
- data/lib/merge_ruby_client/accounting/types/vendor_credit.rb +4 -4
- data/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb +4 -4
- data/lib/merge_ruby_client/ats/audit_trail/client.rb +2 -4
- data/lib/merge_ruby_client/ats/client.rb +7 -0
- data/lib/merge_ruby_client/ats/job_postings/client.rb +4 -16
- data/lib/merge_ruby_client/ats/link_token/client.rb +4 -8
- data/lib/merge_ruby_client/ats/selective_sync/client.rb +218 -0
- data/lib/merge_ruby_client/ats/types/activity.rb +4 -4
- data/lib/merge_ruby_client/ats/types/application.rb +4 -4
- data/lib/merge_ruby_client/ats/types/attachment.rb +4 -4
- data/lib/merge_ruby_client/ats/types/audit_log_event.rb +0 -6
- data/lib/merge_ruby_client/ats/types/candidate.rb +4 -4
- data/lib/merge_ruby_client/ats/types/condition_schema.rb +136 -0
- data/lib/merge_ruby_client/ats/types/condition_type_enum.rb +22 -0
- data/lib/merge_ruby_client/ats/types/department.rb +4 -4
- data/lib/merge_ruby_client/ats/types/eeoc.rb +4 -4
- data/lib/merge_ruby_client/ats/types/email_address.rb +4 -4
- data/lib/merge_ruby_client/ats/types/event_type_enum.rb +0 -6
- data/lib/merge_ruby_client/ats/types/job.rb +4 -4
- data/lib/merge_ruby_client/ats/types/job_interview_stage.rb +4 -4
- data/lib/merge_ruby_client/ats/types/job_posting.rb +4 -4
- data/lib/merge_ruby_client/ats/types/linked_account_condition.rb +104 -0
- data/lib/merge_ruby_client/ats/types/linked_account_condition_request.rb +87 -0
- data/lib/merge_ruby_client/ats/types/linked_account_selective_sync_configuration.rb +65 -0
- data/lib/merge_ruby_client/ats/types/linked_account_selective_sync_configuration_request.rb +63 -0
- data/lib/merge_ruby_client/ats/types/offer.rb +4 -4
- data/lib/merge_ruby_client/ats/types/office.rb +4 -4
- data/lib/merge_ruby_client/ats/types/operator_schema.rb +68 -0
- data/lib/merge_ruby_client/ats/types/paginated_condition_schema_list.rb +80 -0
- data/lib/merge_ruby_client/ats/types/phone_number.rb +4 -4
- data/lib/merge_ruby_client/ats/types/reject_reason.rb +4 -4
- data/lib/merge_ruby_client/ats/types/remote_field_api.rb +2 -16
- data/lib/merge_ruby_client/ats/types/remote_user.rb +4 -4
- data/lib/merge_ruby_client/ats/types/scheduled_interview.rb +4 -4
- data/lib/merge_ruby_client/ats/types/scorecard.rb +4 -4
- data/lib/merge_ruby_client/ats/types/screening_question.rb +4 -4
- data/lib/merge_ruby_client/ats/types/screening_question_option.rb +4 -4
- data/lib/merge_ruby_client/ats/types/tag.rb +4 -4
- data/lib/merge_ruby_client/ats/types/url.rb +4 -4
- data/lib/merge_ruby_client/crm/accounts/client.rb +0 -4
- data/lib/merge_ruby_client/crm/audit_trail/client.rb +2 -4
- data/lib/merge_ruby_client/crm/client.rb +7 -0
- data/lib/merge_ruby_client/crm/custom_objects/client.rb +2 -2
- data/lib/merge_ruby_client/crm/link_token/client.rb +4 -8
- data/lib/merge_ruby_client/crm/selective_sync/client.rb +218 -0
- data/lib/merge_ruby_client/crm/types/account.rb +4 -4
- data/lib/merge_ruby_client/crm/types/account_request.rb +1 -13
- data/lib/merge_ruby_client/crm/types/address.rb +4 -4
- data/lib/merge_ruby_client/crm/types/association.rb +6 -6
- data/lib/merge_ruby_client/crm/types/association_association_type.rb +0 -1
- data/lib/merge_ruby_client/crm/types/association_sub_type.rb +4 -4
- data/lib/merge_ruby_client/crm/types/association_type.rb +6 -8
- data/lib/merge_ruby_client/crm/types/audit_log_event.rb +0 -6
- data/lib/merge_ruby_client/crm/types/condition_schema.rb +136 -0
- data/lib/merge_ruby_client/crm/types/condition_type_enum.rb +22 -0
- data/lib/merge_ruby_client/crm/types/contact.rb +4 -4
- data/lib/merge_ruby_client/crm/types/custom_object.rb +8 -8
- data/lib/merge_ruby_client/crm/types/custom_object_class.rb +8 -10
- data/lib/merge_ruby_client/crm/types/email_address.rb +4 -4
- data/lib/merge_ruby_client/crm/types/engagement.rb +4 -4
- data/lib/merge_ruby_client/crm/types/engagement_type.rb +4 -4
- data/lib/merge_ruby_client/crm/types/event_type_enum.rb +0 -6
- data/lib/merge_ruby_client/crm/types/lead.rb +4 -4
- data/lib/merge_ruby_client/crm/types/linked_account_condition.rb +104 -0
- data/lib/merge_ruby_client/crm/types/linked_account_condition_request.rb +87 -0
- data/lib/merge_ruby_client/crm/types/linked_account_selective_sync_configuration.rb +65 -0
- data/lib/merge_ruby_client/crm/types/linked_account_selective_sync_configuration_request.rb +63 -0
- data/lib/merge_ruby_client/crm/types/note.rb +4 -4
- data/lib/merge_ruby_client/crm/types/operator_schema.rb +68 -0
- data/lib/merge_ruby_client/crm/types/opportunity.rb +4 -4
- data/lib/merge_ruby_client/crm/types/paginated_condition_schema_list.rb +80 -0
- data/lib/merge_ruby_client/crm/types/patched_account_request.rb +1 -13
- data/lib/merge_ruby_client/crm/types/phone_number.rb +4 -4
- data/lib/merge_ruby_client/crm/types/remote_field_api.rb +2 -16
- data/lib/merge_ruby_client/crm/types/remote_field_class_for_custom_object_class.rb +4 -4
- data/lib/merge_ruby_client/crm/types/stage.rb +4 -4
- data/lib/merge_ruby_client/crm/types/task.rb +4 -4
- data/lib/merge_ruby_client/crm/types/user.rb +4 -4
- data/lib/merge_ruby_client/filestorage/audit_trail/client.rb +2 -4
- data/lib/merge_ruby_client/filestorage/client.rb +7 -0
- data/lib/merge_ruby_client/filestorage/link_token/client.rb +4 -8
- data/lib/merge_ruby_client/filestorage/selective_sync/client.rb +218 -0
- data/lib/merge_ruby_client/filestorage/types/audit_log_event.rb +0 -6
- data/lib/merge_ruby_client/filestorage/types/condition_schema.rb +136 -0
- data/lib/merge_ruby_client/filestorage/types/condition_type_enum.rb +22 -0
- data/lib/merge_ruby_client/filestorage/types/drive.rb +4 -4
- data/lib/merge_ruby_client/filestorage/types/event_type_enum.rb +0 -6
- data/lib/merge_ruby_client/filestorage/types/file.rb +4 -4
- data/lib/merge_ruby_client/filestorage/types/folder.rb +4 -4
- data/lib/merge_ruby_client/filestorage/types/group.rb +4 -4
- data/lib/merge_ruby_client/filestorage/types/linked_account_condition.rb +104 -0
- data/lib/merge_ruby_client/filestorage/types/linked_account_condition_request.rb +87 -0
- data/lib/merge_ruby_client/filestorage/types/linked_account_selective_sync_configuration.rb +65 -0
- data/lib/merge_ruby_client/filestorage/types/linked_account_selective_sync_configuration_request.rb +63 -0
- data/lib/merge_ruby_client/filestorage/types/operator_schema.rb +68 -0
- data/lib/merge_ruby_client/filestorage/types/paginated_condition_schema_list.rb +80 -0
- data/lib/merge_ruby_client/filestorage/types/permission.rb +4 -4
- data/lib/merge_ruby_client/filestorage/types/remote_field_api.rb +2 -16
- data/lib/merge_ruby_client/filestorage/types/user.rb +4 -4
- data/lib/merge_ruby_client/hris/audit_trail/client.rb +2 -4
- data/lib/merge_ruby_client/hris/client.rb +7 -0
- data/lib/merge_ruby_client/hris/groups/client.rb +2 -10
- data/lib/merge_ruby_client/hris/link_token/client.rb +4 -8
- data/lib/merge_ruby_client/hris/selective_sync/client.rb +218 -0
- data/lib/merge_ruby_client/hris/types/audit_log_event.rb +0 -6
- data/lib/merge_ruby_client/hris/types/bank_info.rb +4 -4
- data/lib/merge_ruby_client/hris/types/benefit.rb +4 -4
- data/lib/merge_ruby_client/hris/types/company.rb +4 -4
- data/lib/merge_ruby_client/hris/types/condition_schema.rb +136 -0
- data/lib/merge_ruby_client/hris/types/condition_type_enum.rb +22 -0
- data/lib/merge_ruby_client/hris/types/deduction.rb +4 -4
- data/lib/merge_ruby_client/hris/types/dependent.rb +4 -4
- data/lib/merge_ruby_client/hris/types/earning.rb +4 -4
- data/lib/merge_ruby_client/hris/types/employee.rb +4 -4
- data/lib/merge_ruby_client/hris/types/employee_payroll_run.rb +4 -4
- data/lib/merge_ruby_client/hris/types/employer_benefit.rb +4 -4
- data/lib/merge_ruby_client/hris/types/employment.rb +4 -4
- data/lib/merge_ruby_client/hris/types/event_type_enum.rb +0 -6
- data/lib/merge_ruby_client/hris/types/group.rb +5 -19
- data/lib/merge_ruby_client/hris/types/linked_account_condition.rb +104 -0
- data/lib/merge_ruby_client/hris/types/linked_account_condition_request.rb +87 -0
- data/lib/merge_ruby_client/hris/types/linked_account_selective_sync_configuration.rb +65 -0
- data/lib/merge_ruby_client/hris/types/linked_account_selective_sync_configuration_request.rb +63 -0
- data/lib/merge_ruby_client/hris/types/location.rb +4 -4
- data/lib/merge_ruby_client/hris/types/operator_schema.rb +68 -0
- data/lib/merge_ruby_client/hris/types/paginated_condition_schema_list.rb +80 -0
- data/lib/merge_ruby_client/hris/types/pay_group.rb +4 -4
- data/lib/merge_ruby_client/hris/types/payroll_run.rb +4 -4
- data/lib/merge_ruby_client/hris/types/remote_field_api.rb +2 -16
- data/lib/merge_ruby_client/hris/types/tax.rb +4 -4
- data/lib/merge_ruby_client/hris/types/team.rb +4 -4
- data/lib/merge_ruby_client/hris/types/time_off.rb +4 -4
- data/lib/merge_ruby_client/hris/types/time_off_balance.rb +4 -4
- data/lib/merge_ruby_client/hris/types/timesheet_entry.rb +4 -4
- data/lib/merge_ruby_client/ticketing/audit_trail/client.rb +2 -4
- data/lib/merge_ruby_client/ticketing/client.rb +7 -0
- data/lib/merge_ruby_client/ticketing/contacts/client.rb +0 -127
- data/lib/merge_ruby_client/ticketing/link_token/client.rb +4 -8
- data/lib/merge_ruby_client/ticketing/selective_sync/client.rb +218 -0
- data/lib/merge_ruby_client/ticketing/types/account.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/attachment.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/audit_log_event.rb +0 -6
- data/lib/merge_ruby_client/ticketing/types/collection.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/comment.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/condition_schema.rb +136 -0
- data/lib/merge_ruby_client/ticketing/types/condition_type_enum.rb +22 -0
- data/lib/merge_ruby_client/ticketing/types/contact.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/event_type_enum.rb +0 -6
- data/lib/merge_ruby_client/ticketing/types/linked_account_condition.rb +104 -0
- data/lib/merge_ruby_client/ticketing/types/linked_account_condition_request.rb +87 -0
- data/lib/merge_ruby_client/ticketing/types/linked_account_selective_sync_configuration.rb +65 -0
- data/lib/merge_ruby_client/ticketing/types/linked_account_selective_sync_configuration_request.rb +63 -0
- data/lib/merge_ruby_client/ticketing/types/operator_schema.rb +68 -0
- data/lib/merge_ruby_client/ticketing/types/paginated_condition_schema_list.rb +80 -0
- data/lib/merge_ruby_client/ticketing/types/project.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/remote_field_api.rb +2 -16
- data/lib/merge_ruby_client/ticketing/types/role.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/tag.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/team.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/ticket.rb +4 -4
- data/lib/merge_ruby_client/ticketing/types/user.rb +4 -4
- data/lib/merge_ruby_client.rb +7 -7
- data/lib/requests.rb +2 -12
- data/lib/types_export.rb +153 -115
- metadata +56 -12
- data/lib/merge_ruby_client/accounting/types/payment_type_enum.rb +0 -12
- data/lib/merge_ruby_client/accounting/types/remote_field_api_coverage.rb +0 -54
- data/lib/merge_ruby_client/ats/types/remote_field_api_coverage.rb +0 -54
- data/lib/merge_ruby_client/crm/types/remote_field_api_coverage.rb +0 -54
- data/lib/merge_ruby_client/filestorage/types/remote_field_api_coverage.rb +0 -54
- data/lib/merge_ruby_client/hris/types/remote_field_api_coverage.rb +0 -54
- data/lib/merge_ruby_client/ticketing/types/contact_request.rb +0 -125
- data/lib/merge_ruby_client/ticketing/types/contact_request_account.rb +0 -56
- data/lib/merge_ruby_client/ticketing/types/remote_field_api_coverage.rb +0 -54
- 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]
|
|
23
|
+
# @return [DateTime]
|
|
24
24
|
attr_reader :created_at
|
|
25
|
-
# @return [DateTime]
|
|
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]
|
|
49
|
-
# @param modified_at [DateTime]
|
|
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]
|
|
21
|
+
# @return [DateTime]
|
|
22
22
|
attr_reader :created_at
|
|
23
|
-
# @return [DateTime]
|
|
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]
|
|
56
|
-
# @param modified_at [DateTime]
|
|
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]
|
|
25
|
+
# @return [DateTime]
|
|
26
26
|
attr_reader :created_at
|
|
27
|
-
# @return [DateTime]
|
|
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]
|
|
62
|
-
# @param modified_at [DateTime]
|
|
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]
|
|
23
|
+
# @return [DateTime]
|
|
24
24
|
attr_reader :created_at
|
|
25
|
-
# @return [DateTime]
|
|
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]
|
|
58
|
-
# @param modified_at [DateTime]
|
|
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]
|
|
22
|
+
# @return [DateTime]
|
|
23
23
|
attr_reader :created_at
|
|
24
|
-
# @return [DateTime]
|
|
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]
|
|
54
|
-
# @param modified_at [DateTime]
|
|
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
|