rcs 2.0.16.pre.rc.9 → 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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +4 -5
  3. data/.rubocop.yml +15 -5
  4. data/lib/pinnacle/brands/client.rb +3 -3
  5. data/lib/pinnacle/campaigns/dlc/client.rb +2 -2
  6. data/lib/pinnacle/campaigns/rcs/client.rb +2 -2
  7. data/lib/pinnacle/campaigns/toll_free/client.rb +2 -2
  8. data/lib/pinnacle/client.rb +1 -6
  9. data/lib/pinnacle/conversations/client.rb +1 -1
  10. data/lib/pinnacle/internal/http/base_request.rb +0 -14
  11. data/lib/pinnacle/internal/http/raw_client.rb +3 -21
  12. data/lib/pinnacle/internal/json/request.rb +4 -6
  13. data/lib/pinnacle/internal/multipart/multipart_request.rb +4 -6
  14. data/lib/pinnacle/internal/types/boolean.rb +1 -1
  15. data/lib/pinnacle/internal/types/union.rb +1 -1
  16. data/lib/pinnacle/internal/types/utils.rb +2 -2
  17. data/lib/pinnacle/messages/client.rb +1 -1
  18. data/lib/pinnacle/messages/schedule/client.rb +1 -1
  19. data/lib/pinnacle/rcs/client.rb +1 -1
  20. data/lib/pinnacle/rcs/test/client.rb +3 -3
  21. data/lib/pinnacle/status/get/client.rb +5 -5
  22. data/lib/pinnacle/tools/url/client.rb +2 -2
  23. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +1 -7
  24. data/lib/pinnacle/types/carrier_launches.rb +5 -5
  25. data/lib/pinnacle/types/message_event.rb +1 -1
  26. data/lib/pinnacle/types/webhook_event_enum.rb +0 -2
  27. data/lib/pinnacle/version.rb +1 -1
  28. data/lib/pinnacle/wrapper/messages/client.rb +2 -11
  29. data/lib/pinnacle.rb +2 -79
  30. data/lib/rcs.rb +15 -163
  31. data/reference.md +300 -807
  32. metadata +2 -79
  33. data/lib/pinnacle/forms/client.rb +0 -217
  34. data/lib/pinnacle/forms/submissions/client.rb +0 -56
  35. data/lib/pinnacle/forms/submissions/types/list_form_submissions_params.rb +0 -15
  36. data/lib/pinnacle/forms/types/forms_send_response.rb +0 -14
  37. data/lib/pinnacle/forms/types/list_forms_params.rb +0 -12
  38. data/lib/pinnacle/forms/types/update_form_params.rb +0 -18
  39. data/lib/pinnacle/types/address_field.rb +0 -14
  40. data/lib/pinnacle/types/campaign_status_event.rb +0 -21
  41. data/lib/pinnacle/types/campaign_status_event_agent.rb +0 -11
  42. data/lib/pinnacle/types/campaign_status_event_brand.rb +0 -11
  43. data/lib/pinnacle/types/campaign_status_event_campaign.rb +0 -11
  44. data/lib/pinnacle/types/campaign_status_event_campaign_type.rb +0 -13
  45. data/lib/pinnacle/types/campaign_status_event_carrier_launches.rb +0 -13
  46. data/lib/pinnacle/types/campaign_status_event_carrier_launches_carriers.rb +0 -16
  47. data/lib/pinnacle/types/campaign_status_event_carrier_launches_verification.rb +0 -15
  48. data/lib/pinnacle/types/carrier_launches_carriers.rb +0 -16
  49. data/lib/pinnacle/types/carrier_launches_verification.rb +0 -15
  50. data/lib/pinnacle/types/checkbox_field.rb +0 -13
  51. data/lib/pinnacle/types/color_field.rb +0 -8
  52. data/lib/pinnacle/types/create_form_request.rb +0 -23
  53. data/lib/pinnacle/types/date_field.rb +0 -12
  54. data/lib/pinnacle/types/datetime_field.rb +0 -12
  55. data/lib/pinnacle/types/email_field.rb +0 -10
  56. data/lib/pinnacle/types/field_base.rb +0 -14
  57. data/lib/pinnacle/types/form.rb +0 -22
  58. data/lib/pinnacle/types/form_background.rb +0 -17
  59. data/lib/pinnacle/types/form_background_gradient.rb +0 -12
  60. data/lib/pinnacle/types/form_background_image.rb +0 -13
  61. data/lib/pinnacle/types/form_background_pattern.rb +0 -10
  62. data/lib/pinnacle/types/form_background_pattern_preset.rb +0 -16
  63. data/lib/pinnacle/types/form_background_solid.rb +0 -34
  64. data/lib/pinnacle/types/form_color_palette.rb +0 -12
  65. data/lib/pinnacle/types/form_definition.rb +0 -15
  66. data/lib/pinnacle/types/form_field.rb +0 -29
  67. data/lib/pinnacle/types/form_field_option.rb +0 -11
  68. data/lib/pinnacle/types/form_gradient.rb +0 -12
  69. data/lib/pinnacle/types/form_gradient_angle.rb +0 -12
  70. data/lib/pinnacle/types/form_id_reference.rb +0 -23
  71. data/lib/pinnacle/types/form_submission.rb +0 -19
  72. data/lib/pinnacle/types/form_submission_answer.rb +0 -20
  73. data/lib/pinnacle/types/form_submission_event.rb +0 -15
  74. data/lib/pinnacle/types/form_submission_event_conversation.rb +0 -20
  75. data/lib/pinnacle/types/form_submission_event_form.rb +0 -12
  76. data/lib/pinnacle/types/form_submission_event_submission.rb +0 -17
  77. data/lib/pinnacle/types/form_submitted_field.rb +0 -13
  78. data/lib/pinnacle/types/form_theme_override.rb +0 -25
  79. data/lib/pinnacle/types/form_theme_override_colors.rb +0 -12
  80. data/lib/pinnacle/types/form_theme_override_content_alignment.rb +0 -13
  81. data/lib/pinnacle/types/form_theme_override_corner_radius.rb +0 -13
  82. data/lib/pinnacle/types/form_theme_override_font_family.rb +0 -15
  83. data/lib/pinnacle/types/form_theme_override_theme_mode.rb +0 -13
  84. data/lib/pinnacle/types/list_form_submissions_response.rb +0 -12
  85. data/lib/pinnacle/types/list_forms_response.rb +0 -12
  86. data/lib/pinnacle/types/message_event_type.rb +0 -12
  87. data/lib/pinnacle/types/number_field.rb +0 -13
  88. data/lib/pinnacle/types/phone_field.rb +0 -11
  89. data/lib/pinnacle/types/radio_field.rb +0 -10
  90. data/lib/pinnacle/types/range_field.rb +0 -12
  91. data/lib/pinnacle/types/rating_field.rb +0 -11
  92. data/lib/pinnacle/types/scheduled_form_send_response_form.rb +0 -10
  93. data/lib/pinnacle/types/scheduled_form_send_response_submission.rb +0 -10
  94. data/lib/pinnacle/types/scheduled_form_send_result.rb +0 -13
  95. data/lib/pinnacle/types/select_field.rb +0 -11
  96. data/lib/pinnacle/types/send_form_options.rb +0 -11
  97. data/lib/pinnacle/types/send_form_options_webview_mode.rb +0 -13
  98. data/lib/pinnacle/types/send_form_params.rb +0 -20
  99. data/lib/pinnacle/types/send_form_result.rb +0 -17
  100. data/lib/pinnacle/types/send_form_via_rcs_params.rb +0 -14
  101. data/lib/pinnacle/types/send_form_via_rcs_request_fallback.rb +0 -10
  102. data/lib/pinnacle/types/send_form_via_rcs_request_form.rb +0 -13
  103. data/lib/pinnacle/types/send_form_via_sms_params.rb +0 -13
  104. data/lib/pinnacle/types/send_form_via_sms_request_form.rb +0 -12
  105. data/lib/pinnacle/types/text_field.rb +0 -13
  106. data/lib/pinnacle/types/textarea_field.rb +0 -13
  107. data/lib/pinnacle/types/time_field.rb +0 -12
  108. data/lib/pinnacle/types/url_field.rb +0 -10
  109. data/lib/pinnacle/types/verification_status.rb +0 -13
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.16.pre.rc.9
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-05-04 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.
@@ -106,12 +106,6 @@ files:
106
106
  - lib/pinnacle/errors/response_error.rb
107
107
  - lib/pinnacle/errors/server_error.rb
108
108
  - lib/pinnacle/errors/timeout_error.rb
109
- - lib/pinnacle/forms/client.rb
110
- - lib/pinnacle/forms/submissions/client.rb
111
- - lib/pinnacle/forms/submissions/types/list_form_submissions_params.rb
112
- - lib/pinnacle/forms/types/forms_send_response.rb
113
- - lib/pinnacle/forms/types/list_forms_params.rb
114
- - lib/pinnacle/forms/types/update_form_params.rb
115
109
  - lib/pinnacle/internal/errors/constraint_error.rb
116
110
  - lib/pinnacle/internal/errors/type_error.rb
117
111
  - lib/pinnacle/internal/http/base_request.rb
@@ -223,7 +217,6 @@ files:
223
217
  - lib/pinnacle/tools/url/types/create_url_params.rb
224
218
  - lib/pinnacle/tools/url/types/list_links_params.rb
225
219
  - lib/pinnacle/tools/url/types/update_url_params.rb
226
- - lib/pinnacle/types/address_field.rb
227
220
  - lib/pinnacle/types/advanced_phone_information.rb
228
221
  - lib/pinnacle/types/advanced_phone_information_carrier.rb
229
222
  - lib/pinnacle/types/advanced_phone_information_contact.rb
@@ -279,23 +272,11 @@ files:
279
272
  - lib/pinnacle/types/buy_response_capabilities.rb
280
273
  - lib/pinnacle/types/campaign_enum.rb
281
274
  - lib/pinnacle/types/campaign_query.rb
282
- - lib/pinnacle/types/campaign_status_event.rb
283
- - lib/pinnacle/types/campaign_status_event_agent.rb
284
- - lib/pinnacle/types/campaign_status_event_brand.rb
285
- - lib/pinnacle/types/campaign_status_event_campaign.rb
286
- - lib/pinnacle/types/campaign_status_event_campaign_type.rb
287
- - lib/pinnacle/types/campaign_status_event_carrier_launches.rb
288
- - lib/pinnacle/types/campaign_status_event_carrier_launches_carriers.rb
289
- - lib/pinnacle/types/campaign_status_event_carrier_launches_verification.rb
290
275
  - lib/pinnacle/types/campaign_submission_result.rb
291
276
  - lib/pinnacle/types/campaign_validation_response_errors_item.rb
292
277
  - lib/pinnacle/types/campaign_validation_result.rb
293
278
  - lib/pinnacle/types/carrier_launch_status.rb
294
279
  - lib/pinnacle/types/carrier_launches.rb
295
- - lib/pinnacle/types/carrier_launches_carriers.rb
296
- - lib/pinnacle/types/carrier_launches_verification.rb
297
- - lib/pinnacle/types/checkbox_field.rb
298
- - lib/pinnacle/types/color_field.rb
299
280
  - lib/pinnacle/types/company_entity_type_enum.rb
300
281
  - lib/pinnacle/types/company_sector_enum.rb
301
282
  - lib/pinnacle/types/company_type_enum.rb
@@ -307,10 +288,7 @@ files:
307
288
  - lib/pinnacle/types/conversation_contact.rb
308
289
  - lib/pinnacle/types/conversation_list.rb
309
290
  - lib/pinnacle/types/conversation_sender.rb
310
- - lib/pinnacle/types/create_form_request.rb
311
291
  - lib/pinnacle/types/create_url_options.rb
312
- - lib/pinnacle/types/date_field.rb
313
- - lib/pinnacle/types/datetime_field.rb
314
292
  - lib/pinnacle/types/delete_audience_response.rb
315
293
  - lib/pinnacle/types/detach_webhook_result.rb
316
294
  - lib/pinnacle/types/detached_phone_number_result.rb
@@ -330,7 +308,6 @@ files:
330
308
  - lib/pinnacle/types/dlc_with_extended_brand_and_status_mno_tcr_tier.rb
331
309
  - lib/pinnacle/types/dlc_with_extended_brand_and_status_options.rb
332
310
  - lib/pinnacle/types/dlc_with_extended_brand_and_status_use_case.rb
333
- - lib/pinnacle/types/email_field.rb
334
311
  - lib/pinnacle/types/enhanced_contact.rb
335
312
  - lib/pinnacle/types/enhanced_contact_item.rb
336
313
  - lib/pinnacle/types/error.rb
@@ -339,34 +316,6 @@ files:
339
316
  - lib/pinnacle/types/extended_rcs_campaign.rb
340
317
  - lib/pinnacle/types/failed_sender.rb
341
318
  - lib/pinnacle/types/fallback_message.rb
342
- - lib/pinnacle/types/field_base.rb
343
- - lib/pinnacle/types/form.rb
344
- - lib/pinnacle/types/form_background.rb
345
- - lib/pinnacle/types/form_background_gradient.rb
346
- - lib/pinnacle/types/form_background_image.rb
347
- - lib/pinnacle/types/form_background_pattern.rb
348
- - lib/pinnacle/types/form_background_pattern_preset.rb
349
- - lib/pinnacle/types/form_background_solid.rb
350
- - lib/pinnacle/types/form_color_palette.rb
351
- - lib/pinnacle/types/form_definition.rb
352
- - lib/pinnacle/types/form_field.rb
353
- - lib/pinnacle/types/form_field_option.rb
354
- - lib/pinnacle/types/form_gradient.rb
355
- - lib/pinnacle/types/form_gradient_angle.rb
356
- - lib/pinnacle/types/form_id_reference.rb
357
- - lib/pinnacle/types/form_submission.rb
358
- - lib/pinnacle/types/form_submission_answer.rb
359
- - lib/pinnacle/types/form_submission_event.rb
360
- - lib/pinnacle/types/form_submission_event_conversation.rb
361
- - lib/pinnacle/types/form_submission_event_form.rb
362
- - lib/pinnacle/types/form_submission_event_submission.rb
363
- - lib/pinnacle/types/form_submitted_field.rb
364
- - lib/pinnacle/types/form_theme_override.rb
365
- - lib/pinnacle/types/form_theme_override_colors.rb
366
- - lib/pinnacle/types/form_theme_override_content_alignment.rb
367
- - lib/pinnacle/types/form_theme_override_corner_radius.rb
368
- - lib/pinnacle/types/form_theme_override_font_family.rb
369
- - lib/pinnacle/types/form_theme_override_theme_mode.rb
370
319
  - lib/pinnacle/types/get_conversation_params.rb
371
320
  - lib/pinnacle/types/get_dlc_campaign_status_response_updates.rb
372
321
  - lib/pinnacle/types/get_toll_free_campaign_status_response_updates.rb
@@ -378,8 +327,6 @@ files:
378
327
  - lib/pinnacle/types/list_brands_response.rb
379
328
  - lib/pinnacle/types/list_contacts_response.rb
380
329
  - lib/pinnacle/types/list_dlc_campaigns_response.rb
381
- - lib/pinnacle/types/list_form_submissions_response.rb
382
- - lib/pinnacle/types/list_forms_response.rb
383
330
  - lib/pinnacle/types/list_links_response.rb
384
331
  - lib/pinnacle/types/list_messages_response.rb
385
332
  - lib/pinnacle/types/list_phone_numbers_response.rb
@@ -410,7 +357,6 @@ files:
410
357
  - lib/pinnacle/types/message_event_rcs_media_content.rb
411
358
  - lib/pinnacle/types/message_event_rcs_text_content.rb
412
359
  - lib/pinnacle/types/message_event_sms_content.rb
413
- - lib/pinnacle/types/message_event_type.rb
414
360
  - lib/pinnacle/types/message_list.rb
415
361
  - lib/pinnacle/types/message_method_enum.rb
416
362
  - lib/pinnacle/types/message_protocol_enum.rb
@@ -430,7 +376,6 @@ files:
430
376
  - lib/pinnacle/types/mms_validation_response_segments_value_item.rb
431
377
  - lib/pinnacle/types/mms_validation_result.rb
432
378
  - lib/pinnacle/types/not_found_error_body.rb
433
- - lib/pinnacle/types/number_field.rb
434
379
  - lib/pinnacle/types/number_format.rb
435
380
  - lib/pinnacle/types/opt_in_method_enum.rb
436
381
  - lib/pinnacle/types/optional_brand_info.rb
@@ -442,7 +387,6 @@ files:
442
387
  - lib/pinnacle/types/phone_capabilities.rb
443
388
  - lib/pinnacle/types/phone_enum.rb
444
389
  - lib/pinnacle/types/phone_feature_enum.rb
445
- - lib/pinnacle/types/phone_field.rb
446
390
  - lib/pinnacle/types/phone_number_campaign_attach_failed_item.rb
447
391
  - lib/pinnacle/types/phone_number_campaign_attach_phone_numbers_item.rb
448
392
  - lib/pinnacle/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb
@@ -459,9 +403,6 @@ files:
459
403
  - lib/pinnacle/types/pinnacle_url_config.rb
460
404
  - lib/pinnacle/types/profile_status_enum.rb
461
405
  - lib/pinnacle/types/purchased_number.rb
462
- - lib/pinnacle/types/radio_field.rb
463
- - lib/pinnacle/types/range_field.rb
464
- - lib/pinnacle/types/rating_field.rb
465
406
  - lib/pinnacle/types/rcs_agent_details.rb
466
407
  - lib/pinnacle/types/rcs_agent_details_agent_use_case.rb
467
408
  - lib/pinnacle/types/rcs_agent_details_emails_item.rb
@@ -529,23 +470,10 @@ files:
529
470
  - lib/pinnacle/types/schedule_cancel_result.rb
530
471
  - lib/pinnacle/types/scheduled_blast_details.rb
531
472
  - lib/pinnacle/types/scheduled_blast_response_config.rb
532
- - lib/pinnacle/types/scheduled_form_send_response_form.rb
533
- - lib/pinnacle/types/scheduled_form_send_response_submission.rb
534
- - lib/pinnacle/types/scheduled_form_send_result.rb
535
473
  - lib/pinnacle/types/scheduled_message.rb
536
474
  - lib/pinnacle/types/scheduled_message_summary.rb
537
475
  - lib/pinnacle/types/scheduled_message_summary_status.rb
538
476
  - lib/pinnacle/types/scheduled_send_response_config.rb
539
- - lib/pinnacle/types/select_field.rb
540
- - lib/pinnacle/types/send_form_options.rb
541
- - lib/pinnacle/types/send_form_options_webview_mode.rb
542
- - lib/pinnacle/types/send_form_params.rb
543
- - lib/pinnacle/types/send_form_result.rb
544
- - lib/pinnacle/types/send_form_via_rcs_params.rb
545
- - lib/pinnacle/types/send_form_via_rcs_request_fallback.rb
546
- - lib/pinnacle/types/send_form_via_rcs_request_form.rb
547
- - lib/pinnacle/types/send_form_via_sms_params.rb
548
- - lib/pinnacle/types/send_form_via_sms_request_form.rb
549
477
  - lib/pinnacle/types/send_rcs_card_options_standalone_card_image_alignment.rb
550
478
  - lib/pinnacle/types/send_rcs_card_options_standalone_card_orientation.rb
551
479
  - lib/pinnacle/types/send_rich_cards_options.rb
@@ -578,9 +506,6 @@ files:
578
506
  - lib/pinnacle/types/successful_conversation_update.rb
579
507
  - lib/pinnacle/types/test_agent_response.rb
580
508
  - lib/pinnacle/types/test_agent_whitelist_response.rb
581
- - lib/pinnacle/types/text_field.rb
582
- - lib/pinnacle/types/textarea_field.rb
583
- - lib/pinnacle/types/time_field.rb
584
509
  - lib/pinnacle/types/toll_free_campaign.rb
585
510
  - lib/pinnacle/types/toll_free_campaign_schema_keywords.rb
586
511
  - lib/pinnacle/types/toll_free_campaign_schema_keywords_help.rb
@@ -605,7 +530,6 @@ files:
605
530
  - lib/pinnacle/types/tracking.rb
606
531
  - lib/pinnacle/types/updated_contact_id.rb
607
532
  - lib/pinnacle/types/upload_results.rb
608
- - lib/pinnacle/types/url_field.rb
609
533
  - lib/pinnacle/types/user_button_press.rb
610
534
  - lib/pinnacle/types/user_button_press_call.rb
611
535
  - lib/pinnacle/types/user_button_press_open_url.rb
@@ -635,7 +559,6 @@ files:
635
559
  - lib/pinnacle/types/vcard_email.rb
636
560
  - lib/pinnacle/types/vcard_phone.rb
637
561
  - lib/pinnacle/types/vcard_resource.rb
638
- - lib/pinnacle/types/verification_status.rb
639
562
  - lib/pinnacle/types/vetting_feedback.rb
640
563
  - lib/pinnacle/types/vetting_history.rb
641
564
  - lib/pinnacle/types/vetting_history_vetting_status.rb
@@ -1,217 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Forms
5
- class Client
6
- # @param client [Pinnacle::Internal::Http::RawClient]
7
- #
8
- # @return [void]
9
- def initialize(client:)
10
- @client = client
11
- end
12
-
13
- # Retrieve a form by id. Includes submission count, last submission timestamp, and archive state.
14
- #
15
- # @param request_options [Hash]
16
- # @param params [Hash]
17
- # @option request_options [String] :base_url
18
- # @option request_options [Hash{String => Object}] :additional_headers
19
- # @option request_options [Hash{String => Object}] :additional_query_parameters
20
- # @option request_options [Hash{String => Object}] :additional_body_parameters
21
- # @option request_options [Integer] :timeout_in_seconds
22
- # @option params [String] :id
23
- #
24
- # @return [Pinnacle::Types::Form]
25
- def get(request_options: {}, **params)
26
- params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
27
- request = Pinnacle::Internal::JSON::Request.new(
28
- base_url: request_options[:base_url],
29
- method: "GET",
30
- path: "forms/#{URI.encode_uri_component(params[:id].to_s)}",
31
- request_options: request_options
32
- )
33
- begin
34
- response = @client.send(request)
35
- rescue Net::HTTPRequestTimeout
36
- raise Pinnacle::Errors::TimeoutError
37
- end
38
- code = response.code.to_i
39
- if code.between?(200, 299)
40
- Pinnacle::Types::Form.load(response.body)
41
- else
42
- error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
43
- raise error_class.new(response.body, code: code)
44
- end
45
- end
46
-
47
- # Partial update. Only keys present in the body are applied. Archived forms (non-null `archived_at`) cannot be
48
- # updated — restore the form by setting `archived_at: null` in a PATCH first.
49
- #
50
- # @param request_options [Hash]
51
- # @param params [Pinnacle::Forms::Types::UpdateFormParams]
52
- # @option request_options [String] :base_url
53
- # @option request_options [Hash{String => Object}] :additional_headers
54
- # @option request_options [Hash{String => Object}] :additional_query_parameters
55
- # @option request_options [Hash{String => Object}] :additional_body_parameters
56
- # @option request_options [Integer] :timeout_in_seconds
57
- # @option params [String] :id
58
- #
59
- # @return [Pinnacle::Types::Form]
60
- def update(request_options: {}, **params)
61
- params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
62
- request_data = Pinnacle::Forms::Types::UpdateFormParams.new(params).to_h
63
- non_body_param_names = ["id"]
64
- body = request_data.except(*non_body_param_names)
65
-
66
- request = Pinnacle::Internal::JSON::Request.new(
67
- base_url: request_options[:base_url],
68
- method: "PATCH",
69
- path: "forms/#{URI.encode_uri_component(params[:id].to_s)}",
70
- body: body,
71
- request_options: request_options
72
- )
73
- begin
74
- response = @client.send(request)
75
- rescue Net::HTTPRequestTimeout
76
- raise Pinnacle::Errors::TimeoutError
77
- end
78
- code = response.code.to_i
79
- if code.between?(200, 299)
80
- Pinnacle::Types::Form.load(response.body)
81
- else
82
- error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
83
- raise error_class.new(response.body, code: code)
84
- end
85
- end
86
-
87
- # Paginated list of forms on your team, sorted by creation date (newest first). Includes archived forms.
88
- #
89
- # @param request_options [Hash]
90
- # @param params [Pinnacle::Forms::Types::ListFormsParams]
91
- # @option request_options [String] :base_url
92
- # @option request_options [Hash{String => Object}] :additional_headers
93
- # @option request_options [Hash{String => Object}] :additional_query_parameters
94
- # @option request_options [Hash{String => Object}] :additional_body_parameters
95
- # @option request_options [Integer] :timeout_in_seconds
96
- #
97
- # @return [Pinnacle::Types::ListFormsResponse]
98
- def list(request_options: {}, **params)
99
- params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
100
- request = Pinnacle::Internal::JSON::Request.new(
101
- base_url: request_options[:base_url],
102
- method: "POST",
103
- path: "forms/list",
104
- body: Pinnacle::Forms::Types::ListFormsParams.new(params).to_h,
105
- request_options: request_options
106
- )
107
- begin
108
- response = @client.send(request)
109
- rescue Net::HTTPRequestTimeout
110
- raise Pinnacle::Errors::TimeoutError
111
- end
112
- code = response.code.to_i
113
- if code.between?(200, 299)
114
- Pinnacle::Types::ListFormsResponse.load(response.body)
115
- else
116
- error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
117
- raise error_class.new(response.body, code: code)
118
- end
119
- end
120
-
121
- # Create a hosted form without sending it. <br>
122
- #
123
- # Returns the form object including its public URL — `https://forms.pinnacle.sh/{form_id}`. <br>
124
- #
125
- # To also deliver the URL to a recipient over SMS or RCS in a single call, use [`POST
126
- # /forms/send`](/api-reference/forms/send-form).
127
- #
128
- # @param request_options [Hash]
129
- # @param params [Pinnacle::Types::CreateFormRequest]
130
- # @option request_options [String] :base_url
131
- # @option request_options [Hash{String => Object}] :additional_headers
132
- # @option request_options [Hash{String => Object}] :additional_query_parameters
133
- # @option request_options [Hash{String => Object}] :additional_body_parameters
134
- # @option request_options [Integer] :timeout_in_seconds
135
- #
136
- # @return [Pinnacle::Types::Form]
137
- def create(request_options: {}, **params)
138
- params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
139
- request = Pinnacle::Internal::JSON::Request.new(
140
- base_url: request_options[:base_url],
141
- method: "POST",
142
- path: "forms",
143
- body: params,
144
- request_options: request_options
145
- )
146
- begin
147
- response = @client.send(request)
148
- rescue Net::HTTPRequestTimeout
149
- raise Pinnacle::Errors::TimeoutError
150
- end
151
- code = response.code.to_i
152
- if code.between?(200, 299)
153
- Pinnacle::Types::Form.load(response.body)
154
- else
155
- error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
156
- raise error_class.new(response.body, code: code)
157
- end
158
- end
159
-
160
- # Send a form to a recipient over SMS or RCS, or mint a standalone submission URL.
161
- #
162
- # Pass `form` as either an existing form id (`form_*`) or an inline `{ fields, ... }` definition to mint a new
163
- # form for this send.
164
- #
165
- # The delivery channel is inferred from `from`:
166
- # - `from: "agent_*"` → RCS (with optional SMS `fallback`)
167
- # - `from: "+E.164"` → SMS
168
- #
169
- # When `to` is provided, Pinnacle dispatches a message whose body contains the submission URL and the recipient is
170
- # recorded on the response: `submission.to` echoes the same E.164 number and `message_id` is the id of the
171
- # outbound SMS/RCS.
172
- #
173
- # When `to` is omitted, no message is sent — `submission.to` and `message_id` are both `null` — which is useful
174
- # for embedding the URL in your own outreach.
175
- #
176
- # On completion, a `FORM.SUBMISSION` webhook event is delivered to webhooks subscribed to the sender. See
177
- # [Receiving Messages and User Events](/guides/messages/receiving).
178
- #
179
- # @param request_options [Hash]
180
- # @param params [Pinnacle::Types::SendFormParams]
181
- # @option request_options [String] :base_url
182
- # @option request_options [Hash{String => Object}] :additional_headers
183
- # @option request_options [Hash{String => Object}] :additional_query_parameters
184
- # @option request_options [Hash{String => Object}] :additional_body_parameters
185
- # @option request_options [Integer] :timeout_in_seconds
186
- #
187
- # @return [Pinnacle::Forms::Types::FormsSendResponse]
188
- def send_(request_options: {}, **params)
189
- params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
190
- request = Pinnacle::Internal::JSON::Request.new(
191
- base_url: request_options[:base_url],
192
- method: "POST",
193
- path: "forms/send",
194
- body: Pinnacle::Types::SendFormParams.new(params).to_h,
195
- request_options: request_options
196
- )
197
- begin
198
- response = @client.send(request)
199
- rescue Net::HTTPRequestTimeout
200
- raise Pinnacle::Errors::TimeoutError
201
- end
202
- code = response.code.to_i
203
- if code.between?(200, 299)
204
- Pinnacle::Forms::Types::FormsSendResponse.load(response.body)
205
- else
206
- error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
207
- raise error_class.new(response.body, code: code)
208
- end
209
- end
210
-
211
- # @return [Pinnacle::Submissions::Client]
212
- def submissions
213
- @submissions ||= Pinnacle::Forms::Submissions::Client.new(client: @client)
214
- end
215
- end
216
- end
217
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Forms
5
- module Submissions
6
- class Client
7
- # @param client [Pinnacle::Internal::Http::RawClient]
8
- #
9
- # @return [void]
10
- def initialize(client:)
11
- @client = client
12
- end
13
-
14
- # Paginated list of completed submissions for a form, newest first. Each row includes the submitted `data` keyed
15
- # by field `key`, the sender/recipient, IP, user-agent, and timestamps.
16
- #
17
- # @param request_options [Hash]
18
- # @param params [Pinnacle::Forms::Submissions::Types::ListFormSubmissionsParams]
19
- # @option request_options [String] :base_url
20
- # @option request_options [Hash{String => Object}] :additional_headers
21
- # @option request_options [Hash{String => Object}] :additional_query_parameters
22
- # @option request_options [Hash{String => Object}] :additional_body_parameters
23
- # @option request_options [Integer] :timeout_in_seconds
24
- # @option params [String] :id
25
- #
26
- # @return [Pinnacle::Types::ListFormSubmissionsResponse]
27
- def list(request_options: {}, **params)
28
- params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
29
- request_data = Pinnacle::Forms::Submissions::Types::ListFormSubmissionsParams.new(params).to_h
30
- non_body_param_names = ["id"]
31
- body = request_data.except(*non_body_param_names)
32
-
33
- request = Pinnacle::Internal::JSON::Request.new(
34
- base_url: request_options[:base_url],
35
- method: "POST",
36
- path: "forms/#{URI.encode_uri_component(params[:id].to_s)}/submissions/list",
37
- body: body,
38
- request_options: request_options
39
- )
40
- begin
41
- response = @client.send(request)
42
- rescue Net::HTTPRequestTimeout
43
- raise Pinnacle::Errors::TimeoutError
44
- end
45
- code = response.code.to_i
46
- if code.between?(200, 299)
47
- Pinnacle::Types::ListFormSubmissionsResponse.load(response.body)
48
- else
49
- error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
50
- raise error_class.new(response.body, code: code)
51
- end
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Forms
5
- module Submissions
6
- module Types
7
- class ListFormSubmissionsParams < Internal::Types::Model
8
- field :id, -> { String }, optional: false, nullable: false
9
- field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
10
- field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Forms
5
- module Types
6
- class FormsSendResponse < Internal::Types::Model
7
- extend Pinnacle::Internal::Types::Union
8
-
9
- member -> { Pinnacle::Types::SendFormResult }
10
- member -> { Pinnacle::Types::ScheduledFormSendResult }
11
- end
12
- end
13
- end
14
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Forms
5
- module Types
6
- class ListFormsParams < Internal::Types::Model
7
- field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
8
- field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
9
- end
10
- end
11
- end
12
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Forms
5
- module Types
6
- class UpdateFormParams < Internal::Types::Model
7
- field :id, -> { String }, optional: false, nullable: false
8
- field :name, -> { String }, optional: true, nullable: false
9
- field :description, -> { String }, optional: true, nullable: false
10
- field :fields, -> { Internal::Types::Array[Pinnacle::Types::FormField] }, optional: true, nullable: false
11
- field :can_update, -> { Internal::Types::Boolean }, optional: true, nullable: false
12
- field :expires_at, -> { String }, optional: true, nullable: false
13
- field :theme_override, -> { Pinnacle::Types::FormThemeOverride }, optional: true, nullable: false
14
- field :archived_at, -> { String }, optional: true, nullable: false
15
- end
16
- end
17
- end
18
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Free-form text input backed by a client-side Google Places autocomplete. Shares text-field validation (length /
6
- # pattern); the place lookup happens entirely in the browser and is purely for suggestion UX.
7
- class AddressField < Internal::Types::Model
8
- field :placeholder, -> { String }, optional: true, nullable: false
9
- field :pattern, -> { String }, optional: true, nullable: false
10
- field :min_length, -> { Integer }, optional: true, nullable: false
11
- field :max_length, -> { Integer }, optional: true, nullable: false
12
- end
13
- end
14
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Webhook body delivered to subscribers of `CAMPAIGN.STATUS` whenever
6
- # an RCS campaign's per-carrier launch status or verification status
7
- # (AEGIS / Google) changes. `CAMPAIGN.STATUS` is only supported for
8
- # RCS agent senders — the attach call rejects phone-number senders
9
- # with `400 Bad Request`. Verify the `PINNACLE-SIGNING-SECRET` header
10
- # matches the signing secret of the webhook this event was delivered
11
- # to before trusting the payload.
12
- class CampaignStatusEvent < Internal::Types::Model
13
- field :type, -> { String }, optional: false, nullable: false
14
- field :agent, -> { Pinnacle::Types::CampaignStatusEventAgent }, optional: false, nullable: false
15
- field :campaign, -> { Pinnacle::Types::CampaignStatusEventCampaign }, optional: false, nullable: false
16
- field :brand, -> { Pinnacle::Types::CampaignStatusEventBrand }, optional: false, nullable: false
17
- field :carrier_launches, -> { Pinnacle::Types::CampaignStatusEventCarrierLaunches }, optional: false, nullable: false, api_name: "carrierLaunches"
18
- field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # The RCS agent the campaign-status update is for.
6
- class CampaignStatusEventAgent < Internal::Types::Model
7
- field :id, -> { String }, optional: false, nullable: false
8
- field :name, -> { String }, optional: false, nullable: true
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Reference to the brand owning the agent's connected campaign.
6
- class CampaignStatusEventBrand < Internal::Types::Model
7
- field :public_id, -> { String }, optional: false, nullable: true, api_name: "publicId"
8
- field :name, -> { String }, optional: false, nullable: true
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Reference to the connected campaign.
6
- class CampaignStatusEventCampaign < Internal::Types::Model
7
- field :public_id, -> { String }, optional: false, nullable: true, api_name: "publicId"
8
- field :type, -> { Pinnacle::Types::CampaignStatusEventCampaignType }, optional: false, nullable: false
9
- end
10
- end
11
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module CampaignStatusEventCampaignType
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- RCS = "RCS"
9
- TOLL_FREE = "TOLL_FREE"
10
- TEN_DLC = "10DLC"
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Resolved per-key launch status for the campaign's agent. Carrier
6
- # statuses live under `carriers` and verifier statuses under
7
- # `verification`.
8
- class CampaignStatusEventCarrierLaunches < Internal::Types::Model
9
- field :carriers, -> { Pinnacle::Types::CampaignStatusEventCarrierLaunchesCarriers }, optional: false, nullable: false
10
- field :verification, -> { Pinnacle::Types::CampaignStatusEventCarrierLaunchesVerification }, optional: false, nullable: false
11
- end
12
- end
13
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Per-carrier launch status. Each carrier moves through
6
- # `NOT_LAUNCHED` → `PENDING` → `LAUNCHED` as Pinnacle submits the
7
- # agent for review and the carrier accepts it. The agent is only
8
- # deliverable on a carrier once that carrier reports `LAUNCHED`.
9
- class CampaignStatusEventCarrierLaunchesCarriers < Internal::Types::Model
10
- field :att, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "ATT"
11
- field :tmobile, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "TMOBILE"
12
- field :verizon, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "VERIZON"
13
- field :others, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "OTHERS"
14
- end
15
- end
16
- end