rcs 2.0.13 → 2.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +1 -1
  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/toll_free/client.rb +35 -0
  16. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +17 -0
  17. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_request_status.rb +18 -0
  18. data/lib/pinnacle/client.rb +1 -1
  19. data/lib/pinnacle/contacts/client.rb +34 -0
  20. data/lib/pinnacle/contacts/types/list_contacts_params.rb +16 -0
  21. data/lib/pinnacle/internal/types/boolean.rb +1 -1
  22. data/lib/pinnacle/internal/types/utils.rb +2 -2
  23. data/lib/pinnacle/messages/blasts/client.rb +50 -0
  24. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +17 -0
  25. data/lib/pinnacle/messages/client.rb +44 -0
  26. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +2 -0
  27. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +0 -1
  28. data/lib/pinnacle/messages/schedules/client.rb +51 -0
  29. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +17 -0
  30. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb +16 -0
  31. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb +17 -0
  32. data/lib/pinnacle/messages/types/list_messages_params.rb +21 -0
  33. data/lib/pinnacle/messages/types/list_messages_request_direction.rb +14 -0
  34. data/lib/pinnacle/messages/types/list_messages_request_method.rb +15 -0
  35. data/lib/pinnacle/messages/types/list_messages_request_status.rb +21 -0
  36. data/lib/pinnacle/messages/types/list_messages_request_type.rb +15 -0
  37. data/lib/pinnacle/phone_numbers/client.rb +34 -0
  38. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +12 -0
  39. data/lib/pinnacle/rcs/agents/client.rb +50 -0
  40. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +16 -0
  41. data/lib/pinnacle/rcs/agents/types/list_agents_request_agent_type.rb +16 -0
  42. data/lib/pinnacle/rcs/client.rb +34 -44
  43. data/lib/pinnacle/rcs/test/client.rb +275 -0
  44. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +24 -0
  45. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +14 -0
  46. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +14 -0
  47. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +25 -0
  48. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  49. data/lib/pinnacle/rcs/types/rcs_link_request.rb +0 -1
  50. data/lib/pinnacle/rcs/whitelisted_numbers/client.rb +51 -0
  51. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +17 -0
  52. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_request_status.rb +17 -0
  53. data/lib/pinnacle/tools/url/client.rb +34 -0
  54. data/lib/pinnacle/tools/url/types/list_links_params.rb +15 -0
  55. data/lib/pinnacle/types/agent_email_entry.rb +11 -0
  56. data/lib/pinnacle/types/agent_phone_entry.rb +11 -0
  57. data/lib/pinnacle/types/agent_summary.rb +15 -0
  58. data/lib/pinnacle/types/agent_summary_agent_type.rb +12 -0
  59. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +13 -0
  60. data/lib/pinnacle/types/agent_summary_config.rb +21 -0
  61. data/lib/pinnacle/types/agent_summary_config_agent_use_case.rb +14 -0
  62. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +10 -0
  63. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +10 -0
  64. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +10 -0
  65. data/lib/pinnacle/types/agent_use_case.rb +14 -0
  66. data/lib/pinnacle/types/agent_website_entry.rb +11 -0
  67. data/lib/pinnacle/types/audience_summary.rb +13 -0
  68. data/lib/pinnacle/types/blast_summary.rb +16 -0
  69. data/lib/pinnacle/types/blast_summary_type.rb +13 -0
  70. data/lib/pinnacle/types/carrier_launch_status.rb +13 -0
  71. data/lib/pinnacle/types/carrier_launches.rb +13 -0
  72. data/lib/pinnacle/types/dlc_campaign_summary.rb +15 -0
  73. data/lib/pinnacle/types/dlc_campaign_summary_status.rb +14 -0
  74. data/lib/pinnacle/types/fallback_message.rb +5 -3
  75. data/lib/pinnacle/types/link_summary.rb +12 -0
  76. data/lib/pinnacle/types/list_agents_response.rb +11 -0
  77. data/lib/pinnacle/types/list_audiences_response.rb +11 -0
  78. data/lib/pinnacle/types/list_blasts_response.rb +11 -0
  79. data/lib/pinnacle/types/list_brands_response.rb +11 -0
  80. data/lib/pinnacle/types/list_contacts_response.rb +11 -0
  81. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +11 -0
  82. data/lib/pinnacle/types/list_links_response.rb +11 -0
  83. data/lib/pinnacle/types/list_messages_response.rb +11 -0
  84. data/lib/pinnacle/types/list_phone_numbers_response.rb +11 -0
  85. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +11 -0
  86. data/lib/pinnacle/types/list_scheduled_messages_response.rb +11 -0
  87. data/lib/pinnacle/types/list_test_numbers_response.rb +11 -0
  88. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +11 -0
  89. data/lib/pinnacle/types/list_webhooks_response.rb +11 -0
  90. data/lib/pinnacle/types/message.rb +0 -1
  91. data/lib/pinnacle/types/message_event.rb +2 -1
  92. data/lib/pinnacle/types/message_event_fallback_message.rb +6 -6
  93. data/lib/pinnacle/types/message_list.rb +1 -1
  94. data/lib/pinnacle/types/message_summary.rb +25 -0
  95. data/lib/pinnacle/types/{message_with_reaction_direction.rb → message_summary_direction.rb} +1 -1
  96. data/lib/pinnacle/types/message_summary_method.rb +13 -0
  97. data/lib/pinnacle/types/message_summary_status.rb +19 -0
  98. data/lib/pinnacle/types/message_summary_type.rb +13 -0
  99. data/lib/pinnacle/types/message_with_reactions.rb +11 -0
  100. data/lib/pinnacle/types/message_with_reactions_direction.rb +12 -0
  101. data/lib/pinnacle/types/owned_phone_number.rb +14 -0
  102. data/lib/pinnacle/types/rcs_agent_details.rb +21 -0
  103. data/lib/pinnacle/types/rcs_agent_details_agent_use_case.rb +14 -0
  104. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +10 -0
  105. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +10 -0
  106. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +10 -0
  107. data/lib/pinnacle/types/rcs_agent_response.rb +14 -0
  108. data/lib/pinnacle/types/rcs_campaign_summary.rb +16 -0
  109. data/lib/pinnacle/types/rcs_campaign_summary_status.rb +14 -0
  110. data/lib/pinnacle/types/rcs_whitelist_status.rb +13 -0
  111. data/lib/pinnacle/types/scheduled_message_summary.rb +17 -0
  112. data/lib/pinnacle/types/scheduled_message_summary_status.rb +13 -0
  113. data/lib/pinnacle/types/send_rich_message_options.rb +0 -1
  114. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +13 -0
  115. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +13 -0
  116. data/lib/pinnacle/types/test_agent_response.rb +13 -0
  117. data/lib/pinnacle/types/test_agent_whitelist_response.rb +10 -0
  118. data/lib/pinnacle/types/toll_free_campaign_summary.rb +15 -0
  119. data/lib/pinnacle/types/toll_free_campaign_summary_status.rb +14 -0
  120. data/lib/pinnacle/types/webhook_summary.rb +14 -0
  121. data/lib/pinnacle/types/webhook_summary_status.rb +13 -0
  122. data/lib/pinnacle/types/whitelisted_number_summary.rb +12 -0
  123. data/lib/pinnacle/types/whitelisted_number_summary_status.rb +13 -0
  124. data/lib/pinnacle/version.rb +1 -1
  125. data/lib/pinnacle/webhooks/client.rb +34 -0
  126. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +14 -0
  127. data/lib/pinnacle/webhooks/types/list_webhooks_request_status.rb +15 -0
  128. data/lib/pinnacle.rb +95 -6
  129. data/reference.md +2138 -250
  130. metadata +101 -7
  131. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema_options.rb +0 -14
  132. data/lib/pinnacle/rcs/types/rcs_whitelist_request.rb +0 -12
  133. data/lib/pinnacle/types/message_with_reaction.rb +0 -11
  134. data/lib/pinnacle/types/rcs_whitelist_response.rb +0 -10
data/reference.md CHANGED
@@ -565,6 +565,100 @@ This identifier is a string that always begins with the prefix `b_`, for example
565
565
  </dl>
566
566
 
567
567
 
568
+ </dd>
569
+ </dl>
570
+ </details>
571
+
572
+ <details><summary><code>client.brands.<a href="/lib/pinnacle/brands/client.rb">list</a>(request) -> Pinnacle::Types::ListBrandsResponse</code></summary>
573
+ <dl>
574
+ <dd>
575
+
576
+ #### 📝 Description
577
+
578
+ <dl>
579
+ <dd>
580
+
581
+ <dl>
582
+ <dd>
583
+
584
+ List all brands with optional filtering and pagination. Results are sorted by creation date, newest first.
585
+ </dd>
586
+ </dl>
587
+ </dd>
588
+ </dl>
589
+
590
+ #### 🔌 Usage
591
+
592
+ <dl>
593
+ <dd>
594
+
595
+ <dl>
596
+ <dd>
597
+
598
+ ```ruby
599
+ client.brands.list();
600
+ ```
601
+ </dd>
602
+ </dl>
603
+ </dd>
604
+ </dl>
605
+
606
+ #### ⚙️ Parameters
607
+
608
+ <dl>
609
+ <dd>
610
+
611
+ <dl>
612
+ <dd>
613
+
614
+ **page_index:** `Integer`
615
+
616
+ </dd>
617
+ </dl>
618
+
619
+ <dl>
620
+ <dd>
621
+
622
+ **page_size:** `Integer`
623
+
624
+ </dd>
625
+ </dl>
626
+
627
+ <dl>
628
+ <dd>
629
+
630
+ **status:** `Pinnacle::Brands::Types::ListBrandsRequestStatus`
631
+
632
+ </dd>
633
+ </dl>
634
+
635
+ <dl>
636
+ <dd>
637
+
638
+ **is_archived:** `Internal::Types::Boolean`
639
+
640
+ </dd>
641
+ </dl>
642
+
643
+ <dl>
644
+ <dd>
645
+
646
+ **name:** `String` — Case-insensitive substring search on brand name.
647
+
648
+ </dd>
649
+ </dl>
650
+
651
+ <dl>
652
+ <dd>
653
+
654
+ **request_options:** `Pinnacle::Brands::RequestOptions`
655
+
656
+ </dd>
657
+ </dl>
658
+ </dd>
659
+ </dl>
660
+
661
+
568
662
  </dd>
569
663
  </dl>
570
664
  </details>
@@ -873,6 +967,84 @@ client.audiences.update(
873
967
  </dl>
874
968
 
875
969
 
970
+ </dd>
971
+ </dl>
972
+ </details>
973
+
974
+ <details><summary><code>client.audiences.<a href="/lib/pinnacle/audiences/client.rb">list</a>(request) -> Pinnacle::Types::ListAudiencesResponse</code></summary>
975
+ <dl>
976
+ <dd>
977
+
978
+ #### 📝 Description
979
+
980
+ <dl>
981
+ <dd>
982
+
983
+ <dl>
984
+ <dd>
985
+
986
+ List all audiences with optional filtering and pagination. Results are sorted by creation date, newest first.
987
+ </dd>
988
+ </dl>
989
+ </dd>
990
+ </dl>
991
+
992
+ #### 🔌 Usage
993
+
994
+ <dl>
995
+ <dd>
996
+
997
+ <dl>
998
+ <dd>
999
+
1000
+ ```ruby
1001
+ client.audiences.list();
1002
+ ```
1003
+ </dd>
1004
+ </dl>
1005
+ </dd>
1006
+ </dl>
1007
+
1008
+ #### ⚙️ Parameters
1009
+
1010
+ <dl>
1011
+ <dd>
1012
+
1013
+ <dl>
1014
+ <dd>
1015
+
1016
+ **page_index:** `Integer`
1017
+
1018
+ </dd>
1019
+ </dl>
1020
+
1021
+ <dl>
1022
+ <dd>
1023
+
1024
+ **page_size:** `Integer`
1025
+
1026
+ </dd>
1027
+ </dl>
1028
+
1029
+ <dl>
1030
+ <dd>
1031
+
1032
+ **name:** `String` — Filter audiences by name (partial match).
1033
+
1034
+ </dd>
1035
+ </dl>
1036
+
1037
+ <dl>
1038
+ <dd>
1039
+
1040
+ **request_options:** `Pinnacle::Audiences::RequestOptions`
1041
+
1042
+ </dd>
1043
+ </dl>
1044
+ </dd>
1045
+ </dl>
1046
+
1047
+
876
1048
  </dd>
877
1049
  </dl>
878
1050
  </details>
@@ -1078,6 +1250,108 @@ client.contacts.update(
1078
1250
  </dl>
1079
1251
 
1080
1252
 
1253
+ </dd>
1254
+ </dl>
1255
+ </details>
1256
+
1257
+ <details><summary><code>client.contacts.<a href="/lib/pinnacle/contacts/client.rb">list</a>(request) -> Pinnacle::Types::ListContactsResponse</code></summary>
1258
+ <dl>
1259
+ <dd>
1260
+
1261
+ #### 📝 Description
1262
+
1263
+ <dl>
1264
+ <dd>
1265
+
1266
+ <dl>
1267
+ <dd>
1268
+
1269
+ List all contacts with optional filtering and pagination. Results are sorted by creation date, newest first.
1270
+ </dd>
1271
+ </dl>
1272
+ </dd>
1273
+ </dl>
1274
+
1275
+ #### 🔌 Usage
1276
+
1277
+ <dl>
1278
+ <dd>
1279
+
1280
+ <dl>
1281
+ <dd>
1282
+
1283
+ ```ruby
1284
+ client.contacts.list();
1285
+ ```
1286
+ </dd>
1287
+ </dl>
1288
+ </dd>
1289
+ </dl>
1290
+
1291
+ #### ⚙️ Parameters
1292
+
1293
+ <dl>
1294
+ <dd>
1295
+
1296
+ <dl>
1297
+ <dd>
1298
+
1299
+ **page_index:** `Integer`
1300
+
1301
+ </dd>
1302
+ </dl>
1303
+
1304
+ <dl>
1305
+ <dd>
1306
+
1307
+ **page_size:** `Integer`
1308
+
1309
+ </dd>
1310
+ </dl>
1311
+
1312
+ <dl>
1313
+ <dd>
1314
+
1315
+ **phone_number:** `String` — Filter contacts by phone number (E.164 format).
1316
+
1317
+ </dd>
1318
+ </dl>
1319
+
1320
+ <dl>
1321
+ <dd>
1322
+
1323
+ **name:** `String` — Filter contacts by name (partial match).
1324
+
1325
+ </dd>
1326
+ </dl>
1327
+
1328
+ <dl>
1329
+ <dd>
1330
+
1331
+ **tags:** `Internal::Types::Array[String]` — Filter contacts by tags.
1332
+
1333
+ </dd>
1334
+ </dl>
1335
+
1336
+ <dl>
1337
+ <dd>
1338
+
1339
+ **is_archived:** `Internal::Types::Boolean` — Filter contacts by archived status.
1340
+
1341
+ </dd>
1342
+ </dl>
1343
+
1344
+ <dl>
1345
+ <dd>
1346
+
1347
+ **request_options:** `Pinnacle::Contacts::RequestOptions`
1348
+
1349
+ </dd>
1350
+ </dl>
1351
+ </dd>
1352
+ </dl>
1353
+
1354
+
1081
1355
  </dd>
1082
1356
  </dl>
1083
1357
  </details>
@@ -1628,8 +1902,7 @@ Use `null` to remove existing reaction.
1628
1902
  </dl>
1629
1903
  </details>
1630
1904
 
1631
- ## PhoneNumbers
1632
- <details><summary><code>client.phone_numbers.<a href="/lib/pinnacle/phone_numbers/client.rb">search</a>(request) -> Internal::Types::Array[Pinnacle::Types::PhoneNumberDetails]</code></summary>
1905
+ <details><summary><code>client.messages.<a href="/lib/pinnacle/messages/client.rb">list</a>(request) -> Pinnacle::Types::ListMessagesResponse</code></summary>
1633
1906
  <dl>
1634
1907
  <dd>
1635
1908
 
@@ -1641,7 +1914,7 @@ Use `null` to remove existing reaction.
1641
1914
  <dl>
1642
1915
  <dd>
1643
1916
 
1644
- Search for available phone numbers that match your exact criteria.
1917
+ List all messages with optional filtering and pagination. Results are sorted by creation date, newest first.
1645
1918
  </dd>
1646
1919
  </dl>
1647
1920
  </dd>
@@ -1656,8 +1929,151 @@ Search for available phone numbers that match your exact criteria.
1656
1929
  <dd>
1657
1930
 
1658
1931
  ```ruby
1659
- client.phone_numbers.search(
1660
- features: ['SMS', 'MMS'],
1932
+ client.messages.list();
1933
+ ```
1934
+ </dd>
1935
+ </dl>
1936
+ </dd>
1937
+ </dl>
1938
+
1939
+ #### ⚙️ Parameters
1940
+
1941
+ <dl>
1942
+ <dd>
1943
+
1944
+ <dl>
1945
+ <dd>
1946
+
1947
+ **page_index:** `Integer`
1948
+
1949
+ </dd>
1950
+ </dl>
1951
+
1952
+ <dl>
1953
+ <dd>
1954
+
1955
+ **page_size:** `Integer`
1956
+
1957
+ </dd>
1958
+ </dl>
1959
+
1960
+ <dl>
1961
+ <dd>
1962
+
1963
+ **direction:** `Pinnacle::Messages::Types::ListMessagesRequestDirection`
1964
+
1965
+ </dd>
1966
+ </dl>
1967
+
1968
+ <dl>
1969
+ <dd>
1970
+
1971
+ **status:** `Pinnacle::Messages::Types::ListMessagesRequestStatus`
1972
+
1973
+ </dd>
1974
+ </dl>
1975
+
1976
+ <dl>
1977
+ <dd>
1978
+
1979
+ **type:** `Pinnacle::Messages::Types::ListMessagesRequestType`
1980
+
1981
+ </dd>
1982
+ </dl>
1983
+
1984
+ <dl>
1985
+ <dd>
1986
+
1987
+ **method_:** `Pinnacle::Messages::Types::ListMessagesRequestMethod` — Filter by the method used to send the message.
1988
+
1989
+ </dd>
1990
+ </dl>
1991
+
1992
+ <dl>
1993
+ <dd>
1994
+
1995
+ **from:** `String` — Filter by sender phone number (E.164 format) or agent id.
1996
+
1997
+ </dd>
1998
+ </dl>
1999
+
2000
+ <dl>
2001
+ <dd>
2002
+
2003
+ **to:** `String` — Filter by recipient phone number (E.164 format).
2004
+
2005
+ </dd>
2006
+ </dl>
2007
+
2008
+ <dl>
2009
+ <dd>
2010
+
2011
+ **content:** `String` — Search message content (partial match, case-insensitive).
2012
+
2013
+ </dd>
2014
+ </dl>
2015
+
2016
+ <dl>
2017
+ <dd>
2018
+
2019
+ **date_from:** `String` — Filter messages created on or after this date (ISO 8601 format).
2020
+
2021
+ </dd>
2022
+ </dl>
2023
+
2024
+ <dl>
2025
+ <dd>
2026
+
2027
+ **date_to:** `String` — Filter messages created on or before this date (ISO 8601 format).
2028
+
2029
+ </dd>
2030
+ </dl>
2031
+
2032
+ <dl>
2033
+ <dd>
2034
+
2035
+ **request_options:** `Pinnacle::Messages::RequestOptions`
2036
+
2037
+ </dd>
2038
+ </dl>
2039
+ </dd>
2040
+ </dl>
2041
+
2042
+
2043
+ </dd>
2044
+ </dl>
2045
+ </details>
2046
+
2047
+ ## PhoneNumbers
2048
+ <details><summary><code>client.phone_numbers.<a href="/lib/pinnacle/phone_numbers/client.rb">search</a>(request) -> Internal::Types::Array[Pinnacle::Types::PhoneNumberDetails]</code></summary>
2049
+ <dl>
2050
+ <dd>
2051
+
2052
+ #### 📝 Description
2053
+
2054
+ <dl>
2055
+ <dd>
2056
+
2057
+ <dl>
2058
+ <dd>
2059
+
2060
+ Search for available phone numbers that match your exact criteria.
2061
+ </dd>
2062
+ </dl>
2063
+ </dd>
2064
+ </dl>
2065
+
2066
+ #### 🔌 Usage
2067
+
2068
+ <dl>
2069
+ <dd>
2070
+
2071
+ <dl>
2072
+ <dd>
2073
+
2074
+ ```ruby
2075
+ client.phone_numbers.search(
2076
+ features: ['SMS', 'MMS'],
1661
2077
  location: {
1662
2078
  city: 'New York',
1663
2079
  national_destination_code: '212'
@@ -1902,8 +2318,7 @@ Choose how much detail you want in your results:
1902
2318
  </dl>
1903
2319
  </details>
1904
2320
 
1905
- ## RCS
1906
- <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">get_capabilities</a>(request) -> Internal::Types::Hash[String, Pinnacle::Types::RcsCapability]</code></summary>
2321
+ <details><summary><code>client.phone_numbers.<a href="/lib/pinnacle/phone_numbers/client.rb">list</a>(request) -> Pinnacle::Types::ListPhoneNumbersResponse</code></summary>
1907
2322
  <dl>
1908
2323
  <dd>
1909
2324
 
@@ -1915,10 +2330,7 @@ Choose how much detail you want in your results:
1915
2330
  <dl>
1916
2331
  <dd>
1917
2332
 
1918
- Check RCS capabilities for one or more phone numbers.
1919
-
1920
- This endpoint allows you to verify which RCS features (cards, buttons, etc.) are supported
1921
- on specific phone numbers before sending RCS messages to them.
2333
+ List all owned phone numbers with pagination. Results are sorted by creation date, newest first.
1922
2334
  </dd>
1923
2335
  </dl>
1924
2336
  </dd>
@@ -1933,7 +2345,7 @@ on specific phone numbers before sending RCS messages to them.
1933
2345
  <dd>
1934
2346
 
1935
2347
  ```ruby
1936
- client.rcs.get_capabilities(phone_numbers: ['+12345678901', '+19876543210']);
2348
+ client.phone_numbers.list();
1937
2349
  ```
1938
2350
  </dd>
1939
2351
  </dl>
@@ -1948,10 +2360,15 @@ client.rcs.get_capabilities(phone_numbers: ['+12345678901', '+19876543210']);
1948
2360
  <dl>
1949
2361
  <dd>
1950
2362
 
1951
- **phone_numbers:** `Internal::Types::Array[String]`
2363
+ **page_index:** `Integer`
2364
+
2365
+ </dd>
2366
+ </dl>
1952
2367
 
1953
- List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1954
- **Limit:** 1 min
2368
+ <dl>
2369
+ <dd>
2370
+
2371
+ **page_size:** `Integer`
1955
2372
 
1956
2373
  </dd>
1957
2374
  </dl>
@@ -1959,7 +2376,7 @@ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1959
2376
  <dl>
1960
2377
  <dd>
1961
2378
 
1962
- **request_options:** `Pinnacle::Rcs::RequestOptions`
2379
+ **request_options:** `Pinnacle::PhoneNumbers::RequestOptions`
1963
2380
 
1964
2381
  </dd>
1965
2382
  </dl>
@@ -1971,7 +2388,8 @@ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1971
2388
  </dl>
1972
2389
  </details>
1973
2390
 
1974
- <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">whitelist</a>(request) -> Pinnacle::Types::RcsWhitelistResponse</code></summary>
2391
+ ## Rcs
2392
+ <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">get_agent</a>(agent_id) -> Pinnacle::Types::RcsAgentResponse</code></summary>
1975
2393
  <dl>
1976
2394
  <dd>
1977
2395
 
@@ -1983,31 +2401,75 @@ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
1983
2401
  <dl>
1984
2402
  <dd>
1985
2403
 
1986
- Whitelist a phone number for testing with your test RCS agent.
2404
+ Retrieve details of an RCS agent by its ID.
1987
2405
 
1988
- ## Overview
1989
- During development and testing, RCS agents can only send messages to whitelisted phone numbers.
1990
- Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
2406
+ Returns the agent's configuration including display name, description, logo, hero image,
2407
+ contact information, and other settings.
2408
+ </dd>
2409
+ </dl>
2410
+ </dd>
2411
+ </dl>
1991
2412
 
1992
- ## Verification Process
1993
- After whitelisting a number, you'll need to complete verification:
2413
+ #### 🔌 Usage
2414
+
2415
+ <dl>
2416
+ <dd>
1994
2417
 
1995
- 1. Check the test device for message from "RBM Tester Management"
1996
- 2. Click the "Make me a tester" button
1997
- 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
1998
- ```
1999
- https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
2000
- ```
2418
+ <dl>
2419
+ <dd>
2001
2420
 
2002
- > **⚠️ Important: Re-whitelisting Numbers**
2003
- >
2004
- > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
2421
+ ```ruby
2422
+ client.rcs.get_agent(agent_id: 'agent_abc123def456');
2423
+ ```
2424
+ </dd>
2425
+ </dl>
2426
+ </dd>
2427
+ </dl>
2005
2428
 
2006
- > **Important Notes**
2007
- >
2008
- > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
2009
- > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
2010
- > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
2429
+ #### ⚙️ Parameters
2430
+
2431
+ <dl>
2432
+ <dd>
2433
+
2434
+ <dl>
2435
+ <dd>
2436
+
2437
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
2438
+
2439
+ </dd>
2440
+ </dl>
2441
+
2442
+ <dl>
2443
+ <dd>
2444
+
2445
+ **request_options:** `Pinnacle::Rcs::RequestOptions`
2446
+
2447
+ </dd>
2448
+ </dl>
2449
+ </dd>
2450
+ </dl>
2451
+
2452
+
2453
+ </dd>
2454
+ </dl>
2455
+ </details>
2456
+
2457
+ <details><summary><code>client.rcs.<a href="/lib/pinnacle/rcs/client.rb">get_capabilities</a>(request) -> Internal::Types::Hash[String, Pinnacle::Types::RcsCapability]</code></summary>
2458
+ <dl>
2459
+ <dd>
2460
+
2461
+ #### 📝 Description
2462
+
2463
+ <dl>
2464
+ <dd>
2465
+
2466
+ <dl>
2467
+ <dd>
2468
+
2469
+ Check RCS capabilities for one or more phone numbers.
2470
+
2471
+ This endpoint allows you to verify which RCS features (cards, buttons, etc.) are supported
2472
+ on specific phone numbers before sending RCS messages to them.
2011
2473
  </dd>
2012
2474
  </dl>
2013
2475
  </dd>
@@ -2022,10 +2484,7 @@ After whitelisting a number, you'll need to complete verification:
2022
2484
  <dd>
2023
2485
 
2024
2486
  ```ruby
2025
- client.rcs.whitelist(
2026
- agent_id: 'agent_XXXXXXXXXXXX',
2027
- phone_number: '+12345678901'
2028
- );
2487
+ client.rcs.get_capabilities(phone_numbers: ['+12345678901', '+19876543210']);
2029
2488
  ```
2030
2489
  </dd>
2031
2490
  </dl>
@@ -2040,7 +2499,10 @@ client.rcs.whitelist(
2040
2499
  <dl>
2041
2500
  <dd>
2042
2501
 
2043
- **agent_id:** `String` — The RCS agent ID (must be prefixed with 'agent_')
2502
+ **phone_numbers:** `Internal::Types::Array[String]`
2503
+
2504
+ List of phone numbers to check RCS capabilities for (E.164 format). <br><br>
2505
+ **Limit:** 1 min
2044
2506
 
2045
2507
  </dd>
2046
2508
  </dl>
@@ -2048,7 +2510,7 @@ client.rcs.whitelist(
2048
2510
  <dl>
2049
2511
  <dd>
2050
2512
 
2051
- **phone_number:** `String` — Phone number to whitelist for testing (E.164 format)
2513
+ **agent_id:** `String` — Optional RCS agent ID (prefixed with 'agent_') to check capabilities of a number from a specific agent.
2052
2514
 
2053
2515
  </dd>
2054
2516
  </dl>
@@ -2080,7 +2542,7 @@ client.rcs.whitelist(
2080
2542
  <dl>
2081
2543
  <dd>
2082
2544
 
2083
- Generate a link for initiating an RCS conversation with your agent.
2545
+ Generate a link for initiating an RCS conversation with your agent.
2084
2546
 
2085
2547
  Users can click these links to start conversations with your RCS agent directly
2086
2548
  from websites, emails, or other applications.
@@ -2100,7 +2562,6 @@ from websites, emails, or other applications.
2100
2562
  ```ruby
2101
2563
  client.rcs.get_link(
2102
2564
  agent_id: 'agent_XXXXXXXXXXXX',
2103
- test_mode: false,
2104
2565
  phone_number: '+12345678901',
2105
2566
  body: 'Hello, I need help with my order'
2106
2567
  );
@@ -2126,14 +2587,6 @@ client.rcs.get_link(
2126
2587
  <dl>
2127
2588
  <dd>
2128
2589
 
2129
- **test_mode:** `Internal::Types::Boolean` — Link to the test agent or the production agent if false
2130
-
2131
- </dd>
2132
- </dl>
2133
-
2134
- <dl>
2135
- <dd>
2136
-
2137
2590
  **phone_number:** `String` — Fallback phone number (E.164 format) to use if the phone number does not support RCS. If not provided, no url will be generated.
2138
2591
 
2139
2592
  </dd>
@@ -2228,8 +2681,7 @@ List of URLs or phone numbers in E.164 format that the webhook is attached to. <
2228
2681
  </dl>
2229
2682
  </details>
2230
2683
 
2231
- ## Audiences Contacts
2232
- <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">remove</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2684
+ <details><summary><code>client.webhooks.<a href="/lib/pinnacle/webhooks/client.rb">list</a>(request) -> Pinnacle::Types::ListWebhooksResponse</code></summary>
2233
2685
  <dl>
2234
2686
  <dd>
2235
2687
 
@@ -2241,10 +2693,7 @@ List of URLs or phone numbers in E.164 format that the webhook is attached to. <
2241
2693
  <dl>
2242
2694
  <dd>
2243
2695
 
2244
- Remove contacts from an existing audience. This operation is idempotent.
2245
-
2246
- - Only removes contacts that exist in the audience
2247
- - Contacts not in the audience are ignored
2696
+ List all webhooks with optional filtering and pagination. Results are sorted by creation date, newest first.
2248
2697
  </dd>
2249
2698
  </dl>
2250
2699
  </dd>
@@ -2259,10 +2708,7 @@ Remove contacts from an existing audience. This operation is idempotent.
2259
2708
  <dd>
2260
2709
 
2261
2710
  ```ruby
2262
- client.audiences.contacts.remove(
2263
- id: 'aud_abc123',
2264
- contacts: ['+12125551234', 'co_def456']
2265
- );
2711
+ client.webhooks.list();
2266
2712
  ```
2267
2713
  </dd>
2268
2714
  </dl>
@@ -2277,7 +2723,7 @@ client.audiences.contacts.remove(
2277
2723
  <dl>
2278
2724
  <dd>
2279
2725
 
2280
- **id:** `String` — Audience ID. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`.
2726
+ **page_index:** `Integer`
2281
2727
 
2282
2728
  </dd>
2283
2729
  </dl>
@@ -2285,10 +2731,7 @@ client.audiences.contacts.remove(
2285
2731
  <dl>
2286
2732
  <dd>
2287
2733
 
2288
- **contacts:** `Internal::Types::Array[String]`
2289
-
2290
- Array of phone numbers (E.164 format) or contact IDs. <br><br>
2291
- **Limit:** 1 min
2734
+ **page_size:** `Integer`
2292
2735
 
2293
2736
  </dd>
2294
2737
  </dl>
@@ -2296,25 +2739,121 @@ Array of phone numbers (E.164 format) or contact IDs. <br><br>
2296
2739
  <dl>
2297
2740
  <dd>
2298
2741
 
2299
- **request_options:** `Pinnacle::Audiences::Contacts::RequestOptions`
2742
+ **status:** `Pinnacle::Webhooks::Types::ListWebhooksRequestStatus`
2300
2743
 
2301
2744
  </dd>
2302
2745
  </dl>
2303
- </dd>
2304
- </dl>
2305
2746
 
2747
+ <dl>
2748
+ <dd>
2306
2749
 
2750
+ **endpoint:** `String` — Filter webhooks by endpoint URL (partial match, case-insensitive).
2751
+
2307
2752
  </dd>
2308
2753
  </dl>
2309
- </details>
2310
2754
 
2311
- <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">add</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2312
2755
  <dl>
2313
2756
  <dd>
2314
2757
 
2315
- #### 📝 Description
2316
-
2317
- <dl>
2758
+ **request_options:** `Pinnacle::Webhooks::RequestOptions`
2759
+
2760
+ </dd>
2761
+ </dl>
2762
+ </dd>
2763
+ </dl>
2764
+
2765
+
2766
+ </dd>
2767
+ </dl>
2768
+ </details>
2769
+
2770
+ ## Audiences Contacts
2771
+ <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">remove</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2772
+ <dl>
2773
+ <dd>
2774
+
2775
+ #### 📝 Description
2776
+
2777
+ <dl>
2778
+ <dd>
2779
+
2780
+ <dl>
2781
+ <dd>
2782
+
2783
+ Remove contacts from an existing audience. This operation is idempotent.
2784
+
2785
+ - Only removes contacts that exist in the audience
2786
+ - Contacts not in the audience are ignored
2787
+ </dd>
2788
+ </dl>
2789
+ </dd>
2790
+ </dl>
2791
+
2792
+ #### 🔌 Usage
2793
+
2794
+ <dl>
2795
+ <dd>
2796
+
2797
+ <dl>
2798
+ <dd>
2799
+
2800
+ ```ruby
2801
+ client.audiences.contacts.remove(
2802
+ id: 'aud_abc123',
2803
+ contacts: ['+12125551234', 'co_def456']
2804
+ );
2805
+ ```
2806
+ </dd>
2807
+ </dl>
2808
+ </dd>
2809
+ </dl>
2810
+
2811
+ #### ⚙️ Parameters
2812
+
2813
+ <dl>
2814
+ <dd>
2815
+
2816
+ <dl>
2817
+ <dd>
2818
+
2819
+ **id:** `String` — Audience ID. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`.
2820
+
2821
+ </dd>
2822
+ </dl>
2823
+
2824
+ <dl>
2825
+ <dd>
2826
+
2827
+ **contacts:** `Internal::Types::Array[String]`
2828
+
2829
+ Array of phone numbers (E.164 format) or contact IDs. <br><br>
2830
+ **Limit:** 1 min
2831
+
2832
+ </dd>
2833
+ </dl>
2834
+
2835
+ <dl>
2836
+ <dd>
2837
+
2838
+ **request_options:** `Pinnacle::Audiences::Contacts::RequestOptions`
2839
+
2840
+ </dd>
2841
+ </dl>
2842
+ </dd>
2843
+ </dl>
2844
+
2845
+
2846
+ </dd>
2847
+ </dl>
2848
+ </details>
2849
+
2850
+ <details><summary><code>client.audiences.contacts.<a href="/lib/pinnacle/audiences/contacts/client.rb">add</a>(request) -> Pinnacle::Types::AudienceCountOnly</code></summary>
2851
+ <dl>
2852
+ <dd>
2853
+
2854
+ #### 📝 Description
2855
+
2856
+ <dl>
2318
2857
  <dd>
2319
2858
 
2320
2859
  <dl>
@@ -2835,6 +3374,100 @@ client.campaigns.dlc.validate(
2835
3374
  </dl>
2836
3375
 
2837
3376
 
3377
+ </dd>
3378
+ </dl>
3379
+ </details>
3380
+
3381
+ <details><summary><code>client.campaigns.dlc.<a href="/lib/pinnacle/campaigns/dlc/client.rb">list</a>(request) -> Pinnacle::Types::ListDlcCampaignsResponse</code></summary>
3382
+ <dl>
3383
+ <dd>
3384
+
3385
+ #### 📝 Description
3386
+
3387
+ <dl>
3388
+ <dd>
3389
+
3390
+ <dl>
3391
+ <dd>
3392
+
3393
+ List all 10DLC campaigns with optional filtering and pagination. Results are sorted by creation date, newest first.
3394
+ </dd>
3395
+ </dl>
3396
+ </dd>
3397
+ </dl>
3398
+
3399
+ #### 🔌 Usage
3400
+
3401
+ <dl>
3402
+ <dd>
3403
+
3404
+ <dl>
3405
+ <dd>
3406
+
3407
+ ```ruby
3408
+ client.campaigns.dlc.list();
3409
+ ```
3410
+ </dd>
3411
+ </dl>
3412
+ </dd>
3413
+ </dl>
3414
+
3415
+ #### ⚙️ Parameters
3416
+
3417
+ <dl>
3418
+ <dd>
3419
+
3420
+ <dl>
3421
+ <dd>
3422
+
3423
+ **page_index:** `Integer`
3424
+
3425
+ </dd>
3426
+ </dl>
3427
+
3428
+ <dl>
3429
+ <dd>
3430
+
3431
+ **page_size:** `Integer`
3432
+
3433
+ </dd>
3434
+ </dl>
3435
+
3436
+ <dl>
3437
+ <dd>
3438
+
3439
+ **status:** `Pinnacle::Campaigns::Dlc::Types::ListDlcCampaignsRequestStatus`
3440
+
3441
+ </dd>
3442
+ </dl>
3443
+
3444
+ <dl>
3445
+ <dd>
3446
+
3447
+ **brand_id:** `String`
3448
+
3449
+ </dd>
3450
+ </dl>
3451
+
3452
+ <dl>
3453
+ <dd>
3454
+
3455
+ **name:** `String` — Filter by campaign name (partial match, case-insensitive).
3456
+
3457
+ </dd>
3458
+ </dl>
3459
+
3460
+ <dl>
3461
+ <dd>
3462
+
3463
+ **request_options:** `Pinnacle::Campaigns::Dlc::RequestOptions`
3464
+
3465
+ </dd>
3466
+ </dl>
3467
+ </dd>
3468
+ </dl>
3469
+
3470
+
2838
3471
  </dd>
2839
3472
  </dl>
2840
3473
  </details>
@@ -3269,8 +3902,7 @@ client.campaigns.toll_free.validate(
3269
3902
  </dl>
3270
3903
  </details>
3271
3904
 
3272
- ## Campaigns Rcs
3273
- <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">autofill</a>(request) -> Pinnacle::Campaigns::Rcs::Types::RcsAutofillResponse</code></summary>
3905
+ <details><summary><code>client.campaigns.toll_free.<a href="/lib/pinnacle/campaigns/toll_free/client.rb">list</a>(request) -> Pinnacle::Types::ListTollFreeCampaignsResponse</code></summary>
3274
3906
  <dl>
3275
3907
  <dd>
3276
3908
 
@@ -3282,7 +3914,7 @@ client.campaigns.toll_free.validate(
3282
3914
  <dl>
3283
3915
  <dd>
3284
3916
 
3285
- Generate campaign details based off existing campaign and the brand it's connected to.
3917
+ List all toll-free campaigns with optional filtering and pagination. Results are sorted by creation date, newest first.
3286
3918
  </dd>
3287
3919
  </dl>
3288
3920
  </dd>
@@ -3297,10 +3929,7 @@ Generate campaign details based off existing campaign and the brand it's connect
3297
3929
  <dd>
3298
3930
 
3299
3931
  ```ruby
3300
- client.campaigns.rcs.autofill(
3301
- additional_info: 'Please autofill missing campaign fields using my brand profile',
3302
- campaign_id: 'dlc_1234567890'
3303
- );
3932
+ client.campaigns.toll_free.list();
3304
3933
  ```
3305
3934
  </dd>
3306
3935
  </dl>
@@ -3315,7 +3944,7 @@ client.campaigns.rcs.autofill(
3315
3944
  <dl>
3316
3945
  <dd>
3317
3946
 
3318
- **request:** `Pinnacle::Types::AutofillCampaignParams`
3947
+ **page_index:** `Integer`
3319
3948
 
3320
3949
  </dd>
3321
3950
  </dl>
@@ -3323,7 +3952,39 @@ client.campaigns.rcs.autofill(
3323
3952
  <dl>
3324
3953
  <dd>
3325
3954
 
3326
- **request_options:** `Pinnacle::Campaigns::Rcs::RequestOptions`
3955
+ **page_size:** `Integer`
3956
+
3957
+ </dd>
3958
+ </dl>
3959
+
3960
+ <dl>
3961
+ <dd>
3962
+
3963
+ **status:** `Pinnacle::Campaigns::TollFree::Types::ListTollFreeCampaignsRequestStatus`
3964
+
3965
+ </dd>
3966
+ </dl>
3967
+
3968
+ <dl>
3969
+ <dd>
3970
+
3971
+ **brand_id:** `String`
3972
+
3973
+ </dd>
3974
+ </dl>
3975
+
3976
+ <dl>
3977
+ <dd>
3978
+
3979
+ **name:** `String` — Filter by campaign name (partial match, case-insensitive).
3980
+
3981
+ </dd>
3982
+ </dl>
3983
+
3984
+ <dl>
3985
+ <dd>
3986
+
3987
+ **request_options:** `Pinnacle::Campaigns::TollFree::RequestOptions`
3327
3988
 
3328
3989
  </dd>
3329
3990
  </dl>
@@ -3335,7 +3996,8 @@ client.campaigns.rcs.autofill(
3335
3996
  </dl>
3336
3997
  </details>
3337
3998
 
3338
- <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">get</a>(campaign_id) -> Pinnacle::Types::ExtendedRcsCampaign</code></summary>
3999
+ ## Campaigns Rcs
4000
+ <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">autofill</a>(request) -> Pinnacle::Campaigns::Rcs::Types::RcsAutofillResponse</code></summary>
3339
4001
  <dl>
3340
4002
  <dd>
3341
4003
 
@@ -3347,7 +4009,7 @@ client.campaigns.rcs.autofill(
3347
4009
  <dl>
3348
4010
  <dd>
3349
4011
 
3350
- Retrieve RCS campaign.
4012
+ Generate campaign details based off existing campaign and the brand it's connected to.
3351
4013
  </dd>
3352
4014
  </dl>
3353
4015
  </dd>
@@ -3362,7 +4024,10 @@ Retrieve RCS campaign.
3362
4024
  <dd>
3363
4025
 
3364
4026
  ```ruby
3365
- client.campaigns.rcs.get(campaign_id: 'rcs_1234567890');
4027
+ client.campaigns.rcs.autofill(
4028
+ additional_info: 'Please autofill missing campaign fields using my brand profile',
4029
+ campaign_id: 'dlc_1234567890'
4030
+ );
3366
4031
  ```
3367
4032
  </dd>
3368
4033
  </dl>
@@ -3377,7 +4042,7 @@ client.campaigns.rcs.get(campaign_id: 'rcs_1234567890');
3377
4042
  <dl>
3378
4043
  <dd>
3379
4044
 
3380
- **campaign_id:** `String` — Unique identifier of the RCS campaign. Must begin with the prefix `rcs_`.
4045
+ **request:** `Pinnacle::Types::AutofillCampaignParams`
3381
4046
 
3382
4047
  </dd>
3383
4048
  </dl>
@@ -3397,7 +4062,7 @@ client.campaigns.rcs.get(campaign_id: 'rcs_1234567890');
3397
4062
  </dl>
3398
4063
  </details>
3399
4064
 
3400
- <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">submit</a>(campaign_id) -> Pinnacle::Types::CampaignSubmissionResult</code></summary>
4065
+ <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">get</a>(campaign_id) -> Pinnacle::Types::ExtendedRcsCampaign</code></summary>
3401
4066
  <dl>
3402
4067
  <dd>
3403
4068
 
@@ -3409,7 +4074,7 @@ client.campaigns.rcs.get(campaign_id: 'rcs_1234567890');
3409
4074
  <dl>
3410
4075
  <dd>
3411
4076
 
3412
- Submit your RCS campaign for approval and activation with carriers.
4077
+ Retrieve RCS campaign.
3413
4078
  </dd>
3414
4079
  </dl>
3415
4080
  </dd>
@@ -3424,7 +4089,7 @@ Submit your RCS campaign for approval and activation with carriers.
3424
4089
  <dd>
3425
4090
 
3426
4091
  ```ruby
3427
- client.campaigns.rcs.submit(campaign_id: 'rcs_1234567890');
4092
+ client.campaigns.rcs.get(campaign_id: 'rcs_1234567890');
3428
4093
  ```
3429
4094
  </dd>
3430
4095
  </dl>
@@ -3439,7 +4104,7 @@ client.campaigns.rcs.submit(campaign_id: 'rcs_1234567890');
3439
4104
  <dl>
3440
4105
  <dd>
3441
4106
 
3442
- **campaign_id:** `String` — Unique identifier of the RCS campaign to retrieve. Must begin with the prefix `rcs_`.
4107
+ **campaign_id:** `String` — Unique identifier of the RCS campaign. Must begin with the prefix `rcs_`.
3443
4108
 
3444
4109
  </dd>
3445
4110
  </dl>
@@ -3459,7 +4124,7 @@ client.campaigns.rcs.submit(campaign_id: 'rcs_1234567890');
3459
4124
  </dl>
3460
4125
  </details>
3461
4126
 
3462
- <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">upsert</a>(request) -> Pinnacle::Types::ExtendedRcsCampaign</code></summary>
4127
+ <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">submit</a>(campaign_id) -> Pinnacle::Types::CampaignSubmissionResult</code></summary>
3463
4128
  <dl>
3464
4129
  <dd>
3465
4130
 
@@ -3471,10 +4136,72 @@ client.campaigns.rcs.submit(campaign_id: 'rcs_1234567890');
3471
4136
  <dl>
3472
4137
  <dd>
3473
4138
 
3474
- Create a new RCS campaign or update an existing one.
4139
+ Submit your RCS campaign for approval and activation with carriers.
4140
+ </dd>
4141
+ </dl>
4142
+ </dd>
4143
+ </dl>
3475
4144
 
3476
- <Note>
3477
- **To create a new campaign:** Omit `campaignId` — one will be generated automatically.
4145
+ #### 🔌 Usage
4146
+
4147
+ <dl>
4148
+ <dd>
4149
+
4150
+ <dl>
4151
+ <dd>
4152
+
4153
+ ```ruby
4154
+ client.campaigns.rcs.submit(campaign_id: 'rcs_1234567890');
4155
+ ```
4156
+ </dd>
4157
+ </dl>
4158
+ </dd>
4159
+ </dl>
4160
+
4161
+ #### ⚙️ Parameters
4162
+
4163
+ <dl>
4164
+ <dd>
4165
+
4166
+ <dl>
4167
+ <dd>
4168
+
4169
+ **campaign_id:** `String` — Unique identifier of the RCS campaign to retrieve. Must begin with the prefix `rcs_`.
4170
+
4171
+ </dd>
4172
+ </dl>
4173
+
4174
+ <dl>
4175
+ <dd>
4176
+
4177
+ **request_options:** `Pinnacle::Campaigns::Rcs::RequestOptions`
4178
+
4179
+ </dd>
4180
+ </dl>
4181
+ </dd>
4182
+ </dl>
4183
+
4184
+
4185
+ </dd>
4186
+ </dl>
4187
+ </details>
4188
+
4189
+ <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">upsert</a>(request) -> Pinnacle::Types::ExtendedRcsCampaign</code></summary>
4190
+ <dl>
4191
+ <dd>
4192
+
4193
+ #### 📝 Description
4194
+
4195
+ <dl>
4196
+ <dd>
4197
+
4198
+ <dl>
4199
+ <dd>
4200
+
4201
+ Create a new RCS campaign or update an existing one.
4202
+
4203
+ <Note>
4204
+ **To create a new campaign:** Omit `campaignId` — one will be generated automatically.
3478
4205
 
3479
4206
  **Before you start:** Create a [brand](/api-reference/brands/upsert) first — you'll need its `id` for the [`brand`](#request.body.brand) field.
3480
4207
 
@@ -3778,6 +4505,100 @@ client.campaigns.rcs.validate(
3778
4505
  </dl>
3779
4506
 
3780
4507
 
4508
+ </dd>
4509
+ </dl>
4510
+ </details>
4511
+
4512
+ <details><summary><code>client.campaigns.rcs.<a href="/lib/pinnacle/campaigns/rcs/client.rb">list</a>(request) -> Pinnacle::Types::ListRcsCampaignsResponse</code></summary>
4513
+ <dl>
4514
+ <dd>
4515
+
4516
+ #### 📝 Description
4517
+
4518
+ <dl>
4519
+ <dd>
4520
+
4521
+ <dl>
4522
+ <dd>
4523
+
4524
+ List all RCS campaigns with optional filtering and pagination. Results are sorted by creation date, newest first.
4525
+ </dd>
4526
+ </dl>
4527
+ </dd>
4528
+ </dl>
4529
+
4530
+ #### 🔌 Usage
4531
+
4532
+ <dl>
4533
+ <dd>
4534
+
4535
+ <dl>
4536
+ <dd>
4537
+
4538
+ ```ruby
4539
+ client.campaigns.rcs.list();
4540
+ ```
4541
+ </dd>
4542
+ </dl>
4543
+ </dd>
4544
+ </dl>
4545
+
4546
+ #### ⚙️ Parameters
4547
+
4548
+ <dl>
4549
+ <dd>
4550
+
4551
+ <dl>
4552
+ <dd>
4553
+
4554
+ **page_index:** `Integer`
4555
+
4556
+ </dd>
4557
+ </dl>
4558
+
4559
+ <dl>
4560
+ <dd>
4561
+
4562
+ **page_size:** `Integer`
4563
+
4564
+ </dd>
4565
+ </dl>
4566
+
4567
+ <dl>
4568
+ <dd>
4569
+
4570
+ **status:** `Pinnacle::Campaigns::Rcs::Types::ListRcsCampaignsRequestStatus`
4571
+
4572
+ </dd>
4573
+ </dl>
4574
+
4575
+ <dl>
4576
+ <dd>
4577
+
4578
+ **brand_id:** `String`
4579
+
4580
+ </dd>
4581
+ </dl>
4582
+
4583
+ <dl>
4584
+ <dd>
4585
+
4586
+ **name:** `String` — Filter by campaign name (partial match, case-insensitive).
4587
+
4588
+ </dd>
4589
+ </dl>
4590
+
4591
+ <dl>
4592
+ <dd>
4593
+
4594
+ **request_options:** `Pinnacle::Campaigns::Rcs::RequestOptions`
4595
+
4596
+ </dd>
4597
+ </dl>
4598
+ </dd>
4599
+ </dl>
4600
+
4601
+
3781
4602
  </dd>
3782
4603
  </dl>
3783
4604
  </details>
@@ -4217,10 +5038,7 @@ This endpoint allows RCS agents to display a typing indicator to recipients. The
4217
5038
  ```ruby
4218
5039
  client.messages.rcs.send_typing(
4219
5040
  agent_id: 'agent_pinnacle',
4220
- to: '+14154746461',
4221
- options: {
4222
- test_mode: false
4223
- }
5041
+ to: '+14154746461'
4224
5042
  );
4225
5043
  ```
4226
5044
  </dd>
@@ -4260,14 +5078,6 @@ Must include country code with a leading plus sign (e.g., `+14155551234`).
4260
5078
  <dl>
4261
5079
  <dd>
4262
5080
 
4263
- **options:** `Pinnacle::Messages::Rcs::Types::SendTypingIndicatorSchemaOptions` — Configure how your typing indicator is sent.
4264
-
4265
- </dd>
4266
- </dl>
4267
-
4268
- <dl>
4269
- <dd>
4270
-
4271
5081
  **request_options:** `Pinnacle::Messages::Rcs::RequestOptions`
4272
5082
 
4273
5083
  </dd>
@@ -4639,15 +5449,1004 @@ You can create an audience via [the dashboard](https://app.pinnacle.sh/dashboard
4639
5449
  <dl>
4640
5450
  <dd>
4641
5451
 
4642
- **senders:** `Internal::Types::Array[String]`
4643
-
4644
- Array of RCS agent IDs to send from. Each must be prefixed with `agent_`. <br>
4645
-
4646
- Messages will be evenly distributed across these agents.
4647
-
4648
- > **Note:** Test agents cannot be used for blasts.
4649
-
4650
- **Limit:** 1 min
5452
+ **senders:** `Internal::Types::Array[String]`
5453
+
5454
+ Array of RCS agent IDs to send from. Each must be prefixed with `agent_`. <br>
5455
+
5456
+ Messages will be evenly distributed across these agents.
5457
+
5458
+ **Limit:** 1 min
5459
+
5460
+ </dd>
5461
+ </dl>
5462
+
5463
+ <dl>
5464
+ <dd>
5465
+
5466
+ **message:** `Pinnacle::Types::RcsValidateContent`
5467
+
5468
+ </dd>
5469
+ </dl>
5470
+
5471
+ <dl>
5472
+ <dd>
5473
+
5474
+ **fallback:** `Pinnacle::Types::FallbackMessage`
5475
+
5476
+ </dd>
5477
+ </dl>
5478
+
5479
+ <dl>
5480
+ <dd>
5481
+
5482
+ **options:** `Pinnacle::Messages::Blast::Types::BlastRcsOptions` — Configure how your RCS blast is sent and tracked.
5483
+
5484
+ </dd>
5485
+ </dl>
5486
+
5487
+ <dl>
5488
+ <dd>
5489
+
5490
+ **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
5491
+
5492
+ </dd>
5493
+ </dl>
5494
+ </dd>
5495
+ </dl>
5496
+
5497
+
5498
+ </dd>
5499
+ </dl>
5500
+ </details>
5501
+
5502
+ ## Messages Schedule
5503
+ <details><summary><code>client.messages.schedule.<a href="/lib/pinnacle/messages/schedule/client.rb">cancel</a>(id) -> Pinnacle::Types::ScheduleCancelResult</code></summary>
5504
+ <dl>
5505
+ <dd>
5506
+
5507
+ #### 📝 Description
5508
+
5509
+ <dl>
5510
+ <dd>
5511
+
5512
+ <dl>
5513
+ <dd>
5514
+
5515
+ Cancel a scheduled message or blast. <br>
5516
+
5517
+ Works for both individual scheduled messages and scheduled blasts. Use the `scheduleId` returned when the message or blast was scheduled.
5518
+ </dd>
5519
+ </dl>
5520
+ </dd>
5521
+ </dl>
5522
+
5523
+ #### 🔌 Usage
5524
+
5525
+ <dl>
5526
+ <dd>
5527
+
5528
+ <dl>
5529
+ <dd>
5530
+
5531
+ ```ruby
5532
+ client.messages.schedule.cancel(id: 'id');
5533
+ ```
5534
+ </dd>
5535
+ </dl>
5536
+ </dd>
5537
+ </dl>
5538
+
5539
+ #### ⚙️ Parameters
5540
+
5541
+ <dl>
5542
+ <dd>
5543
+
5544
+ <dl>
5545
+ <dd>
5546
+
5547
+ **id:** `String` — Unique identifier of the scheduled message. This identifier is a string that always begins with the prefix `msg_sched_`, for example: `msg_sched_1234567890`.
5548
+
5549
+ </dd>
5550
+ </dl>
5551
+
5552
+ <dl>
5553
+ <dd>
5554
+
5555
+ **request_options:** `Pinnacle::Messages::Schedule::RequestOptions`
5556
+
5557
+ </dd>
5558
+ </dl>
5559
+ </dd>
5560
+ </dl>
5561
+
5562
+
5563
+ </dd>
5564
+ </dl>
5565
+ </details>
5566
+
5567
+ ## Messages Schedules
5568
+ <details><summary><code>client.messages.schedules.<a href="/lib/pinnacle/messages/schedules/client.rb">list</a>(request) -> Pinnacle::Types::ListScheduledMessagesResponse</code></summary>
5569
+ <dl>
5570
+ <dd>
5571
+
5572
+ #### 📝 Description
5573
+
5574
+ <dl>
5575
+ <dd>
5576
+
5577
+ <dl>
5578
+ <dd>
5579
+
5580
+ List all scheduled messages with optional filtering and pagination. Results are sorted by creation date, newest first.
5581
+ </dd>
5582
+ </dl>
5583
+ </dd>
5584
+ </dl>
5585
+
5586
+ #### 🔌 Usage
5587
+
5588
+ <dl>
5589
+ <dd>
5590
+
5591
+ <dl>
5592
+ <dd>
5593
+
5594
+ ```ruby
5595
+ client.messages.schedules.list();
5596
+ ```
5597
+ </dd>
5598
+ </dl>
5599
+ </dd>
5600
+ </dl>
5601
+
5602
+ #### ⚙️ Parameters
5603
+
5604
+ <dl>
5605
+ <dd>
5606
+
5607
+ <dl>
5608
+ <dd>
5609
+
5610
+ **page_index:** `Integer`
5611
+
5612
+ </dd>
5613
+ </dl>
5614
+
5615
+ <dl>
5616
+ <dd>
5617
+
5618
+ **page_size:** `Integer`
5619
+
5620
+ </dd>
5621
+ </dl>
5622
+
5623
+ <dl>
5624
+ <dd>
5625
+
5626
+ **status:** `Pinnacle::Messages::Schedules::Types::ListScheduledMessagesRequestStatus`
5627
+
5628
+ </dd>
5629
+ </dl>
5630
+
5631
+ <dl>
5632
+ <dd>
5633
+
5634
+ **schedule_type:** `Pinnacle::Messages::Schedules::Types::ListScheduledMessagesRequestScheduleType` — Filter by schedule type — "MESSAGE" for individual messages, "BLAST" for bulk sends.
5635
+
5636
+ </dd>
5637
+ </dl>
5638
+
5639
+ <dl>
5640
+ <dd>
5641
+
5642
+ **content:** `String` — Search scheduled message content (partial match, case-insensitive).
5643
+
5644
+ </dd>
5645
+ </dl>
5646
+
5647
+ <dl>
5648
+ <dd>
5649
+
5650
+ **request_options:** `Pinnacle::Messages::Schedules::RequestOptions`
5651
+
5652
+ </dd>
5653
+ </dl>
5654
+ </dd>
5655
+ </dl>
5656
+
5657
+
5658
+ </dd>
5659
+ </dl>
5660
+ </details>
5661
+
5662
+ ## Messages Blasts
5663
+ <details><summary><code>client.messages.blasts.<a href="/lib/pinnacle/messages/blasts/client.rb">list</a>(request) -> Pinnacle::Types::ListBlastsResponse</code></summary>
5664
+ <dl>
5665
+ <dd>
5666
+
5667
+ #### 📝 Description
5668
+
5669
+ <dl>
5670
+ <dd>
5671
+
5672
+ <dl>
5673
+ <dd>
5674
+
5675
+ List all blasts with optional filtering and pagination. Results are sorted by creation date, newest first.
5676
+ </dd>
5677
+ </dl>
5678
+ </dd>
5679
+ </dl>
5680
+
5681
+ #### 🔌 Usage
5682
+
5683
+ <dl>
5684
+ <dd>
5685
+
5686
+ <dl>
5687
+ <dd>
5688
+
5689
+ ```ruby
5690
+ client.messages.blasts.list();
5691
+ ```
5692
+ </dd>
5693
+ </dl>
5694
+ </dd>
5695
+ </dl>
5696
+
5697
+ #### ⚙️ Parameters
5698
+
5699
+ <dl>
5700
+ <dd>
5701
+
5702
+ <dl>
5703
+ <dd>
5704
+
5705
+ **page_index:** `Integer`
5706
+
5707
+ </dd>
5708
+ </dl>
5709
+
5710
+ <dl>
5711
+ <dd>
5712
+
5713
+ **page_size:** `Integer`
5714
+
5715
+ </dd>
5716
+ </dl>
5717
+
5718
+ <dl>
5719
+ <dd>
5720
+
5721
+ **audience_id:** `String` — Filter blasts by audience ID.
5722
+
5723
+ </dd>
5724
+ </dl>
5725
+
5726
+ <dl>
5727
+ <dd>
5728
+
5729
+ **sender:** `String` — Filter blasts that include this sender (phone number or agent ID).
5730
+
5731
+ </dd>
5732
+ </dl>
5733
+
5734
+ <dl>
5735
+ <dd>
5736
+
5737
+ **content:** `String` — Search blast content (partial match, case-insensitive).
5738
+
5739
+ </dd>
5740
+ </dl>
5741
+
5742
+ <dl>
5743
+ <dd>
5744
+
5745
+ **request_options:** `Pinnacle::Messages::Blasts::RequestOptions`
5746
+
5747
+ </dd>
5748
+ </dl>
5749
+ </dd>
5750
+ </dl>
5751
+
5752
+
5753
+ </dd>
5754
+ </dl>
5755
+ </details>
5756
+
5757
+ ## PhoneNumbers Webhook
5758
+ <details><summary><code>client.phone_numbers.webhook.<a href="/lib/pinnacle/phone_numbers/webhook/client.rb">attach</a>(phone, request) -> Pinnacle::Types::ConfiguredWebhook</code></summary>
5759
+ <dl>
5760
+ <dd>
5761
+
5762
+ #### 📝 Description
5763
+
5764
+ <dl>
5765
+ <dd>
5766
+
5767
+ <dl>
5768
+ <dd>
5769
+
5770
+ Connect a webhook to your phone number to receive real-time notifications for incoming messages, delivery status updates, and other communication events.
5771
+ </dd>
5772
+ </dl>
5773
+ </dd>
5774
+ </dl>
5775
+
5776
+ #### 🔌 Usage
5777
+
5778
+ <dl>
5779
+ <dd>
5780
+
5781
+ <dl>
5782
+ <dd>
5783
+
5784
+ ```ruby
5785
+ client.phone_numbers.webhook.attach(
5786
+ phone: '%2B14155551234',
5787
+ webhook_id: 'wh_1234567890',
5788
+ event: 'MESSAGE.STATUS'
5789
+ );
5790
+ ```
5791
+ </dd>
5792
+ </dl>
5793
+ </dd>
5794
+ </dl>
5795
+
5796
+ #### ⚙️ Parameters
5797
+
5798
+ <dl>
5799
+ <dd>
5800
+
5801
+ <dl>
5802
+ <dd>
5803
+
5804
+ **phone:** `String`
5805
+
5806
+ The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
5807
+
5808
+ Must be a phone number that you own and have already [purchased](./buy) through the API. A phone number can have multiple webhooks attached to it.
5809
+
5810
+ </dd>
5811
+ </dl>
5812
+
5813
+ <dl>
5814
+ <dd>
5815
+
5816
+ **request:** `Pinnacle::Types::AttachWebhookParams`
5817
+
5818
+ </dd>
5819
+ </dl>
5820
+
5821
+ <dl>
5822
+ <dd>
5823
+
5824
+ **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
5825
+
5826
+ </dd>
5827
+ </dl>
5828
+ </dd>
5829
+ </dl>
5830
+
5831
+
5832
+ </dd>
5833
+ </dl>
5834
+ </details>
5835
+
5836
+ <details><summary><code>client.phone_numbers.webhook.<a href="/lib/pinnacle/phone_numbers/webhook/client.rb">detach</a>(phone, webhook_id) -> Pinnacle::Types::DetachedWebhookInfo</code></summary>
5837
+ <dl>
5838
+ <dd>
5839
+
5840
+ #### 📝 Description
5841
+
5842
+ <dl>
5843
+ <dd>
5844
+
5845
+ <dl>
5846
+ <dd>
5847
+
5848
+ Disconnect a webhook from your phone number to stop receiving event notifications for that specific number. <br>
5849
+
5850
+ The webhook configuration itself remains intact and available for use with other phone numbers.
5851
+ </dd>
5852
+ </dl>
5853
+ </dd>
5854
+ </dl>
5855
+
5856
+ #### 🔌 Usage
5857
+
5858
+ <dl>
5859
+ <dd>
5860
+
5861
+ <dl>
5862
+ <dd>
5863
+
5864
+ ```ruby
5865
+ client.phone_numbers.webhook.detach(
5866
+ phone: '+14155551234',
5867
+ webhook_id: 'wh_1234567890'
5868
+ );
5869
+ ```
5870
+ </dd>
5871
+ </dl>
5872
+ </dd>
5873
+ </dl>
5874
+
5875
+ #### ⚙️ Parameters
5876
+
5877
+ <dl>
5878
+ <dd>
5879
+
5880
+ <dl>
5881
+ <dd>
5882
+
5883
+ **phone:** `String`
5884
+
5885
+ The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
5886
+
5887
+ Must be a phone number that you own and currently has the specified webhook attached.
5888
+
5889
+ </dd>
5890
+ </dl>
5891
+
5892
+ <dl>
5893
+ <dd>
5894
+
5895
+ **webhook_id:** `String`
5896
+
5897
+ The unique identifier of the webhook you want to detach from the phone number. <br>
5898
+
5899
+ This must be a valid webhook ID that is currently attached to the specified phone number. This identifier is a string that always begins with the prefix `wh_`, for example: `wh_1234567890`.
5900
+
5901
+ </dd>
5902
+ </dl>
5903
+
5904
+ <dl>
5905
+ <dd>
5906
+
5907
+ **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
5908
+
5909
+ </dd>
5910
+ </dl>
5911
+ </dd>
5912
+ </dl>
5913
+
5914
+
5915
+ </dd>
5916
+ </dl>
5917
+ </details>
5918
+
5919
+ ## PhoneNumbers Campaign
5920
+ <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">attach</a>(request) -> Pinnacle::Types::AttachedPhoneNumberResult</code></summary>
5921
+ <dl>
5922
+ <dd>
5923
+
5924
+ #### 📝 Description
5925
+
5926
+ <dl>
5927
+ <dd>
5928
+
5929
+ <dl>
5930
+ <dd>
5931
+
5932
+ Link a phone number to a specific campaign. Phone numbers must be linked to a campaign to send messages.
5933
+ </dd>
5934
+ </dl>
5935
+ </dd>
5936
+ </dl>
5937
+
5938
+ #### 🔌 Usage
5939
+
5940
+ <dl>
5941
+ <dd>
5942
+
5943
+ <dl>
5944
+ <dd>
5945
+
5946
+ ```ruby
5947
+ client.phone_numbers.campaign.attach(
5948
+ phones: ['+14155550123', '+14155559876', '+14155550111'],
5949
+ campaign_type: 'TOLL_FREE',
5950
+ campaign_id: 'tf_1234567890'
5951
+ );
5952
+ ```
5953
+ </dd>
5954
+ </dl>
5955
+ </dd>
5956
+ </dl>
5957
+
5958
+ #### ⚙️ Parameters
5959
+
5960
+ <dl>
5961
+ <dd>
5962
+
5963
+ <dl>
5964
+ <dd>
5965
+
5966
+ **phones:** `Internal::Types::Array[String]`
5967
+
5968
+ List of phone number (E.164 format). <br><br>
5969
+ **Limit:** 1 to 10
5970
+
5971
+ </dd>
5972
+ </dl>
5973
+
5974
+ <dl>
5975
+ <dd>
5976
+
5977
+ **campaign_type:** `Pinnacle::Types::MessagingProfileEnum`
5978
+
5979
+ </dd>
5980
+ </dl>
5981
+
5982
+ <dl>
5983
+ <dd>
5984
+
5985
+ **campaign_id:** `String`
5986
+
5987
+ Unique identifier for the campaign. <br>
5988
+
5989
+ - **TOLL_FREE** campaigns:
5990
+ - Must begin with the prefix `tf_`
5991
+ - Example: `tf_1234567890`
5992
+ - **10DLC** campaigns:
5993
+ - Must begin with the prefix `dlc_`
5994
+ - Example: `dlc_1234567890`
5995
+
5996
+ </dd>
5997
+ </dl>
5998
+
5999
+ <dl>
6000
+ <dd>
6001
+
6002
+ **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
6003
+
6004
+ </dd>
6005
+ </dl>
6006
+ </dd>
6007
+ </dl>
6008
+
6009
+
6010
+ </dd>
6011
+ </dl>
6012
+ </details>
6013
+
6014
+ <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">detach</a>(request) -> Pinnacle::Types::DetachedPhoneNumberResult</code></summary>
6015
+ <dl>
6016
+ <dd>
6017
+
6018
+ #### 📝 Description
6019
+
6020
+ <dl>
6021
+ <dd>
6022
+
6023
+ <dl>
6024
+ <dd>
6025
+
6026
+ Remove the association between a phone number and its attached campaign.
6027
+ </dd>
6028
+ </dl>
6029
+ </dd>
6030
+ </dl>
6031
+
6032
+ #### 🔌 Usage
6033
+
6034
+ <dl>
6035
+ <dd>
6036
+
6037
+ <dl>
6038
+ <dd>
6039
+
6040
+ ```ruby
6041
+ client.phone_numbers.campaign.detach(phones: ['+14155559876', '14155550111']);
6042
+ ```
6043
+ </dd>
6044
+ </dl>
6045
+ </dd>
6046
+ </dl>
6047
+
6048
+ #### ⚙️ Parameters
6049
+
6050
+ <dl>
6051
+ <dd>
6052
+
6053
+ <dl>
6054
+ <dd>
6055
+
6056
+ **phones:** `Internal::Types::Array[String]`
6057
+
6058
+ List of phone numbers (E.164 format). <br><br>
6059
+ **Limit:** 1 to 10
6060
+
6061
+ </dd>
6062
+ </dl>
6063
+
6064
+ <dl>
6065
+ <dd>
6066
+
6067
+ **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
6068
+
6069
+ </dd>
6070
+ </dl>
6071
+ </dd>
6072
+ </dl>
6073
+
6074
+
6075
+ </dd>
6076
+ </dl>
6077
+ </details>
6078
+
6079
+ ## Rcs Agents
6080
+ <details><summary><code>client.rcs.agents.<a href="/lib/pinnacle/rcs/agents/client.rb">list</a>(request) -> Pinnacle::Types::ListAgentsResponse</code></summary>
6081
+ <dl>
6082
+ <dd>
6083
+
6084
+ #### 📝 Description
6085
+
6086
+ <dl>
6087
+ <dd>
6088
+
6089
+ <dl>
6090
+ <dd>
6091
+
6092
+ List all RCS agents with pagination. Results are sorted by creation date, newest first.
6093
+ </dd>
6094
+ </dl>
6095
+ </dd>
6096
+ </dl>
6097
+
6098
+ #### 🔌 Usage
6099
+
6100
+ <dl>
6101
+ <dd>
6102
+
6103
+ <dl>
6104
+ <dd>
6105
+
6106
+ ```ruby
6107
+ client.rcs.agents.list();
6108
+ ```
6109
+ </dd>
6110
+ </dl>
6111
+ </dd>
6112
+ </dl>
6113
+
6114
+ #### ⚙️ Parameters
6115
+
6116
+ <dl>
6117
+ <dd>
6118
+
6119
+ <dl>
6120
+ <dd>
6121
+
6122
+ **page_index:** `Integer`
6123
+
6124
+ </dd>
6125
+ </dl>
6126
+
6127
+ <dl>
6128
+ <dd>
6129
+
6130
+ **page_size:** `Integer`
6131
+
6132
+ </dd>
6133
+ </dl>
6134
+
6135
+ <dl>
6136
+ <dd>
6137
+
6138
+ **agent_type:** `Pinnacle::Rcs::Agents::Types::ListAgentsRequestAgentType` — Filter by agent type.
6139
+
6140
+ </dd>
6141
+ </dl>
6142
+
6143
+ <dl>
6144
+ <dd>
6145
+
6146
+ **name:** `String` — Case-insensitive substring search on agent name.
6147
+
6148
+ </dd>
6149
+ </dl>
6150
+
6151
+ <dl>
6152
+ <dd>
6153
+
6154
+ **request_options:** `Pinnacle::Rcs::Agents::RequestOptions`
6155
+
6156
+ </dd>
6157
+ </dl>
6158
+ </dd>
6159
+ </dl>
6160
+
6161
+
6162
+ </dd>
6163
+ </dl>
6164
+ </details>
6165
+
6166
+ ## Rcs WhitelistedNumbers
6167
+ <details><summary><code>client.rcs.whitelisted_numbers.<a href="/lib/pinnacle/rcs/whitelisted_numbers/client.rb">list</a>(request) -> Pinnacle::Types::ListTestNumbersResponse</code></summary>
6168
+ <dl>
6169
+ <dd>
6170
+
6171
+ #### 📝 Description
6172
+
6173
+ <dl>
6174
+ <dd>
6175
+
6176
+ <dl>
6177
+ <dd>
6178
+
6179
+ List all whitelisted test numbers with optional filtering and pagination. Results are sorted by creation date, newest first.
6180
+ </dd>
6181
+ </dl>
6182
+ </dd>
6183
+ </dl>
6184
+
6185
+ #### 🔌 Usage
6186
+
6187
+ <dl>
6188
+ <dd>
6189
+
6190
+ <dl>
6191
+ <dd>
6192
+
6193
+ ```ruby
6194
+ client.rcs.whitelisted_numbers.list();
6195
+ ```
6196
+ </dd>
6197
+ </dl>
6198
+ </dd>
6199
+ </dl>
6200
+
6201
+ #### ⚙️ Parameters
6202
+
6203
+ <dl>
6204
+ <dd>
6205
+
6206
+ <dl>
6207
+ <dd>
6208
+
6209
+ **page_index:** `Integer`
6210
+
6211
+ </dd>
6212
+ </dl>
6213
+
6214
+ <dl>
6215
+ <dd>
6216
+
6217
+ **page_size:** `Integer`
6218
+
6219
+ </dd>
6220
+ </dl>
6221
+
6222
+ <dl>
6223
+ <dd>
6224
+
6225
+ **agent_id:** `String` — Filter whitelisted numbers by agent ID (prefixed with 'agent_').
6226
+
6227
+ </dd>
6228
+ </dl>
6229
+
6230
+ <dl>
6231
+ <dd>
6232
+
6233
+ **number:** `String` — Filter by phone number in E.164 format.
6234
+
6235
+ </dd>
6236
+ </dl>
6237
+
6238
+ <dl>
6239
+ <dd>
6240
+
6241
+ **status:** `Pinnacle::Rcs::WhitelistedNumbers::Types::ListTestNumbersRequestStatus` — Filter by whitelist status.
6242
+
6243
+ </dd>
6244
+ </dl>
6245
+
6246
+ <dl>
6247
+ <dd>
6248
+
6249
+ **request_options:** `Pinnacle::Rcs::WhitelistedNumbers::RequestOptions`
6250
+
6251
+ </dd>
6252
+ </dl>
6253
+ </dd>
6254
+ </dl>
6255
+
6256
+
6257
+ </dd>
6258
+ </dl>
6259
+ </details>
6260
+
6261
+ ## Rcs Test
6262
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">create_agent</a>(request) -> Pinnacle::Types::TestAgentResponse</code></summary>
6263
+ <dl>
6264
+ <dd>
6265
+
6266
+ #### 📝 Description
6267
+
6268
+ <dl>
6269
+ <dd>
6270
+
6271
+ <dl>
6272
+ <dd>
6273
+
6274
+ Create a new RCS test agent for development and testing.
6275
+
6276
+ ## Overview
6277
+
6278
+ Test agents let you build and test full RCS functionality — rich cards, carousels, buttons,
6279
+ quick replies, and media messages — without going through the full carrier review process.
6280
+ Messages from test agents can only be sent to [whitelisted phone numbers](/api-reference/rcs-agents/test/whitelist-number).
6281
+
6282
+ ## Limits
6283
+
6284
+ - **Maximum 5 test agents per account.**
6285
+
6286
+ ## Image Requirements
6287
+
6288
+ | Image | Format | Max Size |
6289
+ |-------|--------|----------|
6290
+ | Logo | JPEG, PNG | 50 KB |
6291
+ | Hero | JPEG, PNG | 200 KB |
6292
+
6293
+ ## After Creation
6294
+
6295
+ Once your test agent is created, you'll need to:
6296
+
6297
+ 1. **Whitelist test phone numbers** using [`POST /rcs/test/agents/{agentId}/whitelist`](/api-reference/rcs-agents/test/whitelist-number).
6298
+ 2. **Accept the tester invite** on each whitelisted device.
6299
+ 3. **Send messages** using [`POST /messages/send/rcs`](/api-reference/messages/send-rcs) with the returned agent ID as the `from` field.
6300
+
6301
+ > **2-Minute Cooldown**
6302
+ >
6303
+ > After creating a test agent, there is a mandatory 2-minute cooldown before you can whitelist phone numbers.
6304
+ > This is a requirement imposed by Google's RBM platform.
6305
+ </dd>
6306
+ </dl>
6307
+ </dd>
6308
+ </dl>
6309
+
6310
+ #### 🔌 Usage
6311
+
6312
+ <dl>
6313
+ <dd>
6314
+
6315
+ <dl>
6316
+ <dd>
6317
+
6318
+ ```ruby
6319
+ client.rcs.test.create_agent(
6320
+ display_name: 'Acme Support',
6321
+ description: 'Get help with your Acme orders and account',
6322
+ logo_url: 'https://example.com/logo.png',
6323
+ hero_url: 'https://example.com/hero.png',
6324
+ phone_numbers: [{
6325
+ number: '+14155550123',
6326
+ label: 'Support'
6327
+ }],
6328
+ emails: [{
6329
+ address: 'support@example.com',
6330
+ label: 'Support'
6331
+ }],
6332
+ websites: [{
6333
+ url: 'https://example.com',
6334
+ label: 'Website'
6335
+ }],
6336
+ privacy_url: 'https://example.com/privacy',
6337
+ terms_url: 'https://example.com/terms',
6338
+ color: "#FF6B00",
6339
+ is_conversational: true,
6340
+ agent_use_case: 'MULTI_USE'
6341
+ );
6342
+ ```
6343
+ </dd>
6344
+ </dl>
6345
+ </dd>
6346
+ </dl>
6347
+
6348
+ #### ⚙️ Parameters
6349
+
6350
+ <dl>
6351
+ <dd>
6352
+
6353
+ <dl>
6354
+ <dd>
6355
+
6356
+ **display_name:** `String`
6357
+
6358
+ Display name of the agent shown to users in RCS conversations.
6359
+ Must be between 1 and 40 characters.
6360
+
6361
+ </dd>
6362
+ </dl>
6363
+
6364
+ <dl>
6365
+ <dd>
6366
+
6367
+ **description:** `String`
6368
+
6369
+ Short description of what the agent does. Shown to users in the agent's profile.
6370
+ Must be between 1 and 100 characters.
6371
+
6372
+ </dd>
6373
+ </dl>
6374
+
6375
+ <dl>
6376
+ <dd>
6377
+
6378
+ **logo_url:** `String`
6379
+
6380
+ URL to the agent's logo image. Displayed as the agent's avatar in conversations.
6381
+
6382
+ **Requirements:**
6383
+ - Format: JPEG or PNG
6384
+ - Max file size: 50 KB
6385
+ - Recommended: Square aspect ratio
6386
+
6387
+ </dd>
6388
+ </dl>
6389
+
6390
+ <dl>
6391
+ <dd>
6392
+
6393
+ **hero_url:** `String`
6394
+
6395
+ URL to the agent's hero banner image. Displayed at the top of the agent's profile.
6396
+
6397
+ **Requirements:**
6398
+ - Format: JPEG or PNG
6399
+ - Max file size: 200 KB
6400
+ - Recommended: Landscape aspect ratio
6401
+
6402
+ </dd>
6403
+ </dl>
6404
+
6405
+ <dl>
6406
+ <dd>
6407
+
6408
+ **phone_numbers:** `Internal::Types::Array[Pinnacle::Types::AgentPhoneEntry]`
6409
+
6410
+ Contact phone numbers displayed on the agent's profile.
6411
+ At least 1 and up to 3 entries.
6412
+
6413
+ </dd>
6414
+ </dl>
6415
+
6416
+ <dl>
6417
+ <dd>
6418
+
6419
+ **emails:** `Internal::Types::Array[Pinnacle::Types::AgentEmailEntry]`
6420
+
6421
+ Contact email addresses displayed on the agent's profile.
6422
+ At least 1 and up to 3 entries.
6423
+
6424
+ </dd>
6425
+ </dl>
6426
+
6427
+ <dl>
6428
+ <dd>
6429
+
6430
+ **websites:** `Internal::Types::Array[Pinnacle::Types::AgentWebsiteEntry]`
6431
+
6432
+ Website links displayed on the agent's profile.
6433
+ At least 1 and up to 3 entries.
6434
+
6435
+ </dd>
6436
+ </dl>
6437
+
6438
+ <dl>
6439
+ <dd>
6440
+
6441
+ **privacy_url:** `String` — URL to the agent's privacy policy.
6442
+
6443
+ </dd>
6444
+ </dl>
6445
+
6446
+ <dl>
6447
+ <dd>
6448
+
6449
+ **terms_url:** `String` — URL to the agent's terms and conditions.
4651
6450
 
4652
6451
  </dd>
4653
6452
  </dl>
@@ -4655,7 +6454,10 @@ Messages will be evenly distributed across these agents.
4655
6454
  <dl>
4656
6455
  <dd>
4657
6456
 
4658
- **message:** `Pinnacle::Types::RcsValidateContent`
6457
+ **color:** `String`
6458
+
6459
+ The agent's brand color as a hex color code. Used for UI accents in the RCS conversation.
6460
+ Must have sufficient contrast with white for accessibility.
4659
6461
 
4660
6462
  </dd>
4661
6463
  </dl>
@@ -4663,7 +6465,10 @@ Messages will be evenly distributed across these agents.
4663
6465
  <dl>
4664
6466
  <dd>
4665
6467
 
4666
- **fallback:** `Pinnacle::Types::FallbackMessage`
6468
+ **is_conversational:** `Internal::Types::Boolean`
6469
+
6470
+ Whether the agent supports two-way conversations. Set to `true` if the agent
6471
+ will respond to user messages. Set to `false` for send-only agents (e.g., notifications).
4667
6472
 
4668
6473
  </dd>
4669
6474
  </dl>
@@ -4671,7 +6476,7 @@ Messages will be evenly distributed across these agents.
4671
6476
  <dl>
4672
6477
  <dd>
4673
6478
 
4674
- **options:** `Pinnacle::Messages::Blast::Types::BlastRcsOptions` — Configure how your RCS blast is sent and tracked.
6479
+ **agent_use_case:** `Pinnacle::Types::AgentUseCase`
4675
6480
 
4676
6481
  </dd>
4677
6482
  </dl>
@@ -4679,7 +6484,7 @@ Messages will be evenly distributed across these agents.
4679
6484
  <dl>
4680
6485
  <dd>
4681
6486
 
4682
- **request_options:** `Pinnacle::Messages::Blast::RequestOptions`
6487
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
4683
6488
 
4684
6489
  </dd>
4685
6490
  </dl>
@@ -4691,8 +6496,7 @@ Messages will be evenly distributed across these agents.
4691
6496
  </dl>
4692
6497
  </details>
4693
6498
 
4694
- ## Messages Schedule
4695
- <details><summary><code>client.messages.schedule.<a href="/lib/pinnacle/messages/schedule/client.rb">cancel</a>(id) -> Pinnacle::Types::ScheduleCancelResult</code></summary>
6499
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">update_agent</a>(agent_id, request) -> Pinnacle::Types::TestAgentResponse</code></summary>
4696
6500
  <dl>
4697
6501
  <dd>
4698
6502
 
@@ -4704,9 +6508,23 @@ Messages will be evenly distributed across these agents.
4704
6508
  <dl>
4705
6509
  <dd>
4706
6510
 
4707
- Cancel a scheduled message or blast. <br>
6511
+ Update an existing RCS test agent's configuration.
4708
6512
 
4709
- Works for both individual scheduled messages and scheduled blasts. Use the `scheduleId` returned when the message or blast was scheduled.
6513
+ All fields are optional only include the fields you want to update.
6514
+
6515
+ ## Image Requirements
6516
+
6517
+ If updating images, the same requirements apply as when creating an agent:
6518
+
6519
+ | Image | Format | Max Size |
6520
+ |-------|--------|----------|
6521
+ | Logo | JPEG, PNG | 50 KB |
6522
+ | Hero | JPEG, PNG | 200 KB |
6523
+
6524
+ > **2-Minute Cooldown**
6525
+ >
6526
+ > After updating a test agent, there is a mandatory 2-minute cooldown before you can whitelist phone numbers.
6527
+ > This is a requirement imposed by Google's RBM platform.
4710
6528
  </dd>
4711
6529
  </dl>
4712
6530
  </dd>
@@ -4721,7 +6539,10 @@ Works for both individual scheduled messages and scheduled blasts. Use the `sche
4721
6539
  <dd>
4722
6540
 
4723
6541
  ```ruby
4724
- client.messages.schedule.cancel(id: 'id');
6542
+ client.rcs.test.update_agent(
6543
+ agent_id: 'agent_abc123def456',
6544
+ display_name: 'Acme Premium Support'
6545
+ );
4725
6546
  ```
4726
6547
  </dd>
4727
6548
  </dl>
@@ -4736,7 +6557,7 @@ client.messages.schedule.cancel(id: 'id');
4736
6557
  <dl>
4737
6558
  <dd>
4738
6559
 
4739
- **id:** `String` — Unique identifier of the scheduled message. This identifier is a string that always begins with the prefix `msg_sched_`, for example: `msg_sched_1234567890`.
6560
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
4740
6561
 
4741
6562
  </dd>
4742
6563
  </dl>
@@ -4744,70 +6565,51 @@ client.messages.schedule.cancel(id: 'id');
4744
6565
  <dl>
4745
6566
  <dd>
4746
6567
 
4747
- **request_options:** `Pinnacle::Messages::Schedule::RequestOptions`
4748
-
4749
- </dd>
4750
- </dl>
4751
- </dd>
4752
- </dl>
4753
-
6568
+ **display_name:** `String`
4754
6569
 
6570
+ Display name of the agent shown to users in RCS conversations.
6571
+ Must be between 1 and 40 characters.
6572
+
4755
6573
  </dd>
4756
6574
  </dl>
4757
- </details>
4758
-
4759
- ## PhoneNumbers Webhook
4760
- <details><summary><code>client.phone_numbers.webhook.<a href="/lib/pinnacle/phone_numbers/webhook/client.rb">attach</a>(phone, request) -> Pinnacle::Types::ConfiguredWebhook</code></summary>
4761
- <dl>
4762
- <dd>
4763
-
4764
- #### 📝 Description
4765
6575
 
4766
6576
  <dl>
4767
6577
  <dd>
4768
6578
 
4769
- <dl>
4770
- <dd>
6579
+ **description:** `String`
4771
6580
 
4772
- Connect a webhook to your phone number to receive real-time notifications for incoming messages, delivery status updates, and other communication events.
4773
- </dd>
4774
- </dl>
6581
+ Short description of what the agent does.
6582
+ Must be between 1 and 100 characters.
6583
+
4775
6584
  </dd>
4776
6585
  </dl>
4777
6586
 
4778
- #### 🔌 Usage
4779
-
4780
6587
  <dl>
4781
6588
  <dd>
4782
6589
 
4783
- <dl>
4784
- <dd>
6590
+ **logo_url:** `String`
4785
6591
 
4786
- ```ruby
4787
- client.phone_numbers.webhook.attach(
4788
- phone: '%2B14155551234',
4789
- webhook_id: 'wh_1234567890',
4790
- event: 'MESSAGE.STATUS'
4791
- );
4792
- ```
4793
- </dd>
4794
- </dl>
6592
+ URL to the agent's logo image.
6593
+
6594
+ **Requirements:**
6595
+ - Format: JPEG or PNG
6596
+ - Max file size: 50 KB
6597
+ - Recommended: Square aspect ratio
6598
+
4795
6599
  </dd>
4796
6600
  </dl>
4797
6601
 
4798
- #### ⚙️ Parameters
4799
-
4800
- <dl>
4801
- <dd>
4802
-
4803
6602
  <dl>
4804
6603
  <dd>
4805
6604
 
4806
- **phone:** `String`
6605
+ **hero_url:** `String`
4807
6606
 
4808
- The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
6607
+ URL to the agent's hero banner image.
4809
6608
 
4810
- Must be a phone number that you own and have already [purchased](./buy) through the API. A phone number can have multiple webhooks attached to it.
6609
+ **Requirements:**
6610
+ - Format: JPEG or PNG
6611
+ - Max file size: 200 KB
6612
+ - Recommended: Landscape aspect ratio
4811
6613
 
4812
6614
  </dd>
4813
6615
  </dl>
@@ -4815,7 +6617,7 @@ Must be a phone number that you own and have already [purchased](./buy) through
4815
6617
  <dl>
4816
6618
  <dd>
4817
6619
 
4818
- **request:** `Pinnacle::Types::AttachWebhookParams`
6620
+ **phone_numbers:** `Internal::Types::Array[Pinnacle::Types::AgentPhoneEntry]` — Contact phone numbers displayed on the agent's profile. At least 1 and up to 3 entries.
4819
6621
 
4820
6622
  </dd>
4821
6623
  </dl>
@@ -4823,70 +6625,47 @@ Must be a phone number that you own and have already [purchased](./buy) through
4823
6625
  <dl>
4824
6626
  <dd>
4825
6627
 
4826
- **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
6628
+ **emails:** `Internal::Types::Array[Pinnacle::Types::AgentEmailEntry]` — Contact email addresses displayed on the agent's profile. At least 1 and up to 3 entries.
4827
6629
 
4828
6630
  </dd>
4829
6631
  </dl>
4830
- </dd>
4831
- </dl>
4832
6632
 
6633
+ <dl>
6634
+ <dd>
4833
6635
 
6636
+ **websites:** `Internal::Types::Array[Pinnacle::Types::AgentWebsiteEntry]` — Website links displayed on the agent's profile. At least 1 and up to 3 entries.
6637
+
4834
6638
  </dd>
4835
6639
  </dl>
4836
- </details>
4837
6640
 
4838
- <details><summary><code>client.phone_numbers.webhook.<a href="/lib/pinnacle/phone_numbers/webhook/client.rb">detach</a>(phone, webhook_id) -> Pinnacle::Types::DetachedWebhookInfo</code></summary>
4839
6641
  <dl>
4840
6642
  <dd>
4841
6643
 
4842
- #### 📝 Description
4843
-
4844
- <dl>
4845
- <dd>
6644
+ **privacy_url:** `String` — URL to the agent's privacy policy.
6645
+
6646
+ </dd>
6647
+ </dl>
4846
6648
 
4847
6649
  <dl>
4848
6650
  <dd>
4849
6651
 
4850
- Disconnect a webhook from your phone number to stop receiving event notifications for that specific number. <br>
4851
-
4852
- The webhook configuration itself remains intact and available for use with other phone numbers.
4853
- </dd>
4854
- </dl>
6652
+ **terms_url:** `String` URL to the agent's terms and conditions.
6653
+
4855
6654
  </dd>
4856
6655
  </dl>
4857
6656
 
4858
- #### 🔌 Usage
4859
-
4860
6657
  <dl>
4861
6658
  <dd>
4862
6659
 
4863
- <dl>
4864
- <dd>
4865
-
4866
- ```ruby
4867
- client.phone_numbers.webhook.detach(
4868
- phone: '+14155551234',
4869
- webhook_id: 'wh_1234567890'
4870
- );
4871
- ```
4872
- </dd>
4873
- </dl>
6660
+ **color:** `String` — The agent's brand color as a hex color code. Must have sufficient contrast with white.
6661
+
4874
6662
  </dd>
4875
6663
  </dl>
4876
6664
 
4877
- #### ⚙️ Parameters
4878
-
4879
- <dl>
4880
- <dd>
4881
-
4882
6665
  <dl>
4883
6666
  <dd>
4884
6667
 
4885
- **phone:** `String`
4886
-
4887
- The phone number you want to attach the webhook to in E.164 format. Make sure it is url encoded (i.e. replace the leading + with %2B). <br>
4888
-
4889
- Must be a phone number that you own and currently has the specified webhook attached.
6668
+ **is_conversational:** `Internal::Types::Boolean` — Whether the agent supports two-way conversations.
4890
6669
 
4891
6670
  </dd>
4892
6671
  </dl>
@@ -4894,11 +6673,7 @@ Must be a phone number that you own and currently has the specified webhook atta
4894
6673
  <dl>
4895
6674
  <dd>
4896
6675
 
4897
- **webhook_id:** `String`
4898
-
4899
- The unique identifier of the webhook you want to detach from the phone number. <br>
4900
-
4901
- This must be a valid webhook ID that is currently attached to the specified phone number. This identifier is a string that always begins with the prefix `wh_`, for example: `wh_1234567890`.
6676
+ **agent_use_case:** `Pinnacle::Types::AgentUseCase`
4902
6677
 
4903
6678
  </dd>
4904
6679
  </dl>
@@ -4906,7 +6681,7 @@ This must be a valid webhook ID that is currently attached to the specified phon
4906
6681
  <dl>
4907
6682
  <dd>
4908
6683
 
4909
- **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
6684
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
4910
6685
 
4911
6686
  </dd>
4912
6687
  </dl>
@@ -4918,8 +6693,7 @@ This must be a valid webhook ID that is currently attached to the specified phon
4918
6693
  </dl>
4919
6694
  </details>
4920
6695
 
4921
- ## PhoneNumbers Campaign
4922
- <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">attach</a>(request) -> Pinnacle::Types::AttachedPhoneNumberResult</code></summary>
6696
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">whitelist_number</a>(agent_id, request) -> Pinnacle::Types::TestAgentWhitelistResponse</code></summary>
4923
6697
  <dl>
4924
6698
  <dd>
4925
6699
 
@@ -4931,7 +6705,36 @@ This must be a valid webhook ID that is currently attached to the specified phon
4931
6705
  <dl>
4932
6706
  <dd>
4933
6707
 
4934
- Link a phone number to a specific campaign. Phone numbers must be linked to a campaign to send messages.
6708
+ Whitelist a phone number for testing with a specific test agent.
6709
+
6710
+ During development and testing, RCS agents can only send messages to whitelisted phone numbers.
6711
+ Use this endpoint to whitelist specific phone numbers so you can send and receive messages from the test agent.
6712
+
6713
+ ## Verification Process
6714
+
6715
+ After whitelisting, the recipient must accept the tester invite:
6716
+
6717
+ 1. The recipient's device will receive a message from "RBM Tester Management".
6718
+ 2. The recipient must tap "Make me a tester" to accept.
6719
+ 3. Once accepted, the status transitions from `PENDING` to `ACCEPTED`.
6720
+
6721
+ ## Verification
6722
+
6723
+ <div style="display: flex; gap: 16px;">
6724
+ <div style="flex: 1; text-align: center;">
6725
+ <strong>Accepting the invite</strong><br/>
6726
+ <img src="https://pncl.to/f769cAvCbEx-MmezZjR6dz6KVkr5ZO" alt="Accepting the tester invite" style="max-width: 100%;" />
6727
+ </div>
6728
+ <div style="flex: 1; text-align: center;">
6729
+ <strong>Declining the invite</strong><br/>
6730
+ <img src="https://pncl.to/VRere3tEKfx4n0HNaxK-vwl7pbLHTJ" alt="Declining the tester invite" style="max-width: 100%;" />
6731
+ </div>
6732
+ </div>
6733
+
6734
+ ## Cooldown
6735
+
6736
+ There is a **2-minute cooldown** after creating or updating a test agent before you can whitelist numbers.
6737
+ Attempting to whitelist during the cooldown returns a `500` error with the remaining wait time.
4935
6738
  </dd>
4936
6739
  </dl>
4937
6740
  </dd>
@@ -4946,10 +6749,9 @@ Link a phone number to a specific campaign. Phone numbers must be linked to a ca
4946
6749
  <dd>
4947
6750
 
4948
6751
  ```ruby
4949
- client.phone_numbers.campaign.attach(
4950
- phones: ['+14155550123', '+14155559876', '+14155550111'],
4951
- campaign_type: 'TOLL_FREE',
4952
- campaign_id: 'tf_1234567890'
6752
+ client.rcs.test.whitelist_number(
6753
+ agent_id: 'agent_abc123def456',
6754
+ phone_number: '+12345678901'
4953
6755
  );
4954
6756
  ```
4955
6757
  </dd>
@@ -4965,18 +6767,7 @@ client.phone_numbers.campaign.attach(
4965
6767
  <dl>
4966
6768
  <dd>
4967
6769
 
4968
- **phones:** `Internal::Types::Array[String]`
4969
-
4970
- List of phone number (E.164 format). <br><br>
4971
- **Limit:** 1 to 10
4972
-
4973
- </dd>
4974
- </dl>
4975
-
4976
- <dl>
4977
- <dd>
4978
-
4979
- **campaign_type:** `Pinnacle::Types::MessagingProfileEnum`
6770
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
4980
6771
 
4981
6772
  </dd>
4982
6773
  </dl>
@@ -4984,16 +6775,7 @@ List of phone number (E.164 format). <br><br>
4984
6775
  <dl>
4985
6776
  <dd>
4986
6777
 
4987
- **campaign_id:** `String`
4988
-
4989
- Unique identifier for the campaign. <br>
4990
-
4991
- - **TOLL_FREE** campaigns:
4992
- - Must begin with the prefix `tf_`
4993
- - Example: `tf_1234567890`
4994
- - **10DLC** campaigns:
4995
- - Must begin with the prefix `dlc_`
4996
- - Example: `dlc_1234567890`
6778
+ **phone_number:** `String` — Phone number to whitelist for testing in E.164 format.
4997
6779
 
4998
6780
  </dd>
4999
6781
  </dl>
@@ -5001,7 +6783,7 @@ Unique identifier for the campaign. <br>
5001
6783
  <dl>
5002
6784
  <dd>
5003
6785
 
5004
- **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
6786
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
5005
6787
 
5006
6788
  </dd>
5007
6789
  </dl>
@@ -5013,7 +6795,7 @@ Unique identifier for the campaign. <br>
5013
6795
  </dl>
5014
6796
  </details>
5015
6797
 
5016
- <details><summary><code>client.phone_numbers.campaign.<a href="/lib/pinnacle/phone_numbers/campaign/client.rb">detach</a>(request) -> Pinnacle::Types::DetachedPhoneNumberResult</code></summary>
6798
+ <details><summary><code>client.rcs.test.<a href="/lib/pinnacle/rcs/test/client.rb">get_whitelist_status</a>(agent_id) -> Pinnacle::Types::TestAgentWhitelistResponse</code></summary>
5017
6799
  <dl>
5018
6800
  <dd>
5019
6801
 
@@ -5025,7 +6807,27 @@ Unique identifier for the campaign. <br>
5025
6807
  <dl>
5026
6808
  <dd>
5027
6809
 
5028
- Remove the association between a phone number and its attached campaign.
6810
+ Check the current whitelist status of a phone number for a specific test agent.
6811
+
6812
+ Use this endpoint to poll the status of a previously whitelisted number and determine
6813
+ whether the recipient has accepted or rejected the tester invite.
6814
+
6815
+ ## Status Values
6816
+
6817
+ - **`PENDING`** — The tester invite was sent but the recipient has not yet responded. Ask the recipient to check their messages and accept the invite.
6818
+ - **`ACCEPTED`** — The recipient accepted the invite. Messages can be exchanged.
6819
+ - **`REJECTED`** — The recipient rejected the invite or the invite could not be delivered since the carrier does not support test agents. If the user rejected the invite, they can accept it again by tapping "Make me a tester" in the same message from "RBM Tester Management".
6820
+
6821
+ <div style="display: flex; gap: 16px;">
6822
+ <div style="flex: 1; text-align: center;">
6823
+ <strong>Accepting the invite</strong><br/>
6824
+ <img src="https://pncl.to/f769cAvCbEx-MmezZjR6dz6KVkr5ZO" alt="Accepting the tester invite" style="max-width: 100%;" />
6825
+ </div>
6826
+ <div style="flex: 1; text-align: center;">
6827
+ <strong>Declining the invite</strong><br/>
6828
+ <img src="https://pncl.to/VRere3tEKfx4n0HNaxK-vwl7pbLHTJ" alt="Declining the tester invite" style="max-width: 100%;" />
6829
+ </div>
6830
+ </div>
5029
6831
  </dd>
5030
6832
  </dl>
5031
6833
  </dd>
@@ -5040,7 +6842,10 @@ Remove the association between a phone number and its attached campaign.
5040
6842
  <dd>
5041
6843
 
5042
6844
  ```ruby
5043
- client.phone_numbers.campaign.detach(phones: ['+14155559876', '14155550111']);
6845
+ client.rcs.test.get_whitelist_status(
6846
+ agent_id: 'agent_abc123def456',
6847
+ phone_number: '+12345678901'
6848
+ );
5044
6849
  ```
5045
6850
  </dd>
5046
6851
  </dl>
@@ -5055,10 +6860,15 @@ client.phone_numbers.campaign.detach(phones: ['+14155559876', '14155550111']);
5055
6860
  <dl>
5056
6861
  <dd>
5057
6862
 
5058
- **phones:** `Internal::Types::Array[String]`
6863
+ **agent_id:** `String` — The RCS agent ID (must be prefixed with `agent_`).
6864
+
6865
+ </dd>
6866
+ </dl>
5059
6867
 
5060
- List of phone numbers (E.164 format). <br><br>
5061
- **Limit:** 1 to 10
6868
+ <dl>
6869
+ <dd>
6870
+
6871
+ **phone_number:** `String` — The phone number to check whitelist status for (E.164 format).
5062
6872
 
5063
6873
  </dd>
5064
6874
  </dl>
@@ -5066,7 +6876,7 @@ List of phone numbers (E.164 format). <br><br>
5066
6876
  <dl>
5067
6877
  <dd>
5068
6878
 
5069
- **request_options:** `Pinnacle::PhoneNumbers::Campaign::RequestOptions`
6879
+ **request_options:** `Pinnacle::Rcs::Test::RequestOptions`
5070
6880
 
5071
6881
  </dd>
5072
6882
  </dl>
@@ -5614,6 +7424,84 @@ See the response of [Create Shortened URL](./create-url) for more information.
5614
7424
  </dl>
5615
7425
 
5616
7426
 
7427
+ </dd>
7428
+ </dl>
7429
+ </details>
7430
+
7431
+ <details><summary><code>client.tools.url.<a href="/lib/pinnacle/tools/url/client.rb">list</a>(request) -> Pinnacle::Types::ListLinksResponse</code></summary>
7432
+ <dl>
7433
+ <dd>
7434
+
7435
+ #### 📝 Description
7436
+
7437
+ <dl>
7438
+ <dd>
7439
+
7440
+ <dl>
7441
+ <dd>
7442
+
7443
+ List all shortened URLs with pagination. Results are sorted by creation date, newest first.
7444
+ </dd>
7445
+ </dl>
7446
+ </dd>
7447
+ </dl>
7448
+
7449
+ #### 🔌 Usage
7450
+
7451
+ <dl>
7452
+ <dd>
7453
+
7454
+ <dl>
7455
+ <dd>
7456
+
7457
+ ```ruby
7458
+ client.tools.url.list();
7459
+ ```
7460
+ </dd>
7461
+ </dl>
7462
+ </dd>
7463
+ </dl>
7464
+
7465
+ #### ⚙️ Parameters
7466
+
7467
+ <dl>
7468
+ <dd>
7469
+
7470
+ <dl>
7471
+ <dd>
7472
+
7473
+ **page_index:** `Integer`
7474
+
7475
+ </dd>
7476
+ </dl>
7477
+
7478
+ <dl>
7479
+ <dd>
7480
+
7481
+ **page_size:** `Integer`
7482
+
7483
+ </dd>
7484
+ </dl>
7485
+
7486
+ <dl>
7487
+ <dd>
7488
+
7489
+ **endpoint:** `String` — Case-insensitive substring search on the destination URL.
7490
+
7491
+ </dd>
7492
+ </dl>
7493
+
7494
+ <dl>
7495
+ <dd>
7496
+
7497
+ **request_options:** `Pinnacle::Tools::Url::RequestOptions`
7498
+
7499
+ </dd>
7500
+ </dl>
7501
+ </dd>
7502
+ </dl>
7503
+
7504
+
5617
7505
  </dd>
5618
7506
  </dl>
5619
7507
  </details>