rcs 2.0.14 → 2.0.16

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +4 -3
  3. data/.rubocop.yml +19 -0
  4. data/lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb +3 -6
  5. data/lib/pinnacle/client.rb +1 -1
  6. data/lib/pinnacle/internal/types/boolean.rb +1 -1
  7. data/lib/pinnacle/internal/types/utils.rb +2 -2
  8. data/lib/pinnacle/messages/client.rb +5 -0
  9. data/lib/pinnacle/messages/simulate/client.rb +50 -0
  10. data/lib/pinnacle/phone_numbers/client.rb +0 -5
  11. data/lib/pinnacle/types/attach_webhook_response_webhook.rb +2 -2
  12. data/lib/pinnacle/types/attach_webhook_result.rb +12 -0
  13. data/lib/pinnacle/types/detach_webhook_result.rb +11 -0
  14. data/lib/pinnacle/types/extended_brand_with_vetting.rb +2 -2
  15. data/lib/pinnacle/types/extended_rcs_campaign.rb +3 -6
  16. data/lib/pinnacle/types/failed_sender.rb +10 -0
  17. data/lib/pinnacle/types/rcs_campaign.rb +3 -6
  18. data/lib/pinnacle/types/rcs_campaign_summary.rb +0 -1
  19. data/lib/pinnacle/types/rcs_cards_content.rb +1 -1
  20. data/lib/pinnacle/types/rcs_cards_content_cards_item.rb +1 -1
  21. data/lib/pinnacle/types/rcs_media_content.rb +1 -1
  22. data/lib/pinnacle/types/rcs_validate_content_media.rb +1 -1
  23. data/lib/pinnacle/types/rich_card.rb +1 -1
  24. data/lib/pinnacle/types/rich_cards.rb +1 -1
  25. data/lib/pinnacle/types/rich_media_message.rb +1 -1
  26. data/lib/pinnacle/types/rich_text.rb +1 -1
  27. data/lib/pinnacle/types/send_rich_cards_options.rb +5 -0
  28. data/lib/pinnacle/types/send_rich_message_options_4.rb +13 -0
  29. data/lib/pinnacle/types/simulate_message_input.rb +12 -0
  30. data/lib/pinnacle/types/simulate_user_button.rb +12 -0
  31. data/lib/pinnacle/types/simulate_user_message.rb +12 -0
  32. data/lib/pinnacle/types/simulate_user_params.rb +13 -0
  33. data/lib/pinnacle/types/simulate_user_response.rb +10 -0
  34. data/lib/pinnacle/types/user_button_press.rb +19 -0
  35. data/lib/pinnacle/types/user_button_press_call.rb +12 -0
  36. data/lib/pinnacle/types/user_button_press_open_url.rb +12 -0
  37. data/lib/pinnacle/types/user_button_press_request_user_location.rb +12 -0
  38. data/lib/pinnacle/types/user_button_press_request_user_location_location.rb +13 -0
  39. data/lib/pinnacle/types/user_button_press_schedule_event.rb +15 -0
  40. data/lib/pinnacle/types/user_button_press_send_location.rb +13 -0
  41. data/lib/pinnacle/types/user_button_press_send_location_lat_long.rb +11 -0
  42. data/lib/pinnacle/types/user_button_press_trigger.rb +12 -0
  43. data/lib/pinnacle/types/vcard_content.rb +1 -1
  44. data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
  45. data/lib/pinnacle/types/webhook_summary.rb +1 -0
  46. data/lib/pinnacle/types/webhooks.rb +1 -0
  47. data/lib/pinnacle/version.rb +1 -1
  48. data/lib/pinnacle/webhooks/client.rb +85 -0
  49. data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +16 -0
  50. data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +12 -0
  51. data/lib/pinnacle.rb +23 -12
  52. data/reference.md +223 -151
  53. metadata +23 -12
  54. data/lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb +0 -15
  55. data/lib/pinnacle/phone_numbers/webhook/client.rb +0 -90
  56. data/lib/pinnacle/types/attach_webhook_by_id_params.rb +0 -11
  57. data/lib/pinnacle/types/attach_webhook_params.rb +0 -15
  58. data/lib/pinnacle/types/configured_webhook.rb +0 -13
  59. data/lib/pinnacle/types/create_and_attach_webhook_by_url_params.rb +0 -12
  60. data/lib/pinnacle/types/detached_webhook_info.rb +0 -11
  61. data/lib/pinnacle/types/rcs_campaign_schema_extra_use_case.rb +0 -11
  62. data/lib/pinnacle/types/rcs_campaign_schema_use_case.rb +0 -11
  63. data/lib/pinnacle/types/rcs_campaign_use_case_enum.rb +0 -43
data/reference.md CHANGED
@@ -2763,6 +2763,205 @@ client.webhooks.list();
2763
2763
  </dl>
2764
2764
 
2765
2765
 
2766
+ </dd>
2767
+ </dl>
2768
+ </details>
2769
+
2770
+ <details><summary><code>client.webhooks.<a href="/lib/pinnacle/webhooks/client.rb">attach</a>(request) -> Pinnacle::Types::AttachWebhookResult</code></summary>
2771
+ <dl>
2772
+ <dd>
2773
+
2774
+ #### 📝 Description
2775
+
2776
+ <dl>
2777
+ <dd>
2778
+
2779
+ <dl>
2780
+ <dd>
2781
+
2782
+ Attach a webhook to one or more senders (phone numbers or RCS agent IDs) to receive real-time event notifications. <br>
2783
+
2784
+ You can attach an existing webhook by providing its ID, or create a new webhook by specifying a name and URL. Supports bulk operations with up to 50 senders per request. <br>
2785
+
2786
+ Subscriptions are additive — attaching new senders does not remove existing ones. Re-attaching the same sender updates the event type filter without creating duplicates. <br>
2787
+
2788
+ **Custom headers** may be provided in either case via the optional `headers` field. When attaching a new webhook, the headers are stored on the webhook and sent on every delivery. When attaching an existing `webhookId`, supplying `headers` **overwrites** the stored headers on that webhook — omit the field to leave them unchanged, or pass an empty object `{}` to clear them. The reserved `PINNACLE-SIGNING-SECRET` header is always set by Pinnacle and cannot be overridden.
2789
+ </dd>
2790
+ </dl>
2791
+ </dd>
2792
+ </dl>
2793
+
2794
+ #### 🔌 Usage
2795
+
2796
+ <dl>
2797
+ <dd>
2798
+
2799
+ <dl>
2800
+ <dd>
2801
+
2802
+ ```ruby
2803
+ client.webhooks.attach(senders: ['+14155551234', 'agent_abc123']);
2804
+ ```
2805
+ </dd>
2806
+ </dl>
2807
+ </dd>
2808
+ </dl>
2809
+
2810
+ #### ⚙️ Parameters
2811
+
2812
+ <dl>
2813
+ <dd>
2814
+
2815
+ <dl>
2816
+ <dd>
2817
+
2818
+ **senders:** `Internal::Types::Array[String]` — Array of senders to attach the webhook to. Can be phone numbers in E.164 format or RCS agent IDs.
2819
+
2820
+ </dd>
2821
+ </dl>
2822
+
2823
+ <dl>
2824
+ <dd>
2825
+
2826
+ **webhook_id:** `String`
2827
+
2828
+ Existing webhook ID (starts with `wh_`). Provide this OR `name` + `url` to create a new webhook. The webhook must be in ENABLED status. Disabled webhooks can be re-enabled from the [dashboard](https://app.pinnacle.sh/dashboard/development/webhooks).
2829
+
2830
+ Supplying `headers` alongside `webhookId` **overwrites** the stored headers on the webhook. Omit `headers` to leave them unchanged.
2831
+
2832
+ </dd>
2833
+ </dl>
2834
+
2835
+ <dl>
2836
+ <dd>
2837
+
2838
+ **name:** `String` — Name for a new webhook (required if no `webhookId`).
2839
+
2840
+ </dd>
2841
+ </dl>
2842
+
2843
+ <dl>
2844
+ <dd>
2845
+
2846
+ **url:** `String` — HTTPS endpoint URL for a new webhook (required if no `webhookId`).
2847
+
2848
+ </dd>
2849
+ </dl>
2850
+
2851
+ <dl>
2852
+ <dd>
2853
+
2854
+ **event:** `Pinnacle::Types::WebhookEventEnum`
2855
+
2856
+ Event type filter for the subscription. Set to `null` to receive all events. <br>
2857
+
2858
+ `USER.TYPING` is only supported for RCS agent senders, not phone numbers.
2859
+
2860
+ </dd>
2861
+ </dl>
2862
+
2863
+ <dl>
2864
+ <dd>
2865
+
2866
+ **headers:** `Internal::Types::Hash[String, String]`
2867
+
2868
+ Optional custom HTTP headers (key-value map) to include when dispatching webhook events to the endpoint.
2869
+
2870
+ Header names must start with a letter or digit and contain only letters, digits, `-`, or `_` (matching the pattern `^[A-Za-z0-9][A-Za-z0-9_-]*$`). Names are case-insensitive per [RFC 9110](https://datatracker.ietf.org/doc/html/rfc9110#name-field-names) and are normalized to uppercase before storage and sending.
2871
+
2872
+ When provided with an existing `webhookId`, these headers **overwrite** any headers currently stored on that webhook. Omit to leave existing headers unchanged.
2873
+
2874
+ The reserved `PINNACLE-SIGNING-SECRET` header is silently ignored and cannot be overridden.
2875
+
2876
+ </dd>
2877
+ </dl>
2878
+
2879
+ <dl>
2880
+ <dd>
2881
+
2882
+ **request_options:** `Pinnacle::Webhooks::RequestOptions`
2883
+
2884
+ </dd>
2885
+ </dl>
2886
+ </dd>
2887
+ </dl>
2888
+
2889
+
2890
+ </dd>
2891
+ </dl>
2892
+ </details>
2893
+
2894
+ <details><summary><code>client.webhooks.<a href="/lib/pinnacle/webhooks/client.rb">detach</a>(request) -> Pinnacle::Types::DetachWebhookResult</code></summary>
2895
+ <dl>
2896
+ <dd>
2897
+
2898
+ #### 📝 Description
2899
+
2900
+ <dl>
2901
+ <dd>
2902
+
2903
+ <dl>
2904
+ <dd>
2905
+
2906
+ Detach a webhook from one or more senders (phone numbers or RCS agent IDs) to stop receiving event notifications. <br>
2907
+
2908
+ The webhook itself is not deleted and remains available for use with other senders. Works regardless of webhook status. Supports bulk operations with up to 50 senders per request.
2909
+ </dd>
2910
+ </dl>
2911
+ </dd>
2912
+ </dl>
2913
+
2914
+ #### 🔌 Usage
2915
+
2916
+ <dl>
2917
+ <dd>
2918
+
2919
+ <dl>
2920
+ <dd>
2921
+
2922
+ ```ruby
2923
+ client.webhooks.detach(
2924
+ webhook_id: 'webhookId',
2925
+ senders: ['+14155551234', 'agent_abc123']
2926
+ );
2927
+ ```
2928
+ </dd>
2929
+ </dl>
2930
+ </dd>
2931
+ </dl>
2932
+
2933
+ #### ⚙️ Parameters
2934
+
2935
+ <dl>
2936
+ <dd>
2937
+
2938
+ <dl>
2939
+ <dd>
2940
+
2941
+ **webhook_id:** `String` — Webhook ID to detach (starts with `wh_`). Must be a webhook owned by your team.
2942
+
2943
+ </dd>
2944
+ </dl>
2945
+
2946
+ <dl>
2947
+ <dd>
2948
+
2949
+ **senders:** `Internal::Types::Array[String]` — Array of senders to detach the webhook from. Can be phone numbers in E.164 format or RCS agent IDs.
2950
+
2951
+ </dd>
2952
+ </dl>
2953
+
2954
+ <dl>
2955
+ <dd>
2956
+
2957
+ **request_options:** `Pinnacle::Webhooks::RequestOptions`
2958
+
2959
+ </dd>
2960
+ </dl>
2961
+ </dd>
2962
+ </dl>
2963
+
2964
+
2766
2965
  </dd>
2767
2966
  </dl>
2768
2967
  </details>
@@ -4245,20 +4444,17 @@ client.campaigns.rcs.upsert(
4245
4444
  campaign_id: 'rcs_1234567890',
4246
4445
  expected_agent_responses: ['Here are the things I can help you with.', 'I can assist you with booking an appointment, or you may choose to book manually.', 'Here are the available times to connect with a representative tomorrow.', 'Your appointment has been scheduled.'],
4247
4446
  links: {
4248
- privacy_policy: 'https://www.trypinnacle.app/privacy',
4249
- terms_of_service: 'https://www.trypinnacle.app/terms'
4250
- },
4251
- use_case: {
4252
- behavior: 'Pinnacle is a developer-focused RCS assistant that helps teams design, test, and optimize rich messaging experiences across SMS, MMS, and RCS. The agent acts as both an “onboarding guide” for new customers and a “best-practices coach” for existing teams exploring higher-value RCS workflows like rich cards, carousels, and suggested actions.<br>
4253
- The agent delivers a mix of operational updates and educational content (2–6 messages/month). Content includes important platform notices (e.g., deliverability or throughput changes), implementation tips with sample RCS templates, and personalized recommendations on how to upgrade existing SMS campaigns into richer, higher-converting RCS conversations.
4254
- ',
4255
- value: 'OTHER'
4447
+ privacy_policy: 'https://www.trypinnacle.app/privacy',
4448
+ terms_of_service: 'https://www.trypinnacle.app/terms'
4256
4449
  },
4257
- opt_in_terms_and_conditions: 'We ensure consent through an explicit opt-in process that follows 10DLC best practices.Users must agree to receive messages from Pinnacle before the agent sends them any messages.<br>
4450
+ use_case_description: 'Pinnacle is a developer-focused RCS assistant that helps teams design, test, and optimize rich messaging experiences across SMS, MMS, and RCS. The agent acts as both an “onboarding guide” for new customers and a “best-practices coach” for existing teams exploring higher-value RCS workflows like rich cards, carousels, and suggested actions.<br>
4451
+ The agent delivers a mix of operational updates and educational content (2–6 messages/month). Content includes important platform notices (e.g., deliverability or throughput changes), implementation tips with sample RCS templates, and personalized recommendations on how to upgrade existing SMS campaigns into richer, higher-converting RCS conversations.
4452
+ ',
4453
+ messaging_type: 'OTP',
4454
+ cta_media: '“https://www.pinnacle.sh/send”',
4455
+ opt_in_method: 'We ensure consent through an explicit opt-in process that follows 10DLC best practices.Users must agree to receive messages from Pinnacle before the agent sends them any messages.<br>
4258
4456
  Users agree to these messages by signing an opt-in paper form that they can be found online at https://www.pinnacle.sh/opt-in. We only send messages once users have filled out the form and submitted it to us via email or through the dashboard.
4259
4457
  ',
4260
- messaging_type: 'MULTI_USE',
4261
- carrier_description: 'Demonstrate the power of RCS to medium and large companies already sending massive SMS/MMS volumes through our platform. These clients send conversational messages in industries such as commerce, appointments, and customer support.',
4262
4458
  keywords: {
4263
4459
  help: {
4264
4460
  message: 'Email founders@trypinnacle.app for support.',
@@ -4281,9 +4477,6 @@ client.campaigns.rcs.upsert(
4281
4477
  monthly_website: 10000,
4282
4478
  monthly_rcs_estimate: 10000
4283
4479
  },
4284
- agent_triggers: 'The agent sends the first message when the user subscribes to Pinnacle. Messages are based on user actions such as pressing suggestion buttons. External triggers such as reminders can be setup by users in advance for a later time.',
4285
- interaction_description: "The agent's primary interaction will be customer service — helping users with questions, troubleshooting issues, and providing quick assistance through chat. Other interactions include appointment management and sending notifications to the user.",
4286
- is_conversational: true,
4287
4480
  cta_language: 'By checking this box and submitting this form, you consent to receive transactional text messages for support, appointment, and reminder messages from Pinnacle Software Development Inc. Reply STOP to opt out. Reply HELP for help. Standard message and data rates may apply. Message frequency may vary. View our Terms and Conditions at https://www.pinnacle.sh/terms. View our Privacy Policy at https://www.pinnacle.sh/privacy.',
4288
4481
  demo_trigger: 'Text "START" to trigger the flow.'
4289
4482
  );
@@ -4344,7 +4537,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
4344
4537
  <dl>
4345
4538
  <dd>
4346
4539
 
4347
- **use_case:** `Pinnacle::Campaigns::Rcs::Types::RcsUseCase` — Use case classification for the campaign.
4540
+ **use_case_description:** `String` — Detailed summary of what the brand is and how this agent will be used. See the [Use Case Behavior](/guides/campaigns/rcs-compliance#use-case-behavior) section for requirements.
4348
4541
 
4349
4542
  </dd>
4350
4543
  </dl>
@@ -4352,7 +4545,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
4352
4545
  <dl>
4353
4546
  <dd>
4354
4547
 
4355
- **opt_in_terms_and_conditions:** `String` — Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Terms and Conditions](/guides/campaigns/rcs-compliance#opt-in-terms-and-conditions) section for requirements.
4548
+ **messaging_type:** `Pinnacle::Types::RcsMessagingTypeEnum`
4356
4549
 
4357
4550
  </dd>
4358
4551
  </dl>
@@ -4360,7 +4553,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
4360
4553
  <dl>
4361
4554
  <dd>
4362
4555
 
4363
- **messaging_type:** `Pinnacle::Types::RcsMessagingTypeEnum`
4556
+ **cta_media:** `String` — URL to the opt-in form or a URL to a screenshot of the opt-in CTA.
4364
4557
 
4365
4558
  </dd>
4366
4559
  </dl>
@@ -4368,7 +4561,7 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
4368
4561
  <dl>
4369
4562
  <dd>
4370
4563
 
4371
- **carrier_description:** `String` — Description of the agent's purpose, shown to carriers for approval. See the [Carrier Description](/guides/campaigns/rcs-compliance#carrier-description) section for requirements.
4564
+ **opt_in_method:** `String` — Details on how opt-in is acquired. If it is done through a website or app, provide the link. See the [Opt-In Method](/guides/campaigns/rcs-compliance#opt-in-method) section for requirements.
4372
4565
 
4373
4566
  </dd>
4374
4567
  </dl>
@@ -4392,30 +4585,6 @@ List of what the agent might say to users. See the [Expected Agent Responses](/g
4392
4585
  <dl>
4393
4586
  <dd>
4394
4587
 
4395
- **agent_triggers:** `String` — Explanation of how the agent is triggered. This includes how the first message is delivered, whether messages follow a schedule or triggered by user actions, and any external triggers. See the [Agent Triggers](/guides/campaigns/rcs-compliance#agent-triggers) section for requirements.
4396
-
4397
- </dd>
4398
- </dl>
4399
-
4400
- <dl>
4401
- <dd>
4402
-
4403
- **interaction_description:** `String` — Description of all agent interactions, including primary and secondary use cases. See the [Interaction Description](/guides/campaigns/rcs-compliance#interaction-description) section for requirements.
4404
-
4405
- </dd>
4406
- </dl>
4407
-
4408
- <dl>
4409
- <dd>
4410
-
4411
- **is_conversational:** `Internal::Types::Boolean` — Whether the agent supports conversational flows or respond to P2A messages from the users. Set to false for one-way messages from agent to user.
4412
-
4413
- </dd>
4414
- </dl>
4415
-
4416
- <dl>
4417
- <dd>
4418
-
4419
4588
  **cta_language:** `String` — Required text that appears next to the opt-in checkbox for your opt-in form. This checkbox has to be unchecked by default. See the [CTA Language](/guides/campaigns/rcs-compliance#cta-language-opt-in-disclosure) section for requirements.
4420
4589
 
4421
4590
  </dd>
@@ -4962,7 +5131,6 @@ Requires an active RCS agent and recipient devices that support RCS Business Mes
4962
5131
  client.messages.rcs.send_(
4963
5132
  from: 'from',
4964
5133
  to: 'to',
4965
- quick_replies: [],
4966
5134
  text: 'text'
4967
5135
  );
4968
5136
  ```
@@ -5117,10 +5285,7 @@ Validate RCS message content without sending it.
5117
5285
  <dd>
5118
5286
 
5119
5287
  ```ruby
5120
- client.messages.rcs.validate(
5121
- quick_replies: [],
5122
- text: 'text'
5123
- );
5288
+ client.messages.rcs.validate(text: 'text');
5124
5289
  ```
5125
5290
  </dd>
5126
5291
  </dl>
@@ -5754,8 +5919,8 @@ client.messages.blasts.list();
5754
5919
  </dl>
5755
5920
  </details>
5756
5921
 
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>
5922
+ ## Messages Simulate
5923
+ <details><summary><code>client.messages.simulate.<a href="/lib/pinnacle/messages/simulate/client.rb">user</a>(request) -> Pinnacle::Types::SimulateUserResponse</code></summary>
5759
5924
  <dl>
5760
5925
  <dd>
5761
5926
 
@@ -5767,7 +5932,7 @@ client.messages.blasts.list();
5767
5932
  <dl>
5768
5933
  <dd>
5769
5934
 
5770
- Connect a webhook to your phone number to receive real-time notifications for incoming messages, delivery status updates, and other communication events.
5935
+ Simulate inbound messages and button presses from a user.
5771
5936
  </dd>
5772
5937
  </dl>
5773
5938
  </dd>
@@ -5782,89 +5947,12 @@ Connect a webhook to your phone number to receive real-time notifications for in
5782
5947
  <dd>
5783
5948
 
5784
5949
  ```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'
5950
+ client.messages.simulate.user(
5951
+ from: '+14155551234',
5952
+ to: '+14155555678',
5953
+ message: {
5954
+ text: 'Hello from the test user!'
5955
+ }
5868
5956
  );
5869
5957
  ```
5870
5958
  </dd>
@@ -5880,23 +5968,7 @@ client.phone_numbers.webhook.detach(
5880
5968
  <dl>
5881
5969
  <dd>
5882
5970
 
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`.
5971
+ **request:** `Pinnacle::Types::SimulateUserParams`
5900
5972
 
5901
5973
  </dd>
5902
5974
  </dl>
@@ -5904,7 +5976,7 @@ This must be a valid webhook ID that is currently attached to the specified phon
5904
5976
  <dl>
5905
5977
  <dd>
5906
5978
 
5907
- **request_options:** `Pinnacle::PhoneNumbers::Webhook::RequestOptions`
5979
+ **request_options:** `Pinnacle::Messages::Simulate::RequestOptions`
5908
5980
 
5909
5981
  </dd>
5910
5982
  </dl>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcs
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.14
4
+ version: 2.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pinnacle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-26 00:00:00.000000000 Z
11
+ date: 2026-04-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: The Pinnacle Ruby library provides convenient access to the Pinnacle
14
14
  API from Ruby.
@@ -72,7 +72,6 @@ files:
72
72
  - lib/pinnacle/campaigns/rcs/types/rcs_campaign_opt_out_keywords.rb
73
73
  - lib/pinnacle/campaigns/rcs/types/rcs_campaign_traffic.rb
74
74
  - lib/pinnacle/campaigns/rcs/types/rcs_links.rb
75
- - lib/pinnacle/campaigns/rcs/types/rcs_use_case.rb
76
75
  - lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb
77
76
  - lib/pinnacle/campaigns/toll_free/client.rb
78
77
  - lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb
@@ -160,6 +159,7 @@ files:
160
159
  - lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb
161
160
  - lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb
162
161
  - lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb
162
+ - lib/pinnacle/messages/simulate/client.rb
163
163
  - lib/pinnacle/messages/sms/client.rb
164
164
  - lib/pinnacle/messages/sms/types/send_sms_options.rb
165
165
  - lib/pinnacle/messages/sms/types/sms.rb
@@ -186,7 +186,6 @@ files:
186
186
  - lib/pinnacle/phone_numbers/types/search_phone_number_by_location.rb
187
187
  - lib/pinnacle/phone_numbers/types/search_phone_number_options.rb
188
188
  - lib/pinnacle/phone_numbers/types/search_phone_number_params.rb
189
- - lib/pinnacle/phone_numbers/webhook/client.rb
190
189
  - lib/pinnacle/pinnacle_client.rb
191
190
  - lib/pinnacle/rcs/agents/client.rb
192
191
  - lib/pinnacle/rcs/agents/types/list_agents_params.rb
@@ -239,9 +238,8 @@ files:
239
238
  - lib/pinnacle/types/agent_summary_config_websites_item.rb
240
239
  - lib/pinnacle/types/agent_use_case.rb
241
240
  - lib/pinnacle/types/agent_website_entry.rb
242
- - lib/pinnacle/types/attach_webhook_by_id_params.rb
243
- - lib/pinnacle/types/attach_webhook_params.rb
244
241
  - lib/pinnacle/types/attach_webhook_response_webhook.rb
242
+ - lib/pinnacle/types/attach_webhook_result.rb
245
243
  - lib/pinnacle/types/attached_phone_number_result.rb
246
244
  - lib/pinnacle/types/audience_count_only.rb
247
245
  - lib/pinnacle/types/audience_summary.rb
@@ -282,7 +280,6 @@ files:
282
280
  - lib/pinnacle/types/company_entity_type_enum.rb
283
281
  - lib/pinnacle/types/company_sector_enum.rb
284
282
  - lib/pinnacle/types/company_type_enum.rb
285
- - lib/pinnacle/types/configured_webhook.rb
286
283
  - lib/pinnacle/types/contact.rb
287
284
  - lib/pinnacle/types/contact_id.rb
288
285
  - lib/pinnacle/types/conversation.rb
@@ -291,11 +288,10 @@ files:
291
288
  - lib/pinnacle/types/conversation_contact.rb
292
289
  - lib/pinnacle/types/conversation_list.rb
293
290
  - lib/pinnacle/types/conversation_sender.rb
294
- - lib/pinnacle/types/create_and_attach_webhook_by_url_params.rb
295
291
  - lib/pinnacle/types/create_url_options.rb
296
292
  - lib/pinnacle/types/delete_audience_response.rb
293
+ - lib/pinnacle/types/detach_webhook_result.rb
297
294
  - lib/pinnacle/types/detached_phone_number_result.rb
298
- - lib/pinnacle/types/detached_webhook_info.rb
299
295
  - lib/pinnacle/types/detailed_phone_number_enum.rb
300
296
  - lib/pinnacle/types/dlc_assignment_status_enum.rb
301
297
  - lib/pinnacle/types/dlc_campaign_status.rb
@@ -318,6 +314,7 @@ files:
318
314
  - lib/pinnacle/types/extended_brand.rb
319
315
  - lib/pinnacle/types/extended_brand_with_vetting.rb
320
316
  - lib/pinnacle/types/extended_rcs_campaign.rb
317
+ - lib/pinnacle/types/failed_sender.rb
321
318
  - lib/pinnacle/types/fallback_message.rb
322
319
  - lib/pinnacle/types/get_conversation_params.rb
323
320
  - lib/pinnacle/types/get_dlc_campaign_status_response_updates.rb
@@ -435,18 +432,15 @@ files:
435
432
  - lib/pinnacle/types/rcs_campaign_schema_extra_keywords_opt_out.rb
436
433
  - lib/pinnacle/types/rcs_campaign_schema_extra_links.rb
437
434
  - lib/pinnacle/types/rcs_campaign_schema_extra_traffic.rb
438
- - lib/pinnacle/types/rcs_campaign_schema_extra_use_case.rb
439
435
  - lib/pinnacle/types/rcs_campaign_schema_keywords.rb
440
436
  - lib/pinnacle/types/rcs_campaign_schema_keywords_help.rb
441
437
  - lib/pinnacle/types/rcs_campaign_schema_keywords_opt_in.rb
442
438
  - lib/pinnacle/types/rcs_campaign_schema_keywords_opt_out.rb
443
439
  - lib/pinnacle/types/rcs_campaign_schema_links.rb
444
440
  - lib/pinnacle/types/rcs_campaign_schema_traffic.rb
445
- - lib/pinnacle/types/rcs_campaign_schema_use_case.rb
446
441
  - lib/pinnacle/types/rcs_campaign_status.rb
447
442
  - lib/pinnacle/types/rcs_campaign_summary.rb
448
443
  - lib/pinnacle/types/rcs_campaign_summary_status.rb
449
- - lib/pinnacle/types/rcs_campaign_use_case_enum.rb
450
444
  - lib/pinnacle/types/rcs_capabilities_result.rb
451
445
  - lib/pinnacle/types/rcs_capability.rb
452
446
  - lib/pinnacle/types/rcs_capability_actions.rb
@@ -484,6 +478,7 @@ files:
484
478
  - lib/pinnacle/types/send_rcs_card_options_standalone_card_orientation.rb
485
479
  - lib/pinnacle/types/send_rich_cards_options.rb
486
480
  - lib/pinnacle/types/send_rich_message_options.rb
481
+ - lib/pinnacle/types/send_rich_message_options_4.rb
487
482
  - lib/pinnacle/types/send_sms_response_segments.rb
488
483
  - lib/pinnacle/types/send_sms_response_segments_encoding.rb
489
484
  - lib/pinnacle/types/send_typing_indicator_response.rb
@@ -495,6 +490,11 @@ files:
495
490
  - lib/pinnacle/types/sent_sms_details.rb
496
491
  - lib/pinnacle/types/shortened_url.rb
497
492
  - lib/pinnacle/types/shortened_url_with_click_data.rb
493
+ - lib/pinnacle/types/simulate_message_input.rb
494
+ - lib/pinnacle/types/simulate_user_button.rb
495
+ - lib/pinnacle/types/simulate_user_message.rb
496
+ - lib/pinnacle/types/simulate_user_params.rb
497
+ - lib/pinnacle/types/simulate_user_response.rb
498
498
  - lib/pinnacle/types/sms_content.rb
499
499
  - lib/pinnacle/types/sms_validation_response_segments.rb
500
500
  - lib/pinnacle/types/sms_validation_response_segments_gsm_7.rb
@@ -530,6 +530,15 @@ files:
530
530
  - lib/pinnacle/types/tracking.rb
531
531
  - lib/pinnacle/types/updated_contact_id.rb
532
532
  - lib/pinnacle/types/upload_results.rb
533
+ - lib/pinnacle/types/user_button_press.rb
534
+ - lib/pinnacle/types/user_button_press_call.rb
535
+ - lib/pinnacle/types/user_button_press_open_url.rb
536
+ - lib/pinnacle/types/user_button_press_request_user_location.rb
537
+ - lib/pinnacle/types/user_button_press_request_user_location_location.rb
538
+ - lib/pinnacle/types/user_button_press_schedule_event.rb
539
+ - lib/pinnacle/types/user_button_press_send_location.rb
540
+ - lib/pinnacle/types/user_button_press_send_location_lat_long.rb
541
+ - lib/pinnacle/types/user_button_press_trigger.rb
533
542
  - lib/pinnacle/types/user_event.rb
534
543
  - lib/pinnacle/types/user_event_conversation.rb
535
544
  - lib/pinnacle/types/v_card_address_schema_type_item.rb
@@ -564,6 +573,8 @@ files:
564
573
  - lib/pinnacle/types/zod_error.rb
565
574
  - lib/pinnacle/version.rb
566
575
  - lib/pinnacle/webhooks/client.rb
576
+ - lib/pinnacle/webhooks/types/attach_webhook_params.rb
577
+ - lib/pinnacle/webhooks/types/detach_webhook_params.rb
567
578
  - lib/pinnacle/webhooks/types/get_webhook_params.rb
568
579
  - lib/pinnacle/webhooks/types/list_webhooks_params.rb
569
580
  - lib/pinnacle/webhooks/types/list_webhooks_request_status.rb
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Campaigns
5
- module Rcs
6
- module Types
7
- # Use case classification for the campaign.
8
- class RcsUseCase < Internal::Types::Model
9
- field :behavior, -> { String }, optional: true, nullable: false
10
- field :value, -> { Pinnacle::Types::RcsCampaignUseCaseEnum }, optional: true, nullable: false
11
- end
12
- end
13
- end
14
- end
15
- end