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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c99a464d0f0ef9afe1e7b08f06a9a20cb97840340c52de58fe006490c6e8941
4
- data.tar.gz: e15cbae3c8c44e7eb7d023fb762fc41678120d3122ea9cb7febdade3b65912b0
3
+ metadata.gz: 3edce2029ee0605b95569ddf5681f98c17041bb376e2d480487cac489f7a3373
4
+ data.tar.gz: c8ab3851d9d26d7502df2c3183c35525d7aed0b18831fbbf100b158f001cb3a8
5
5
  SHA512:
6
- metadata.gz: 1adea3a08c1c1e0580e64042cca8b267df2503b8efa6b460e553350abb99b0b40ffe77056a8501b5dbdc73e65413916e21b8fb5ad0dc70af8144b16ba5d329d4
7
- data.tar.gz: ec0ffc8495e23302b34c21fc335bebc8d7c6953fae0c13141b3fda5812fbe86a84e007ddbfdc0cef05e501f8e7d67c9cf85af6dc1b19e1564efef5ed4b55029d
6
+ metadata.gz: 2bde1ac9823654bb075fafb0fee86d1b7874fc6f9b161021efbf11ae1cdbc465e1db7791c0e87fd15d9c01693f2994946156485f9ba40e318a1968174852ed6c
7
+ data.tar.gz: eca831fdf06ad136fa518a08bd5fe00782d2e86c512a433af37dd7a741148d1bc3762c22a873cf9061a68eeb7c3044e7ca865fa717985f615e4b5739a65a46c7
data/.fern/metadata.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "cliVersion": "3.51.3",
3
3
  "generatorName": "fernapi/fern-ruby-sdk",
4
- "generatorVersion": "1.0.0-rc84",
4
+ "generatorVersion": "1.0.0-rc85",
5
5
  "generatorConfig": {
6
6
  "clientModuleName": "PinnacleBaseClient",
7
7
  "flattenModuleStructure": true,
8
8
  "useProvidedDefaults": true
9
9
  },
10
- "sdkVersion": "2.0.13"
10
+ "sdkVersion": "2.0.15"
11
11
  }
data/.fernignore CHANGED
@@ -2,4 +2,5 @@
2
2
  README.md
3
3
  lib/pinnacle/wrapper
4
4
  lib/pinnacle/pinnacle_client.rb
5
- lib/rcs.rb
5
+ lib/rcs.rb
6
+ .github/workflows/ci.yml
@@ -168,6 +168,40 @@ module Pinnacle
168
168
  end
169
169
  end
170
170
 
171
+ # List all audiences with optional filtering and pagination. Results are sorted by creation date, newest first.
172
+ #
173
+ # @param request_options [Hash]
174
+ # @param params [Pinnacle::Audiences::Types::ListAudiencesParams]
175
+ # @option request_options [String] :base_url
176
+ # @option request_options [Hash{String => Object}] :additional_headers
177
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
178
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
179
+ # @option request_options [Integer] :timeout_in_seconds
180
+ #
181
+ # @return [Pinnacle::Types::ListAudiencesResponse]
182
+ def list(request_options: {}, **params)
183
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
184
+ request = Pinnacle::Internal::JSON::Request.new(
185
+ base_url: request_options[:base_url],
186
+ method: "POST",
187
+ path: "audiences/list",
188
+ body: Pinnacle::Audiences::Types::ListAudiencesParams.new(params).to_h,
189
+ request_options: request_options
190
+ )
191
+ begin
192
+ response = @client.send(request)
193
+ rescue Net::HTTPRequestTimeout
194
+ raise Pinnacle::Errors::TimeoutError
195
+ end
196
+ code = response.code.to_i
197
+ if code.between?(200, 299)
198
+ Pinnacle::Types::ListAudiencesResponse.load(response.body)
199
+ else
200
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
201
+ raise error_class.new(response.body, code: code)
202
+ end
203
+ end
204
+
171
205
  # @return [Pinnacle::Contacts::Client]
172
206
  def contacts
173
207
  @contacts ||= Pinnacle::Audiences::Contacts::Client.new(client: @client)
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Audiences
5
+ module Types
6
+ class ListAudiencesParams < 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 :name, -> { String }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -233,6 +233,40 @@ module Pinnacle
233
233
  raise error_class.new(response.body, code: code)
234
234
  end
235
235
  end
236
+
237
+ # List all brands with optional filtering and pagination. Results are sorted by creation date, newest first.
238
+ #
239
+ # @param request_options [Hash]
240
+ # @param params [Pinnacle::Brands::Types::ListBrandsParams]
241
+ # @option request_options [String] :base_url
242
+ # @option request_options [Hash{String => Object}] :additional_headers
243
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
244
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
245
+ # @option request_options [Integer] :timeout_in_seconds
246
+ #
247
+ # @return [Pinnacle::Types::ListBrandsResponse]
248
+ def list(request_options: {}, **params)
249
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
250
+ request = Pinnacle::Internal::JSON::Request.new(
251
+ base_url: request_options[:base_url],
252
+ method: "POST",
253
+ path: "brands/list",
254
+ body: Pinnacle::Brands::Types::ListBrandsParams.new(params).to_h,
255
+ request_options: request_options
256
+ )
257
+ begin
258
+ response = @client.send(request)
259
+ rescue Net::HTTPRequestTimeout
260
+ raise Pinnacle::Errors::TimeoutError
261
+ end
262
+ code = response.code.to_i
263
+ if code.between?(200, 299)
264
+ Pinnacle::Types::ListBrandsResponse.load(response.body)
265
+ else
266
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
267
+ raise error_class.new(response.body, code: code)
268
+ end
269
+ end
236
270
  end
237
271
  end
238
272
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Brands
5
+ module Types
6
+ class ListBrandsParams < 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 :status, -> { Pinnacle::Brands::Types::ListBrandsRequestStatus }, optional: true, nullable: false
10
+ field :is_archived, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isArchived"
11
+ field :name, -> { String }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Brands
5
+ module Types
6
+ module ListBrandsRequestStatus
7
+ extend Pinnacle::Internal::Types::Enum
8
+
9
+ PENDING = "PENDING"
10
+ UNVERIFIED = "UNVERIFIED"
11
+ VERIFIED = "VERIFIED"
12
+ VETTED = "VETTED"
13
+ FAILED = "FAILED"
14
+ INCOMPLETE = "INCOMPLETE"
15
+ end
16
+ end
17
+ end
18
+ end
@@ -192,6 +192,41 @@ module Pinnacle
192
192
  raise error_class.new(response.body, code: code)
193
193
  end
194
194
  end
195
+
196
+ # List all 10DLC campaigns with optional filtering and pagination. Results are sorted by creation date, newest
197
+ # first.
198
+ #
199
+ # @param request_options [Hash]
200
+ # @param params [Pinnacle::Campaigns::Dlc::Types::ListDlcCampaignsParams]
201
+ # @option request_options [String] :base_url
202
+ # @option request_options [Hash{String => Object}] :additional_headers
203
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
204
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
205
+ # @option request_options [Integer] :timeout_in_seconds
206
+ #
207
+ # @return [Pinnacle::Types::ListDlcCampaignsResponse]
208
+ def list(request_options: {}, **params)
209
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
210
+ request = Pinnacle::Internal::JSON::Request.new(
211
+ base_url: request_options[:base_url],
212
+ method: "POST",
213
+ path: "campaigns/dlc/list",
214
+ body: Pinnacle::Campaigns::Dlc::Types::ListDlcCampaignsParams.new(params).to_h,
215
+ request_options: request_options
216
+ )
217
+ begin
218
+ response = @client.send(request)
219
+ rescue Net::HTTPRequestTimeout
220
+ raise Pinnacle::Errors::TimeoutError
221
+ end
222
+ code = response.code.to_i
223
+ if code.between?(200, 299)
224
+ Pinnacle::Types::ListDlcCampaignsResponse.load(response.body)
225
+ else
226
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
227
+ raise error_class.new(response.body, code: code)
228
+ end
229
+ end
195
230
  end
196
231
  end
197
232
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Campaigns
5
+ module Dlc
6
+ module Types
7
+ class ListDlcCampaignsParams < 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::Campaigns::Dlc::Types::ListDlcCampaignsRequestStatus }, optional: true, nullable: false
11
+ field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
12
+ field :name, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Campaigns
5
+ module Dlc
6
+ module Types
7
+ module ListDlcCampaignsRequestStatus
8
+ extend Pinnacle::Internal::Types::Enum
9
+
10
+ INCOMPLETE = "INCOMPLETE"
11
+ IN_REVIEW = "IN REVIEW"
12
+ VERIFIED = "VERIFIED"
13
+ FAILED = "FAILED"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -190,6 +190,41 @@ module Pinnacle
190
190
  raise error_class.new(response.body, code: code)
191
191
  end
192
192
  end
193
+
194
+ # List all RCS campaigns with optional filtering and pagination. Results are sorted by creation date, newest
195
+ # first.
196
+ #
197
+ # @param request_options [Hash]
198
+ # @param params [Pinnacle::Campaigns::Rcs::Types::ListRcsCampaignsParams]
199
+ # @option request_options [String] :base_url
200
+ # @option request_options [Hash{String => Object}] :additional_headers
201
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
202
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
203
+ # @option request_options [Integer] :timeout_in_seconds
204
+ #
205
+ # @return [Pinnacle::Types::ListRcsCampaignsResponse]
206
+ def list(request_options: {}, **params)
207
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
208
+ request = Pinnacle::Internal::JSON::Request.new(
209
+ base_url: request_options[:base_url],
210
+ method: "POST",
211
+ path: "campaigns/rcs/list",
212
+ body: Pinnacle::Campaigns::Rcs::Types::ListRcsCampaignsParams.new(params).to_h,
213
+ request_options: request_options
214
+ )
215
+ begin
216
+ response = @client.send(request)
217
+ rescue Net::HTTPRequestTimeout
218
+ raise Pinnacle::Errors::TimeoutError
219
+ end
220
+ code = response.code.to_i
221
+ if code.between?(200, 299)
222
+ Pinnacle::Types::ListRcsCampaignsResponse.load(response.body)
223
+ else
224
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
225
+ raise error_class.new(response.body, code: code)
226
+ end
227
+ end
193
228
  end
194
229
  end
195
230
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Campaigns
5
+ module Rcs
6
+ module Types
7
+ class ListRcsCampaignsParams < 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::Campaigns::Rcs::Types::ListRcsCampaignsRequestStatus }, optional: true, nullable: false
11
+ field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
12
+ field :name, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Campaigns
5
+ module Rcs
6
+ module Types
7
+ module ListRcsCampaignsRequestStatus
8
+ extend Pinnacle::Internal::Types::Enum
9
+
10
+ INCOMPLETE = "INCOMPLETE"
11
+ IN_REVIEW = "IN REVIEW"
12
+ VERIFIED = "VERIFIED"
13
+ FAILED = "FAILED"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -10,15 +10,12 @@ module Pinnacle
10
10
  field :campaign_id, -> { String }, optional: true, nullable: false, api_name: "campaignId"
11
11
  field :expected_agent_responses, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "expectedAgentResponses"
12
12
  field :links, -> { Pinnacle::Campaigns::Rcs::Types::RcsLinks }, optional: true, nullable: false
13
- field :use_case, -> { Pinnacle::Campaigns::Rcs::Types::RcsUseCase }, optional: true, nullable: false, api_name: "useCase"
14
- field :opt_in_terms_and_conditions, -> { String }, optional: true, nullable: false, api_name: "optInTermsAndConditions"
13
+ field :use_case_description, -> { String }, optional: true, nullable: false, api_name: "useCaseDescription"
15
14
  field :messaging_type, -> { Pinnacle::Types::RcsMessagingTypeEnum }, optional: true, nullable: false, api_name: "messagingType"
16
- field :carrier_description, -> { String }, optional: true, nullable: false, api_name: "carrierDescription"
15
+ field :cta_media, -> { String }, optional: true, nullable: false, api_name: "ctaMedia"
16
+ field :opt_in_method, -> { String }, optional: true, nullable: false, api_name: "optInMethod"
17
17
  field :keywords, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignKeywords }, optional: true, nullable: false
18
18
  field :traffic, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignTraffic }, optional: true, nullable: false
19
- field :agent_triggers, -> { String }, optional: true, nullable: false, api_name: "agentTriggers"
20
- field :interaction_description, -> { String }, optional: true, nullable: false, api_name: "interactionDescription"
21
- field :is_conversational, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isConversational"
22
19
  field :cta_language, -> { String }, optional: true, nullable: false, api_name: "ctaLanguage"
23
20
  field :demo_trigger, -> { String }, optional: true, nullable: false, api_name: "demoTrigger"
24
21
  end
@@ -192,6 +192,41 @@ module Pinnacle
192
192
  raise error_class.new(response.body, code: code)
193
193
  end
194
194
  end
195
+
196
+ # List all toll-free campaigns with optional filtering and pagination. Results are sorted by creation date,
197
+ # newest first.
198
+ #
199
+ # @param request_options [Hash]
200
+ # @param params [Pinnacle::Campaigns::TollFree::Types::ListTollFreeCampaignsParams]
201
+ # @option request_options [String] :base_url
202
+ # @option request_options [Hash{String => Object}] :additional_headers
203
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
204
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
205
+ # @option request_options [Integer] :timeout_in_seconds
206
+ #
207
+ # @return [Pinnacle::Types::ListTollFreeCampaignsResponse]
208
+ def list(request_options: {}, **params)
209
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
210
+ request = Pinnacle::Internal::JSON::Request.new(
211
+ base_url: request_options[:base_url],
212
+ method: "POST",
213
+ path: "campaigns/toll-free/list",
214
+ body: Pinnacle::Campaigns::TollFree::Types::ListTollFreeCampaignsParams.new(params).to_h,
215
+ request_options: request_options
216
+ )
217
+ begin
218
+ response = @client.send(request)
219
+ rescue Net::HTTPRequestTimeout
220
+ raise Pinnacle::Errors::TimeoutError
221
+ end
222
+ code = response.code.to_i
223
+ if code.between?(200, 299)
224
+ Pinnacle::Types::ListTollFreeCampaignsResponse.load(response.body)
225
+ else
226
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
227
+ raise error_class.new(response.body, code: code)
228
+ end
229
+ end
195
230
  end
196
231
  end
197
232
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Campaigns
5
+ module TollFree
6
+ module Types
7
+ class ListTollFreeCampaignsParams < 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::Campaigns::TollFree::Types::ListTollFreeCampaignsRequestStatus }, optional: true, nullable: false
11
+ field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
12
+ field :name, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Campaigns
5
+ module TollFree
6
+ module Types
7
+ module ListTollFreeCampaignsRequestStatus
8
+ extend Pinnacle::Internal::Types::Enum
9
+
10
+ INCOMPLETE = "INCOMPLETE"
11
+ IN_REVIEW = "IN REVIEW"
12
+ VERIFIED = "VERIFIED"
13
+ FAILED = "FAILED"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -10,7 +10,7 @@ module Pinnacle
10
10
  @raw_client = Pinnacle::Internal::Http::RawClient.new(
11
11
  base_url: base_url || Pinnacle::Environment::DEFAULT,
12
12
  headers: {
13
- "User-Agent" => "rcs/2.0.13",
13
+ "User-Agent" => "rcs/2.0.15",
14
14
  "X-Fern-Language" => "Ruby",
15
15
  "PINNACLE-API-KEY" => api_key.to_s
16
16
  }
@@ -119,6 +119,40 @@ module Pinnacle
119
119
  raise error_class.new(response.body, code: code)
120
120
  end
121
121
  end
122
+
123
+ # List all contacts with optional filtering and pagination. Results are sorted by creation date, newest first.
124
+ #
125
+ # @param request_options [Hash]
126
+ # @param params [Pinnacle::Contacts::Types::ListContactsParams]
127
+ # @option request_options [String] :base_url
128
+ # @option request_options [Hash{String => Object}] :additional_headers
129
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
130
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
131
+ # @option request_options [Integer] :timeout_in_seconds
132
+ #
133
+ # @return [Pinnacle::Types::ListContactsResponse]
134
+ def list(request_options: {}, **params)
135
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
136
+ request = Pinnacle::Internal::JSON::Request.new(
137
+ base_url: request_options[:base_url],
138
+ method: "POST",
139
+ path: "contacts/list",
140
+ body: Pinnacle::Contacts::Types::ListContactsParams.new(params).to_h,
141
+ request_options: request_options
142
+ )
143
+ begin
144
+ response = @client.send(request)
145
+ rescue Net::HTTPRequestTimeout
146
+ raise Pinnacle::Errors::TimeoutError
147
+ end
148
+ code = response.code.to_i
149
+ if code.between?(200, 299)
150
+ Pinnacle::Types::ListContactsResponse.load(response.body)
151
+ else
152
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
153
+ raise error_class.new(response.body, code: code)
154
+ end
155
+ end
122
156
  end
123
157
  end
124
158
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Contacts
5
+ module Types
6
+ class ListContactsParams < 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 :phone_number, -> { String }, optional: true, nullable: false, api_name: "phoneNumber"
10
+ field :name, -> { String }, optional: true, nullable: false
11
+ field :tags, -> { Internal::Types::Array[String] }, optional: true, nullable: false
12
+ field :is_archived, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isArchived"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -17,7 +17,7 @@ module Pinnacle
17
17
  def self.coerce(value, strict: strict?)
18
18
  case value
19
19
  when TrueClass, FalseClass
20
- value
20
+ return value
21
21
  when Integer
22
22
  return value == 1
23
23
  when String
@@ -81,10 +81,10 @@ module Pinnacle
81
81
  }
82
82
  return type.coerce(value, strict: strict)
83
83
  else
84
- value
84
+ return value
85
85
  end
86
86
  else
87
- value
87
+ return value
88
88
  end
89
89
 
90
90
  raise Errors::TypeError, "cannot coerce value of type `#{value.class}` to `#{target}`" if strict
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Messages
5
+ module Blasts
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 blasts with optional filtering and pagination. Results are sorted by creation date, newest first.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Pinnacle::Messages::Blasts::Types::ListBlastsParams]
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::ListBlastsResponse]
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: "messages/blasts/list",
31
+ body: Pinnacle::Messages::Blasts::Types::ListBlastsParams.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::ListBlastsResponse.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,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Messages
5
+ module Blasts
6
+ module Types
7
+ class ListBlastsParams < 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 :audience_id, -> { String }, optional: true, nullable: false, api_name: "audienceId"
11
+ field :sender, -> { String }, optional: true, nullable: false
12
+ field :content, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -78,6 +78,40 @@ module Pinnacle
78
78
  end
79
79
  end
80
80
 
81
+ # List all messages with optional filtering and pagination. Results are sorted by creation date, newest first.
82
+ #
83
+ # @param request_options [Hash]
84
+ # @param params [Pinnacle::Messages::Types::ListMessagesParams]
85
+ # @option request_options [String] :base_url
86
+ # @option request_options [Hash{String => Object}] :additional_headers
87
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
88
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
89
+ # @option request_options [Integer] :timeout_in_seconds
90
+ #
91
+ # @return [Pinnacle::Types::ListMessagesResponse]
92
+ def list(request_options: {}, **params)
93
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
94
+ request = Pinnacle::Internal::JSON::Request.new(
95
+ base_url: request_options[:base_url],
96
+ method: "POST",
97
+ path: "messages/list",
98
+ body: Pinnacle::Messages::Types::ListMessagesParams.new(params).to_h,
99
+ request_options: request_options
100
+ )
101
+ begin
102
+ response = @client.send(request)
103
+ rescue Net::HTTPRequestTimeout
104
+ raise Pinnacle::Errors::TimeoutError
105
+ end
106
+ code = response.code.to_i
107
+ if code.between?(200, 299)
108
+ Pinnacle::Types::ListMessagesResponse.load(response.body)
109
+ else
110
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
111
+ raise error_class.new(response.body, code: code)
112
+ end
113
+ end
114
+
81
115
  # @return [Pinnacle::Sms::Client]
82
116
  def sms
83
117
  @sms ||= Pinnacle::Messages::Sms::Client.new(client: @client)
@@ -102,6 +136,16 @@ module Pinnacle
102
136
  def schedule
103
137
  @schedule ||= Pinnacle::Messages::Schedule::Client.new(client: @client)
104
138
  end
139
+
140
+ # @return [Pinnacle::Schedules::Client]
141
+ def schedules
142
+ @schedules ||= Pinnacle::Messages::Schedules::Client.new(client: @client)
143
+ end
144
+
145
+ # @return [Pinnacle::Blasts::Client]
146
+ def blasts
147
+ @blasts ||= Pinnacle::Messages::Blasts::Client.new(client: @client)
148
+ end
105
149
  end
106
150
  end
107
151
  end
@@ -9,6 +9,8 @@ module Pinnacle
9
9
 
10
10
  member -> { Pinnacle::Types::SentRichMessage }
11
11
  member -> { Pinnacle::Types::ScheduledMessage }
12
+ member -> { Pinnacle::Types::SentRichMessageFallbackSms }
13
+ member -> { Pinnacle::Types::SentRichMessageFallbackMms }
12
14
  end
13
15
  end
14
16
  end