rcs 2.0.14 → 2.0.16
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/.fern/metadata.json +4 -3
- data/.rubocop.yml +19 -0
- data/lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb +3 -6
- data/lib/pinnacle/client.rb +1 -1
- data/lib/pinnacle/internal/types/boolean.rb +1 -1
- data/lib/pinnacle/internal/types/utils.rb +2 -2
- data/lib/pinnacle/messages/client.rb +5 -0
- data/lib/pinnacle/messages/simulate/client.rb +50 -0
- data/lib/pinnacle/phone_numbers/client.rb +0 -5
- data/lib/pinnacle/types/attach_webhook_response_webhook.rb +2 -2
- data/lib/pinnacle/types/attach_webhook_result.rb +12 -0
- data/lib/pinnacle/types/detach_webhook_result.rb +11 -0
- data/lib/pinnacle/types/extended_brand_with_vetting.rb +2 -2
- data/lib/pinnacle/types/extended_rcs_campaign.rb +3 -6
- data/lib/pinnacle/types/failed_sender.rb +10 -0
- data/lib/pinnacle/types/rcs_campaign.rb +3 -6
- data/lib/pinnacle/types/rcs_campaign_summary.rb +0 -1
- data/lib/pinnacle/types/rcs_cards_content.rb +1 -1
- data/lib/pinnacle/types/rcs_cards_content_cards_item.rb +1 -1
- data/lib/pinnacle/types/rcs_media_content.rb +1 -1
- data/lib/pinnacle/types/rcs_validate_content_media.rb +1 -1
- data/lib/pinnacle/types/rich_card.rb +1 -1
- data/lib/pinnacle/types/rich_cards.rb +1 -1
- data/lib/pinnacle/types/rich_media_message.rb +1 -1
- data/lib/pinnacle/types/rich_text.rb +1 -1
- data/lib/pinnacle/types/send_rich_cards_options.rb +5 -0
- data/lib/pinnacle/types/send_rich_message_options_4.rb +13 -0
- data/lib/pinnacle/types/simulate_message_input.rb +12 -0
- data/lib/pinnacle/types/simulate_user_button.rb +12 -0
- data/lib/pinnacle/types/simulate_user_message.rb +12 -0
- data/lib/pinnacle/types/simulate_user_params.rb +13 -0
- data/lib/pinnacle/types/simulate_user_response.rb +10 -0
- data/lib/pinnacle/types/user_button_press.rb +19 -0
- data/lib/pinnacle/types/user_button_press_call.rb +12 -0
- data/lib/pinnacle/types/user_button_press_open_url.rb +12 -0
- data/lib/pinnacle/types/user_button_press_request_user_location.rb +12 -0
- data/lib/pinnacle/types/user_button_press_request_user_location_location.rb +13 -0
- data/lib/pinnacle/types/user_button_press_schedule_event.rb +15 -0
- data/lib/pinnacle/types/user_button_press_send_location.rb +13 -0
- data/lib/pinnacle/types/user_button_press_send_location_lat_long.rb +11 -0
- data/lib/pinnacle/types/user_button_press_trigger.rb +12 -0
- data/lib/pinnacle/types/vcard_content.rb +1 -1
- data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
- data/lib/pinnacle/types/webhook_summary.rb +1 -0
- data/lib/pinnacle/types/webhooks.rb +1 -0
- data/lib/pinnacle/version.rb +1 -1
- data/lib/pinnacle/webhooks/client.rb +85 -0
- data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +16 -0
- data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +12 -0
- data/lib/pinnacle.rb +23 -12
- data/reference.md +223 -151
- metadata +23 -12
- data/lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb +0 -15
- data/lib/pinnacle/phone_numbers/webhook/client.rb +0 -90
- data/lib/pinnacle/types/attach_webhook_by_id_params.rb +0 -11
- data/lib/pinnacle/types/attach_webhook_params.rb +0 -15
- data/lib/pinnacle/types/configured_webhook.rb +0 -13
- data/lib/pinnacle/types/create_and_attach_webhook_by_url_params.rb +0 -12
- data/lib/pinnacle/types/detached_webhook_info.rb +0 -11
- data/lib/pinnacle/types/rcs_campaign_schema_extra_use_case.rb +0 -11
- data/lib/pinnacle/types/rcs_campaign_schema_use_case.rb +0 -11
- data/lib/pinnacle/types/rcs_campaign_use_case_enum.rb +0 -43
|
@@ -9,6 +9,7 @@ module Pinnacle
|
|
|
9
9
|
field :status, -> { Pinnacle::Types::WebhookSummaryStatus }, optional: false, nullable: false
|
|
10
10
|
field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
|
|
11
11
|
field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
|
|
12
|
+
field :headers, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
|
|
12
13
|
end
|
|
13
14
|
end
|
|
14
15
|
end
|
|
@@ -7,6 +7,7 @@ module Pinnacle
|
|
|
7
7
|
field :endpoint, -> { String }, optional: false, nullable: false
|
|
8
8
|
field :id, -> { String }, optional: false, nullable: false
|
|
9
9
|
field :name, -> { String }, optional: false, nullable: false
|
|
10
|
+
field :headers, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
|
|
10
11
|
end
|
|
11
12
|
end
|
|
12
13
|
end
|
data/lib/pinnacle/version.rb
CHANGED
|
@@ -77,6 +77,91 @@ module Pinnacle
|
|
|
77
77
|
raise error_class.new(response.body, code: code)
|
|
78
78
|
end
|
|
79
79
|
end
|
|
80
|
+
|
|
81
|
+
# Attach a webhook to one or more senders (phone numbers or RCS agent IDs) to receive real-time event
|
|
82
|
+
# notifications. <br>
|
|
83
|
+
#
|
|
84
|
+
# You can attach an existing webhook by providing its ID, or create a new webhook by specifying a name and URL.
|
|
85
|
+
# Supports bulk operations with up to 50 senders per request. <br>
|
|
86
|
+
#
|
|
87
|
+
# Subscriptions are additive — attaching new senders does not remove existing ones. Re-attaching the same sender
|
|
88
|
+
# updates the event type filter without creating duplicates. <br>
|
|
89
|
+
#
|
|
90
|
+
# **Custom headers** may be provided in either case via the optional `headers` field. When attaching a new
|
|
91
|
+
# webhook, the headers are stored on the webhook and sent on every delivery. When attaching an existing
|
|
92
|
+
# `webhookId`, supplying `headers` **overwrites** the stored headers on that webhook — omit the field to leave
|
|
93
|
+
# them unchanged, or pass an empty object `{}` to clear them. The reserved `PINNACLE-SIGNING-SECRET` header is
|
|
94
|
+
# always set by Pinnacle and cannot be overridden.
|
|
95
|
+
#
|
|
96
|
+
# @param request_options [Hash]
|
|
97
|
+
# @param params [Pinnacle::Webhooks::Types::AttachWebhookParams]
|
|
98
|
+
# @option request_options [String] :base_url
|
|
99
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
100
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
101
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
102
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
103
|
+
#
|
|
104
|
+
# @return [Pinnacle::Types::AttachWebhookResult]
|
|
105
|
+
def attach(request_options: {}, **params)
|
|
106
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
107
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
108
|
+
base_url: request_options[:base_url],
|
|
109
|
+
method: "POST",
|
|
110
|
+
path: "webhooks/attach",
|
|
111
|
+
body: Pinnacle::Webhooks::Types::AttachWebhookParams.new(params).to_h,
|
|
112
|
+
request_options: request_options
|
|
113
|
+
)
|
|
114
|
+
begin
|
|
115
|
+
response = @client.send(request)
|
|
116
|
+
rescue Net::HTTPRequestTimeout
|
|
117
|
+
raise Pinnacle::Errors::TimeoutError
|
|
118
|
+
end
|
|
119
|
+
code = response.code.to_i
|
|
120
|
+
if code.between?(200, 299)
|
|
121
|
+
Pinnacle::Types::AttachWebhookResult.load(response.body)
|
|
122
|
+
else
|
|
123
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
124
|
+
raise error_class.new(response.body, code: code)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Detach a webhook from one or more senders (phone numbers or RCS agent IDs) to stop receiving event
|
|
129
|
+
# notifications. <br>
|
|
130
|
+
#
|
|
131
|
+
# The webhook itself is not deleted and remains available for use with other senders. Works regardless of webhook
|
|
132
|
+
# status. Supports bulk operations with up to 50 senders per request.
|
|
133
|
+
#
|
|
134
|
+
# @param request_options [Hash]
|
|
135
|
+
# @param params [Pinnacle::Webhooks::Types::DetachWebhookParams]
|
|
136
|
+
# @option request_options [String] :base_url
|
|
137
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
138
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
139
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
140
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
141
|
+
#
|
|
142
|
+
# @return [Pinnacle::Types::DetachWebhookResult]
|
|
143
|
+
def detach(request_options: {}, **params)
|
|
144
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
145
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
146
|
+
base_url: request_options[:base_url],
|
|
147
|
+
method: "POST",
|
|
148
|
+
path: "webhooks/detach",
|
|
149
|
+
body: Pinnacle::Webhooks::Types::DetachWebhookParams.new(params).to_h,
|
|
150
|
+
request_options: request_options
|
|
151
|
+
)
|
|
152
|
+
begin
|
|
153
|
+
response = @client.send(request)
|
|
154
|
+
rescue Net::HTTPRequestTimeout
|
|
155
|
+
raise Pinnacle::Errors::TimeoutError
|
|
156
|
+
end
|
|
157
|
+
code = response.code.to_i
|
|
158
|
+
if code.between?(200, 299)
|
|
159
|
+
Pinnacle::Types::DetachWebhookResult.load(response.body)
|
|
160
|
+
else
|
|
161
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
162
|
+
raise error_class.new(response.body, code: code)
|
|
163
|
+
end
|
|
164
|
+
end
|
|
80
165
|
end
|
|
81
166
|
end
|
|
82
167
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Webhooks
|
|
5
|
+
module Types
|
|
6
|
+
class AttachWebhookParams < Internal::Types::Model
|
|
7
|
+
field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
|
|
8
|
+
field :webhook_id, -> { String }, optional: true, nullable: false, api_name: "webhookId"
|
|
9
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
10
|
+
field :url, -> { String }, optional: true, nullable: false
|
|
11
|
+
field :event, -> { Pinnacle::Types::WebhookEventEnum }, optional: true, nullable: false
|
|
12
|
+
field :headers, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Webhooks
|
|
5
|
+
module Types
|
|
6
|
+
class DetachWebhookParams < Internal::Types::Model
|
|
7
|
+
field :webhook_id, -> { String }, optional: false, nullable: false, api_name: "webhookId"
|
|
8
|
+
field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
data/lib/pinnacle.rb
CHANGED
|
@@ -110,14 +110,12 @@ require_relative "pinnacle/campaigns/toll_free/types/toll_free_campaign_opt_in"
|
|
|
110
110
|
require_relative "pinnacle/campaigns/toll_free/types/toll_free_campaign_options"
|
|
111
111
|
require_relative "pinnacle/campaigns/toll_free/types/toll_free_campaign_use_case"
|
|
112
112
|
require_relative "pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status"
|
|
113
|
-
require_relative "pinnacle/types/rcs_campaign_use_case_enum"
|
|
114
113
|
require_relative "pinnacle/types/rcs_messaging_type_enum"
|
|
115
114
|
require_relative "pinnacle/types/rcs_campaign_schema_agent_emails_item"
|
|
116
115
|
require_relative "pinnacle/types/rcs_campaign_schema_agent_phones_item"
|
|
117
116
|
require_relative "pinnacle/types/rcs_campaign_schema_agent_websites_item"
|
|
118
117
|
require_relative "pinnacle/types/rcs_campaign_schema_agent"
|
|
119
118
|
require_relative "pinnacle/types/rcs_campaign_schema_links"
|
|
120
|
-
require_relative "pinnacle/types/rcs_campaign_schema_use_case"
|
|
121
119
|
require_relative "pinnacle/types/rcs_campaign_schema_keywords_help"
|
|
122
120
|
require_relative "pinnacle/types/rcs_campaign_schema_keywords_opt_in"
|
|
123
121
|
require_relative "pinnacle/types/rcs_campaign_schema_keywords_opt_out"
|
|
@@ -130,7 +128,6 @@ require_relative "pinnacle/campaigns/rcs/types/rcs_agent_phone"
|
|
|
130
128
|
require_relative "pinnacle/campaigns/rcs/types/rcs_agent_website"
|
|
131
129
|
require_relative "pinnacle/campaigns/rcs/types/rcs_agent"
|
|
132
130
|
require_relative "pinnacle/campaigns/rcs/types/rcs_links"
|
|
133
|
-
require_relative "pinnacle/campaigns/rcs/types/rcs_use_case"
|
|
134
131
|
require_relative "pinnacle/campaigns/rcs/types/rcs_campaign_help_keywords"
|
|
135
132
|
require_relative "pinnacle/campaigns/rcs/types/rcs_campaign_opt_in_keywords"
|
|
136
133
|
require_relative "pinnacle/campaigns/rcs/types/rcs_campaign_opt_out_keywords"
|
|
@@ -229,7 +226,6 @@ require_relative "pinnacle/types/rcs_campaign_schema_extra_agent_phones_item"
|
|
|
229
226
|
require_relative "pinnacle/types/rcs_campaign_schema_extra_agent_websites_item"
|
|
230
227
|
require_relative "pinnacle/types/rcs_campaign_schema_extra_agent"
|
|
231
228
|
require_relative "pinnacle/types/rcs_campaign_schema_extra_links"
|
|
232
|
-
require_relative "pinnacle/types/rcs_campaign_schema_extra_use_case"
|
|
233
229
|
require_relative "pinnacle/types/rcs_campaign_schema_extra_keywords_help"
|
|
234
230
|
require_relative "pinnacle/types/rcs_campaign_schema_extra_keywords_opt_in"
|
|
235
231
|
require_relative "pinnacle/types/rcs_campaign_schema_extra_keywords_opt_out"
|
|
@@ -306,6 +302,7 @@ require_relative "pinnacle/types/rich_text_message"
|
|
|
306
302
|
require_relative "pinnacle/types/rich_media_message"
|
|
307
303
|
require_relative "pinnacle/types/rich_card"
|
|
308
304
|
require_relative "pinnacle/types/rich_cards"
|
|
305
|
+
require_relative "pinnacle/types/send_rich_message_options_4"
|
|
309
306
|
require_relative "pinnacle/types/send_rcs_card_options_standalone_card_orientation"
|
|
310
307
|
require_relative "pinnacle/types/send_rcs_card_options_standalone_card_image_alignment"
|
|
311
308
|
require_relative "pinnacle/types/rich_standalone_card_options"
|
|
@@ -337,6 +334,20 @@ require_relative "pinnacle/types/list_scheduled_messages_response"
|
|
|
337
334
|
require_relative "pinnacle/types/blast_summary_type"
|
|
338
335
|
require_relative "pinnacle/types/blast_summary"
|
|
339
336
|
require_relative "pinnacle/types/list_blasts_response"
|
|
337
|
+
require_relative "pinnacle/types/simulate_message_input"
|
|
338
|
+
require_relative "pinnacle/types/simulate_user_message"
|
|
339
|
+
require_relative "pinnacle/types/user_button_press_trigger"
|
|
340
|
+
require_relative "pinnacle/types/user_button_press_open_url"
|
|
341
|
+
require_relative "pinnacle/types/user_button_press_call"
|
|
342
|
+
require_relative "pinnacle/types/user_button_press_schedule_event"
|
|
343
|
+
require_relative "pinnacle/types/user_button_press_send_location_lat_long"
|
|
344
|
+
require_relative "pinnacle/types/user_button_press_send_location"
|
|
345
|
+
require_relative "pinnacle/types/user_button_press_request_user_location_location"
|
|
346
|
+
require_relative "pinnacle/types/user_button_press_request_user_location"
|
|
347
|
+
require_relative "pinnacle/types/user_button_press"
|
|
348
|
+
require_relative "pinnacle/types/simulate_user_button"
|
|
349
|
+
require_relative "pinnacle/types/simulate_user_params"
|
|
350
|
+
require_relative "pinnacle/types/simulate_user_response"
|
|
340
351
|
require_relative "pinnacle/types/phone_feature_enum"
|
|
341
352
|
require_relative "pinnacle/types/phone_enum"
|
|
342
353
|
require_relative "pinnacle/types/phone_number_cost"
|
|
@@ -344,13 +355,6 @@ require_relative "pinnacle/types/phone_number_region"
|
|
|
344
355
|
require_relative "pinnacle/types/phone_number_details"
|
|
345
356
|
require_relative "pinnacle/types/buy_response_capabilities"
|
|
346
357
|
require_relative "pinnacle/types/purchased_number"
|
|
347
|
-
require_relative "pinnacle/types/webhook_event_enum"
|
|
348
|
-
require_relative "pinnacle/types/attach_webhook_by_id_params"
|
|
349
|
-
require_relative "pinnacle/types/create_and_attach_webhook_by_url_params"
|
|
350
|
-
require_relative "pinnacle/types/attach_webhook_params"
|
|
351
|
-
require_relative "pinnacle/types/attach_webhook_response_webhook"
|
|
352
|
-
require_relative "pinnacle/types/configured_webhook"
|
|
353
|
-
require_relative "pinnacle/types/detached_webhook_info"
|
|
354
358
|
require_relative "pinnacle/types/messaging_profile_enum"
|
|
355
359
|
require_relative "pinnacle/types/phone_number_campaign_attach_phone_numbers_item_campaign"
|
|
356
360
|
require_relative "pinnacle/types/phone_number_campaign_attach_phone_numbers_item"
|
|
@@ -434,6 +438,11 @@ require_relative "pinnacle/types/webhook_result"
|
|
|
434
438
|
require_relative "pinnacle/types/webhook_summary_status"
|
|
435
439
|
require_relative "pinnacle/types/webhook_summary"
|
|
436
440
|
require_relative "pinnacle/types/list_webhooks_response"
|
|
441
|
+
require_relative "pinnacle/types/webhook_event_enum"
|
|
442
|
+
require_relative "pinnacle/types/failed_sender"
|
|
443
|
+
require_relative "pinnacle/types/attach_webhook_response_webhook"
|
|
444
|
+
require_relative "pinnacle/types/attach_webhook_result"
|
|
445
|
+
require_relative "pinnacle/types/detach_webhook_result"
|
|
437
446
|
require_relative "pinnacle/types/message_event_sms_content"
|
|
438
447
|
require_relative "pinnacle/types/message_event_mms_content"
|
|
439
448
|
require_relative "pinnacle/types/message_event_rcs_text_content"
|
|
@@ -490,6 +499,8 @@ require_relative "pinnacle/rcs/types/rcs_link_request"
|
|
|
490
499
|
require_relative "pinnacle/webhooks/client"
|
|
491
500
|
require_relative "pinnacle/webhooks/types/get_webhook_params"
|
|
492
501
|
require_relative "pinnacle/webhooks/types/list_webhooks_params"
|
|
502
|
+
require_relative "pinnacle/webhooks/types/attach_webhook_params"
|
|
503
|
+
require_relative "pinnacle/webhooks/types/detach_webhook_params"
|
|
493
504
|
require_relative "pinnacle/audiences/contacts/client"
|
|
494
505
|
require_relative "pinnacle/audiences/contacts/types/remove_contacts_params"
|
|
495
506
|
require_relative "pinnacle/audiences/contacts/types/add_contacts_params"
|
|
@@ -518,7 +529,7 @@ require_relative "pinnacle/messages/schedules/client"
|
|
|
518
529
|
require_relative "pinnacle/messages/schedules/types/list_scheduled_messages_params"
|
|
519
530
|
require_relative "pinnacle/messages/blasts/client"
|
|
520
531
|
require_relative "pinnacle/messages/blasts/types/list_blasts_params"
|
|
521
|
-
require_relative "pinnacle/
|
|
532
|
+
require_relative "pinnacle/messages/simulate/client"
|
|
522
533
|
require_relative "pinnacle/phone_numbers/campaign/client"
|
|
523
534
|
require_relative "pinnacle/phone_numbers/campaign/types/attach_campaign_params"
|
|
524
535
|
require_relative "pinnacle/phone_numbers/campaign/types/detach_campaign_params"
|