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.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +2 -2
  3. data/.fernignore +2 -1
  4. data/lib/pinnacle/audiences/client.rb +34 -0
  5. data/lib/pinnacle/audiences/types/list_audiences_params.rb +13 -0
  6. data/lib/pinnacle/brands/client.rb +34 -0
  7. data/lib/pinnacle/brands/types/list_brands_params.rb +15 -0
  8. data/lib/pinnacle/brands/types/list_brands_request_status.rb +18 -0
  9. data/lib/pinnacle/campaigns/dlc/client.rb +35 -0
  10. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_params.rb +17 -0
  11. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_request_status.rb +18 -0
  12. data/lib/pinnacle/campaigns/rcs/client.rb +35 -0
  13. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_params.rb +17 -0
  14. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_request_status.rb +18 -0
  15. data/lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb +3 -6
  16. data/lib/pinnacle/campaigns/toll_free/client.rb +35 -0
  17. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +17 -0
  18. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status.rb +18 -0
  19. data/lib/pinnacle/client.rb +1 -1
  20. data/lib/pinnacle/contacts/client.rb +34 -0
  21. data/lib/pinnacle/contacts/types/list_contacts_params.rb +16 -0
  22. data/lib/pinnacle/internal/types/boolean.rb +1 -1
  23. data/lib/pinnacle/internal/types/utils.rb +2 -2
  24. data/lib/pinnacle/messages/blasts/client.rb +50 -0
  25. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +17 -0
  26. data/lib/pinnacle/messages/client.rb +44 -0
  27. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +2 -0
  28. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +0 -1
  29. data/lib/pinnacle/messages/schedules/client.rb +51 -0
  30. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +17 -0
  31. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb +16 -0
  32. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb +17 -0
  33. data/lib/pinnacle/messages/types/list_messages_params.rb +21 -0
  34. data/lib/pinnacle/messages/types/list_messages_request_direction.rb +14 -0
  35. data/lib/pinnacle/messages/types/list_messages_request_method.rb +15 -0
  36. data/lib/pinnacle/messages/types/list_messages_request_status.rb +21 -0
  37. data/lib/pinnacle/messages/types/list_messages_request_type.rb +15 -0
  38. data/lib/pinnacle/phone_numbers/client.rb +32 -3
  39. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +12 -0
  40. data/lib/pinnacle/rcs/agents/client.rb +50 -0
  41. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +16 -0
  42. data/lib/pinnacle/rcs/agents/types/list_agents_request_agent_type.rb +16 -0
  43. data/lib/pinnacle/rcs/client.rb +34 -44
  44. data/lib/pinnacle/rcs/test/client.rb +275 -0
  45. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +24 -0
  46. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +14 -0
  47. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +14 -0
  48. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +25 -0
  49. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  50. data/lib/pinnacle/rcs/types/rcs_link_request.rb +0 -1
  51. data/lib/pinnacle/rcs/whitelisted_numbers/client.rb +51 -0
  52. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +17 -0
  53. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_request_status.rb +17 -0
  54. data/lib/pinnacle/tools/url/client.rb +34 -0
  55. data/lib/pinnacle/tools/url/types/list_links_params.rb +15 -0
  56. data/lib/pinnacle/types/agent_email_entry.rb +11 -0
  57. data/lib/pinnacle/types/agent_phone_entry.rb +11 -0
  58. data/lib/pinnacle/types/agent_summary.rb +15 -0
  59. data/lib/pinnacle/types/agent_summary_agent_type.rb +12 -0
  60. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +13 -0
  61. data/lib/pinnacle/types/agent_summary_config.rb +21 -0
  62. data/lib/pinnacle/types/agent_summary_config_agent_use_case.rb +14 -0
  63. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +10 -0
  64. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +10 -0
  65. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +10 -0
  66. data/lib/pinnacle/types/agent_use_case.rb +14 -0
  67. data/lib/pinnacle/types/agent_website_entry.rb +11 -0
  68. data/lib/pinnacle/types/attach_webhook_response_webhook.rb +1 -2
  69. data/lib/pinnacle/types/attach_webhook_result.rb +12 -0
  70. data/lib/pinnacle/types/audience_summary.rb +13 -0
  71. data/lib/pinnacle/types/blast_summary.rb +16 -0
  72. data/lib/pinnacle/types/blast_summary_type.rb +13 -0
  73. data/lib/pinnacle/types/carrier_launch_status.rb +13 -0
  74. data/lib/pinnacle/types/carrier_launches.rb +13 -0
  75. data/lib/pinnacle/types/detach_webhook_result.rb +11 -0
  76. data/lib/pinnacle/types/dlc_campaign_summary.rb +15 -0
  77. data/lib/pinnacle/types/dlc_campaign_summary_status.rb +14 -0
  78. data/lib/pinnacle/types/extended_rcs_campaign.rb +3 -6
  79. data/lib/pinnacle/types/failed_sender.rb +10 -0
  80. data/lib/pinnacle/types/fallback_message.rb +5 -3
  81. data/lib/pinnacle/types/link_summary.rb +12 -0
  82. data/lib/pinnacle/types/list_agents_response.rb +11 -0
  83. data/lib/pinnacle/types/list_audiences_response.rb +11 -0
  84. data/lib/pinnacle/types/list_blasts_response.rb +11 -0
  85. data/lib/pinnacle/types/list_brands_response.rb +11 -0
  86. data/lib/pinnacle/types/list_contacts_response.rb +11 -0
  87. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +11 -0
  88. data/lib/pinnacle/types/list_links_response.rb +11 -0
  89. data/lib/pinnacle/types/list_messages_response.rb +11 -0
  90. data/lib/pinnacle/types/list_phone_numbers_response.rb +11 -0
  91. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +11 -0
  92. data/lib/pinnacle/types/list_scheduled_messages_response.rb +11 -0
  93. data/lib/pinnacle/types/list_test_numbers_response.rb +11 -0
  94. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +11 -0
  95. data/lib/pinnacle/types/list_webhooks_response.rb +11 -0
  96. data/lib/pinnacle/types/message.rb +0 -1
  97. data/lib/pinnacle/types/message_event.rb +2 -1
  98. data/lib/pinnacle/types/message_event_fallback_message.rb +6 -6
  99. data/lib/pinnacle/types/message_list.rb +1 -1
  100. data/lib/pinnacle/types/message_summary.rb +25 -0
  101. data/lib/pinnacle/types/{message_with_reaction_direction.rb → message_summary_direction.rb} +1 -1
  102. data/lib/pinnacle/types/message_summary_method.rb +13 -0
  103. data/lib/pinnacle/types/message_summary_status.rb +19 -0
  104. data/lib/pinnacle/types/message_summary_type.rb +13 -0
  105. data/lib/pinnacle/types/message_with_reactions.rb +11 -0
  106. data/lib/pinnacle/types/message_with_reactions_direction.rb +12 -0
  107. data/lib/pinnacle/types/owned_phone_number.rb +14 -0
  108. data/lib/pinnacle/types/rcs_agent_details.rb +21 -0
  109. data/lib/pinnacle/types/rcs_agent_details_agent_use_case.rb +14 -0
  110. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +10 -0
  111. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +10 -0
  112. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +10 -0
  113. data/lib/pinnacle/types/rcs_agent_response.rb +14 -0
  114. data/lib/pinnacle/types/rcs_campaign.rb +3 -6
  115. data/lib/pinnacle/types/rcs_campaign_summary.rb +15 -0
  116. data/lib/pinnacle/types/rcs_campaign_summary_status.rb +14 -0
  117. data/lib/pinnacle/types/rcs_whitelist_status.rb +13 -0
  118. data/lib/pinnacle/types/scheduled_message_summary.rb +17 -0
  119. data/lib/pinnacle/types/scheduled_message_summary_status.rb +13 -0
  120. data/lib/pinnacle/types/send_rich_message_options.rb +0 -1
  121. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +13 -0
  122. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +13 -0
  123. data/lib/pinnacle/types/test_agent_response.rb +13 -0
  124. data/lib/pinnacle/types/test_agent_whitelist_response.rb +10 -0
  125. data/lib/pinnacle/types/toll_free_campaign_summary.rb +15 -0
  126. data/lib/pinnacle/types/toll_free_campaign_summary_status.rb +14 -0
  127. data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
  128. data/lib/pinnacle/types/webhook_summary.rb +14 -0
  129. data/lib/pinnacle/types/webhook_summary_status.rb +13 -0
  130. data/lib/pinnacle/types/whitelisted_number_summary.rb +12 -0
  131. data/lib/pinnacle/types/whitelisted_number_summary_status.rb +13 -0
  132. data/lib/pinnacle/version.rb +1 -1
  133. data/lib/pinnacle/webhooks/client.rb +113 -0
  134. data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +15 -0
  135. data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +12 -0
  136. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +14 -0
  137. data/lib/pinnacle/webhooks/types/list_webhooks_request_status.rb +15 -0
  138. data/lib/pinnacle.rb +102 -18
  139. data/reference.md +2327 -454
  140. metadata +106 -17
  141. data/lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb +0 -15
  142. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
  143. data/lib/pinnacle/phone_numbers/webhook/client.rb +0 -90
  144. data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
  145. data/lib/pinnacle/types/attach_webhook_by_id_params.rb +0 -11
  146. data/lib/pinnacle/types/attach_webhook_params.rb +0 -15
  147. data/lib/pinnacle/types/configured_webhook.rb +0 -13
  148. data/lib/pinnacle/types/create_and_attach_webhook_by_url_params.rb +0 -12
  149. data/lib/pinnacle/types/detached_webhook_info.rb +0 -11
  150. data/lib/pinnacle/types/message_with_reaction.rb +0 -11
  151. data/lib/pinnacle/types/rcs_campaign_schema_extra_use_case.rb +0 -11
  152. data/lib/pinnacle/types/rcs_campaign_schema_use_case.rb +0 -11
  153. data/lib/pinnacle/types/rcs_campaign_use_case_enum.rb +0 -43
  154. data/lib/pinnacle/types/rcs_whitelist_response.rb +0 -10
@@ -7,7 +7,6 @@ module Pinnacle
7
7
  class SendTypingIndicatorSchema < Internal::Types::Model
8
8
  field :agent_id, -> { String }, optional: false, nullable: false, api_name: "agentId"
9
9
  field :to, -> { String }, optional: false, nullable: false
10
- field :options, -> { Pinnacle::Messages::Rcs::Types::SendTypingIndicatorSchemaOptions }, optional: true, nullable: false
11
10
  end
12
11
  end
13
12
  end
@@ -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,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Messages
5
+ module Types
6
+ module ListMessagesRequestDirection
7
+ extend Pinnacle::Internal::Types::Enum
8
+
9
+ INBOUND = "INBOUND"
10
+ OUTBOUND = "OUTBOUND"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Messages
5
+ module Types
6
+ module ListMessagesRequestMethod
7
+ extend Pinnacle::Internal::Types::Enum
8
+
9
+ API = "API"
10
+ SDK = "SDK"
11
+ OTHER = "OTHER"
12
+ end
13
+ end
14
+ end
15
+ 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
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Messages
5
+ module Types
6
+ module ListMessagesRequestType
7
+ extend Pinnacle::Internal::Types::Enum
8
+
9
+ SMS = "SMS"
10
+ MMS = "MMS"
11
+ RCS = "RCS"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -110,9 +110,38 @@ module Pinnacle
110
110
  end
111
111
  end
112
112
 
113
- # @return [Pinnacle::Webhook::Client]
114
- def webhook
115
- @webhook ||= Pinnacle::PhoneNumbers::Webhook::Client.new(client: @client)
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
116
145
  end
117
146
 
118
147
  # @return [Pinnacle::Campaign::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
@@ -10,27 +10,27 @@ module Pinnacle
10
10
  @client = client
11
11
  end
12
12
 
13
- # Check RCS capabilities for one or more phone numbers.
13
+ # Retrieve details of an RCS agent by its ID.
14
14
  #
15
- # This endpoint allows you to verify which RCS features (cards, buttons, etc.) are supported
16
- # on specific phone numbers before sending RCS messages to them.
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 [Pinnacle::Rcs::Types::RcsCapabilitiesQuery]
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 [Hash[String, Pinnacle::Types::RcsCapability, nil]]
27
- def get_capabilities(request_options: {}, **params)
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: "POST",
32
- path: "rcs/capabilities",
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::RcsCapabilitiesResult.load(response.body)
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
- # Whitelist a phone number for testing with your test RCS agent.
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
- # > **Important Notes**
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::RcsWhitelistRequest]
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::RcsWhitelistResponse]
89
- def whitelist(request_options: {}, **params)
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/whitelist",
95
- body: Pinnacle::Rcs::Types::RcsWhitelistRequest.new(params).to_h,
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::RcsWhitelistResponse.load(response.body)
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