trycourier 6.3.0 → 6.4.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/README.md +1 -1
- data/lib/courier/models/elemental_action_node.rb +123 -0
- data/lib/courier/models/elemental_action_node_with_type.rb +3 -1
- data/lib/courier/models/elemental_channel_node.rb +1 -1
- data/lib/courier/models/elemental_divider_node.rb +18 -0
- data/lib/courier/models/elemental_divider_node_with_type.rb +3 -1
- data/lib/courier/models/elemental_html_node.rb +33 -0
- data/lib/courier/models/elemental_html_node_with_type.rb +5 -1
- data/lib/courier/models/elemental_image_node.rb +74 -0
- data/lib/courier/models/elemental_image_node_with_type.rb +3 -1
- data/lib/courier/models/elemental_meta_node.rb +23 -0
- data/lib/courier/models/elemental_meta_node_with_type.rb +5 -1
- data/lib/courier/models/elemental_node.rb +9 -18
- data/lib/courier/models/elemental_quote_node.rb +72 -0
- data/lib/courier/models/elemental_quote_node_with_type.rb +3 -1
- data/lib/courier/models/elemental_text_node.rb +134 -0
- data/lib/courier/models/elemental_text_node_with_type.rb +3 -1
- data/lib/courier/models/journey_send_node.rb +32 -1
- data/lib/courier/models/locales.rb +18 -0
- data/lib/courier/models.rb +19 -0
- data/lib/courier/version.rb +1 -1
- data/lib/courier.rb +8 -0
- data/rbi/courier/models/elemental_action_node.rbi +153 -0
- data/rbi/courier/models/elemental_action_node_with_type.rbi +2 -1
- data/rbi/courier/models/elemental_divider_node.rbi +28 -0
- data/rbi/courier/models/elemental_divider_node_with_type.rbi +2 -1
- data/rbi/courier/models/elemental_html_node.rbi +52 -0
- data/rbi/courier/models/elemental_html_node_with_type.rbi +4 -1
- data/rbi/courier/models/elemental_image_node.rbi +94 -0
- data/rbi/courier/models/elemental_image_node_with_type.rbi +2 -1
- data/rbi/courier/models/elemental_meta_node.rbi +30 -0
- data/rbi/courier/models/elemental_meta_node_with_type.rbi +4 -1
- data/rbi/courier/models/elemental_node.rbi +1 -10
- data/rbi/courier/models/elemental_quote_node.rbi +95 -0
- data/rbi/courier/models/elemental_quote_node_with_type.rbi +2 -1
- data/rbi/courier/models/elemental_text_node.rbi +177 -0
- data/rbi/courier/models/elemental_text_node_with_type.rbi +2 -1
- data/rbi/courier/models/journey_send_node.rbi +45 -0
- data/rbi/courier/models/locales.rbi +27 -0
- data/rbi/courier/models.rbi +18 -0
- data/sig/courier/models/elemental_action_node.rbs +112 -0
- data/sig/courier/models/elemental_action_node_with_type.rbs +1 -1
- data/sig/courier/models/elemental_divider_node.rbs +15 -0
- data/sig/courier/models/elemental_divider_node_with_type.rbs +1 -1
- data/sig/courier/models/elemental_html_node.rbs +23 -0
- data/sig/courier/models/elemental_html_node_with_type.rbs +1 -1
- data/sig/courier/models/elemental_image_node.rbs +71 -0
- data/sig/courier/models/elemental_image_node_with_type.rbs +1 -1
- data/sig/courier/models/elemental_meta_node.rbs +15 -0
- data/sig/courier/models/elemental_meta_node_with_type.rbs +1 -1
- data/sig/courier/models/elemental_quote_node.rbs +66 -0
- data/sig/courier/models/elemental_quote_node_with_type.rbs +1 -1
- data/sig/courier/models/elemental_text_node.rbs +127 -0
- data/sig/courier/models/elemental_text_node_with_type.rbs +1 -1
- data/sig/courier/models/journey_send_node.rbs +24 -0
- data/sig/courier/models/locales.rbs +17 -0
- data/sig/courier/models.rbs +18 -0
- metadata +26 -2
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class ElementalTextNode < Courier::Models::ElementalBaseNode
|
|
6
|
+
# @!attribute content
|
|
7
|
+
# The text content displayed in the notification. Either this field must be
|
|
8
|
+
# specified, or the elements field
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :content, String
|
|
12
|
+
|
|
13
|
+
# @!attribute align
|
|
14
|
+
# Text alignment.
|
|
15
|
+
#
|
|
16
|
+
# @return [Symbol, Courier::Models::ElementalTextNode::Align, nil]
|
|
17
|
+
optional :align, enum: -> { Courier::ElementalTextNode::Align }
|
|
18
|
+
|
|
19
|
+
# @!attribute bold
|
|
20
|
+
# Apply bold to the text
|
|
21
|
+
#
|
|
22
|
+
# @return [String, nil]
|
|
23
|
+
optional :bold, String, nil?: true
|
|
24
|
+
|
|
25
|
+
# @!attribute color
|
|
26
|
+
# Specifies the color of text. Can be any valid css color value
|
|
27
|
+
#
|
|
28
|
+
# @return [String, nil]
|
|
29
|
+
optional :color, String, nil?: true
|
|
30
|
+
|
|
31
|
+
# @!attribute font_size
|
|
32
|
+
# CSS px font size for this text block, e.g. `16px`. Overrides the size of the
|
|
33
|
+
# `text_style` preset. Email only.
|
|
34
|
+
#
|
|
35
|
+
# @return [String, nil]
|
|
36
|
+
optional :font_size, String, nil?: true
|
|
37
|
+
|
|
38
|
+
# @!attribute format_
|
|
39
|
+
#
|
|
40
|
+
# @return [Symbol, Courier::Models::ElementalTextNode::Format, nil]
|
|
41
|
+
optional :format_, enum: -> { Courier::ElementalTextNode::Format }, api_name: :format, nil?: true
|
|
42
|
+
|
|
43
|
+
# @!attribute italic
|
|
44
|
+
# Apply italics to the text
|
|
45
|
+
#
|
|
46
|
+
# @return [String, nil]
|
|
47
|
+
optional :italic, String, nil?: true
|
|
48
|
+
|
|
49
|
+
# @!attribute line_height
|
|
50
|
+
# CSS line height for this text block, as a px value or a unitless multiplier,
|
|
51
|
+
# e.g. `24px` or `1.5`. Email only.
|
|
52
|
+
#
|
|
53
|
+
# @return [String, nil]
|
|
54
|
+
optional :line_height, String, nil?: true
|
|
55
|
+
|
|
56
|
+
# @!attribute locales
|
|
57
|
+
# Region specific content. See
|
|
58
|
+
# [locales docs](https://www.courier.com/docs/platform/content/elemental/locales/)
|
|
59
|
+
# for more details.
|
|
60
|
+
#
|
|
61
|
+
# @return [Hash{Symbol=>Courier::Models::LocaleItem}, nil]
|
|
62
|
+
optional :locales, -> { Courier::Internal::Type::HashOf[Courier::LocaleItem] }, nil?: true
|
|
63
|
+
|
|
64
|
+
# @!attribute strikethrough
|
|
65
|
+
# Apply a strike through the text
|
|
66
|
+
#
|
|
67
|
+
# @return [String, nil]
|
|
68
|
+
optional :strikethrough, String, nil?: true
|
|
69
|
+
|
|
70
|
+
# @!attribute text_style
|
|
71
|
+
# Allows the text to be rendered as a heading level.
|
|
72
|
+
#
|
|
73
|
+
# @return [Symbol, Courier::Models::TextStyle, nil]
|
|
74
|
+
optional :text_style, enum: -> { Courier::TextStyle }, nil?: true
|
|
75
|
+
|
|
76
|
+
# @!attribute underline
|
|
77
|
+
# Apply an underline to the text
|
|
78
|
+
#
|
|
79
|
+
# @return [String, nil]
|
|
80
|
+
optional :underline, String, nil?: true
|
|
81
|
+
|
|
82
|
+
# @!method initialize(content:, align: nil, bold: nil, color: nil, font_size: nil, format_: nil, italic: nil, line_height: nil, locales: nil, strikethrough: nil, text_style: nil, underline: nil)
|
|
83
|
+
# Some parameter documentations has been truncated, see
|
|
84
|
+
# {Courier::Models::ElementalTextNode} for more details.
|
|
85
|
+
#
|
|
86
|
+
# Represents a body of text to be rendered inside of the notification.
|
|
87
|
+
#
|
|
88
|
+
# @param content [String] The text content displayed in the notification. Either this
|
|
89
|
+
#
|
|
90
|
+
# @param align [Symbol, Courier::Models::ElementalTextNode::Align] Text alignment.
|
|
91
|
+
#
|
|
92
|
+
# @param bold [String, nil] Apply bold to the text
|
|
93
|
+
#
|
|
94
|
+
# @param color [String, nil] Specifies the color of text. Can be any valid css color value
|
|
95
|
+
#
|
|
96
|
+
# @param font_size [String, nil] CSS px font size for this text block, e.g. `16px`. Overrides the size of the `te
|
|
97
|
+
#
|
|
98
|
+
# @param format_ [Symbol, Courier::Models::ElementalTextNode::Format, nil]
|
|
99
|
+
#
|
|
100
|
+
# @param italic [String, nil] Apply italics to the text
|
|
101
|
+
#
|
|
102
|
+
# @param line_height [String, nil] CSS line height for this text block, as a px value or a unitless multiplier, e.g
|
|
103
|
+
#
|
|
104
|
+
# @param locales [Hash{Symbol=>Courier::Models::LocaleItem}, nil] Region specific content. See [locales docs](https://www.courier.com/docs/platfor
|
|
105
|
+
#
|
|
106
|
+
# @param strikethrough [String, nil] Apply a strike through the text
|
|
107
|
+
#
|
|
108
|
+
# @param text_style [Symbol, Courier::Models::TextStyle, nil] Allows the text to be rendered as a heading level.
|
|
109
|
+
#
|
|
110
|
+
# @param underline [String, nil] Apply an underline to the text
|
|
111
|
+
|
|
112
|
+
# Text alignment.
|
|
113
|
+
module Align
|
|
114
|
+
extend Courier::Internal::Type::Enum
|
|
115
|
+
|
|
116
|
+
LEFT = :left
|
|
117
|
+
CENTER = :center
|
|
118
|
+
RIGHT = :right
|
|
119
|
+
|
|
120
|
+
# @!method self.values
|
|
121
|
+
# @return [Array<Symbol>]
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
module Format
|
|
125
|
+
extend Courier::Internal::Type::Enum
|
|
126
|
+
|
|
127
|
+
MARKDOWN = :markdown
|
|
128
|
+
|
|
129
|
+
# @!method self.values
|
|
130
|
+
# @return [Array<Symbol>]
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
module Courier
|
|
4
4
|
module Models
|
|
5
|
-
class ElementalTextNodeWithType < Courier::Models::
|
|
5
|
+
class ElementalTextNodeWithType < Courier::Models::ElementalTextNode
|
|
6
6
|
# @!attribute type
|
|
7
7
|
#
|
|
8
8
|
# @return [Symbol, Courier::Models::ElementalTextNodeWithType::Type, nil]
|
|
9
9
|
optional :type, enum: -> { Courier::ElementalTextNodeWithType::Type }
|
|
10
10
|
|
|
11
11
|
# @!method initialize(type: nil)
|
|
12
|
+
# Represents a body of text to be rendered inside of the notification.
|
|
13
|
+
#
|
|
12
14
|
# @param type [Symbol, Courier::Models::ElementalTextNodeWithType::Type]
|
|
13
15
|
|
|
14
16
|
module Type
|
|
@@ -18,6 +18,15 @@ module Courier
|
|
|
18
18
|
# @return [String, nil]
|
|
19
19
|
optional :id, String
|
|
20
20
|
|
|
21
|
+
# @!attribute channel
|
|
22
|
+
# The channel this node sends through. Optional — when omitted, the field is
|
|
23
|
+
# absent from the node, including on `GET`; nodes created before this field
|
|
24
|
+
# existed have it unset. Setting it makes the node's channel explicit to any
|
|
25
|
+
# client reading the journey.
|
|
26
|
+
#
|
|
27
|
+
# @return [Symbol, Courier::Models::JourneySendNode::Channel, nil]
|
|
28
|
+
optional :channel, enum: -> { Courier::JourneySendNode::Channel }
|
|
29
|
+
|
|
21
30
|
# @!attribute conditions
|
|
22
31
|
# Condition spec for a journey node. Accepts a single condition atom, an AND/OR
|
|
23
32
|
# group, or an AND/OR nested group. Omit the `conditions` property entirely to
|
|
@@ -34,7 +43,7 @@ module Courier
|
|
|
34
43
|
# @return [Courier::Models::JourneyExperiment, nil]
|
|
35
44
|
optional :experiment, -> { Courier::JourneyExperiment }
|
|
36
45
|
|
|
37
|
-
# @!method initialize(message:, type:, id: nil, conditions: nil, experiment: nil)
|
|
46
|
+
# @!method initialize(message:, type:, id: nil, channel: nil, conditions: nil, experiment: nil)
|
|
38
47
|
# Some parameter documentations has been truncated, see
|
|
39
48
|
# {Courier::Models::JourneySendNode} for more details.
|
|
40
49
|
#
|
|
@@ -50,6 +59,8 @@ module Courier
|
|
|
50
59
|
#
|
|
51
60
|
# @param id [String]
|
|
52
61
|
#
|
|
62
|
+
# @param channel [Symbol, Courier::Models::JourneySendNode::Channel] The channel this node sends through. Optional — when omitted, the field is absen
|
|
63
|
+
#
|
|
53
64
|
# @param conditions [Array<String>, Courier::Models::JourneyConditionGroup, Courier::Models::JourneyConditionNestedGroup] Condition spec for a journey node. Accepts a single condition atom, an AND/OR gr
|
|
54
65
|
#
|
|
55
66
|
# @param experiment [Courier::Models::JourneyExperiment] A/B experiment config for a send node. The recipient is deterministically bucket
|
|
@@ -211,6 +222,26 @@ module Courier
|
|
|
211
222
|
# @!method self.values
|
|
212
223
|
# @return [Array<Symbol>]
|
|
213
224
|
end
|
|
225
|
+
|
|
226
|
+
# The channel this node sends through. Optional — when omitted, the field is
|
|
227
|
+
# absent from the node, including on `GET`; nodes created before this field
|
|
228
|
+
# existed have it unset. Setting it makes the node's channel explicit to any
|
|
229
|
+
# client reading the journey.
|
|
230
|
+
#
|
|
231
|
+
# @see Courier::Models::JourneySendNode#channel
|
|
232
|
+
module Channel
|
|
233
|
+
extend Courier::Internal::Type::Enum
|
|
234
|
+
|
|
235
|
+
EMAIL = :email
|
|
236
|
+
SMS = :sms
|
|
237
|
+
PUSH = :push
|
|
238
|
+
INBOX = :inbox
|
|
239
|
+
SLACK = :slack
|
|
240
|
+
MSTEAMS = :msteams
|
|
241
|
+
|
|
242
|
+
# @!method self.values
|
|
243
|
+
# @return [Array<Symbol>]
|
|
244
|
+
end
|
|
214
245
|
end
|
|
215
246
|
end
|
|
216
247
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class LocaleItem < Courier::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute content
|
|
7
|
+
#
|
|
8
|
+
# @return [String]
|
|
9
|
+
required :content, String
|
|
10
|
+
|
|
11
|
+
# @!method initialize(content:)
|
|
12
|
+
# @param content [String]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @type [Courier::Internal::Type::Converter]
|
|
16
|
+
Locales = Courier::Internal::Type::HashOf[-> { Courier::LocaleItem }]
|
|
17
|
+
end
|
|
18
|
+
end
|
data/lib/courier/models.rb
CHANGED
|
@@ -195,6 +195,8 @@ module Courier
|
|
|
195
195
|
|
|
196
196
|
Discord = Courier::Models::Discord
|
|
197
197
|
|
|
198
|
+
ElementalActionNode = Courier::Models::ElementalActionNode
|
|
199
|
+
|
|
198
200
|
ElementalActionNodeWithType = Courier::Models::ElementalActionNodeWithType
|
|
199
201
|
|
|
200
202
|
ElementalBaseNode = Courier::Models::ElementalBaseNode
|
|
@@ -207,18 +209,30 @@ module Courier
|
|
|
207
209
|
|
|
208
210
|
ElementalContentSugar = Courier::Models::ElementalContentSugar
|
|
209
211
|
|
|
212
|
+
ElementalDividerNode = Courier::Models::ElementalDividerNode
|
|
213
|
+
|
|
210
214
|
ElementalDividerNodeWithType = Courier::Models::ElementalDividerNodeWithType
|
|
211
215
|
|
|
216
|
+
ElementalHTMLNode = Courier::Models::ElementalHTMLNode
|
|
217
|
+
|
|
212
218
|
ElementalHTMLNodeWithType = Courier::Models::ElementalHTMLNodeWithType
|
|
213
219
|
|
|
220
|
+
ElementalImageNode = Courier::Models::ElementalImageNode
|
|
221
|
+
|
|
214
222
|
ElementalImageNodeWithType = Courier::Models::ElementalImageNodeWithType
|
|
215
223
|
|
|
224
|
+
ElementalMetaNode = Courier::Models::ElementalMetaNode
|
|
225
|
+
|
|
216
226
|
ElementalMetaNodeWithType = Courier::Models::ElementalMetaNodeWithType
|
|
217
227
|
|
|
218
228
|
ElementalNode = Courier::Models::ElementalNode
|
|
219
229
|
|
|
230
|
+
ElementalQuoteNode = Courier::Models::ElementalQuoteNode
|
|
231
|
+
|
|
220
232
|
ElementalQuoteNodeWithType = Courier::Models::ElementalQuoteNodeWithType
|
|
221
233
|
|
|
234
|
+
ElementalTextNode = Courier::Models::ElementalTextNode
|
|
235
|
+
|
|
222
236
|
ElementalTextNodeWithType = Courier::Models::ElementalTextNodeWithType
|
|
223
237
|
|
|
224
238
|
ElementWithChecksums = Courier::Models::ElementWithChecksums
|
|
@@ -378,6 +392,11 @@ module Courier
|
|
|
378
392
|
|
|
379
393
|
ListUpdateParams = Courier::Models::ListUpdateParams
|
|
380
394
|
|
|
395
|
+
LocaleItem = Courier::Models::LocaleItem
|
|
396
|
+
|
|
397
|
+
# @type [Courier::Internal::Type::Converter]
|
|
398
|
+
Locales = Courier::Models::Locales
|
|
399
|
+
|
|
381
400
|
Logo = Courier::Models::Logo
|
|
382
401
|
|
|
383
402
|
MessageCancelParams = Courier::Models::MessageCancelParams
|
data/lib/courier/version.rb
CHANGED
data/lib/courier.rb
CHANGED
|
@@ -62,7 +62,14 @@ require_relative "courier/models/update_broadcast_request"
|
|
|
62
62
|
require_relative "courier/models/inbound_bulk_message_user"
|
|
63
63
|
require_relative "courier/models/base_check"
|
|
64
64
|
require_relative "courier/models/subscription_topic_new"
|
|
65
|
+
require_relative "courier/models/elemental_action_node"
|
|
65
66
|
require_relative "courier/models/elemental_channel_node"
|
|
67
|
+
require_relative "courier/models/elemental_divider_node"
|
|
68
|
+
require_relative "courier/models/elemental_html_node"
|
|
69
|
+
require_relative "courier/models/elemental_image_node"
|
|
70
|
+
require_relative "courier/models/elemental_meta_node"
|
|
71
|
+
require_relative "courier/models/elemental_quote_node"
|
|
72
|
+
require_relative "courier/models/elemental_text_node"
|
|
66
73
|
require_relative "courier/models/cancel_journey_request"
|
|
67
74
|
require_relative "courier/models/create_journey_request"
|
|
68
75
|
require_relative "courier/models/journeys_invoke_request"
|
|
@@ -275,6 +282,7 @@ require_relative "courier/models/lists/subscription_subscribe_params"
|
|
|
275
282
|
require_relative "courier/models/lists/subscription_subscribe_user_params"
|
|
276
283
|
require_relative "courier/models/lists/subscription_unsubscribe_user_params"
|
|
277
284
|
require_relative "courier/models/list_update_params"
|
|
285
|
+
require_relative "courier/models/locales"
|
|
278
286
|
require_relative "courier/models/logo"
|
|
279
287
|
require_relative "courier/models/message_cancel_params"
|
|
280
288
|
require_relative "courier/models/message_channels"
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class ElementalActionNode < Courier::Models::ElementalBaseNode
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Courier::ElementalActionNode, Courier::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The text content of the action shown to the user.
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
attr_accessor :content
|
|
14
|
+
|
|
15
|
+
# The target URL of the action.
|
|
16
|
+
sig { returns(String) }
|
|
17
|
+
attr_accessor :href
|
|
18
|
+
|
|
19
|
+
# A unique id used to identify the action when it is executed.
|
|
20
|
+
sig { returns(T.nilable(String)) }
|
|
21
|
+
attr_accessor :action_id
|
|
22
|
+
|
|
23
|
+
# The alignment of the action button. Defaults to "center".
|
|
24
|
+
sig { returns(T.nilable(Courier::Alignment::OrSymbol)) }
|
|
25
|
+
attr_accessor :align
|
|
26
|
+
|
|
27
|
+
# The background color of the action button.
|
|
28
|
+
sig { returns(T.nilable(String)) }
|
|
29
|
+
attr_accessor :background_color
|
|
30
|
+
|
|
31
|
+
# CSS border-radius applied to the action button. For example, `4px`
|
|
32
|
+
sig { returns(T.nilable(String)) }
|
|
33
|
+
attr_accessor :border_radius
|
|
34
|
+
|
|
35
|
+
# CSS border width applied to the action button. For example, `1px`
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_accessor :border_size
|
|
38
|
+
|
|
39
|
+
# When true, the action's href is not rewritten for click-through tracking, even
|
|
40
|
+
# when click-through tracking is enabled for the workspace.
|
|
41
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
42
|
+
attr_accessor :disable_tracking
|
|
43
|
+
|
|
44
|
+
# CSS font-size applied to the action button label. For example, `14px`
|
|
45
|
+
sig { returns(T.nilable(String)) }
|
|
46
|
+
attr_accessor :font_size
|
|
47
|
+
|
|
48
|
+
# Region specific content. See
|
|
49
|
+
# [locales docs](https://www.courier.com/docs/platform/content/elemental/locales/)
|
|
50
|
+
# for more details.
|
|
51
|
+
sig { returns(T.nilable(T::Hash[Symbol, Courier::LocaleItem])) }
|
|
52
|
+
attr_accessor :locales
|
|
53
|
+
|
|
54
|
+
# CSS padding applied to the action button. For example, `8px 16px`
|
|
55
|
+
sig { returns(T.nilable(String)) }
|
|
56
|
+
attr_accessor :padding
|
|
57
|
+
|
|
58
|
+
# Defaults to `button`.
|
|
59
|
+
sig { returns(T.nilable(Courier::ElementalActionNode::Style::OrSymbol)) }
|
|
60
|
+
attr_accessor :style
|
|
61
|
+
|
|
62
|
+
# Allows the user to execute an action. Can be a button or a link.
|
|
63
|
+
sig do
|
|
64
|
+
params(
|
|
65
|
+
content: String,
|
|
66
|
+
href: String,
|
|
67
|
+
action_id: T.nilable(String),
|
|
68
|
+
align: T.nilable(Courier::Alignment::OrSymbol),
|
|
69
|
+
background_color: T.nilable(String),
|
|
70
|
+
border_radius: T.nilable(String),
|
|
71
|
+
border_size: T.nilable(String),
|
|
72
|
+
disable_tracking: T.nilable(T::Boolean),
|
|
73
|
+
font_size: T.nilable(String),
|
|
74
|
+
locales: T.nilable(T::Hash[Symbol, Courier::LocaleItem::OrHash]),
|
|
75
|
+
padding: T.nilable(String),
|
|
76
|
+
style: T.nilable(Courier::ElementalActionNode::Style::OrSymbol)
|
|
77
|
+
).returns(T.attached_class)
|
|
78
|
+
end
|
|
79
|
+
def self.new(
|
|
80
|
+
# The text content of the action shown to the user.
|
|
81
|
+
content:,
|
|
82
|
+
# The target URL of the action.
|
|
83
|
+
href:,
|
|
84
|
+
# A unique id used to identify the action when it is executed.
|
|
85
|
+
action_id: nil,
|
|
86
|
+
# The alignment of the action button. Defaults to "center".
|
|
87
|
+
align: nil,
|
|
88
|
+
# The background color of the action button.
|
|
89
|
+
background_color: nil,
|
|
90
|
+
# CSS border-radius applied to the action button. For example, `4px`
|
|
91
|
+
border_radius: nil,
|
|
92
|
+
# CSS border width applied to the action button. For example, `1px`
|
|
93
|
+
border_size: nil,
|
|
94
|
+
# When true, the action's href is not rewritten for click-through tracking, even
|
|
95
|
+
# when click-through tracking is enabled for the workspace.
|
|
96
|
+
disable_tracking: nil,
|
|
97
|
+
# CSS font-size applied to the action button label. For example, `14px`
|
|
98
|
+
font_size: nil,
|
|
99
|
+
# Region specific content. See
|
|
100
|
+
# [locales docs](https://www.courier.com/docs/platform/content/elemental/locales/)
|
|
101
|
+
# for more details.
|
|
102
|
+
locales: nil,
|
|
103
|
+
# CSS padding applied to the action button. For example, `8px 16px`
|
|
104
|
+
padding: nil,
|
|
105
|
+
# Defaults to `button`.
|
|
106
|
+
style: nil
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
sig do
|
|
111
|
+
override.returns(
|
|
112
|
+
{
|
|
113
|
+
content: String,
|
|
114
|
+
href: String,
|
|
115
|
+
action_id: T.nilable(String),
|
|
116
|
+
align: T.nilable(Courier::Alignment::OrSymbol),
|
|
117
|
+
background_color: T.nilable(String),
|
|
118
|
+
border_radius: T.nilable(String),
|
|
119
|
+
border_size: T.nilable(String),
|
|
120
|
+
disable_tracking: T.nilable(T::Boolean),
|
|
121
|
+
font_size: T.nilable(String),
|
|
122
|
+
locales: T.nilable(T::Hash[Symbol, Courier::LocaleItem]),
|
|
123
|
+
padding: T.nilable(String),
|
|
124
|
+
style: T.nilable(Courier::ElementalActionNode::Style::OrSymbol)
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
end
|
|
128
|
+
def to_hash
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Defaults to `button`.
|
|
132
|
+
module Style
|
|
133
|
+
extend Courier::Internal::Type::Enum
|
|
134
|
+
|
|
135
|
+
TaggedSymbol =
|
|
136
|
+
T.type_alias { T.all(Symbol, Courier::ElementalActionNode::Style) }
|
|
137
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
138
|
+
|
|
139
|
+
BUTTON =
|
|
140
|
+
T.let(:button, Courier::ElementalActionNode::Style::TaggedSymbol)
|
|
141
|
+
LINK = T.let(:link, Courier::ElementalActionNode::Style::TaggedSymbol)
|
|
142
|
+
|
|
143
|
+
sig do
|
|
144
|
+
override.returns(
|
|
145
|
+
T::Array[Courier::ElementalActionNode::Style::TaggedSymbol]
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
def self.values
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Courier
|
|
4
4
|
module Models
|
|
5
|
-
class ElementalActionNodeWithType < Courier::Models::
|
|
5
|
+
class ElementalActionNodeWithType < Courier::Models::ElementalActionNode
|
|
6
6
|
OrHash =
|
|
7
7
|
T.type_alias do
|
|
8
8
|
T.any(
|
|
@@ -21,6 +21,7 @@ module Courier
|
|
|
21
21
|
end
|
|
22
22
|
attr_writer :type
|
|
23
23
|
|
|
24
|
+
# Allows the user to execute an action. Can be a button or a link.
|
|
24
25
|
sig do
|
|
25
26
|
params(
|
|
26
27
|
type: Courier::ElementalActionNodeWithType::Type::OrSymbol
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class ElementalDividerNode < Courier::Models::ElementalBaseNode
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Courier::ElementalDividerNode, Courier::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The CSS color to render the line with. For example, `#fff`
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_accessor :color
|
|
14
|
+
|
|
15
|
+
# Renders a dividing line between elements.
|
|
16
|
+
sig { params(color: T.nilable(String)).returns(T.attached_class) }
|
|
17
|
+
def self.new(
|
|
18
|
+
# The CSS color to render the line with. For example, `#fff`
|
|
19
|
+
color: nil
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
sig { override.returns({ color: T.nilable(String) }) }
|
|
24
|
+
def to_hash
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Courier
|
|
4
4
|
module Models
|
|
5
|
-
class ElementalDividerNodeWithType < Courier::Models::
|
|
5
|
+
class ElementalDividerNodeWithType < Courier::Models::ElementalDividerNode
|
|
6
6
|
OrHash =
|
|
7
7
|
T.type_alias do
|
|
8
8
|
T.any(
|
|
@@ -23,6 +23,7 @@ module Courier
|
|
|
23
23
|
end
|
|
24
24
|
attr_writer :type
|
|
25
25
|
|
|
26
|
+
# Renders a dividing line between elements.
|
|
26
27
|
sig do
|
|
27
28
|
params(
|
|
28
29
|
type: Courier::ElementalDividerNodeWithType::Type::OrSymbol
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class ElementalHTMLNode < Courier::Models::ElementalBaseNode
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Courier::ElementalHTMLNode, Courier::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Raw HTML string to render inside the notification.
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
attr_accessor :content
|
|
14
|
+
|
|
15
|
+
# Region specific content. See
|
|
16
|
+
# [locales docs](https://www.courier.com/docs/platform/content/elemental/locales/)
|
|
17
|
+
# for more details.
|
|
18
|
+
sig { returns(T.nilable(T::Hash[Symbol, Courier::LocaleItem])) }
|
|
19
|
+
attr_accessor :locales
|
|
20
|
+
|
|
21
|
+
# Raw HTML string inside an Elemental document. When rendering a message, this
|
|
22
|
+
# node is turned into output only for the email channel; for other channels it
|
|
23
|
+
# produces no blocks.
|
|
24
|
+
sig do
|
|
25
|
+
params(
|
|
26
|
+
content: String,
|
|
27
|
+
locales: T.nilable(T::Hash[Symbol, Courier::LocaleItem::OrHash])
|
|
28
|
+
).returns(T.attached_class)
|
|
29
|
+
end
|
|
30
|
+
def self.new(
|
|
31
|
+
# Raw HTML string to render inside the notification.
|
|
32
|
+
content:,
|
|
33
|
+
# Region specific content. See
|
|
34
|
+
# [locales docs](https://www.courier.com/docs/platform/content/elemental/locales/)
|
|
35
|
+
# for more details.
|
|
36
|
+
locales: nil
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sig do
|
|
41
|
+
override.returns(
|
|
42
|
+
{
|
|
43
|
+
content: String,
|
|
44
|
+
locales: T.nilable(T::Hash[Symbol, Courier::LocaleItem])
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
def to_hash
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Courier
|
|
4
4
|
module Models
|
|
5
|
-
class ElementalHTMLNodeWithType < Courier::Models::
|
|
5
|
+
class ElementalHTMLNodeWithType < Courier::Models::ElementalHTMLNode
|
|
6
6
|
OrHash =
|
|
7
7
|
T.type_alias do
|
|
8
8
|
T.any(Courier::ElementalHTMLNodeWithType, Courier::Internal::AnyHash)
|
|
@@ -18,6 +18,9 @@ module Courier
|
|
|
18
18
|
end
|
|
19
19
|
attr_writer :type
|
|
20
20
|
|
|
21
|
+
# Raw HTML string inside an Elemental document. When rendering a message, this
|
|
22
|
+
# node is turned into output only for the email channel; for other channels it
|
|
23
|
+
# produces no blocks.
|
|
21
24
|
sig do
|
|
22
25
|
params(
|
|
23
26
|
type: Courier::ElementalHTMLNodeWithType::Type::OrSymbol
|