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,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ # @see Courier::Resources::Broadcasts#send_
6
+ class BroadcastSendParams < Courier::Models::SendBroadcastRequest
7
+ extend Courier::Internal::Type::RequestParameters::Converter
8
+ include Courier::Internal::Type::RequestParameters
9
+
10
+ # @!attribute broadcast_id
11
+ #
12
+ # @return [String]
13
+ required :broadcast_id, String
14
+
15
+ # @!method initialize(broadcast_id:, request_options: {})
16
+ # @param broadcast_id [String]
17
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ # @see Courier::Resources::Broadcasts#update
6
+ class BroadcastUpdateParams < Courier::Models::UpdateBroadcastRequest
7
+ extend Courier::Internal::Type::RequestParameters::Converter
8
+ include Courier::Internal::Type::RequestParameters
9
+
10
+ # @!attribute broadcast_id
11
+ #
12
+ # @return [String]
13
+ required :broadcast_id, String
14
+
15
+ # @!method initialize(broadcast_id:, request_options: {})
16
+ # @param broadcast_id [String]
17
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class CreateBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ # @!attribute channel
7
+ # The single delivery channel for this broadcast.
8
+ #
9
+ # @return [Symbol, Courier::Models::CreateBroadcastRequest::Channel]
10
+ required :channel, enum: -> { Courier::CreateBroadcastRequest::Channel }
11
+
12
+ # @!attribute name
13
+ # Human-readable name.
14
+ #
15
+ # @return [String]
16
+ required :name, String
17
+
18
+ # @!method initialize(channel:, name:)
19
+ # Request body for creating a broadcast.
20
+ #
21
+ # @param channel [Symbol, Courier::Models::CreateBroadcastRequest::Channel] The single delivery channel for this broadcast.
22
+ #
23
+ # @param name [String] Human-readable name.
24
+
25
+ # The single delivery channel for this broadcast.
26
+ #
27
+ # @see Courier::Models::CreateBroadcastRequest#channel
28
+ module Channel
29
+ extend Courier::Internal::Type::Enum
30
+
31
+ EMAIL = :email
32
+ SMS = :sms
33
+ PUSH = :push
34
+ INBOX = :inbox
35
+ SLACK = :slack
36
+ MSTEAMS = :msteams
37
+
38
+ # @!method self.values
39
+ # @return [Array<Symbol>]
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ module Inbox
6
+ # @see Courier::Resources::Inbox::Messages#delete
7
+ class MessageDeleteParams < Courier::Internal::Type::BaseModel
8
+ extend Courier::Internal::Type::RequestParameters::Converter
9
+ include Courier::Internal::Type::RequestParameters
10
+
11
+ # @!attribute message_id
12
+ #
13
+ # @return [String]
14
+ required :message_id, String
15
+
16
+ # @!method initialize(message_id:, request_options: {})
17
+ # @param message_id [String]
18
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ module Inbox
6
+ # @see Courier::Resources::Inbox::Messages#restore
7
+ class MessageRestoreParams < Courier::Internal::Type::BaseModel
8
+ extend Courier::Internal::Type::RequestParameters::Converter
9
+ include Courier::Internal::Type::RequestParameters
10
+
11
+ # @!attribute message_id
12
+ #
13
+ # @return [String]
14
+ required :message_id, String
15
+
16
+ # @!method initialize(message_id:, request_options: {})
17
+ # @param message_id [String]
18
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -7,7 +7,19 @@ module Courier
7
7
  extend Courier::Internal::Type::RequestParameters::Converter
8
8
  include Courier::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute idempotency_key
11
+ #
12
+ # @return [String, nil]
13
+ optional :idempotency_key, String
14
+
15
+ # @!attribute x_idempotency_expiration
16
+ #
17
+ # @return [String, nil]
18
+ optional :x_idempotency_expiration, String
19
+
20
+ # @!method initialize(idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
21
+ # @param idempotency_key [String]
22
+ # @param x_idempotency_expiration [String]
11
23
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
12
24
  end
13
25
  end
@@ -7,7 +7,19 @@ module Courier
7
7
  extend Courier::Internal::Type::RequestParameters::Converter
8
8
  include Courier::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute idempotency_key
11
+ #
12
+ # @return [String, nil]
13
+ optional :idempotency_key, String
14
+
15
+ # @!attribute x_idempotency_expiration
16
+ #
17
+ # @return [String, nil]
18
+ optional :x_idempotency_expiration, String
19
+
20
+ # @!method initialize(idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
21
+ # @param idempotency_key [String]
22
+ # @param x_idempotency_expiration [String]
11
23
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
12
24
  end
13
25
  end
@@ -12,8 +12,20 @@ module Courier
12
12
  # @return [String]
13
13
  required :template_id, String
14
14
 
15
- # @!method initialize(template_id:, request_options: {})
15
+ # @!attribute idempotency_key
16
+ #
17
+ # @return [String, nil]
18
+ optional :idempotency_key, String
19
+
20
+ # @!attribute x_idempotency_expiration
21
+ #
22
+ # @return [String, nil]
23
+ optional :x_idempotency_expiration, String
24
+
25
+ # @!method initialize(template_id:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
16
26
  # @param template_id [String]
27
+ # @param idempotency_key [String]
28
+ # @param x_idempotency_expiration [String]
17
29
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
18
30
  end
19
31
  end
@@ -12,8 +12,20 @@ module Courier
12
12
  # @return [String]
13
13
  required :template_id, String
14
14
 
15
- # @!method initialize(template_id:, request_options: {})
15
+ # @!attribute idempotency_key
16
+ #
17
+ # @return [String, nil]
18
+ optional :idempotency_key, String
19
+
20
+ # @!attribute x_idempotency_expiration
21
+ #
22
+ # @return [String, nil]
23
+ optional :x_idempotency_expiration, String
24
+
25
+ # @!method initialize(template_id:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
16
26
  # @param template_id [String]
27
+ # @param idempotency_key [String]
28
+ # @param x_idempotency_expiration [String]
17
29
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
18
30
  end
19
31
  end
@@ -13,8 +13,20 @@ module Courier
13
13
  # @return [String]
14
14
  required :template_id, String
15
15
 
16
- # @!method initialize(template_id:, request_options: {})
16
+ # @!attribute idempotency_key
17
+ #
18
+ # @return [String, nil]
19
+ optional :idempotency_key, String
20
+
21
+ # @!attribute x_idempotency_expiration
22
+ #
23
+ # @return [String, nil]
24
+ optional :x_idempotency_expiration, String
25
+
26
+ # @!method initialize(template_id:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
17
27
  # @param template_id [String]
28
+ # @param idempotency_key [String]
29
+ # @param x_idempotency_expiration [String]
18
30
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
19
31
  end
20
32
  end
@@ -18,9 +18,21 @@ module Courier
18
18
  # @return [String]
19
19
  required :notification_id, String
20
20
 
21
- # @!method initialize(template_id:, notification_id:, request_options: {})
21
+ # @!attribute idempotency_key
22
+ #
23
+ # @return [String, nil]
24
+ optional :idempotency_key, String
25
+
26
+ # @!attribute x_idempotency_expiration
27
+ #
28
+ # @return [String, nil]
29
+ optional :x_idempotency_expiration, String
30
+
31
+ # @!method initialize(template_id:, notification_id:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
22
32
  # @param template_id [String]
23
33
  # @param notification_id [String]
34
+ # @param idempotency_key [String]
35
+ # @param x_idempotency_expiration [String]
24
36
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
25
37
  end
26
38
  end
@@ -18,9 +18,21 @@ module Courier
18
18
  # @return [Array<Courier::Models::PutSubscriptionsRecipient>]
19
19
  required :recipients, -> { Courier::Internal::Type::ArrayOf[Courier::PutSubscriptionsRecipient] }
20
20
 
21
- # @!method initialize(list_id:, recipients:, request_options: {})
21
+ # @!attribute idempotency_key
22
+ #
23
+ # @return [String, nil]
24
+ optional :idempotency_key, String
25
+
26
+ # @!attribute x_idempotency_expiration
27
+ #
28
+ # @return [String, nil]
29
+ optional :x_idempotency_expiration, String
30
+
31
+ # @!method initialize(list_id:, recipients:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
22
32
  # @param list_id [String]
23
33
  # @param recipients [Array<Courier::Models::PutSubscriptionsRecipient>]
34
+ # @param idempotency_key [String]
35
+ # @param x_idempotency_expiration [String]
24
36
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
25
37
  end
26
38
  end
@@ -7,7 +7,19 @@ module Courier
7
7
  extend Courier::Internal::Type::RequestParameters::Converter
8
8
  include Courier::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute idempotency_key
11
+ #
12
+ # @return [String, nil]
13
+ optional :idempotency_key, String
14
+
15
+ # @!attribute x_idempotency_expiration
16
+ #
17
+ # @return [String, nil]
18
+ optional :x_idempotency_expiration, String
19
+
20
+ # @!method initialize(idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
21
+ # @param idempotency_key [String]
22
+ # @param x_idempotency_expiration [String]
11
23
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
12
24
  end
13
25
  end
@@ -12,8 +12,20 @@ module Courier
12
12
  # @return [String]
13
13
  required :id, String
14
14
 
15
- # @!method initialize(id:, request_options: {})
15
+ # @!attribute idempotency_key
16
+ #
17
+ # @return [String, nil]
18
+ optional :idempotency_key, String
19
+
20
+ # @!attribute x_idempotency_expiration
21
+ #
22
+ # @return [String, nil]
23
+ optional :x_idempotency_expiration, String
24
+
25
+ # @!method initialize(id:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
16
26
  # @param id [String]
27
+ # @param idempotency_key [String]
28
+ # @param x_idempotency_expiration [String]
17
29
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
18
30
  end
19
31
  end
@@ -17,9 +17,21 @@ module Courier
17
17
  # @return [Hash{Symbol=>Object}]
18
18
  required :profile, Courier::Internal::Type::HashOf[Courier::Internal::Type::Unknown]
19
19
 
20
- # @!method initialize(user_id:, profile:, request_options: {})
20
+ # @!attribute idempotency_key
21
+ #
22
+ # @return [String, nil]
23
+ optional :idempotency_key, String
24
+
25
+ # @!attribute x_idempotency_expiration
26
+ #
27
+ # @return [String, nil]
28
+ optional :x_idempotency_expiration, String
29
+
30
+ # @!method initialize(user_id:, profile:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
21
31
  # @param user_id [String]
22
32
  # @param profile [Hash{Symbol=>Object}]
33
+ # @param idempotency_key [String]
34
+ # @param x_idempotency_expiration [String]
23
35
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
24
36
  end
25
37
  end
@@ -18,9 +18,21 @@ module Courier
18
18
  # @return [Array<Courier::Models::SubscribeToListsRequestItem>]
19
19
  required :lists, -> { Courier::Internal::Type::ArrayOf[Courier::SubscribeToListsRequestItem] }
20
20
 
21
- # @!method initialize(user_id:, lists:, request_options: {})
21
+ # @!attribute idempotency_key
22
+ #
23
+ # @return [String, nil]
24
+ optional :idempotency_key, String
25
+
26
+ # @!attribute x_idempotency_expiration
27
+ #
28
+ # @return [String, nil]
29
+ optional :x_idempotency_expiration, String
30
+
31
+ # @!method initialize(user_id:, lists:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
22
32
  # @param user_id [String]
23
33
  # @param lists [Array<Courier::Models::SubscribeToListsRequestItem>]
34
+ # @param idempotency_key [String]
35
+ # @param x_idempotency_expiration [String]
24
36
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
25
37
  end
26
38
  end
@@ -34,7 +34,17 @@ module Courier
34
34
  # @return [String, nil]
35
35
  optional :title, String
36
36
 
37
- # @!method initialize(provider:, alias_: nil, settings: nil, title: nil, request_options: {})
37
+ # @!attribute idempotency_key
38
+ #
39
+ # @return [String, nil]
40
+ optional :idempotency_key, String
41
+
42
+ # @!attribute x_idempotency_expiration
43
+ #
44
+ # @return [String, nil]
45
+ optional :x_idempotency_expiration, String
46
+
47
+ # @!method initialize(provider:, alias_: nil, settings: nil, title: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
38
48
  # Some parameter documentations has been truncated, see
39
49
  # {Courier::Models::ProviderCreateParams} for more details.
40
50
  #
@@ -46,6 +56,10 @@ module Courier
46
56
  #
47
57
  # @param title [String] Optional display title. Omit to use "Default Configuration".
48
58
  #
59
+ # @param idempotency_key [String]
60
+ #
61
+ # @param x_idempotency_expiration [String]
62
+ #
49
63
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
50
64
  end
51
65
  end
@@ -7,7 +7,19 @@ module Courier
7
7
  extend Courier::Internal::Type::RequestParameters::Converter
8
8
  include Courier::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute idempotency_key
11
+ #
12
+ # @return [String, nil]
13
+ optional :idempotency_key, String
14
+
15
+ # @!attribute x_idempotency_expiration
16
+ #
17
+ # @return [String, nil]
18
+ optional :x_idempotency_expiration, String
19
+
20
+ # @!method initialize(idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
21
+ # @param idempotency_key [String]
22
+ # @param x_idempotency_expiration [String]
11
23
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
12
24
  end
13
25
  end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class ScheduleBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ # @!attribute recipient_id
7
+ # ID of the target list or audience.
8
+ #
9
+ # @return [String]
10
+ required :recipient_id, String
11
+
12
+ # @!attribute recipient_type
13
+ # Whether the broadcast targets a list or an audience.
14
+ #
15
+ # @return [Symbol, Courier::Models::ScheduleBroadcastRequest::RecipientType]
16
+ required :recipient_type, enum: -> { Courier::ScheduleBroadcastRequest::RecipientType }
17
+
18
+ # @!attribute scheduled_to
19
+ # Wall-clock timestamp of the future send, no timezone offset (e.g.
20
+ # "2026-07-21T20:00:00"). The zone is given by `timezone`.
21
+ #
22
+ # @return [String]
23
+ required :scheduled_to, String
24
+
25
+ # @!attribute timezone
26
+ # IANA timezone for the scheduled send (e.g. America/New_York).
27
+ #
28
+ # @return [String, nil]
29
+ optional :timezone, String
30
+
31
+ # @!method initialize(recipient_id:, recipient_type:, scheduled_to:, timezone: nil)
32
+ # Some parameter documentations has been truncated, see
33
+ # {Courier::Models::ScheduleBroadcastRequest} for more details.
34
+ #
35
+ # Request body for scheduling a broadcast for a future send.
36
+ #
37
+ # @param recipient_id [String] ID of the target list or audience.
38
+ #
39
+ # @param recipient_type [Symbol, Courier::Models::ScheduleBroadcastRequest::RecipientType] Whether the broadcast targets a list or an audience.
40
+ #
41
+ # @param scheduled_to [String] Wall-clock timestamp of the future send, no timezone offset (e.g. "2026-07-21T20
42
+ #
43
+ # @param timezone [String] IANA timezone for the scheduled send (e.g. America/New_York).
44
+
45
+ # Whether the broadcast targets a list or an audience.
46
+ #
47
+ # @see Courier::Models::ScheduleBroadcastRequest#recipient_type
48
+ module RecipientType
49
+ extend Courier::Internal::Type::Enum
50
+
51
+ LIST = :list
52
+ AUDIENCE = :audience
53
+
54
+ # @!method self.values
55
+ # @return [Array<Symbol>]
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class SendBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ # @!attribute recipient_id
7
+ # ID of the target list or audience.
8
+ #
9
+ # @return [String]
10
+ required :recipient_id, String
11
+
12
+ # @!attribute recipient_type
13
+ # Whether the broadcast targets a list or an audience.
14
+ #
15
+ # @return [Symbol, Courier::Models::SendBroadcastRequest::RecipientType]
16
+ required :recipient_type, enum: -> { Courier::SendBroadcastRequest::RecipientType }
17
+
18
+ # @!method initialize(recipient_id:, recipient_type:)
19
+ # Request body for sending a broadcast immediately.
20
+ #
21
+ # @param recipient_id [String] ID of the target list or audience.
22
+ #
23
+ # @param recipient_type [Symbol, Courier::Models::SendBroadcastRequest::RecipientType] Whether the broadcast targets a list or an audience.
24
+
25
+ # Whether the broadcast targets a list or an audience.
26
+ #
27
+ # @see Courier::Models::SendBroadcastRequest#recipient_type
28
+ module RecipientType
29
+ extend Courier::Internal::Type::Enum
30
+
31
+ LIST = :list
32
+ AUDIENCE = :audience
33
+
34
+ # @!method self.values
35
+ # @return [Array<Symbol>]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -14,12 +14,26 @@ module Courier
14
14
  # @return [Courier::Models::SendMessageParams::Message]
15
15
  required :message, -> { Courier::SendMessageParams::Message }
16
16
 
17
- # @!method initialize(message:, request_options: {})
17
+ # @!attribute idempotency_key
18
+ #
19
+ # @return [String, nil]
20
+ optional :idempotency_key, String
21
+
22
+ # @!attribute x_idempotency_expiration
23
+ #
24
+ # @return [String, nil]
25
+ optional :x_idempotency_expiration, String
26
+
27
+ # @!method initialize(message:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
18
28
  # Some parameter documentations has been truncated, see
19
29
  # {Courier::Models::SendMessageParams} for more details.
20
30
  #
21
31
  # @param message [Courier::Models::SendMessageParams::Message] The message property has the following primary top-level properties. They define
22
32
  #
33
+ # @param idempotency_key [String]
34
+ #
35
+ # @param x_idempotency_expiration [String]
36
+ #
23
37
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
24
38
 
25
39
  class Message < Courier::Internal::Type::BaseModel
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class UpdateBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ # @!attribute name
7
+ # New human-readable name.
8
+ #
9
+ # @return [String]
10
+ required :name, String
11
+
12
+ # @!method initialize(name:)
13
+ # Request body for updating a broadcast. Only the name is mutable.
14
+ #
15
+ # @param name [String] New human-readable name.
16
+ end
17
+ end
18
+ end
@@ -27,7 +27,17 @@ module Courier
27
27
  # @return [String, nil]
28
28
  optional :tenant_id, String, nil?: true
29
29
 
30
- # @!method initialize(user_id:, topics:, tenant_id: nil, request_options: {})
30
+ # @!attribute idempotency_key
31
+ #
32
+ # @return [String, nil]
33
+ optional :idempotency_key, String
34
+
35
+ # @!attribute x_idempotency_expiration
36
+ #
37
+ # @return [String, nil]
38
+ optional :x_idempotency_expiration, String
39
+
40
+ # @!method initialize(user_id:, topics:, tenant_id: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {})
31
41
  # Some parameter documentations has been truncated, see
32
42
  # {Courier::Models::Users::PreferenceBulkUpdateParams} for more details.
33
43
  #
@@ -37,6 +47,10 @@ module Courier
37
47
  #
38
48
  # @param tenant_id [String, nil] Update the preferences of a user for this specific tenant context.
39
49
  #
50
+ # @param idempotency_key [String]
51
+ #
52
+ # @param x_idempotency_expiration [String]
53
+ #
40
54
  # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
41
55
 
42
56
  class Topic < Courier::Internal::Type::BaseModel
@@ -42,12 +42,16 @@ module Courier
42
42
 
43
43
  class Topic < Courier::Internal::Type::BaseModel
44
44
  # @!attribute status
45
+ # The subscription status to set: OPTED_IN or OPTED_OUT. REQUIRED is a topic-level
46
+ # default, not a user choice; the API rejects opting a user out of a REQUIRED
47
+ # topic.
45
48
  #
46
49
  # @return [Symbol, Courier::Models::PreferenceStatus]
47
50
  required :status, enum: -> { Courier::PreferenceStatus }
48
51
 
49
52
  # @!attribute custom_routing
50
- # The Channels a user has chosen to receive notifications through for this topic
53
+ # The channels to deliver this topic on when has_custom_routing is true. One or
54
+ # more of: direct_message, email, push, sms, webhook, inbox.
51
55
  #
52
56
  # @return [Array<Symbol, Courier::Models::ChannelClassification>, nil]
53
57
  optional :custom_routing,
@@ -55,16 +59,22 @@ module Courier
55
59
  nil?: true
56
60
 
57
61
  # @!attribute has_custom_routing
62
+ # Set to true to route this topic to the channels in custom_routing instead of the
63
+ # topic's default routing.
58
64
  #
59
65
  # @return [Boolean, nil]
60
66
  optional :has_custom_routing, Courier::Internal::Type::Boolean, nil?: true
61
67
 
62
68
  # @!method initialize(status:, custom_routing: nil, has_custom_routing: nil)
63
- # @param status [Symbol, Courier::Models::PreferenceStatus]
69
+ # Some parameter documentations has been truncated, see
70
+ # {Courier::Models::Users::PreferenceUpdateOrCreateTopicParams::Topic} for more
71
+ # details.
64
72
  #
65
- # @param custom_routing [Array<Symbol, Courier::Models::ChannelClassification>, nil] The Channels a user has chosen to receive notifications through for this topic
73
+ # @param status [Symbol, Courier::Models::PreferenceStatus] The subscription status to set: OPTED_IN or OPTED_OUT. REQUIRED is a topic-level
66
74
  #
67
- # @param has_custom_routing [Boolean, nil]
75
+ # @param custom_routing [Array<Symbol, Courier::Models::ChannelClassification>, nil] The channels to deliver this topic on when has_custom_routing is true. One or mo
76
+ #
77
+ # @param has_custom_routing [Boolean, nil] Set to true to route this topic to the channels in custom_routing instead of the
68
78
  end
69
79
  end
70
80
  end