rcs 2.0.13 → 2.0.14
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 +1 -1
- data/.fernignore +2 -1
- data/lib/pinnacle/audiences/client.rb +34 -0
- data/lib/pinnacle/audiences/types/list_audiences_params.rb +13 -0
- data/lib/pinnacle/brands/client.rb +34 -0
- data/lib/pinnacle/brands/types/list_brands_params.rb +15 -0
- data/lib/pinnacle/brands/types/list_brands_request_status.rb +18 -0
- data/lib/pinnacle/campaigns/dlc/client.rb +35 -0
- data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_params.rb +17 -0
- data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_request_status.rb +18 -0
- data/lib/pinnacle/campaigns/rcs/client.rb +35 -0
- data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_params.rb +17 -0
- data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_request_status.rb +18 -0
- data/lib/pinnacle/campaigns/toll_free/client.rb +35 -0
- data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +17 -0
- data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status.rb +18 -0
- data/lib/pinnacle/client.rb +1 -1
- data/lib/pinnacle/contacts/client.rb +34 -0
- data/lib/pinnacle/contacts/types/list_contacts_params.rb +16 -0
- data/lib/pinnacle/internal/types/boolean.rb +1 -1
- data/lib/pinnacle/internal/types/utils.rb +2 -2
- data/lib/pinnacle/messages/blasts/client.rb +50 -0
- data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +17 -0
- data/lib/pinnacle/messages/client.rb +44 -0
- data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +2 -0
- data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +0 -1
- data/lib/pinnacle/messages/schedules/client.rb +51 -0
- data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +17 -0
- data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb +16 -0
- data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb +17 -0
- data/lib/pinnacle/messages/types/list_messages_params.rb +21 -0
- data/lib/pinnacle/messages/types/list_messages_request_direction.rb +14 -0
- data/lib/pinnacle/messages/types/list_messages_request_method.rb +15 -0
- data/lib/pinnacle/messages/types/list_messages_request_status.rb +21 -0
- data/lib/pinnacle/messages/types/list_messages_request_type.rb +15 -0
- data/lib/pinnacle/phone_numbers/client.rb +34 -0
- data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +12 -0
- data/lib/pinnacle/rcs/agents/client.rb +50 -0
- data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +16 -0
- data/lib/pinnacle/rcs/agents/types/list_agents_request_agent_type.rb +16 -0
- data/lib/pinnacle/rcs/client.rb +34 -44
- data/lib/pinnacle/rcs/test/client.rb +275 -0
- data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +24 -0
- data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +14 -0
- data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +14 -0
- data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +25 -0
- data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
- data/lib/pinnacle/rcs/types/rcs_link_request.rb +0 -1
- data/lib/pinnacle/rcs/whitelisted_numbers/client.rb +51 -0
- data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +17 -0
- data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_request_status.rb +17 -0
- data/lib/pinnacle/tools/url/client.rb +34 -0
- data/lib/pinnacle/tools/url/types/list_links_params.rb +15 -0
- data/lib/pinnacle/types/agent_email_entry.rb +11 -0
- data/lib/pinnacle/types/agent_phone_entry.rb +11 -0
- data/lib/pinnacle/types/agent_summary.rb +15 -0
- data/lib/pinnacle/types/agent_summary_agent_type.rb +12 -0
- data/lib/pinnacle/types/agent_summary_carrier_launches.rb +13 -0
- data/lib/pinnacle/types/agent_summary_config.rb +21 -0
- data/lib/pinnacle/types/agent_summary_config_agent_use_case.rb +14 -0
- data/lib/pinnacle/types/agent_summary_config_emails_item.rb +10 -0
- data/lib/pinnacle/types/agent_summary_config_phones_item.rb +10 -0
- data/lib/pinnacle/types/agent_summary_config_websites_item.rb +10 -0
- data/lib/pinnacle/types/agent_use_case.rb +14 -0
- data/lib/pinnacle/types/agent_website_entry.rb +11 -0
- data/lib/pinnacle/types/audience_summary.rb +13 -0
- data/lib/pinnacle/types/blast_summary.rb +16 -0
- data/lib/pinnacle/types/blast_summary_type.rb +13 -0
- data/lib/pinnacle/types/carrier_launch_status.rb +13 -0
- data/lib/pinnacle/types/carrier_launches.rb +13 -0
- data/lib/pinnacle/types/dlc_campaign_summary.rb +15 -0
- data/lib/pinnacle/types/dlc_campaign_summary_status.rb +14 -0
- data/lib/pinnacle/types/fallback_message.rb +5 -3
- data/lib/pinnacle/types/link_summary.rb +12 -0
- data/lib/pinnacle/types/list_agents_response.rb +11 -0
- data/lib/pinnacle/types/list_audiences_response.rb +11 -0
- data/lib/pinnacle/types/list_blasts_response.rb +11 -0
- data/lib/pinnacle/types/list_brands_response.rb +11 -0
- data/lib/pinnacle/types/list_contacts_response.rb +11 -0
- data/lib/pinnacle/types/list_dlc_campaigns_response.rb +11 -0
- data/lib/pinnacle/types/list_links_response.rb +11 -0
- data/lib/pinnacle/types/list_messages_response.rb +11 -0
- data/lib/pinnacle/types/list_phone_numbers_response.rb +11 -0
- data/lib/pinnacle/types/list_rcs_campaigns_response.rb +11 -0
- data/lib/pinnacle/types/list_scheduled_messages_response.rb +11 -0
- data/lib/pinnacle/types/list_test_numbers_response.rb +11 -0
- data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +11 -0
- data/lib/pinnacle/types/list_webhooks_response.rb +11 -0
- data/lib/pinnacle/types/message.rb +0 -1
- data/lib/pinnacle/types/message_event.rb +2 -1
- data/lib/pinnacle/types/message_event_fallback_message.rb +6 -6
- data/lib/pinnacle/types/message_list.rb +1 -1
- data/lib/pinnacle/types/message_summary.rb +25 -0
- data/lib/pinnacle/types/{message_with_reaction_direction.rb → message_summary_direction.rb} +1 -1
- data/lib/pinnacle/types/message_summary_method.rb +13 -0
- data/lib/pinnacle/types/message_summary_status.rb +19 -0
- data/lib/pinnacle/types/message_summary_type.rb +13 -0
- data/lib/pinnacle/types/message_with_reactions.rb +11 -0
- data/lib/pinnacle/types/message_with_reactions_direction.rb +12 -0
- data/lib/pinnacle/types/owned_phone_number.rb +14 -0
- data/lib/pinnacle/types/rcs_agent_details.rb +21 -0
- data/lib/pinnacle/types/rcs_agent_details_agent_use_case.rb +14 -0
- data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +10 -0
- data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +10 -0
- data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +10 -0
- data/lib/pinnacle/types/rcs_agent_response.rb +14 -0
- data/lib/pinnacle/types/rcs_campaign_summary.rb +16 -0
- data/lib/pinnacle/types/rcs_campaign_summary_status.rb +14 -0
- data/lib/pinnacle/types/rcs_whitelist_status.rb +13 -0
- data/lib/pinnacle/types/scheduled_message_summary.rb +17 -0
- data/lib/pinnacle/types/scheduled_message_summary_status.rb +13 -0
- data/lib/pinnacle/types/send_rich_message_options.rb +0 -1
- data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +13 -0
- data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +13 -0
- data/lib/pinnacle/types/test_agent_response.rb +13 -0
- data/lib/pinnacle/types/test_agent_whitelist_response.rb +10 -0
- data/lib/pinnacle/types/toll_free_campaign_summary.rb +15 -0
- data/lib/pinnacle/types/toll_free_campaign_summary_status.rb +14 -0
- data/lib/pinnacle/types/webhook_summary.rb +14 -0
- data/lib/pinnacle/types/webhook_summary_status.rb +13 -0
- data/lib/pinnacle/types/whitelisted_number_summary.rb +12 -0
- data/lib/pinnacle/types/whitelisted_number_summary_status.rb +13 -0
- data/lib/pinnacle/version.rb +1 -1
- data/lib/pinnacle/webhooks/client.rb +34 -0
- data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +14 -0
- data/lib/pinnacle/webhooks/types/list_webhooks_request_status.rb +15 -0
- data/lib/pinnacle.rb +95 -6
- data/reference.md +2138 -250
- metadata +101 -7
- data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
- data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
- data/lib/pinnacle/types/message_with_reaction.rb +0 -11
- data/lib/pinnacle/types/rcs_whitelist_response.rb +0 -10
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Schedules
|
|
6
|
+
class Client
|
|
7
|
+
# @param client [Pinnacle::Internal::Http::RawClient]
|
|
8
|
+
#
|
|
9
|
+
# @return [void]
|
|
10
|
+
def initialize(client:)
|
|
11
|
+
@client = client
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# List all scheduled messages with optional filtering and pagination. Results are sorted by creation date,
|
|
15
|
+
# newest first.
|
|
16
|
+
#
|
|
17
|
+
# @param request_options [Hash]
|
|
18
|
+
# @param params [Pinnacle::Messages::Schedules::Types::ListScheduledMessagesParams]
|
|
19
|
+
# @option request_options [String] :base_url
|
|
20
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
21
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
22
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
23
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
24
|
+
#
|
|
25
|
+
# @return [Pinnacle::Types::ListScheduledMessagesResponse]
|
|
26
|
+
def list(request_options: {}, **params)
|
|
27
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
28
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
29
|
+
base_url: request_options[:base_url],
|
|
30
|
+
method: "POST",
|
|
31
|
+
path: "messages/schedules/list",
|
|
32
|
+
body: Pinnacle::Messages::Schedules::Types::ListScheduledMessagesParams.new(params).to_h,
|
|
33
|
+
request_options: request_options
|
|
34
|
+
)
|
|
35
|
+
begin
|
|
36
|
+
response = @client.send(request)
|
|
37
|
+
rescue Net::HTTPRequestTimeout
|
|
38
|
+
raise Pinnacle::Errors::TimeoutError
|
|
39
|
+
end
|
|
40
|
+
code = response.code.to_i
|
|
41
|
+
if code.between?(200, 299)
|
|
42
|
+
Pinnacle::Types::ListScheduledMessagesResponse.load(response.body)
|
|
43
|
+
else
|
|
44
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
45
|
+
raise error_class.new(response.body, code: code)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Schedules
|
|
6
|
+
module Types
|
|
7
|
+
class ListScheduledMessagesParams < Internal::Types::Model
|
|
8
|
+
field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
|
|
9
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
10
|
+
field :status, -> { Pinnacle::Messages::Schedules::Types::ListScheduledMessagesRequestStatus }, optional: true, nullable: false
|
|
11
|
+
field :schedule_type, -> { Pinnacle::Messages::Schedules::Types::ListScheduledMessagesRequestScheduleType }, optional: true, nullable: false, api_name: "scheduleType"
|
|
12
|
+
field :content, -> { String }, optional: true, nullable: false
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Schedules
|
|
6
|
+
module Types
|
|
7
|
+
module ListScheduledMessagesRequestScheduleType
|
|
8
|
+
extend Pinnacle::Internal::Types::Enum
|
|
9
|
+
|
|
10
|
+
MESSAGE = "MESSAGE"
|
|
11
|
+
BLAST = "BLAST"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Schedules
|
|
6
|
+
module Types
|
|
7
|
+
module ListScheduledMessagesRequestStatus
|
|
8
|
+
extend Pinnacle::Internal::Types::Enum
|
|
9
|
+
|
|
10
|
+
ACTIVE = "ACTIVE"
|
|
11
|
+
CANCELLED = "CANCELLED"
|
|
12
|
+
FAILED = "FAILED"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Types
|
|
6
|
+
class ListMessagesParams < Internal::Types::Model
|
|
7
|
+
field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
|
|
8
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
9
|
+
field :direction, -> { Pinnacle::Messages::Types::ListMessagesRequestDirection }, optional: true, nullable: false
|
|
10
|
+
field :status, -> { Pinnacle::Messages::Types::ListMessagesRequestStatus }, optional: true, nullable: false
|
|
11
|
+
field :type, -> { Pinnacle::Messages::Types::ListMessagesRequestType }, optional: true, nullable: false
|
|
12
|
+
field :method_, -> { Pinnacle::Messages::Types::ListMessagesRequestMethod }, optional: true, nullable: false, api_name: "method"
|
|
13
|
+
field :from, -> { String }, optional: true, nullable: false
|
|
14
|
+
field :to, -> { String }, optional: true, nullable: false
|
|
15
|
+
field :content, -> { String }, optional: true, nullable: false
|
|
16
|
+
field :date_from, -> { String }, optional: true, nullable: false, api_name: "dateFrom"
|
|
17
|
+
field :date_to, -> { String }, optional: true, nullable: false, api_name: "dateTo"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Types
|
|
6
|
+
module ListMessagesRequestStatus
|
|
7
|
+
extend Pinnacle::Internal::Types::Enum
|
|
8
|
+
|
|
9
|
+
PENDING = "PENDING"
|
|
10
|
+
SENT = "SENT"
|
|
11
|
+
SEND_FAILED = "SEND_FAILED"
|
|
12
|
+
DELIVERED = "DELIVERED"
|
|
13
|
+
DELIVERY_FAILED = "DELIVERY_FAILED"
|
|
14
|
+
RECEIVED = "RECEIVED"
|
|
15
|
+
READ = "READ"
|
|
16
|
+
QUEUED = "QUEUED"
|
|
17
|
+
FALLBACK_SENT = "FALLBACK_SENT"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -110,6 +110,40 @@ module Pinnacle
|
|
|
110
110
|
end
|
|
111
111
|
end
|
|
112
112
|
|
|
113
|
+
# List all owned phone numbers with pagination. Results are sorted by creation date, newest first.
|
|
114
|
+
#
|
|
115
|
+
# @param request_options [Hash]
|
|
116
|
+
# @param params [Pinnacle::PhoneNumbers::Types::ListPhoneNumbersParams]
|
|
117
|
+
# @option request_options [String] :base_url
|
|
118
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
119
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
120
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
121
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
122
|
+
#
|
|
123
|
+
# @return [Pinnacle::Types::ListPhoneNumbersResponse]
|
|
124
|
+
def list(request_options: {}, **params)
|
|
125
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
126
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
127
|
+
base_url: request_options[:base_url],
|
|
128
|
+
method: "POST",
|
|
129
|
+
path: "phone-numbers/list",
|
|
130
|
+
body: Pinnacle::PhoneNumbers::Types::ListPhoneNumbersParams.new(params).to_h,
|
|
131
|
+
request_options: request_options
|
|
132
|
+
)
|
|
133
|
+
begin
|
|
134
|
+
response = @client.send(request)
|
|
135
|
+
rescue Net::HTTPRequestTimeout
|
|
136
|
+
raise Pinnacle::Errors::TimeoutError
|
|
137
|
+
end
|
|
138
|
+
code = response.code.to_i
|
|
139
|
+
if code.between?(200, 299)
|
|
140
|
+
Pinnacle::Types::ListPhoneNumbersResponse.load(response.body)
|
|
141
|
+
else
|
|
142
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
143
|
+
raise error_class.new(response.body, code: code)
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
113
147
|
# @return [Pinnacle::Webhook::Client]
|
|
114
148
|
def webhook
|
|
115
149
|
@webhook ||= Pinnacle::PhoneNumbers::Webhook::Client.new(client: @client)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module PhoneNumbers
|
|
5
|
+
module Types
|
|
6
|
+
class ListPhoneNumbersParams < Internal::Types::Model
|
|
7
|
+
field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
|
|
8
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Agents
|
|
6
|
+
class Client
|
|
7
|
+
# @param client [Pinnacle::Internal::Http::RawClient]
|
|
8
|
+
#
|
|
9
|
+
# @return [void]
|
|
10
|
+
def initialize(client:)
|
|
11
|
+
@client = client
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# List all RCS agents with pagination. Results are sorted by creation date, newest first.
|
|
15
|
+
#
|
|
16
|
+
# @param request_options [Hash]
|
|
17
|
+
# @param params [Pinnacle::Rcs::Agents::Types::ListAgentsParams]
|
|
18
|
+
# @option request_options [String] :base_url
|
|
19
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
20
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
21
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
22
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
23
|
+
#
|
|
24
|
+
# @return [Pinnacle::Types::ListAgentsResponse]
|
|
25
|
+
def list(request_options: {}, **params)
|
|
26
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
27
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
28
|
+
base_url: request_options[:base_url],
|
|
29
|
+
method: "POST",
|
|
30
|
+
path: "rcs/agents/list",
|
|
31
|
+
body: Pinnacle::Rcs::Agents::Types::ListAgentsParams.new(params).to_h,
|
|
32
|
+
request_options: request_options
|
|
33
|
+
)
|
|
34
|
+
begin
|
|
35
|
+
response = @client.send(request)
|
|
36
|
+
rescue Net::HTTPRequestTimeout
|
|
37
|
+
raise Pinnacle::Errors::TimeoutError
|
|
38
|
+
end
|
|
39
|
+
code = response.code.to_i
|
|
40
|
+
if code.between?(200, 299)
|
|
41
|
+
Pinnacle::Types::ListAgentsResponse.load(response.body)
|
|
42
|
+
else
|
|
43
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
44
|
+
raise error_class.new(response.body, code: code)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Agents
|
|
6
|
+
module Types
|
|
7
|
+
class ListAgentsParams < Internal::Types::Model
|
|
8
|
+
field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
|
|
9
|
+
field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
|
|
10
|
+
field :agent_type, -> { Pinnacle::Rcs::Agents::Types::ListAgentsRequestAgentType }, optional: true, nullable: false, api_name: "agentType"
|
|
11
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Agents
|
|
6
|
+
module Types
|
|
7
|
+
module ListAgentsRequestAgentType
|
|
8
|
+
extend Pinnacle::Internal::Types::Enum
|
|
9
|
+
|
|
10
|
+
PRODUCTION = "PRODUCTION"
|
|
11
|
+
TEST = "TEST"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/pinnacle/rcs/client.rb
CHANGED
|
@@ -10,27 +10,27 @@ module Pinnacle
|
|
|
10
10
|
@client = client
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
#
|
|
13
|
+
# Retrieve details of an RCS agent by its ID.
|
|
14
14
|
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
15
|
+
# Returns the agent's configuration including display name, description, logo, hero image,
|
|
16
|
+
# contact information, and other settings.
|
|
17
17
|
#
|
|
18
18
|
# @param request_options [Hash]
|
|
19
|
-
# @param params [
|
|
19
|
+
# @param params [Hash]
|
|
20
20
|
# @option request_options [String] :base_url
|
|
21
21
|
# @option request_options [Hash{String => Object}] :additional_headers
|
|
22
22
|
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
23
23
|
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
24
24
|
# @option request_options [Integer] :timeout_in_seconds
|
|
25
|
+
# @option params [String] :agent_id
|
|
25
26
|
#
|
|
26
|
-
# @return [
|
|
27
|
-
def
|
|
27
|
+
# @return [Pinnacle::Types::RcsAgentResponse]
|
|
28
|
+
def get_agent(request_options: {}, **params)
|
|
28
29
|
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
29
30
|
request = Pinnacle::Internal::JSON::Request.new(
|
|
30
31
|
base_url: request_options[:base_url],
|
|
31
|
-
method: "
|
|
32
|
-
path: "rcs
|
|
33
|
-
body: Pinnacle::Rcs::Types::RcsCapabilitiesQuery.new(params).to_h,
|
|
32
|
+
method: "GET",
|
|
33
|
+
path: "rcs/#{params[:agent_id]}",
|
|
34
34
|
request_options: request_options
|
|
35
35
|
)
|
|
36
36
|
begin
|
|
@@ -40,59 +40,34 @@ module Pinnacle
|
|
|
40
40
|
end
|
|
41
41
|
code = response.code.to_i
|
|
42
42
|
if code.between?(200, 299)
|
|
43
|
-
Pinnacle::Types::
|
|
43
|
+
Pinnacle::Types::RcsAgentResponse.load(response.body)
|
|
44
44
|
else
|
|
45
45
|
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
46
46
|
raise error_class.new(response.body, code: code)
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
# ## Overview
|
|
53
|
-
# During development and testing, RCS agents can only send messages to whitelisted phone numbers.
|
|
54
|
-
# Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
|
|
55
|
-
#
|
|
56
|
-
# ## Verification Process
|
|
57
|
-
# After whitelisting a number, you'll need to complete verification:
|
|
58
|
-
#
|
|
59
|
-
# 1. Check the test device for message from "RBM Tester Management"
|
|
60
|
-
# 2. Click the "Make me a tester" button
|
|
61
|
-
# 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
|
|
62
|
-
# ```
|
|
63
|
-
# https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
|
|
64
|
-
# ```
|
|
65
|
-
#
|
|
66
|
-
# > **⚠️ Important: Re-whitelisting Numbers**
|
|
67
|
-
# >
|
|
68
|
-
# > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester
|
|
69
|
-
# Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
|
|
50
|
+
# Check RCS capabilities for one or more phone numbers.
|
|
70
51
|
#
|
|
71
|
-
#
|
|
72
|
-
#
|
|
73
|
-
# > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a
|
|
74
|
-
# tester" button on the test device.
|
|
75
|
-
# > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled
|
|
76
|
-
# number.
|
|
77
|
-
# > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually
|
|
78
|
-
# restored shortly.
|
|
52
|
+
# This endpoint allows you to verify which RCS features (cards, buttons, etc.) are supported
|
|
53
|
+
# on specific phone numbers before sending RCS messages to them.
|
|
79
54
|
#
|
|
80
55
|
# @param request_options [Hash]
|
|
81
|
-
# @param params [Pinnacle::Rcs::Types::
|
|
56
|
+
# @param params [Pinnacle::Rcs::Types::RcsCapabilitiesQuery]
|
|
82
57
|
# @option request_options [String] :base_url
|
|
83
58
|
# @option request_options [Hash{String => Object}] :additional_headers
|
|
84
59
|
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
85
60
|
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
86
61
|
# @option request_options [Integer] :timeout_in_seconds
|
|
87
62
|
#
|
|
88
|
-
# @return [Pinnacle::Types::
|
|
89
|
-
def
|
|
63
|
+
# @return [Hash[String, Pinnacle::Types::RcsCapability, nil]]
|
|
64
|
+
def get_capabilities(request_options: {}, **params)
|
|
90
65
|
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
91
66
|
request = Pinnacle::Internal::JSON::Request.new(
|
|
92
67
|
base_url: request_options[:base_url],
|
|
93
68
|
method: "POST",
|
|
94
|
-
path: "rcs/
|
|
95
|
-
body: Pinnacle::Rcs::Types::
|
|
69
|
+
path: "rcs/capabilities",
|
|
70
|
+
body: Pinnacle::Rcs::Types::RcsCapabilitiesQuery.new(params).to_h,
|
|
96
71
|
request_options: request_options
|
|
97
72
|
)
|
|
98
73
|
begin
|
|
@@ -102,7 +77,7 @@ module Pinnacle
|
|
|
102
77
|
end
|
|
103
78
|
code = response.code.to_i
|
|
104
79
|
if code.between?(200, 299)
|
|
105
|
-
Pinnacle::Types::
|
|
80
|
+
Pinnacle::Types::RcsCapabilitiesResult.load(response.body)
|
|
106
81
|
else
|
|
107
82
|
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
108
83
|
raise error_class.new(response.body, code: code)
|
|
@@ -145,6 +120,21 @@ module Pinnacle
|
|
|
145
120
|
raise error_class.new(response.body, code: code)
|
|
146
121
|
end
|
|
147
122
|
end
|
|
123
|
+
|
|
124
|
+
# @return [Pinnacle::Agents::Client]
|
|
125
|
+
def agents
|
|
126
|
+
@agents ||= Pinnacle::Rcs::Agents::Client.new(client: @client)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# @return [Pinnacle::WhitelistedNumbers::Client]
|
|
130
|
+
def whitelisted_numbers
|
|
131
|
+
@whitelisted_numbers ||= Pinnacle::Rcs::WhitelistedNumbers::Client.new(client: @client)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# @return [Pinnacle::Test::Client]
|
|
135
|
+
def test
|
|
136
|
+
@test ||= Pinnacle::Rcs::Test::Client.new(client: @client)
|
|
137
|
+
end
|
|
148
138
|
end
|
|
149
139
|
end
|
|
150
140
|
end
|