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
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # External verifier status. AEGIS (the U.S. carrier vetting
6
- # authority used by AT&T, T-Mobile, and Verizon) and Google each
7
- # send a verification email to the brand's contact address. Each
8
- # verifier moves through `NOT_SENT` → `SENT` → `VERIFIED` once
9
- # the brand replies and the verifier confirms ownership.
10
- class CampaignStatusEventCarrierLaunchesVerification < Internal::Types::Model
11
- field :aegis, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "AEGIS"
12
- field :google, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "GOOGLE"
13
- end
14
- end
15
- 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 CarrierLaunchesCarriers < 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
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # External verifier status. AEGIS (the U.S. carrier vetting
6
- # authority used by AT&T, T-Mobile, and Verizon) and Google each
7
- # send a verification email to the brand's contact address. Each
8
- # verifier moves through `NOT_SENT` → `SENT` → `VERIFIED` once
9
- # the brand replies and the verifier confirms ownership.
10
- class CarrierLaunchesVerification < Internal::Types::Model
11
- field :aegis, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "AEGIS"
12
- field :google, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "GOOGLE"
13
- end
14
- end
15
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Multi-select checkbox group when `options` is provided. If `options` is omitted the field renders as a single
6
- # boolean checkbox.
7
- class CheckboxField < Internal::Types::Model
8
- field :options, -> { Internal::Types::Array[Pinnacle::Types::FormFieldOption] }, optional: true, nullable: false
9
- field :min_selected, -> { Integer }, optional: true, nullable: false
10
- field :max_selected, -> { Integer }, optional: true, nullable: false
11
- end
12
- end
13
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Native color picker. Submitted value is a 6-digit hex string like `#ff6b35`.
6
- class ColorField < Internal::Types::Model; end
7
- end
8
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module CreateFormRequest
6
- # CreateFormRequest is an alias for FormDefinition
7
-
8
- # @option str [String]
9
- #
10
- # @return [untyped]
11
- def self.load(str)
12
- ::JSON.parse(str)
13
- end
14
-
15
- # @option value [untyped]
16
- #
17
- # @return [String]
18
- def self.dump(value)
19
- ::JSON.generate(value)
20
- end
21
- end
22
- end
23
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Date picker. `min`/`max` accept `YYYY-MM-DD`.
6
- class DateField < Internal::Types::Model
7
- field :placeholder, -> { String }, optional: true, nullable: false
8
- field :min, -> { String }, optional: true, nullable: false
9
- field :max, -> { String }, optional: true, nullable: false
10
- end
11
- end
12
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Local-datetime picker. `min`/`max` accept ISO 8601 timestamps.
6
- class DatetimeField < Internal::Types::Model
7
- field :placeholder, -> { String }, optional: true, nullable: false
8
- field :min, -> { String }, optional: true, nullable: false
9
- field :max, -> { String }, optional: true, nullable: false
10
- end
11
- end
12
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Email input. Server rejects values that fail RFC 5322 validation.
6
- class EmailField < Internal::Types::Model
7
- field :placeholder, -> { String }, optional: true, nullable: false
8
- end
9
- end
10
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Properties shared by every field variant. Not intended to be referenced directly — use a specific field type from
6
- # `FormField`.
7
- class FieldBase < Internal::Types::Model
8
- field :key, -> { String }, optional: false, nullable: false
9
- field :label, -> { String }, optional: false, nullable: false
10
- field :required, -> { Internal::Types::Boolean }, optional: true, nullable: false
11
- field :help_text, -> { String }, optional: true, nullable: false
12
- end
13
- end
14
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # A hosted form definition.
6
- class Form < Internal::Types::Model
7
- field :id, -> { String }, optional: false, nullable: false
8
- field :url, -> { String }, optional: false, nullable: false
9
- field :name, -> { String }, optional: false, nullable: true
10
- field :description, -> { String }, optional: false, nullable: true
11
- field :fields, -> { Internal::Types::Array[Pinnacle::Types::FormField] }, optional: false, nullable: false
12
- field :can_update, -> { Internal::Types::Boolean }, optional: false, nullable: false
13
- field :expires_at, -> { String }, optional: false, nullable: true
14
- field :theme_override, -> { Pinnacle::Types::FormThemeOverride }, optional: false, nullable: true
15
- field :submission_count, -> { Integer }, optional: false, nullable: false
16
- field :last_submitted_at, -> { String }, optional: false, nullable: true
17
- field :archived_at, -> { String }, optional: false, nullable: true
18
- field :created_at, -> { String }, optional: false, nullable: false
19
- field :updated_at, -> { String }, optional: false, nullable: false
20
- end
21
- end
22
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Background layer for the form page. Discriminated by `type`.
6
- class FormBackground < Internal::Types::Model
7
- extend Pinnacle::Internal::Types::Union
8
-
9
- discriminant :type
10
-
11
- member -> { Pinnacle::Types::FormBackgroundSolid }, key: "SOLID"
12
- member -> { Pinnacle::Types::FormBackgroundGradient }, key: "GRADIENT"
13
- member -> { Pinnacle::Types::FormBackgroundImage }, key: "IMAGE"
14
- member -> { Pinnacle::Types::FormBackgroundPattern }, key: "PATTERN"
15
- end
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Two-stop linear gradient. Supply separate light- and dark-mode gradients; the renderer picks based on
6
- # `theme_mode`.
7
- class FormBackgroundGradient < Internal::Types::Model
8
- field :light, -> { Pinnacle::Types::FormGradient }, optional: false, nullable: false
9
- field :dark, -> { Pinnacle::Types::FormGradient }, optional: false, nullable: false
10
- end
11
- end
12
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Image background. The image is tiled or scaled across the page with optional blur and dark tint overlay.
6
- class FormBackgroundImage < Internal::Types::Model
7
- field :url, -> { String }, optional: false, nullable: false
8
- field :tint_opacity, -> { Integer }, optional: false, nullable: false
9
- field :blur, -> { Internal::Types::Boolean }, optional: false, nullable: false
10
- field :zoom, -> { Integer }, optional: false, nullable: false
11
- end
12
- end
13
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Subtle repeating SVG pattern tinted by the palette's foreground color.
6
- class FormBackgroundPattern < Internal::Types::Model
7
- field :preset, -> { Pinnacle::Types::FormBackgroundPatternPreset }, optional: false, nullable: false
8
- end
9
- end
10
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormBackgroundPatternPreset
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- NOISE = "noise"
9
- DOTS = "dots"
10
- MESH = "mesh"
11
- GRID = "grid"
12
- WAVES = "waves"
13
- TOPO = "topo"
14
- end
15
- end
16
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # No background effect — the form page is filled with a single flat color. The color itself isn't specified on this
6
- # object; it's read from the sibling `colors` field on the same `theme_override` object (i.e.
7
- # `theme_override.colors.light.background` in light mode, `theme_override.colors.dark.background` in dark mode). If
8
- # you don't override `colors`, the color falls back to the one your team has configured in the [Pinnacle
9
- # Dashboard](https://app.pinnacle.sh/dashboard/forms).
10
- #
11
- # Complete example — a POST `/forms` body that sets a white form in light mode and near-black in dark mode with no
12
- # background effect:
13
- #
14
- # ```json
15
- # {
16
- # "name": "Contact request",
17
- # "fields": [
18
- # { "type": "text", "key": "full_name", "label": "Full name", "required": true }
19
- # ],
20
- # "theme_override": {
21
- # "background": { "type": "solid" },
22
- # "colors": {
23
- # "light": { "background": "#ffffff" },
24
- # "dark": { "background": "#0a0a0a" }
25
- # }
26
- # }
27
- # }
28
- # ```
29
- #
30
- # Pick `solid` when you want a clean one-color page with no gradient / image / pattern overlay. Use `gradient`,
31
- # `image`, or `pattern` instead when you want something layered on top of the base color.
32
- class FormBackgroundSolid < Internal::Types::Model; end
33
- end
34
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Per-mode palette. All three colors are optional; any you omit fall back to the team default for that mode.
6
- class FormColorPalette < Internal::Types::Model
7
- field :primary, -> { String }, optional: true, nullable: false
8
- field :background, -> { String }, optional: true, nullable: false
9
- field :text, -> { String }, optional: true, nullable: false
10
- end
11
- end
12
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # The minimum shape needed to create a form. Used by `POST /forms` and inline by `POST /forms/send`.
6
- class FormDefinition < Internal::Types::Model
7
- field :name, -> { String }, optional: true, nullable: false
8
- field :description, -> { String }, optional: true, nullable: false
9
- field :fields, -> { Internal::Types::Array[Pinnacle::Types::FormField] }, optional: false, nullable: false
10
- field :can_update, -> { Internal::Types::Boolean }, optional: true, nullable: false
11
- field :expires_at, -> { String }, optional: true, nullable: false
12
- field :theme_override, -> { Pinnacle::Types::FormThemeOverride }, optional: true, nullable: false
13
- end
14
- end
15
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # A single field definition inside a form. Discriminated by `type`.
6
- class FormField < Internal::Types::Model
7
- extend Pinnacle::Internal::Types::Union
8
-
9
- discriminant :type
10
-
11
- member -> { Pinnacle::Types::TextField }, key: "TEXT"
12
- member -> { Pinnacle::Types::TextareaField }, key: "TEXTAREA"
13
- member -> { Pinnacle::Types::AddressField }, key: "ADDRESS"
14
- member -> { Pinnacle::Types::EmailField }, key: "EMAIL"
15
- member -> { Pinnacle::Types::UrlField }, key: "URL"
16
- member -> { Pinnacle::Types::PhoneField }, key: "PHONE"
17
- member -> { Pinnacle::Types::NumberField }, key: "NUMBER"
18
- member -> { Pinnacle::Types::RangeField }, key: "RANGE"
19
- member -> { Pinnacle::Types::RatingField }, key: "RATING"
20
- member -> { Pinnacle::Types::DateField }, key: "DATE"
21
- member -> { Pinnacle::Types::TimeField }, key: "TIME"
22
- member -> { Pinnacle::Types::DatetimeField }, key: "DATETIME"
23
- member -> { Pinnacle::Types::ColorField }, key: "COLOR"
24
- member -> { Pinnacle::Types::SelectField }, key: "SELECT"
25
- member -> { Pinnacle::Types::RadioField }, key: "RADIO"
26
- member -> { Pinnacle::Types::CheckboxField }, key: "CHECKBOX"
27
- end
28
- end
29
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # A single choice inside a `select`, `radio`, or `checkbox` field.
6
- class FormFieldOption < Internal::Types::Model
7
- field :value, -> { String }, optional: false, nullable: false
8
- field :label, -> { String }, optional: false, nullable: false
9
- end
10
- end
11
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # A single light- or dark-mode gradient stop pair.
6
- class FormGradient < Internal::Types::Model
7
- field :from, -> { String }, optional: false, nullable: false
8
- field :to, -> { String }, optional: false, nullable: false
9
- field :angle, -> { Pinnacle::Types::FormGradientAngle }, optional: false, nullable: false
10
- end
11
- end
12
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormGradientAngle
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- TOP_BOTTOM = "top-bottom"
9
- DIAGONAL = "diagonal"
10
- end
11
- end
12
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormIdReference
6
- # FormIdReference is an alias for String
7
-
8
- # @option str [String]
9
- #
10
- # @return [untyped]
11
- def self.load(str)
12
- ::JSON.parse(str)
13
- end
14
-
15
- # @option value [untyped]
16
- #
17
- # @return [String]
18
- def self.dump(value)
19
- ::JSON.generate(value)
20
- end
21
- end
22
- end
23
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # A single submission against a form.
6
- class FormSubmission < Internal::Types::Model
7
- field :id, -> { String }, optional: false, nullable: false
8
- field :url, -> { String }, optional: false, nullable: false
9
- field :form_id, -> { String }, optional: false, nullable: false
10
- field :from, -> { String }, optional: false, nullable: true
11
- field :to, -> { String }, optional: false, nullable: true
12
- field :data, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: true
13
- field :ip_address, -> { String }, optional: false, nullable: true
14
- field :user_agent, -> { String }, optional: false, nullable: true
15
- field :submitted_at, -> { String }, optional: false, nullable: true
16
- field :created_at, -> { String }, optional: false, nullable: false
17
- end
18
- end
19
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # The value submitted for a single form field. Shape depends on the field type:
6
- # - `text`, `email`, `phone`, `url`, `textarea`, `select`, `radio` → string
7
- # - `number` → number
8
- # - `checkbox` (single) → boolean
9
- # - `checkbox` (multi), `multiselect` → array of strings
10
- # - Skipped optional field → null
11
- class FormSubmissionAnswer < Internal::Types::Model
12
- extend Pinnacle::Internal::Types::Union
13
-
14
- member -> { String }
15
- member -> { Integer }
16
- member -> { Internal::Types::Boolean }
17
- member -> { Internal::Types::Array[String] }
18
- end
19
- end
20
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Webhook body delivered to subscribers of `FORM.SUBMISSION` after a recipient completes a form. Verify the
6
- # `PINNACLE-SIGNING-SECRET` header matches your webhook's signing secret before trusting the payload.
7
- class FormSubmissionEvent < Internal::Types::Model
8
- field :type, -> { String }, optional: false, nullable: false
9
- field :sender, -> { String }, optional: false, nullable: false
10
- field :conversation, -> { Pinnacle::Types::FormSubmissionEventConversation }, optional: false, nullable: true
11
- field :form, -> { Pinnacle::Types::FormSubmissionEventForm }, optional: false, nullable: false
12
- field :submission, -> { Pinnacle::Types::FormSubmissionEventSubmission }, optional: false, nullable: false
13
- end
14
- end
15
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Conversation between the sender and the recipient the form was delivered to. Only populated when the form was
6
- # dispatched via `POST /forms/send` with a `to` recipient — that's the only call that opens a conversation tied to a
7
- # form submission.
8
- #
9
- # Null in every other case, including:
10
- # - `POST /forms/send` without a `to` (URL-only mints — no message is sent, so no conversation exists).
11
- # - Submissions to a form whose URL was shared by any other means (e.g. an RCS card built with `POST /send`, a chat
12
- # message, a marketing email, or a link on your site). The recipient isn't tied to a Pinnacle conversation in those
13
- # flows.
14
- class FormSubmissionEventConversation < Internal::Types::Model
15
- field :id, -> { String }, optional: false, nullable: false
16
- field :from, -> { String }, optional: false, nullable: false
17
- field :to, -> { String }, optional: false, nullable: false
18
- end
19
- end
20
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Form summary carried on the FORM.SUBMISSION event.
6
- class FormSubmissionEventForm < Internal::Types::Model
7
- field :id, -> { String }, optional: false, nullable: false
8
- field :url, -> { String }, optional: false, nullable: false
9
- field :name, -> { String }, optional: false, nullable: true
10
- end
11
- end
12
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # The submitted answers plus a resolved snapshot of each form field.
6
- class FormSubmissionEventSubmission < Internal::Types::Model
7
- field :id, -> { String }, optional: false, nullable: false
8
- field :from, -> { String }, optional: false, nullable: false
9
- field :to, -> { String }, optional: false, nullable: true
10
- field :data, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
11
- field :fields, -> { Internal::Types::Array[Pinnacle::Types::FormSubmittedField] }, optional: false, nullable: false
12
- field :ip_address, -> { String }, optional: false, nullable: true
13
- field :user_agent, -> { String }, optional: false, nullable: true
14
- field :submitted_at, -> { String }, optional: false, nullable: false
15
- end
16
- end
17
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Snapshot of a single form field paired with the value the recipient submitted.
6
- class FormSubmittedField < Internal::Types::Model
7
- field :key, -> { String }, optional: false, nullable: false
8
- field :label, -> { String }, optional: false, nullable: false
9
- field :type, -> { String }, optional: false, nullable: false
10
- field :value, -> { Pinnacle::Types::FormSubmissionAnswer }, optional: false, nullable: true
11
- end
12
- end
13
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Sparse override layered on top of your team's theme. Every field is optional; provided fields replace the
6
- # corresponding team defaults at render time. URL fields must use `https://`.
7
- class FormThemeOverride < Internal::Types::Model
8
- field :logo_url, -> { String }, optional: true, nullable: false
9
- field :favicon_url, -> { String }, optional: true, nullable: false
10
- field :theme_mode, -> { Pinnacle::Types::FormThemeOverrideThemeMode }, optional: true, nullable: false
11
- field :colors, -> { Pinnacle::Types::FormThemeOverrideColors }, optional: true, nullable: false
12
- field :font_family, -> { Pinnacle::Types::FormThemeOverrideFontFamily }, optional: true, nullable: false
13
- field :corner_radius, -> { Pinnacle::Types::FormThemeOverrideCornerRadius }, optional: true, nullable: false
14
- field :content_alignment, -> { Pinnacle::Types::FormThemeOverrideContentAlignment }, optional: true, nullable: false
15
- field :background, -> { Pinnacle::Types::FormBackground }, optional: true, nullable: false
16
- field :submit_button_label, -> { String }, optional: true, nullable: false
17
- field :success_message, -> { String }, optional: true, nullable: false
18
- field :redirect_url, -> { String }, optional: true, nullable: false
19
- field :privacy_url, -> { String }, optional: true, nullable: false
20
- field :terms_url, -> { String }, optional: true, nullable: false
21
- field :og_image_url, -> { String }, optional: true, nullable: false
22
- field :og_description, -> { String }, optional: true, nullable: false
23
- end
24
- end
25
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- # Per-mode palette overrides. Each mode is an object with optional `primary`, `background`, and `text` hex colors.
6
- # Omit a mode to inherit the team default for it.
7
- class FormThemeOverrideColors < Internal::Types::Model
8
- field :light, -> { Pinnacle::Types::FormColorPalette }, optional: true, nullable: false
9
- field :dark, -> { Pinnacle::Types::FormColorPalette }, optional: true, nullable: false
10
- end
11
- end
12
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormThemeOverrideContentAlignment
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- LEFT = "left"
9
- CENTER = "center"
10
- RIGHT = "right"
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormThemeOverrideCornerRadius
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- SHARP = "sharp"
9
- ROUNDED = "rounded"
10
- PILL = "pill"
11
- end
12
- end
13
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormThemeOverrideFontFamily
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- INTER = "inter"
9
- SYSTEM = "system"
10
- SERIF = "serif"
11
- MONO = "mono"
12
- ROUNDED = "rounded"
13
- end
14
- end
15
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pinnacle
4
- module Types
5
- module FormThemeOverrideThemeMode
6
- extend Pinnacle::Internal::Types::Enum
7
-
8
- LIGHT = "light"
9
- DARK = "dark"
10
- AUTO = "auto"
11
- end
12
- end
13
- end