trycourier 4.10.1 → 4.11.0

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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/lib/courier/client.rb +15 -1
  4. data/lib/courier/internal/transport/base_client.rb +2 -0
  5. data/lib/courier/models/create_journey_request.rb +39 -0
  6. data/lib/courier/models/journey_ai_node.rb +77 -0
  7. data/lib/courier/models/journey_api_invoke_trigger_node.rb +73 -0
  8. data/lib/courier/models/journey_archive_params.rb +20 -0
  9. data/lib/courier/models/journey_condition_atom.rb +8 -0
  10. data/lib/courier/models/journey_condition_group.rb +26 -0
  11. data/lib/courier/models/journey_condition_nested_group.rb +24 -0
  12. data/lib/courier/models/journey_conditions_field.rb +37 -0
  13. data/lib/courier/models/journey_create_params.rb +14 -0
  14. data/lib/courier/models/journey_delay_duration_node.rb +71 -0
  15. data/lib/courier/models/journey_delay_until_node.rb +71 -0
  16. data/lib/courier/models/journey_exit_node.rb +33 -0
  17. data/lib/courier/models/journey_fetch_get_delete_node.rb +103 -0
  18. data/lib/courier/models/journey_fetch_post_put_node.rb +110 -0
  19. data/lib/courier/models/journey_list_versions_params.rb +20 -0
  20. data/lib/courier/models/journey_merge_strategy.rb +18 -0
  21. data/lib/courier/models/journey_node.rb +139 -0
  22. data/lib/courier/models/journey_publish_params.rb +20 -0
  23. data/lib/courier/models/journey_publish_request.rb +18 -0
  24. data/lib/courier/models/journey_replace_params.rb +20 -0
  25. data/lib/courier/models/journey_response.rb +82 -0
  26. data/lib/courier/models/journey_retrieve_params.rb +29 -0
  27. data/lib/courier/models/journey_segment_trigger_node.rb +90 -0
  28. data/lib/courier/models/journey_send_node.rb +124 -0
  29. data/lib/courier/models/journey_state.rb +16 -0
  30. data/lib/courier/models/journey_template_create_request.rb +138 -0
  31. data/lib/courier/models/journey_template_get_response.rb +154 -0
  32. data/lib/courier/models/journey_template_list_response.rb +23 -0
  33. data/lib/courier/models/journey_template_publish_request.rb +18 -0
  34. data/lib/courier/models/journey_template_replace_request.rb +126 -0
  35. data/lib/courier/models/journey_template_summary.rb +60 -0
  36. data/lib/courier/models/journey_throttle_dynamic_node.rb +86 -0
  37. data/lib/courier/models/journey_throttle_static_node.rb +80 -0
  38. data/lib/courier/models/journey_version_item.rb +41 -0
  39. data/lib/courier/models/journey_versions_list_response.rb +24 -0
  40. data/lib/courier/models/journeys/template_archive_params.rb +28 -0
  41. data/lib/courier/models/journeys/template_create_params.rb +22 -0
  42. data/lib/courier/models/journeys/template_list_params.rb +39 -0
  43. data/lib/courier/models/journeys/template_list_versions_params.rb +28 -0
  44. data/lib/courier/models/journeys/template_publish_params.rb +28 -0
  45. data/lib/courier/models/journeys/template_replace_params.rb +28 -0
  46. data/lib/courier/models/journeys/template_retrieve_params.rb +28 -0
  47. data/lib/courier/models/notification_list_response.rb +8 -8
  48. data/lib/courier/models/notification_template_create_request.rb +3 -3
  49. data/lib/courier/models/notification_template_payload.rb +2 -2
  50. data/lib/courier/models/notification_template_response.rb +71 -0
  51. data/lib/courier/models/notification_template_update_request.rb +3 -3
  52. data/lib/courier/models/tenants/template_delete_params.rb +28 -0
  53. data/lib/courier/models.rb +75 -2
  54. data/lib/courier/resources/journeys/templates.rb +224 -0
  55. data/lib/courier/resources/journeys.rb +167 -2
  56. data/lib/courier/resources/notifications/checks.rb +16 -6
  57. data/lib/courier/resources/notifications.rb +8 -8
  58. data/lib/courier/resources/tenants/templates.rb +32 -0
  59. data/lib/courier/version.rb +1 -1
  60. data/lib/courier.rb +45 -1
  61. data/rbi/courier/models/create_journey_request.rbi +113 -0
  62. data/rbi/courier/models/journey_ai_node.rbi +141 -0
  63. data/rbi/courier/models/journey_api_invoke_trigger_node.rbi +164 -0
  64. data/rbi/courier/models/journey_archive_params.rbi +35 -0
  65. data/rbi/courier/models/journey_condition_atom.rbi +11 -0
  66. data/rbi/courier/models/journey_condition_group.rbi +43 -0
  67. data/rbi/courier/models/journey_condition_nested_group.rbi +51 -0
  68. data/rbi/courier/models/journey_conditions_field.rbi +27 -0
  69. data/rbi/courier/models/journey_create_params.rbi +27 -0
  70. data/rbi/courier/models/journey_delay_duration_node.rbi +146 -0
  71. data/rbi/courier/models/journey_delay_until_node.rbi +139 -0
  72. data/rbi/courier/models/journey_exit_node.rbi +57 -0
  73. data/rbi/courier/models/journey_fetch_get_delete_node.rbi +186 -0
  74. data/rbi/courier/models/journey_fetch_post_put_node.rbi +190 -0
  75. data/rbi/courier/models/journey_list_versions_params.rbi +35 -0
  76. data/rbi/courier/models/journey_merge_strategy.rbi +26 -0
  77. data/rbi/courier/models/journey_node.rbi +227 -0
  78. data/rbi/courier/models/journey_publish_params.rbi +35 -0
  79. data/rbi/courier/models/journey_publish_request.rbi +28 -0
  80. data/rbi/courier/models/journey_replace_params.rbi +35 -0
  81. data/rbi/courier/models/journey_response.rbi +108 -0
  82. data/rbi/courier/models/journey_retrieve_params.rbi +52 -0
  83. data/rbi/courier/models/journey_segment_trigger_node.rbi +200 -0
  84. data/rbi/courier/models/journey_send_node.rbi +254 -0
  85. data/rbi/courier/models/journey_state.rbi +20 -0
  86. data/rbi/courier/models/journey_template_create_request.rbi +381 -0
  87. data/rbi/courier/models/journey_template_get_response.rbi +334 -0
  88. data/rbi/courier/models/journey_template_list_response.rbi +45 -0
  89. data/rbi/courier/models/journey_template_publish_request.rbi +31 -0
  90. data/rbi/courier/models/journey_template_replace_request.rbi +368 -0
  91. data/rbi/courier/models/journey_template_summary.rbi +85 -0
  92. data/rbi/courier/models/journey_throttle_dynamic_node.rbi +162 -0
  93. data/rbi/courier/models/journey_throttle_static_node.rbi +158 -0
  94. data/rbi/courier/models/journey_version_item.rbi +54 -0
  95. data/rbi/courier/models/journey_versions_list_response.rbi +45 -0
  96. data/rbi/courier/models/journeys/template_archive_params.rbi +48 -0
  97. data/rbi/courier/models/journeys/template_create_params.rbi +40 -0
  98. data/rbi/courier/models/journeys/template_list_params.rbi +68 -0
  99. data/rbi/courier/models/journeys/template_list_versions_params.rbi +48 -0
  100. data/rbi/courier/models/journeys/template_publish_params.rbi +48 -0
  101. data/rbi/courier/models/journeys/template_replace_params.rbi +48 -0
  102. data/rbi/courier/models/journeys/template_retrieve_params.rbi +48 -0
  103. data/rbi/courier/models/notification_list_response.rbi +9 -6
  104. data/rbi/courier/models/notification_template_create_request.rbi +4 -4
  105. data/rbi/courier/models/notification_template_payload.rbi +2 -2
  106. data/rbi/courier/models/notification_template_response.rbi +120 -0
  107. data/rbi/courier/models/notification_template_update_request.rbi +4 -4
  108. data/rbi/courier/models/tenants/template_delete_params.rbi +48 -0
  109. data/rbi/courier/models.rbi +78 -3
  110. data/rbi/courier/resources/journeys/templates.rbi +160 -0
  111. data/rbi/courier/resources/journeys.rbi +156 -3
  112. data/rbi/courier/resources/notifications/checks.rbi +19 -4
  113. data/rbi/courier/resources/notifications.rbi +7 -7
  114. data/rbi/courier/resources/tenants/templates.rbi +22 -0
  115. data/sig/courier/models/create_journey_request.rbs +41 -0
  116. data/sig/courier/models/journey_ai_node.rbs +72 -0
  117. data/sig/courier/models/journey_api_invoke_trigger_node.rbs +68 -0
  118. data/sig/courier/models/journey_archive_params.rbs +23 -0
  119. data/sig/courier/models/journey_condition_atom.rbs +7 -0
  120. data/sig/courier/models/journey_condition_group.rbs +33 -0
  121. data/sig/courier/models/journey_condition_nested_group.rbs +33 -0
  122. data/sig/courier/models/journey_conditions_field.rbs +14 -0
  123. data/sig/courier/models/journey_create_params.rbs +15 -0
  124. data/sig/courier/models/journey_delay_duration_node.rbs +66 -0
  125. data/sig/courier/models/journey_delay_until_node.rbs +66 -0
  126. data/sig/courier/models/journey_exit_node.rbs +34 -0
  127. data/sig/courier/models/journey_fetch_get_delete_node.rbs +93 -0
  128. data/sig/courier/models/journey_fetch_post_put_node.rbs +100 -0
  129. data/sig/courier/models/journey_list_versions_params.rbs +23 -0
  130. data/sig/courier/models/journey_merge_strategy.rbs +16 -0
  131. data/sig/courier/models/journey_node.rbs +117 -0
  132. data/sig/courier/models/journey_publish_params.rbs +25 -0
  133. data/sig/courier/models/journey_publish_request.rbs +15 -0
  134. data/sig/courier/models/journey_replace_params.rbs +25 -0
  135. data/sig/courier/models/journey_response.rbs +65 -0
  136. data/sig/courier/models/journey_retrieve_params.rbs +30 -0
  137. data/sig/courier/models/journey_segment_trigger_node.rbs +85 -0
  138. data/sig/courier/models/journey_send_node.rbs +140 -0
  139. data/sig/courier/models/journey_state.rbs +14 -0
  140. data/sig/courier/models/journey_template_create_request.rbs +148 -0
  141. data/sig/courier/models/journey_template_get_response.rbs +157 -0
  142. data/sig/courier/models/journey_template_list_response.rbs +25 -0
  143. data/sig/courier/models/journey_template_publish_request.rbs +15 -0
  144. data/sig/courier/models/journey_template_replace_request.rbs +136 -0
  145. data/sig/courier/models/journey_template_summary.rbs +59 -0
  146. data/sig/courier/models/journey_throttle_dynamic_node.rbs +76 -0
  147. data/sig/courier/models/journey_throttle_static_node.rbs +72 -0
  148. data/sig/courier/models/journey_version_item.rbs +40 -0
  149. data/sig/courier/models/journey_versions_list_response.rbs +22 -0
  150. data/sig/courier/models/journeys/template_archive_params.rbs +30 -0
  151. data/sig/courier/models/journeys/template_create_params.rbs +27 -0
  152. data/sig/courier/models/journeys/template_list_params.rbs +38 -0
  153. data/sig/courier/models/journeys/template_list_versions_params.rbs +30 -0
  154. data/sig/courier/models/journeys/template_publish_params.rbs +34 -0
  155. data/sig/courier/models/journeys/template_replace_params.rbs +34 -0
  156. data/sig/courier/models/journeys/template_retrieve_params.rbs +30 -0
  157. data/sig/courier/models/notification_list_response.rbs +7 -5
  158. data/sig/courier/models/notification_template_response.rbs +70 -0
  159. data/sig/courier/models/tenants/template_delete_params.rbs +30 -0
  160. data/sig/courier/models.rbs +74 -2
  161. data/sig/courier/resources/journeys/templates.rbs +58 -0
  162. data/sig/courier/resources/journeys.rbs +41 -0
  163. data/sig/courier/resources/notifications.rbs +3 -3
  164. data/sig/courier/resources/tenants/templates.rbs +6 -0
  165. metadata +137 -5
  166. data/lib/courier/models/notification_template_get_response.rb +0 -92
  167. data/rbi/courier/models/notification_template_get_response.rbi +0 -162
  168. data/sig/courier/models/notification_template_get_response.rbs +0 -72
@@ -0,0 +1,52 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class JourneyRetrieveParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::JourneyRetrieveParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :template_id
16
+
17
+ # Version selector: `draft`, `published` (default), or `vN`.
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :version
20
+
21
+ sig { params(version: String).void }
22
+ attr_writer :version
23
+
24
+ sig do
25
+ params(
26
+ template_id: String,
27
+ version: String,
28
+ request_options: Courier::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ template_id:,
33
+ # Version selector: `draft`, `published` (default), or `vN`.
34
+ version: nil,
35
+ request_options: {}
36
+ )
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ {
42
+ template_id: String,
43
+ version: String,
44
+ request_options: Courier::RequestOptions
45
+ }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,200 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class JourneySegmentTriggerNode < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::JourneySegmentTriggerNode, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Courier::JourneySegmentTriggerNode::RequestType::OrSymbol) }
12
+ attr_accessor :request_type
13
+
14
+ sig { returns(Courier::JourneySegmentTriggerNode::TriggerType::OrSymbol) }
15
+ attr_accessor :trigger_type
16
+
17
+ sig { returns(Courier::JourneySegmentTriggerNode::Type::OrSymbol) }
18
+ attr_accessor :type
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :id
22
+
23
+ sig { params(id: String).void }
24
+ attr_writer :id
25
+
26
+ # Condition spec for a journey node. Accepts a single condition atom, an AND/OR
27
+ # group, or an AND/OR nested group. Omit the `conditions` property entirely to
28
+ # express "no conditions".
29
+ sig do
30
+ returns(
31
+ T.nilable(
32
+ T.any(
33
+ T::Array[String],
34
+ Courier::JourneyConditionGroup,
35
+ Courier::JourneyConditionNestedGroup
36
+ )
37
+ )
38
+ )
39
+ end
40
+ attr_reader :conditions
41
+
42
+ sig do
43
+ params(
44
+ conditions:
45
+ T.any(
46
+ T::Array[String],
47
+ Courier::JourneyConditionGroup::OrHash,
48
+ Courier::JourneyConditionNestedGroup::OrHash
49
+ )
50
+ ).void
51
+ end
52
+ attr_writer :conditions
53
+
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :event_id
56
+
57
+ sig { params(event_id: String).void }
58
+ attr_writer :event_id
59
+
60
+ # Trigger fired by a segment event (`identify`, `group`, or `track`).
61
+ sig do
62
+ params(
63
+ request_type:
64
+ Courier::JourneySegmentTriggerNode::RequestType::OrSymbol,
65
+ trigger_type:
66
+ Courier::JourneySegmentTriggerNode::TriggerType::OrSymbol,
67
+ type: Courier::JourneySegmentTriggerNode::Type::OrSymbol,
68
+ id: String,
69
+ conditions:
70
+ T.any(
71
+ T::Array[String],
72
+ Courier::JourneyConditionGroup::OrHash,
73
+ Courier::JourneyConditionNestedGroup::OrHash
74
+ ),
75
+ event_id: String
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ request_type:,
80
+ trigger_type:,
81
+ type:,
82
+ id: nil,
83
+ # Condition spec for a journey node. Accepts a single condition atom, an AND/OR
84
+ # group, or an AND/OR nested group. Omit the `conditions` property entirely to
85
+ # express "no conditions".
86
+ conditions: nil,
87
+ event_id: nil
88
+ )
89
+ end
90
+
91
+ sig do
92
+ override.returns(
93
+ {
94
+ request_type:
95
+ Courier::JourneySegmentTriggerNode::RequestType::OrSymbol,
96
+ trigger_type:
97
+ Courier::JourneySegmentTriggerNode::TriggerType::OrSymbol,
98
+ type: Courier::JourneySegmentTriggerNode::Type::OrSymbol,
99
+ id: String,
100
+ conditions:
101
+ T.any(
102
+ T::Array[String],
103
+ Courier::JourneyConditionGroup,
104
+ Courier::JourneyConditionNestedGroup
105
+ ),
106
+ event_id: String
107
+ }
108
+ )
109
+ end
110
+ def to_hash
111
+ end
112
+
113
+ module RequestType
114
+ extend Courier::Internal::Type::Enum
115
+
116
+ TaggedSymbol =
117
+ T.type_alias do
118
+ T.all(Symbol, Courier::JourneySegmentTriggerNode::RequestType)
119
+ end
120
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
121
+
122
+ IDENTIFY =
123
+ T.let(
124
+ :identify,
125
+ Courier::JourneySegmentTriggerNode::RequestType::TaggedSymbol
126
+ )
127
+ GROUP =
128
+ T.let(
129
+ :group,
130
+ Courier::JourneySegmentTriggerNode::RequestType::TaggedSymbol
131
+ )
132
+ TRACK =
133
+ T.let(
134
+ :track,
135
+ Courier::JourneySegmentTriggerNode::RequestType::TaggedSymbol
136
+ )
137
+
138
+ sig do
139
+ override.returns(
140
+ T::Array[
141
+ Courier::JourneySegmentTriggerNode::RequestType::TaggedSymbol
142
+ ]
143
+ )
144
+ end
145
+ def self.values
146
+ end
147
+ end
148
+
149
+ module TriggerType
150
+ extend Courier::Internal::Type::Enum
151
+
152
+ TaggedSymbol =
153
+ T.type_alias do
154
+ T.all(Symbol, Courier::JourneySegmentTriggerNode::TriggerType)
155
+ end
156
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
157
+
158
+ SEGMENT =
159
+ T.let(
160
+ :segment,
161
+ Courier::JourneySegmentTriggerNode::TriggerType::TaggedSymbol
162
+ )
163
+
164
+ sig do
165
+ override.returns(
166
+ T::Array[
167
+ Courier::JourneySegmentTriggerNode::TriggerType::TaggedSymbol
168
+ ]
169
+ )
170
+ end
171
+ def self.values
172
+ end
173
+ end
174
+
175
+ module Type
176
+ extend Courier::Internal::Type::Enum
177
+
178
+ TaggedSymbol =
179
+ T.type_alias do
180
+ T.all(Symbol, Courier::JourneySegmentTriggerNode::Type)
181
+ end
182
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
183
+
184
+ TRIGGER =
185
+ T.let(
186
+ :trigger,
187
+ Courier::JourneySegmentTriggerNode::Type::TaggedSymbol
188
+ )
189
+
190
+ sig do
191
+ override.returns(
192
+ T::Array[Courier::JourneySegmentTriggerNode::Type::TaggedSymbol]
193
+ )
194
+ end
195
+ def self.values
196
+ end
197
+ end
198
+ end
199
+ end
200
+ end
@@ -0,0 +1,254 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class JourneySendNode < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::JourneySendNode, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Courier::JourneySendNode::Message) }
12
+ attr_reader :message
13
+
14
+ sig { params(message: Courier::JourneySendNode::Message::OrHash).void }
15
+ attr_writer :message
16
+
17
+ sig { returns(Courier::JourneySendNode::Type::OrSymbol) }
18
+ attr_accessor :type
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :id
22
+
23
+ sig { params(id: String).void }
24
+ attr_writer :id
25
+
26
+ # Condition spec for a journey node. Accepts a single condition atom, an AND/OR
27
+ # group, or an AND/OR nested group. Omit the `conditions` property entirely to
28
+ # express "no conditions".
29
+ sig do
30
+ returns(
31
+ T.nilable(
32
+ T.any(
33
+ T::Array[String],
34
+ Courier::JourneyConditionGroup,
35
+ Courier::JourneyConditionNestedGroup
36
+ )
37
+ )
38
+ )
39
+ end
40
+ attr_reader :conditions
41
+
42
+ sig do
43
+ params(
44
+ conditions:
45
+ T.any(
46
+ T::Array[String],
47
+ Courier::JourneyConditionGroup::OrHash,
48
+ Courier::JourneyConditionNestedGroup::OrHash
49
+ )
50
+ ).void
51
+ end
52
+ attr_writer :conditions
53
+
54
+ # Send a notification template to the recipient. Optionally override the recipient
55
+ # address, delay the send, or attach `data`.
56
+ sig do
57
+ params(
58
+ message: Courier::JourneySendNode::Message::OrHash,
59
+ type: Courier::JourneySendNode::Type::OrSymbol,
60
+ id: String,
61
+ conditions:
62
+ T.any(
63
+ T::Array[String],
64
+ Courier::JourneyConditionGroup::OrHash,
65
+ Courier::JourneyConditionNestedGroup::OrHash
66
+ )
67
+ ).returns(T.attached_class)
68
+ end
69
+ def self.new(
70
+ message:,
71
+ type:,
72
+ id: nil,
73
+ # Condition spec for a journey node. Accepts a single condition atom, an AND/OR
74
+ # group, or an AND/OR nested group. Omit the `conditions` property entirely to
75
+ # express "no conditions".
76
+ conditions: nil
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ message: Courier::JourneySendNode::Message,
84
+ type: Courier::JourneySendNode::Type::OrSymbol,
85
+ id: String,
86
+ conditions:
87
+ T.any(
88
+ T::Array[String],
89
+ Courier::JourneyConditionGroup,
90
+ Courier::JourneyConditionNestedGroup
91
+ )
92
+ }
93
+ )
94
+ end
95
+ def to_hash
96
+ end
97
+
98
+ class Message < Courier::Internal::Type::BaseModel
99
+ OrHash =
100
+ T.type_alias do
101
+ T.any(Courier::JourneySendNode::Message, Courier::Internal::AnyHash)
102
+ end
103
+
104
+ sig { returns(String) }
105
+ attr_accessor :template
106
+
107
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
108
+ attr_reader :data
109
+
110
+ sig { params(data: T::Hash[Symbol, T.anything]).void }
111
+ attr_writer :data
112
+
113
+ sig { returns(T.nilable(Courier::JourneySendNode::Message::Delay)) }
114
+ attr_reader :delay
115
+
116
+ sig do
117
+ params(delay: Courier::JourneySendNode::Message::Delay::OrHash).void
118
+ end
119
+ attr_writer :delay
120
+
121
+ sig { returns(T.nilable(Courier::JourneySendNode::Message::To)) }
122
+ attr_reader :to
123
+
124
+ sig { params(to: Courier::JourneySendNode::Message::To::OrHash).void }
125
+ attr_writer :to
126
+
127
+ sig do
128
+ params(
129
+ template: String,
130
+ data: T::Hash[Symbol, T.anything],
131
+ delay: Courier::JourneySendNode::Message::Delay::OrHash,
132
+ to: Courier::JourneySendNode::Message::To::OrHash
133
+ ).returns(T.attached_class)
134
+ end
135
+ def self.new(template:, data: nil, delay: nil, to: nil)
136
+ end
137
+
138
+ sig do
139
+ override.returns(
140
+ {
141
+ template: String,
142
+ data: T::Hash[Symbol, T.anything],
143
+ delay: Courier::JourneySendNode::Message::Delay,
144
+ to: Courier::JourneySendNode::Message::To
145
+ }
146
+ )
147
+ end
148
+ def to_hash
149
+ end
150
+
151
+ class Delay < Courier::Internal::Type::BaseModel
152
+ OrHash =
153
+ T.type_alias do
154
+ T.any(
155
+ Courier::JourneySendNode::Message::Delay,
156
+ Courier::Internal::AnyHash
157
+ )
158
+ end
159
+
160
+ sig { returns(String) }
161
+ attr_accessor :until_
162
+
163
+ sig { returns(T.nilable(String)) }
164
+ attr_reader :timezone
165
+
166
+ sig { params(timezone: String).void }
167
+ attr_writer :timezone
168
+
169
+ sig do
170
+ params(until_: String, timezone: String).returns(T.attached_class)
171
+ end
172
+ def self.new(until_:, timezone: nil)
173
+ end
174
+
175
+ sig { override.returns({ until_: String, timezone: String }) }
176
+ def to_hash
177
+ end
178
+ end
179
+
180
+ class To < Courier::Internal::Type::BaseModel
181
+ OrHash =
182
+ T.type_alias do
183
+ T.any(
184
+ Courier::JourneySendNode::Message::To,
185
+ Courier::Internal::AnyHash
186
+ )
187
+ end
188
+
189
+ sig { returns(T.nilable(String)) }
190
+ attr_reader :email_override
191
+
192
+ sig { params(email_override: String).void }
193
+ attr_writer :email_override
194
+
195
+ sig { returns(T.nilable(String)) }
196
+ attr_reader :phone_number_override
197
+
198
+ sig { params(phone_number_override: String).void }
199
+ attr_writer :phone_number_override
200
+
201
+ sig { returns(T.nilable(String)) }
202
+ attr_reader :user_id_override
203
+
204
+ sig { params(user_id_override: String).void }
205
+ attr_writer :user_id_override
206
+
207
+ sig do
208
+ params(
209
+ email_override: String,
210
+ phone_number_override: String,
211
+ user_id_override: String
212
+ ).returns(T.attached_class)
213
+ end
214
+ def self.new(
215
+ email_override: nil,
216
+ phone_number_override: nil,
217
+ user_id_override: nil
218
+ )
219
+ end
220
+
221
+ sig do
222
+ override.returns(
223
+ {
224
+ email_override: String,
225
+ phone_number_override: String,
226
+ user_id_override: String
227
+ }
228
+ )
229
+ end
230
+ def to_hash
231
+ end
232
+ end
233
+ end
234
+
235
+ module Type
236
+ extend Courier::Internal::Type::Enum
237
+
238
+ TaggedSymbol =
239
+ T.type_alias { T.all(Symbol, Courier::JourneySendNode::Type) }
240
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
241
+
242
+ SEND = T.let(:send, Courier::JourneySendNode::Type::TaggedSymbol)
243
+
244
+ sig do
245
+ override.returns(
246
+ T::Array[Courier::JourneySendNode::Type::TaggedSymbol]
247
+ )
248
+ end
249
+ def self.values
250
+ end
251
+ end
252
+ end
253
+ end
254
+ end
@@ -0,0 +1,20 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ # Lifecycle state of a journey.
6
+ module JourneyState
7
+ extend Courier::Internal::Type::Enum
8
+
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, Courier::JourneyState) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ DRAFT = T.let(:DRAFT, Courier::JourneyState::TaggedSymbol)
13
+ PUBLISHED = T.let(:PUBLISHED, Courier::JourneyState::TaggedSymbol)
14
+
15
+ sig { override.returns(T::Array[Courier::JourneyState::TaggedSymbol]) }
16
+ def self.values
17
+ end
18
+ end
19
+ end
20
+ end