trycourier 4.21.0 → 4.23.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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/lib/courier/client.rb +43 -0
  4. data/lib/courier/models/automations/invoke_invoke_ad_hoc_params.rb +13 -1
  5. data/lib/courier/models/automations/invoke_invoke_by_template_params.rb +13 -1
  6. data/lib/courier/models/brand_create_params.rb +13 -1
  7. data/lib/courier/models/broadcast.rb +132 -0
  8. data/lib/courier/models/broadcast_archive_params.rb +20 -0
  9. data/lib/courier/models/broadcast_cancel_params.rb +20 -0
  10. data/lib/courier/models/broadcast_create_params.rb +14 -0
  11. data/lib/courier/models/broadcast_duplicate_params.rb +20 -0
  12. data/lib/courier/models/broadcast_list_params.rb +30 -0
  13. data/lib/courier/models/broadcast_list_response.rb +24 -0
  14. data/lib/courier/models/broadcast_put_content_params.rb +20 -0
  15. data/lib/courier/models/broadcast_retrieve_content_params.rb +33 -0
  16. data/lib/courier/models/broadcast_retrieve_params.rb +20 -0
  17. data/lib/courier/models/broadcast_schedule.rb +59 -0
  18. data/lib/courier/models/broadcast_schedule_params.rb +20 -0
  19. data/lib/courier/models/broadcast_send_params.rb +20 -0
  20. data/lib/courier/models/broadcast_update_params.rb +20 -0
  21. data/lib/courier/models/create_broadcast_request.rb +43 -0
  22. data/lib/courier/models/inbox/message_delete_params.rb +22 -0
  23. data/lib/courier/models/inbox/message_restore_params.rb +22 -0
  24. data/lib/courier/models/journey_cancel_params.rb +13 -1
  25. data/lib/courier/models/journey_create_params.rb +13 -1
  26. data/lib/courier/models/journey_invoke_params.rb +13 -1
  27. data/lib/courier/models/journey_publish_params.rb +13 -1
  28. data/lib/courier/models/journeys/template_create_params.rb +13 -1
  29. data/lib/courier/models/journeys/template_publish_params.rb +13 -1
  30. data/lib/courier/models/lists/subscription_add_params.rb +13 -1
  31. data/lib/courier/models/notification_create_params.rb +13 -1
  32. data/lib/courier/models/notification_publish_params.rb +13 -1
  33. data/lib/courier/models/profile_create_params.rb +13 -1
  34. data/lib/courier/models/profiles/list_subscribe_params.rb +13 -1
  35. data/lib/courier/models/provider_create_params.rb +15 -1
  36. data/lib/courier/models/routing_strategy_create_params.rb +13 -1
  37. data/lib/courier/models/schedule_broadcast_request.rb +59 -0
  38. data/lib/courier/models/send_broadcast_request.rb +39 -0
  39. data/lib/courier/models/send_message_params.rb +15 -1
  40. data/lib/courier/models/update_broadcast_request.rb +18 -0
  41. data/lib/courier/models/users/preference_bulk_update_params.rb +15 -1
  42. data/lib/courier/models/users/preference_update_or_create_topic_params.rb +14 -4
  43. data/lib/courier/models/users/topic_preference.rb +21 -7
  44. data/lib/courier/models/workspace_preference_create_params.rb +13 -1
  45. data/lib/courier/models/workspace_preference_publish_params.rb +13 -1
  46. data/lib/courier/models/workspace_preferences/topic_create_params.rb +13 -1
  47. data/lib/courier/models.rb +38 -0
  48. data/lib/courier/resources/audiences.rb +12 -5
  49. data/lib/courier/resources/audit_events.rb +5 -2
  50. data/lib/courier/resources/auth.rb +5 -1
  51. data/lib/courier/resources/automations/invoke.rb +47 -23
  52. data/lib/courier/resources/automations.rb +6 -1
  53. data/lib/courier/resources/brands.rb +38 -12
  54. data/lib/courier/resources/broadcasts.rb +290 -0
  55. data/lib/courier/resources/digests/schedules.rb +4 -3
  56. data/lib/courier/resources/digests.rb +2 -0
  57. data/lib/courier/resources/inbound.rb +3 -1
  58. data/lib/courier/resources/inbox/messages.rb +58 -0
  59. data/lib/courier/resources/inbox.rb +19 -0
  60. data/lib/courier/resources/journeys/templates.rb +43 -25
  61. data/lib/courier/resources/journeys.rb +73 -44
  62. data/lib/courier/resources/lists/subscriptions.rb +22 -8
  63. data/lib/courier/resources/lists.rb +14 -5
  64. data/lib/courier/resources/messages.rb +14 -14
  65. data/lib/courier/resources/notifications/checks.rb +8 -3
  66. data/lib/courier/resources/notifications.rb +48 -30
  67. data/lib/courier/resources/profiles/lists.rb +19 -8
  68. data/lib/courier/resources/profiles.rb +25 -14
  69. data/lib/courier/resources/providers/catalog.rb +4 -4
  70. data/lib/courier/resources/providers.rb +27 -18
  71. data/lib/courier/resources/requests.rb +4 -1
  72. data/lib/courier/resources/routing_strategies.rb +24 -12
  73. data/lib/courier/resources/send.rb +14 -4
  74. data/lib/courier/resources/tenants/preferences/items.rb +6 -2
  75. data/lib/courier/resources/tenants/preferences.rb +2 -0
  76. data/lib/courier/resources/tenants/templates/versions.rb +4 -7
  77. data/lib/courier/resources/tenants/templates.rb +14 -19
  78. data/lib/courier/resources/tenants.rb +14 -5
  79. data/lib/courier/resources/translations.rb +6 -2
  80. data/lib/courier/resources/users/preferences.rb +23 -42
  81. data/lib/courier/resources/users/tenants.rb +12 -10
  82. data/lib/courier/resources/users/tokens.rb +14 -6
  83. data/lib/courier/resources/users.rb +6 -0
  84. data/lib/courier/resources/workspace_preferences/topics.rb +27 -19
  85. data/lib/courier/resources/workspace_preferences.rb +40 -20
  86. data/lib/courier/version.rb +1 -1
  87. data/lib/courier.rb +24 -1
  88. data/rbi/courier/client.rbi +41 -0
  89. data/rbi/courier/models/automations/invoke_invoke_ad_hoc_params.rbi +18 -0
  90. data/rbi/courier/models/automations/invoke_invoke_by_template_params.rbi +18 -0
  91. data/rbi/courier/models/brand_create_params.rbi +18 -0
  92. data/rbi/courier/models/broadcast.rbi +164 -0
  93. data/rbi/courier/models/broadcast_archive_params.rbi +35 -0
  94. data/rbi/courier/models/broadcast_cancel_params.rbi +35 -0
  95. data/rbi/courier/models/broadcast_create_params.rbi +27 -0
  96. data/rbi/courier/models/broadcast_duplicate_params.rbi +35 -0
  97. data/rbi/courier/models/broadcast_list_params.rbi +54 -0
  98. data/rbi/courier/models/broadcast_list_response.rbi +39 -0
  99. data/rbi/courier/models/broadcast_put_content_params.rbi +35 -0
  100. data/rbi/courier/models/broadcast_retrieve_content_params.rbi +57 -0
  101. data/rbi/courier/models/broadcast_retrieve_params.rbi +35 -0
  102. data/rbi/courier/models/broadcast_schedule.rbi +92 -0
  103. data/rbi/courier/models/broadcast_schedule_params.rbi +35 -0
  104. data/rbi/courier/models/broadcast_send_params.rbi +35 -0
  105. data/rbi/courier/models/broadcast_update_params.rbi +35 -0
  106. data/rbi/courier/models/create_broadcast_request.rbi +81 -0
  107. data/rbi/courier/models/inbox/message_delete_params.rbi +40 -0
  108. data/rbi/courier/models/inbox/message_restore_params.rbi +40 -0
  109. data/rbi/courier/models/journey_cancel_params.rbi +31 -5
  110. data/rbi/courier/models/journey_create_params.rbi +31 -5
  111. data/rbi/courier/models/journey_invoke_params.rbi +26 -2
  112. data/rbi/courier/models/journey_publish_params.rbi +26 -2
  113. data/rbi/courier/models/journeys/template_create_params.rbi +26 -2
  114. data/rbi/courier/models/journeys/template_publish_params.rbi +23 -1
  115. data/rbi/courier/models/lists/subscription_add_params.rbi +23 -1
  116. data/rbi/courier/models/notification_create_params.rbi +31 -5
  117. data/rbi/courier/models/notification_publish_params.rbi +26 -2
  118. data/rbi/courier/models/profile_create_params.rbi +23 -1
  119. data/rbi/courier/models/profiles/list_subscribe_params.rbi +23 -1
  120. data/rbi/courier/models/provider_create_params.rbi +18 -0
  121. data/rbi/courier/models/routing_strategy_create_params.rbi +31 -5
  122. data/rbi/courier/models/schedule_broadcast_request.rbi +103 -0
  123. data/rbi/courier/models/send_broadcast_request.rbi +77 -0
  124. data/rbi/courier/models/send_message_params.rbi +18 -0
  125. data/rbi/courier/models/update_broadcast_request.rbi +28 -0
  126. data/rbi/courier/models/users/preference_bulk_update_params.rbi +18 -0
  127. data/rbi/courier/models/users/preference_update_or_create_topic_params.rbi +14 -2
  128. data/rbi/courier/models/users/topic_preference.rbi +24 -2
  129. data/rbi/courier/models/workspace_preference_create_params.rbi +31 -5
  130. data/rbi/courier/models/workspace_preference_publish_params.rbi +31 -5
  131. data/rbi/courier/models/workspace_preferences/topic_create_params.rbi +26 -2
  132. data/rbi/courier/models.rbi +39 -0
  133. data/rbi/courier/resources/audiences.rbi +12 -5
  134. data/rbi/courier/resources/audit_events.rbi +5 -2
  135. data/rbi/courier/resources/auth.rbi +5 -1
  136. data/rbi/courier/resources/automations/invoke.rbi +48 -7
  137. data/rbi/courier/resources/automations.rbi +6 -1
  138. data/rbi/courier/resources/brands.rbi +37 -7
  139. data/rbi/courier/resources/broadcasts.rbi +199 -0
  140. data/rbi/courier/resources/digests/schedules.rbi +4 -3
  141. data/rbi/courier/resources/digests.rbi +2 -0
  142. data/rbi/courier/resources/inbound.rbi +3 -1
  143. data/rbi/courier/resources/inbox/messages.rbi +44 -0
  144. data/rbi/courier/resources/inbox.rbi +16 -0
  145. data/rbi/courier/resources/journeys/templates.rbi +47 -17
  146. data/rbi/courier/resources/journeys.rbi +93 -39
  147. data/rbi/courier/resources/lists/subscriptions.rbi +24 -5
  148. data/rbi/courier/resources/lists.rbi +14 -5
  149. data/rbi/courier/resources/messages.rbi +14 -14
  150. data/rbi/courier/resources/notifications/checks.rbi +8 -3
  151. data/rbi/courier/resources/notifications.rbi +58 -28
  152. data/rbi/courier/resources/profiles/lists.rbi +25 -6
  153. data/rbi/courier/resources/profiles.rbi +31 -11
  154. data/rbi/courier/resources/providers/catalog.rbi +4 -4
  155. data/rbi/courier/resources/providers.rbi +35 -19
  156. data/rbi/courier/resources/requests.rbi +4 -1
  157. data/rbi/courier/resources/routing_strategies.rbi +26 -10
  158. data/rbi/courier/resources/send.rbi +20 -3
  159. data/rbi/courier/resources/tenants/preferences/items.rbi +6 -2
  160. data/rbi/courier/resources/tenants/preferences.rbi +2 -0
  161. data/rbi/courier/resources/tenants/templates/versions.rbi +4 -7
  162. data/rbi/courier/resources/tenants/templates.rbi +14 -19
  163. data/rbi/courier/resources/tenants.rbi +14 -5
  164. data/rbi/courier/resources/translations.rbi +6 -2
  165. data/rbi/courier/resources/users/preferences.rbi +28 -40
  166. data/rbi/courier/resources/users/tenants.rbi +12 -10
  167. data/rbi/courier/resources/users/tokens.rbi +14 -6
  168. data/rbi/courier/resources/users.rbi +6 -0
  169. data/rbi/courier/resources/workspace_preferences/topics.rbi +37 -18
  170. data/rbi/courier/resources/workspace_preferences.rbi +51 -17
  171. data/sig/courier/client.rbs +4 -0
  172. data/sig/courier/models/automations/invoke_invoke_ad_hoc_params.rbs +15 -1
  173. data/sig/courier/models/automations/invoke_invoke_by_template_params.rbs +15 -1
  174. data/sig/courier/models/brand_create_params.rbs +15 -1
  175. data/sig/courier/models/broadcast.rbs +98 -0
  176. data/sig/courier/models/broadcast_archive_params.rbs +23 -0
  177. data/sig/courier/models/broadcast_cancel_params.rbs +23 -0
  178. data/sig/courier/models/broadcast_create_params.rbs +15 -0
  179. data/sig/courier/models/broadcast_duplicate_params.rbs +23 -0
  180. data/sig/courier/models/broadcast_list_params.rbs +30 -0
  181. data/sig/courier/models/broadcast_list_response.rbs +22 -0
  182. data/sig/courier/models/broadcast_put_content_params.rbs +25 -0
  183. data/sig/courier/models/broadcast_retrieve_content_params.rbs +30 -0
  184. data/sig/courier/models/broadcast_retrieve_params.rbs +23 -0
  185. data/sig/courier/models/broadcast_schedule.rbs +46 -0
  186. data/sig/courier/models/broadcast_schedule_params.rbs +25 -0
  187. data/sig/courier/models/broadcast_send_params.rbs +25 -0
  188. data/sig/courier/models/broadcast_update_params.rbs +25 -0
  189. data/sig/courier/models/create_broadcast_request.rbs +40 -0
  190. data/sig/courier/models/inbox/message_delete_params.rbs +25 -0
  191. data/sig/courier/models/inbox/message_restore_params.rbs +25 -0
  192. data/sig/courier/models/journey_cancel_params.rbs +20 -3
  193. data/sig/courier/models/journey_create_params.rbs +20 -3
  194. data/sig/courier/models/journey_invoke_params.rbs +18 -1
  195. data/sig/courier/models/journey_publish_params.rbs +18 -1
  196. data/sig/courier/models/journeys/template_create_params.rbs +18 -1
  197. data/sig/courier/models/journeys/template_publish_params.rbs +18 -1
  198. data/sig/courier/models/lists/subscription_add_params.rbs +15 -1
  199. data/sig/courier/models/notification_create_params.rbs +20 -3
  200. data/sig/courier/models/notification_publish_params.rbs +18 -2
  201. data/sig/courier/models/profile_create_params.rbs +18 -1
  202. data/sig/courier/models/profiles/list_subscribe_params.rbs +15 -1
  203. data/sig/courier/models/provider_create_params.rbs +15 -1
  204. data/sig/courier/models/routing_strategy_create_params.rbs +20 -3
  205. data/sig/courier/models/schedule_broadcast_request.rbs +48 -0
  206. data/sig/courier/models/send_broadcast_request.rbs +36 -0
  207. data/sig/courier/models/send_message_params.rbs +17 -1
  208. data/sig/courier/models/update_broadcast_request.rbs +13 -0
  209. data/sig/courier/models/users/preference_bulk_update_params.rbs +15 -1
  210. data/sig/courier/models/workspace_preference_create_params.rbs +20 -3
  211. data/sig/courier/models/workspace_preference_publish_params.rbs +20 -3
  212. data/sig/courier/models/workspace_preferences/topic_create_params.rbs +18 -1
  213. data/sig/courier/models.rbs +38 -0
  214. data/sig/courier/resources/automations/invoke.rbs +4 -0
  215. data/sig/courier/resources/brands.rbs +2 -0
  216. data/sig/courier/resources/broadcasts.rbs +74 -0
  217. data/sig/courier/resources/inbox/messages.rbs +19 -0
  218. data/sig/courier/resources/inbox.rbs +9 -0
  219. data/sig/courier/resources/journeys/templates.rbs +4 -0
  220. data/sig/courier/resources/journeys.rbs +8 -0
  221. data/sig/courier/resources/lists/subscriptions.rbs +2 -0
  222. data/sig/courier/resources/notifications.rbs +4 -0
  223. data/sig/courier/resources/profiles/lists.rbs +2 -0
  224. data/sig/courier/resources/profiles.rbs +2 -0
  225. data/sig/courier/resources/providers.rbs +2 -0
  226. data/sig/courier/resources/routing_strategies.rbs +2 -0
  227. data/sig/courier/resources/send.rbs +2 -0
  228. data/sig/courier/resources/users/preferences.rbs +2 -0
  229. data/sig/courier/resources/workspace_preferences/topics.rbs +2 -0
  230. data/sig/courier/resources/workspace_preferences.rbs +4 -0
  231. metadata +71 -2
@@ -0,0 +1,57 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastRetrieveContentParams < 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(
12
+ Courier::BroadcastRetrieveContentParams,
13
+ Courier::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :broadcast_id
19
+
20
+ # Accepts `draft`, `published`, or a version string (e.g. `v001`). Defaults to
21
+ # `draft`.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :version
24
+
25
+ sig { params(version: String).void }
26
+ attr_writer :version
27
+
28
+ sig do
29
+ params(
30
+ broadcast_id: String,
31
+ version: String,
32
+ request_options: Courier::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ broadcast_id:,
37
+ # Accepts `draft`, `published`, or a version string (e.g. `v001`). Defaults to
38
+ # `draft`.
39
+ version: nil,
40
+ request_options: {}
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ broadcast_id: String,
48
+ version: String,
49
+ request_options: Courier::RequestOptions
50
+ }
51
+ )
52
+ end
53
+ def to_hash
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastRetrieveParams < 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::BroadcastRetrieveParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,92 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastSchedule < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::BroadcastSchedule, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # ID of the target list or audience.
12
+ sig { returns(String) }
13
+ attr_accessor :recipient_id
14
+
15
+ # Whether the broadcast targets a list or an audience.
16
+ sig { returns(Courier::BroadcastSchedule::RecipientType::TaggedSymbol) }
17
+ attr_accessor :recipient_type
18
+
19
+ # Wall-clock timestamp of the scheduled send, no timezone offset (e.g.
20
+ # "2026-07-21T20:00:00").
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :scheduled_to
23
+
24
+ # IANA timezone for the scheduled send (e.g. America/New_York).
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :timezone
27
+
28
+ # The delivery schedule and recipient targeting for a broadcast.
29
+ sig do
30
+ params(
31
+ recipient_id: String,
32
+ recipient_type: Courier::BroadcastSchedule::RecipientType::OrSymbol,
33
+ scheduled_to: T.nilable(String),
34
+ timezone: T.nilable(String)
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # ID of the target list or audience.
39
+ recipient_id:,
40
+ # Whether the broadcast targets a list or an audience.
41
+ recipient_type:,
42
+ # Wall-clock timestamp of the scheduled send, no timezone offset (e.g.
43
+ # "2026-07-21T20:00:00").
44
+ scheduled_to: nil,
45
+ # IANA timezone for the scheduled send (e.g. America/New_York).
46
+ timezone: nil
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ recipient_id: String,
54
+ recipient_type:
55
+ Courier::BroadcastSchedule::RecipientType::TaggedSymbol,
56
+ scheduled_to: T.nilable(String),
57
+ timezone: T.nilable(String)
58
+ }
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+
64
+ # Whether the broadcast targets a list or an audience.
65
+ module RecipientType
66
+ extend Courier::Internal::Type::Enum
67
+
68
+ TaggedSymbol =
69
+ T.type_alias do
70
+ T.all(Symbol, Courier::BroadcastSchedule::RecipientType)
71
+ end
72
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
73
+
74
+ LIST =
75
+ T.let(:list, Courier::BroadcastSchedule::RecipientType::TaggedSymbol)
76
+ AUDIENCE =
77
+ T.let(
78
+ :audience,
79
+ Courier::BroadcastSchedule::RecipientType::TaggedSymbol
80
+ )
81
+
82
+ sig do
83
+ override.returns(
84
+ T::Array[Courier::BroadcastSchedule::RecipientType::TaggedSymbol]
85
+ )
86
+ end
87
+ def self.values
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastScheduleParams < Courier::Models::ScheduleBroadcastRequest
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::BroadcastScheduleParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastSendParams < Courier::Models::SendBroadcastRequest
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::BroadcastSendParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastUpdateParams < Courier::Models::UpdateBroadcastRequest
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::BroadcastUpdateParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,81 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class CreateBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::CreateBroadcastRequest, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # The single delivery channel for this broadcast.
12
+ sig { returns(Courier::CreateBroadcastRequest::Channel::OrSymbol) }
13
+ attr_accessor :channel
14
+
15
+ # Human-readable name.
16
+ sig { returns(String) }
17
+ attr_accessor :name
18
+
19
+ # Request body for creating a broadcast.
20
+ sig do
21
+ params(
22
+ channel: Courier::CreateBroadcastRequest::Channel::OrSymbol,
23
+ name: String
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(
27
+ # The single delivery channel for this broadcast.
28
+ channel:,
29
+ # Human-readable name.
30
+ name:
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ channel: Courier::CreateBroadcastRequest::Channel::OrSymbol,
38
+ name: String
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ # The single delivery channel for this broadcast.
46
+ module Channel
47
+ extend Courier::Internal::Type::Enum
48
+
49
+ TaggedSymbol =
50
+ T.type_alias do
51
+ T.all(Symbol, Courier::CreateBroadcastRequest::Channel)
52
+ end
53
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
54
+
55
+ EMAIL =
56
+ T.let(:email, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
57
+ SMS =
58
+ T.let(:sms, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
59
+ PUSH =
60
+ T.let(:push, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
61
+ INBOX =
62
+ T.let(:inbox, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
63
+ SLACK =
64
+ T.let(:slack, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
65
+ MSTEAMS =
66
+ T.let(
67
+ :msteams,
68
+ Courier::CreateBroadcastRequest::Channel::TaggedSymbol
69
+ )
70
+
71
+ sig do
72
+ override.returns(
73
+ T::Array[Courier::CreateBroadcastRequest::Channel::TaggedSymbol]
74
+ )
75
+ end
76
+ def self.values
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ module Inbox
6
+ class MessageDeleteParams < Courier::Internal::Type::BaseModel
7
+ extend Courier::Internal::Type::RequestParameters::Converter
8
+ include Courier::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Courier::Inbox::MessageDeleteParams,
14
+ Courier::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :message_id
20
+
21
+ sig do
22
+ params(
23
+ message_id: String,
24
+ request_options: Courier::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(message_id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { message_id: String, request_options: Courier::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ module Inbox
6
+ class MessageRestoreParams < Courier::Internal::Type::BaseModel
7
+ extend Courier::Internal::Type::RequestParameters::Converter
8
+ include Courier::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Courier::Inbox::MessageRestoreParams,
14
+ Courier::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :message_id
20
+
21
+ sig do
22
+ params(
23
+ message_id: String,
24
+ request_options: Courier::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(message_id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { message_id: String, request_options: Courier::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -11,15 +11,41 @@ module Courier
11
11
  T.any(Courier::JourneyCancelParams, Courier::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :idempotency_key
16
+
17
+ sig { params(idempotency_key: String).void }
18
+ attr_writer :idempotency_key
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :x_idempotency_expiration
22
+
23
+ sig { params(x_idempotency_expiration: String).void }
24
+ attr_writer :x_idempotency_expiration
25
+
14
26
  sig do
15
- params(request_options: Courier::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
27
+ params(
28
+ idempotency_key: String,
29
+ x_idempotency_expiration: String,
30
+ request_options: Courier::RequestOptions::OrHash
31
+ ).returns(T.attached_class)
18
32
  end
19
- def self.new(request_options: {})
33
+ def self.new(
34
+ idempotency_key: nil,
35
+ x_idempotency_expiration: nil,
36
+ request_options: {}
37
+ )
20
38
  end
21
39
 
22
- sig { override.returns({ request_options: Courier::RequestOptions }) }
40
+ sig do
41
+ override.returns(
42
+ {
43
+ idempotency_key: String,
44
+ x_idempotency_expiration: String,
45
+ request_options: Courier::RequestOptions
46
+ }
47
+ )
48
+ end
23
49
  def to_hash
24
50
  end
25
51
  end
@@ -11,15 +11,41 @@ module Courier
11
11
  T.any(Courier::JourneyCreateParams, Courier::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :idempotency_key
16
+
17
+ sig { params(idempotency_key: String).void }
18
+ attr_writer :idempotency_key
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :x_idempotency_expiration
22
+
23
+ sig { params(x_idempotency_expiration: String).void }
24
+ attr_writer :x_idempotency_expiration
25
+
14
26
  sig do
15
- params(request_options: Courier::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
27
+ params(
28
+ idempotency_key: String,
29
+ x_idempotency_expiration: String,
30
+ request_options: Courier::RequestOptions::OrHash
31
+ ).returns(T.attached_class)
18
32
  end
19
- def self.new(request_options: {})
33
+ def self.new(
34
+ idempotency_key: nil,
35
+ x_idempotency_expiration: nil,
36
+ request_options: {}
37
+ )
20
38
  end
21
39
 
22
- sig { override.returns({ request_options: Courier::RequestOptions }) }
40
+ sig do
41
+ override.returns(
42
+ {
43
+ idempotency_key: String,
44
+ x_idempotency_expiration: String,
45
+ request_options: Courier::RequestOptions
46
+ }
47
+ )
48
+ end
23
49
  def to_hash
24
50
  end
25
51
  end
@@ -14,18 +14,42 @@ module Courier
14
14
  sig { returns(String) }
15
15
  attr_accessor :template_id
16
16
 
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :idempotency_key
19
+
20
+ sig { params(idempotency_key: String).void }
21
+ attr_writer :idempotency_key
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :x_idempotency_expiration
25
+
26
+ sig { params(x_idempotency_expiration: String).void }
27
+ attr_writer :x_idempotency_expiration
28
+
17
29
  sig do
18
30
  params(
19
31
  template_id: String,
32
+ idempotency_key: String,
33
+ x_idempotency_expiration: String,
20
34
  request_options: Courier::RequestOptions::OrHash
21
35
  ).returns(T.attached_class)
22
36
  end
23
- def self.new(template_id:, request_options: {})
37
+ def self.new(
38
+ template_id:,
39
+ idempotency_key: nil,
40
+ x_idempotency_expiration: nil,
41
+ request_options: {}
42
+ )
24
43
  end
25
44
 
26
45
  sig do
27
46
  override.returns(
28
- { template_id: String, request_options: Courier::RequestOptions }
47
+ {
48
+ template_id: String,
49
+ idempotency_key: String,
50
+ x_idempotency_expiration: String,
51
+ request_options: Courier::RequestOptions
52
+ }
29
53
  )
30
54
  end
31
55
  def to_hash
@@ -14,18 +14,42 @@ module Courier
14
14
  sig { returns(String) }
15
15
  attr_accessor :template_id
16
16
 
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :idempotency_key
19
+
20
+ sig { params(idempotency_key: String).void }
21
+ attr_writer :idempotency_key
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :x_idempotency_expiration
25
+
26
+ sig { params(x_idempotency_expiration: String).void }
27
+ attr_writer :x_idempotency_expiration
28
+
17
29
  sig do
18
30
  params(
19
31
  template_id: String,
32
+ idempotency_key: String,
33
+ x_idempotency_expiration: String,
20
34
  request_options: Courier::RequestOptions::OrHash
21
35
  ).returns(T.attached_class)
22
36
  end
23
- def self.new(template_id:, request_options: {})
37
+ def self.new(
38
+ template_id:,
39
+ idempotency_key: nil,
40
+ x_idempotency_expiration: nil,
41
+ request_options: {}
42
+ )
24
43
  end
25
44
 
26
45
  sig do
27
46
  override.returns(
28
- { template_id: String, request_options: Courier::RequestOptions }
47
+ {
48
+ template_id: String,
49
+ idempotency_key: String,
50
+ x_idempotency_expiration: String,
51
+ request_options: Courier::RequestOptions
52
+ }
29
53
  )
30
54
  end
31
55
  def to_hash
@@ -18,18 +18,42 @@ module Courier
18
18
  sig { returns(String) }
19
19
  attr_accessor :template_id
20
20
 
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :idempotency_key
23
+
24
+ sig { params(idempotency_key: String).void }
25
+ attr_writer :idempotency_key
26
+
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :x_idempotency_expiration
29
+
30
+ sig { params(x_idempotency_expiration: String).void }
31
+ attr_writer :x_idempotency_expiration
32
+
21
33
  sig do
22
34
  params(
23
35
  template_id: String,
36
+ idempotency_key: String,
37
+ x_idempotency_expiration: String,
24
38
  request_options: Courier::RequestOptions::OrHash
25
39
  ).returns(T.attached_class)
26
40
  end
27
- def self.new(template_id:, request_options: {})
41
+ def self.new(
42
+ template_id:,
43
+ idempotency_key: nil,
44
+ x_idempotency_expiration: nil,
45
+ request_options: {}
46
+ )
28
47
  end
29
48
 
30
49
  sig do
31
50
  override.returns(
32
- { template_id: String, request_options: Courier::RequestOptions }
51
+ {
52
+ template_id: String,
53
+ idempotency_key: String,
54
+ x_idempotency_expiration: String,
55
+ request_options: Courier::RequestOptions
56
+ }
33
57
  )
34
58
  end
35
59
  def to_hash