rcs 2.0.13 → 2.0.15
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 +2 -2
- 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/rcs/types/upsert_rcs_campaign_params.rb +3 -6
- 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 +32 -3
- 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/attach_webhook_response_webhook.rb +1 -2
- data/lib/pinnacle/types/attach_webhook_result.rb +12 -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/detach_webhook_result.rb +11 -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/extended_rcs_campaign.rb +3 -6
- data/lib/pinnacle/types/failed_sender.rb +10 -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.rb +3 -6
- data/lib/pinnacle/types/rcs_campaign_summary.rb +15 -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_event_enum.rb +1 -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 +113 -0
- data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +15 -0
- data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +12 -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 +102 -18
- data/reference.md +2327 -454
- metadata +106 -17
- data/lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb +0 -15
- data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
- data/lib/pinnacle/phone_numbers/webhook/client.rb +0 -90
- data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
- 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/message_with_reaction.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
- data/lib/pinnacle/types/rcs_whitelist_response.rb +0 -10
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Test
|
|
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
|
+
# Create a new RCS test agent for development and testing.
|
|
15
|
+
#
|
|
16
|
+
# ## Overview
|
|
17
|
+
#
|
|
18
|
+
# Test agents let you build and test full RCS functionality — rich cards, carousels, buttons,
|
|
19
|
+
# quick replies, and media messages — without going through the full carrier review process.
|
|
20
|
+
# Messages from test agents can only be sent to [whitelisted phone
|
|
21
|
+
# numbers](/api-reference/rcs-agents/test/whitelist-number).
|
|
22
|
+
#
|
|
23
|
+
# ## Limits
|
|
24
|
+
#
|
|
25
|
+
# - **Maximum 5 test agents per account.**
|
|
26
|
+
#
|
|
27
|
+
# ## Image Requirements
|
|
28
|
+
#
|
|
29
|
+
# | Image | Format | Max Size |
|
|
30
|
+
# |-------|--------|----------|
|
|
31
|
+
# | Logo | JPEG, PNG | 50 KB |
|
|
32
|
+
# | Hero | JPEG, PNG | 200 KB |
|
|
33
|
+
#
|
|
34
|
+
# ## After Creation
|
|
35
|
+
#
|
|
36
|
+
# Once your test agent is created, you'll need to:
|
|
37
|
+
#
|
|
38
|
+
# 1. **Whitelist test phone numbers** using [`POST
|
|
39
|
+
# /rcs/test/agents/{agentId}/whitelist`](/api-reference/rcs-agents/test/whitelist-number).
|
|
40
|
+
# 2. **Accept the tester invite** on each whitelisted device.
|
|
41
|
+
# 3. **Send messages** using [`POST /messages/send/rcs`](/api-reference/messages/send-rcs) with the returned
|
|
42
|
+
# agent ID as the `from` field.
|
|
43
|
+
#
|
|
44
|
+
# > **2-Minute Cooldown**
|
|
45
|
+
# >
|
|
46
|
+
# > After creating a test agent, there is a mandatory 2-minute cooldown before you can whitelist phone numbers.
|
|
47
|
+
# > This is a requirement imposed by Google's RBM platform.
|
|
48
|
+
#
|
|
49
|
+
# @param request_options [Hash]
|
|
50
|
+
# @param params [Pinnacle::Rcs::Test::Types::CreateTestAgentRequest]
|
|
51
|
+
# @option request_options [String] :base_url
|
|
52
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
53
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
54
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
55
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
56
|
+
#
|
|
57
|
+
# @return [Pinnacle::Types::TestAgentResponse]
|
|
58
|
+
def create_agent(request_options: {}, **params)
|
|
59
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
60
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
61
|
+
base_url: request_options[:base_url],
|
|
62
|
+
method: "POST",
|
|
63
|
+
path: "rcs/test/agents",
|
|
64
|
+
body: Pinnacle::Rcs::Test::Types::CreateTestAgentRequest.new(params).to_h,
|
|
65
|
+
request_options: request_options
|
|
66
|
+
)
|
|
67
|
+
begin
|
|
68
|
+
response = @client.send(request)
|
|
69
|
+
rescue Net::HTTPRequestTimeout
|
|
70
|
+
raise Pinnacle::Errors::TimeoutError
|
|
71
|
+
end
|
|
72
|
+
code = response.code.to_i
|
|
73
|
+
if code.between?(200, 299)
|
|
74
|
+
Pinnacle::Types::TestAgentResponse.load(response.body)
|
|
75
|
+
else
|
|
76
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
77
|
+
raise error_class.new(response.body, code: code)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Update an existing RCS test agent's configuration.
|
|
82
|
+
#
|
|
83
|
+
# All fields are optional — only include the fields you want to update.
|
|
84
|
+
#
|
|
85
|
+
# ## Image Requirements
|
|
86
|
+
#
|
|
87
|
+
# If updating images, the same requirements apply as when creating an agent:
|
|
88
|
+
#
|
|
89
|
+
# | Image | Format | Max Size |
|
|
90
|
+
# |-------|--------|----------|
|
|
91
|
+
# | Logo | JPEG, PNG | 50 KB |
|
|
92
|
+
# | Hero | JPEG, PNG | 200 KB |
|
|
93
|
+
#
|
|
94
|
+
# > **2-Minute Cooldown**
|
|
95
|
+
# >
|
|
96
|
+
# > After updating a test agent, there is a mandatory 2-minute cooldown before you can whitelist phone numbers.
|
|
97
|
+
# > This is a requirement imposed by Google's RBM platform.
|
|
98
|
+
#
|
|
99
|
+
# @param request_options [Hash]
|
|
100
|
+
# @param params [Pinnacle::Rcs::Test::Types::UpdateTestAgentRequest]
|
|
101
|
+
# @option request_options [String] :base_url
|
|
102
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
103
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
104
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
105
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
106
|
+
# @option params [String] :agent_id
|
|
107
|
+
#
|
|
108
|
+
# @return [Pinnacle::Types::TestAgentResponse]
|
|
109
|
+
def update_agent(request_options: {}, **params)
|
|
110
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
111
|
+
request_data = Pinnacle::Rcs::Test::Types::UpdateTestAgentRequest.new(params).to_h
|
|
112
|
+
non_body_param_names = ["agentId"]
|
|
113
|
+
body = request_data.except(*non_body_param_names)
|
|
114
|
+
|
|
115
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
116
|
+
base_url: request_options[:base_url],
|
|
117
|
+
method: "PATCH",
|
|
118
|
+
path: "rcs/test/agents/#{params[:agent_id]}",
|
|
119
|
+
body: body,
|
|
120
|
+
request_options: request_options
|
|
121
|
+
)
|
|
122
|
+
begin
|
|
123
|
+
response = @client.send(request)
|
|
124
|
+
rescue Net::HTTPRequestTimeout
|
|
125
|
+
raise Pinnacle::Errors::TimeoutError
|
|
126
|
+
end
|
|
127
|
+
code = response.code.to_i
|
|
128
|
+
if code.between?(200, 299)
|
|
129
|
+
Pinnacle::Types::TestAgentResponse.load(response.body)
|
|
130
|
+
else
|
|
131
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
132
|
+
raise error_class.new(response.body, code: code)
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# Whitelist a phone number for testing with a specific test agent.
|
|
137
|
+
#
|
|
138
|
+
# During development and testing, RCS agents can only send messages to whitelisted phone numbers.
|
|
139
|
+
# Use this endpoint to whitelist specific phone numbers so you can send and receive messages from the test
|
|
140
|
+
# agent.
|
|
141
|
+
#
|
|
142
|
+
# ## Verification Process
|
|
143
|
+
#
|
|
144
|
+
# After whitelisting, the recipient must accept the tester invite:
|
|
145
|
+
#
|
|
146
|
+
# 1. The recipient's device will receive a message from "RBM Tester Management".
|
|
147
|
+
# 2. The recipient must tap "Make me a tester" to accept.
|
|
148
|
+
# 3. Once accepted, the status transitions from `PENDING` to `ACCEPTED`.
|
|
149
|
+
#
|
|
150
|
+
# ## Verification
|
|
151
|
+
#
|
|
152
|
+
# <div style="display: flex; gap: 16px;">
|
|
153
|
+
# <div style="flex: 1; text-align: center;">
|
|
154
|
+
# <strong>Accepting the invite</strong><br/>
|
|
155
|
+
# <img src="https://pncl.to/f769cAvCbEx-MmezZjR6dz6KVkr5ZO" alt="Accepting the tester invite" style="max-width:
|
|
156
|
+
# 100%;" />
|
|
157
|
+
# </div>
|
|
158
|
+
# <div style="flex: 1; text-align: center;">
|
|
159
|
+
# <strong>Declining the invite</strong><br/>
|
|
160
|
+
# <img src="https://pncl.to/VRere3tEKfx4n0HNaxK-vwl7pbLHTJ" alt="Declining the tester invite" style="max-width:
|
|
161
|
+
# 100%;" />
|
|
162
|
+
# </div>
|
|
163
|
+
# </div>
|
|
164
|
+
#
|
|
165
|
+
# ## Cooldown
|
|
166
|
+
#
|
|
167
|
+
# There is a **2-minute cooldown** after creating or updating a test agent before you can whitelist numbers.
|
|
168
|
+
# Attempting to whitelist during the cooldown returns a `500` error with the remaining wait time.
|
|
169
|
+
#
|
|
170
|
+
# @param request_options [Hash]
|
|
171
|
+
# @param params [Pinnacle::Rcs::Test::Types::TestAgentWhitelistRequest]
|
|
172
|
+
# @option request_options [String] :base_url
|
|
173
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
174
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
175
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
176
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
177
|
+
# @option params [String] :agent_id
|
|
178
|
+
#
|
|
179
|
+
# @return [Pinnacle::Types::TestAgentWhitelistResponse]
|
|
180
|
+
def whitelist_number(request_options: {}, **params)
|
|
181
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
182
|
+
request_data = Pinnacle::Rcs::Test::Types::TestAgentWhitelistRequest.new(params).to_h
|
|
183
|
+
non_body_param_names = ["agentId"]
|
|
184
|
+
body = request_data.except(*non_body_param_names)
|
|
185
|
+
|
|
186
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
187
|
+
base_url: request_options[:base_url],
|
|
188
|
+
method: "POST",
|
|
189
|
+
path: "rcs/test/agents/#{params[:agent_id]}/whitelist",
|
|
190
|
+
body: body,
|
|
191
|
+
request_options: request_options
|
|
192
|
+
)
|
|
193
|
+
begin
|
|
194
|
+
response = @client.send(request)
|
|
195
|
+
rescue Net::HTTPRequestTimeout
|
|
196
|
+
raise Pinnacle::Errors::TimeoutError
|
|
197
|
+
end
|
|
198
|
+
code = response.code.to_i
|
|
199
|
+
if code.between?(200, 299)
|
|
200
|
+
Pinnacle::Types::TestAgentWhitelistResponse.load(response.body)
|
|
201
|
+
else
|
|
202
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
203
|
+
raise error_class.new(response.body, code: code)
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
# Check the current whitelist status of a phone number for a specific test agent.
|
|
208
|
+
#
|
|
209
|
+
# Use this endpoint to poll the status of a previously whitelisted number and determine
|
|
210
|
+
# whether the recipient has accepted or rejected the tester invite.
|
|
211
|
+
#
|
|
212
|
+
# ## Status Values
|
|
213
|
+
#
|
|
214
|
+
# - **`PENDING`** — The tester invite was sent but the recipient has not yet responded. Ask the recipient to
|
|
215
|
+
# check their messages and accept the invite.
|
|
216
|
+
# - **`ACCEPTED`** — The recipient accepted the invite. Messages can be exchanged.
|
|
217
|
+
# - **`REJECTED`** — The recipient rejected the invite or the invite could not be delivered since the carrier
|
|
218
|
+
# does not support test agents. If the user rejected the invite, they can accept it again by tapping "Make me a
|
|
219
|
+
# tester" in the same message from "RBM Tester Management".
|
|
220
|
+
#
|
|
221
|
+
# <div style="display: flex; gap: 16px;">
|
|
222
|
+
# <div style="flex: 1; text-align: center;">
|
|
223
|
+
# <strong>Accepting the invite</strong><br/>
|
|
224
|
+
# <img src="https://pncl.to/f769cAvCbEx-MmezZjR6dz6KVkr5ZO" alt="Accepting the tester invite" style="max-width:
|
|
225
|
+
# 100%;" />
|
|
226
|
+
# </div>
|
|
227
|
+
# <div style="flex: 1; text-align: center;">
|
|
228
|
+
# <strong>Declining the invite</strong><br/>
|
|
229
|
+
# <img src="https://pncl.to/VRere3tEKfx4n0HNaxK-vwl7pbLHTJ" alt="Declining the tester invite" style="max-width:
|
|
230
|
+
# 100%;" />
|
|
231
|
+
# </div>
|
|
232
|
+
# </div>
|
|
233
|
+
#
|
|
234
|
+
# @param request_options [Hash]
|
|
235
|
+
# @param params [Hash]
|
|
236
|
+
# @option request_options [String] :base_url
|
|
237
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
238
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
239
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
240
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
241
|
+
# @option params [String] :agent_id
|
|
242
|
+
# @option params [String] :phone_number
|
|
243
|
+
#
|
|
244
|
+
# @return [Pinnacle::Types::TestAgentWhitelistResponse]
|
|
245
|
+
def get_whitelist_status(request_options: {}, **params)
|
|
246
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
247
|
+
query_param_names = %i[phone_number]
|
|
248
|
+
query_params = {}
|
|
249
|
+
query_params["phoneNumber"] = params[:phone_number] if params.key?(:phone_number)
|
|
250
|
+
params = params.except(*query_param_names)
|
|
251
|
+
|
|
252
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
253
|
+
base_url: request_options[:base_url],
|
|
254
|
+
method: "GET",
|
|
255
|
+
path: "rcs/test/agents/#{params[:agent_id]}/numbers",
|
|
256
|
+
query: query_params,
|
|
257
|
+
request_options: request_options
|
|
258
|
+
)
|
|
259
|
+
begin
|
|
260
|
+
response = @client.send(request)
|
|
261
|
+
rescue Net::HTTPRequestTimeout
|
|
262
|
+
raise Pinnacle::Errors::TimeoutError
|
|
263
|
+
end
|
|
264
|
+
code = response.code.to_i
|
|
265
|
+
if code.between?(200, 299)
|
|
266
|
+
Pinnacle::Types::TestAgentWhitelistResponse.load(response.body)
|
|
267
|
+
else
|
|
268
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
269
|
+
raise error_class.new(response.body, code: code)
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Test
|
|
6
|
+
module Types
|
|
7
|
+
class CreateTestAgentRequest < Internal::Types::Model
|
|
8
|
+
field :display_name, -> { String }, optional: false, nullable: false, api_name: "displayName"
|
|
9
|
+
field :description, -> { String }, optional: false, nullable: false
|
|
10
|
+
field :logo_url, -> { String }, optional: false, nullable: false, api_name: "logoUrl"
|
|
11
|
+
field :hero_url, -> { String }, optional: false, nullable: false, api_name: "heroUrl"
|
|
12
|
+
field :phone_numbers, -> { Internal::Types::Array[Pinnacle::Types::AgentPhoneEntry] }, optional: false, nullable: false, api_name: "phoneNumbers"
|
|
13
|
+
field :emails, -> { Internal::Types::Array[Pinnacle::Types::AgentEmailEntry] }, optional: false, nullable: false
|
|
14
|
+
field :websites, -> { Internal::Types::Array[Pinnacle::Types::AgentWebsiteEntry] }, optional: false, nullable: false
|
|
15
|
+
field :privacy_url, -> { String }, optional: false, nullable: false, api_name: "privacyUrl"
|
|
16
|
+
field :terms_url, -> { String }, optional: false, nullable: false, api_name: "termsUrl"
|
|
17
|
+
field :color, -> { String }, optional: false, nullable: false
|
|
18
|
+
field :is_conversational, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "isConversational"
|
|
19
|
+
field :agent_use_case, -> { Pinnacle::Types::AgentUseCase }, optional: true, nullable: false, api_name: "agentUseCase"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Test
|
|
6
|
+
module Types
|
|
7
|
+
class TestAgentWhitelistRequest < Internal::Types::Model
|
|
8
|
+
field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
|
|
9
|
+
field :phone_number, -> { String }, optional: false, nullable: false, api_name: "phoneNumber"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Test
|
|
6
|
+
module Types
|
|
7
|
+
class TestGetWhitelistStatusRequest < Internal::Types::Model
|
|
8
|
+
field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
|
|
9
|
+
field :phone_number, -> { String }, optional: false, nullable: false, api_name: "phoneNumber"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module Test
|
|
6
|
+
module Types
|
|
7
|
+
class UpdateTestAgentRequest < Internal::Types::Model
|
|
8
|
+
field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
|
|
9
|
+
field :display_name, -> { String }, optional: true, nullable: false, api_name: "displayName"
|
|
10
|
+
field :description, -> { String }, optional: true, nullable: false
|
|
11
|
+
field :logo_url, -> { String }, optional: true, nullable: false, api_name: "logoUrl"
|
|
12
|
+
field :hero_url, -> { String }, optional: true, nullable: false, api_name: "heroUrl"
|
|
13
|
+
field :phone_numbers, -> { Internal::Types::Array[Pinnacle::Types::AgentPhoneEntry] }, optional: true, nullable: false, api_name: "phoneNumbers"
|
|
14
|
+
field :emails, -> { Internal::Types::Array[Pinnacle::Types::AgentEmailEntry] }, optional: true, nullable: false
|
|
15
|
+
field :websites, -> { Internal::Types::Array[Pinnacle::Types::AgentWebsiteEntry] }, optional: true, nullable: false
|
|
16
|
+
field :privacy_url, -> { String }, optional: true, nullable: false, api_name: "privacyUrl"
|
|
17
|
+
field :terms_url, -> { String }, optional: true, nullable: false, api_name: "termsUrl"
|
|
18
|
+
field :color, -> { String }, optional: true, nullable: false
|
|
19
|
+
field :is_conversational, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isConversational"
|
|
20
|
+
field :agent_use_case, -> { Pinnacle::Types::AgentUseCase }, optional: true, nullable: false, api_name: "agentUseCase"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -5,6 +5,7 @@ module Pinnacle
|
|
|
5
5
|
module Types
|
|
6
6
|
class RcsCapabilitiesQuery < Internal::Types::Model
|
|
7
7
|
field :phone_numbers, -> { Internal::Types::Array[String] }, optional: false, nullable: false, api_name: "phoneNumbers"
|
|
8
|
+
field :agent_id, -> { String }, optional: true, nullable: false, api_name: "agentId"
|
|
8
9
|
end
|
|
9
10
|
end
|
|
10
11
|
end
|
|
@@ -5,7 +5,6 @@ module Pinnacle
|
|
|
5
5
|
module Types
|
|
6
6
|
class RcsLinkRequest < Internal::Types::Model
|
|
7
7
|
field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
|
|
8
|
-
field :test_mode, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "testMode"
|
|
9
8
|
field :phone_number, -> { String }, optional: true, nullable: false, api_name: "phoneNumber"
|
|
10
9
|
field :body, -> { String }, optional: true, nullable: false
|
|
11
10
|
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module WhitelistedNumbers
|
|
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 whitelisted test numbers with optional filtering and pagination. Results are sorted by creation date,
|
|
15
|
+
# newest first.
|
|
16
|
+
#
|
|
17
|
+
# @param request_options [Hash]
|
|
18
|
+
# @param params [Pinnacle::Rcs::WhitelistedNumbers::Types::ListTestNumbersParams]
|
|
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::ListTestNumbersResponse]
|
|
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: "rcs/test/numbers/list",
|
|
32
|
+
body: Pinnacle::Rcs::WhitelistedNumbers::Types::ListTestNumbersParams.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::ListTestNumbersResponse.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 Rcs
|
|
5
|
+
module WhitelistedNumbers
|
|
6
|
+
module Types
|
|
7
|
+
class ListTestNumbersParams < 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_id, -> { String }, optional: true, nullable: false, api_name: "agentId"
|
|
11
|
+
field :number, -> { String }, optional: true, nullable: false
|
|
12
|
+
field :status, -> { Pinnacle::Rcs::WhitelistedNumbers::Types::ListTestNumbersRequestStatus }, optional: true, nullable: false
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Rcs
|
|
5
|
+
module WhitelistedNumbers
|
|
6
|
+
module Types
|
|
7
|
+
module ListTestNumbersRequestStatus
|
|
8
|
+
extend Pinnacle::Internal::Types::Enum
|
|
9
|
+
|
|
10
|
+
ACCEPTED = "ACCEPTED"
|
|
11
|
+
REJECTED = "REJECTED"
|
|
12
|
+
PENDING = "PENDING"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -118,6 +118,40 @@ module Pinnacle
|
|
|
118
118
|
raise error_class.new(response.body, code: code)
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
|
+
|
|
122
|
+
# List all shortened URLs with pagination. Results are sorted by creation date, newest first.
|
|
123
|
+
#
|
|
124
|
+
# @param request_options [Hash]
|
|
125
|
+
# @param params [Pinnacle::Tools::Url::Types::ListLinksParams]
|
|
126
|
+
# @option request_options [String] :base_url
|
|
127
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
128
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
129
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
130
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
131
|
+
#
|
|
132
|
+
# @return [Pinnacle::Types::ListLinksResponse]
|
|
133
|
+
def list(request_options: {}, **params)
|
|
134
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
135
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
136
|
+
base_url: request_options[:base_url],
|
|
137
|
+
method: "POST",
|
|
138
|
+
path: "tools/url/list",
|
|
139
|
+
body: Pinnacle::Tools::Url::Types::ListLinksParams.new(params).to_h,
|
|
140
|
+
request_options: request_options
|
|
141
|
+
)
|
|
142
|
+
begin
|
|
143
|
+
response = @client.send(request)
|
|
144
|
+
rescue Net::HTTPRequestTimeout
|
|
145
|
+
raise Pinnacle::Errors::TimeoutError
|
|
146
|
+
end
|
|
147
|
+
code = response.code.to_i
|
|
148
|
+
if code.between?(200, 299)
|
|
149
|
+
Pinnacle::Types::ListLinksResponse.load(response.body)
|
|
150
|
+
else
|
|
151
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
152
|
+
raise error_class.new(response.body, code: code)
|
|
153
|
+
end
|
|
154
|
+
end
|
|
121
155
|
end
|
|
122
156
|
end
|
|
123
157
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Tools
|
|
5
|
+
module Url
|
|
6
|
+
module Types
|
|
7
|
+
class ListLinksParams < 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 :endpoint, -> { String }, optional: true, nullable: false
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# An email contact entry for the RCS agent's contact information.
|
|
6
|
+
class AgentEmailEntry < Internal::Types::Model
|
|
7
|
+
field :address, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :label, -> { String }, optional: false, nullable: false
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# A phone number contact entry for the RCS agent's contact information.
|
|
6
|
+
class AgentPhoneEntry < Internal::Types::Model
|
|
7
|
+
field :number, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :label, -> { String }, optional: false, nullable: false
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
class AgentSummary < Internal::Types::Model
|
|
6
|
+
field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
|
|
7
|
+
field :agent_type, -> { Pinnacle::Types::AgentSummaryAgentType }, optional: false, nullable: false, api_name: "agentType"
|
|
8
|
+
field :service_id, -> { String }, optional: true, nullable: false, api_name: "serviceId"
|
|
9
|
+
field :carrier_launches, -> { Pinnacle::Types::AgentSummaryCarrierLaunches }, optional: true, nullable: false, api_name: "carrierLaunches"
|
|
10
|
+
field :config, -> { Pinnacle::Types::AgentSummaryConfig }, optional: true, nullable: false
|
|
11
|
+
field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
|
|
12
|
+
field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Per-carrier launch status for the agent.
|
|
6
|
+
class AgentSummaryCarrierLaunches < Internal::Types::Model
|
|
7
|
+
field :att, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "ATT"
|
|
8
|
+
field :others, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "OTHERS"
|
|
9
|
+
field :tmobile, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "TMOBILE"
|
|
10
|
+
field :verizon, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "VERIZON"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Agent configuration details.
|
|
6
|
+
class AgentSummaryConfig < Internal::Types::Model
|
|
7
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
8
|
+
field :description, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :color, -> { String }, optional: true, nullable: false
|
|
10
|
+
field :websites, -> { Internal::Types::Array[Pinnacle::Types::AgentSummaryConfigWebsitesItem] }, optional: true, nullable: false
|
|
11
|
+
field :phones, -> { Internal::Types::Array[Pinnacle::Types::AgentSummaryConfigPhonesItem] }, optional: true, nullable: false
|
|
12
|
+
field :emails, -> { Internal::Types::Array[Pinnacle::Types::AgentSummaryConfigEmailsItem] }, optional: true, nullable: false
|
|
13
|
+
field :icon_url, -> { String }, optional: true, nullable: false, api_name: "iconUrl"
|
|
14
|
+
field :hero_url, -> { String }, optional: true, nullable: false, api_name: "heroUrl"
|
|
15
|
+
field :privacy_url, -> { String }, optional: true, nullable: false, api_name: "privacyUrl"
|
|
16
|
+
field :terms_url, -> { String }, optional: true, nullable: false, api_name: "termsUrl"
|
|
17
|
+
field :is_conversational, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isConversational"
|
|
18
|
+
field :agent_use_case, -> { Pinnacle::Types::AgentSummaryConfigAgentUseCase }, optional: true, nullable: false, api_name: "agentUseCase"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
module AgentSummaryConfigAgentUseCase
|
|
6
|
+
extend Pinnacle::Internal::Types::Enum
|
|
7
|
+
|
|
8
|
+
TRANSACTIONAL = "TRANSACTIONAL"
|
|
9
|
+
PROMOTIONAL = "PROMOTIONAL"
|
|
10
|
+
OTP = "OTP"
|
|
11
|
+
MULTI_USE = "MULTI_USE"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
class AgentSummaryConfigEmailsItem < Internal::Types::Model
|
|
6
|
+
field :email, -> { String }, optional: true, nullable: false
|
|
7
|
+
field :label, -> { String }, optional: true, nullable: false
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
class AgentSummaryConfigPhonesItem < Internal::Types::Model
|
|
6
|
+
field :phone, -> { String }, optional: true, nullable: false
|
|
7
|
+
field :label, -> { String }, optional: true, nullable: false
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
class AgentSummaryConfigWebsitesItem < Internal::Types::Model
|
|
6
|
+
field :url, -> { String }, optional: true, nullable: false
|
|
7
|
+
field :label, -> { String }, optional: true, nullable: false
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|