trycourier 4.8.0 → 4.10.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 (225) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/README.md +1 -1
  4. data/lib/courier/client.rb +8 -0
  5. data/lib/courier/internal/util.rb +19 -6
  6. data/lib/courier/models/associated_notification_list_response.rb +24 -0
  7. data/lib/courier/models/channel.rb +75 -0
  8. data/lib/courier/models/channel_metadata.rb +15 -0
  9. data/lib/courier/models/element_with_checksums.rb +60 -0
  10. data/lib/courier/models/elemental_content.rb +2 -2
  11. data/lib/courier/models/elemental_html_node_with_type.rb +24 -0
  12. data/lib/courier/models/elemental_node.rb +3 -1
  13. data/lib/courier/models/message_channels.rb +8 -0
  14. data/lib/courier/models/message_providers.rb +8 -0
  15. data/lib/courier/models/message_providers_type.rb +38 -0
  16. data/lib/courier/models/metadata.rb +15 -0
  17. data/lib/courier/models/notification_archive_params.rb +20 -0
  18. data/lib/courier/models/notification_content_get_response.rb +26 -0
  19. data/lib/courier/models/notification_content_mutation_response.rb +61 -0
  20. data/lib/courier/models/notification_content_put_request.rb +51 -0
  21. data/lib/courier/models/notification_create_params.rb +14 -0
  22. data/lib/courier/models/notification_element_put_request.rb +62 -0
  23. data/lib/courier/models/notification_get_content.rb +0 -1
  24. data/lib/courier/models/notification_list_params.rb +13 -4
  25. data/lib/courier/models/notification_list_response.rb +108 -93
  26. data/lib/courier/models/notification_list_versions_params.rb +37 -0
  27. data/lib/courier/models/notification_locale_put_request.rb +39 -0
  28. data/lib/courier/models/notification_publish_params.rb +20 -0
  29. data/lib/courier/models/notification_put_content_params.rb +20 -0
  30. data/lib/courier/models/notification_put_element_params.rb +26 -0
  31. data/lib/courier/models/notification_put_locale_params.rb +26 -0
  32. data/lib/courier/models/notification_replace_params.rb +20 -0
  33. data/lib/courier/models/notification_retrieve_content_params.rb +14 -1
  34. data/lib/courier/models/notification_retrieve_content_response.rb +21 -0
  35. data/lib/courier/models/notification_retrieve_params.rb +33 -0
  36. data/lib/courier/models/notification_template_create_request.rb +45 -0
  37. data/lib/courier/models/notification_template_get_response.rb +92 -0
  38. data/lib/courier/models/notification_template_mutation_response.rb +51 -0
  39. data/lib/courier/models/notification_template_payload.rb +98 -0
  40. data/lib/courier/models/notification_template_publish_request.rb +19 -0
  41. data/lib/courier/models/notification_template_state.rb +16 -0
  42. data/lib/courier/models/notification_template_summary.rb +81 -0
  43. data/lib/courier/models/notification_template_update_request.rb +46 -0
  44. data/lib/courier/models/notification_template_version_list_response.rb +22 -0
  45. data/lib/courier/models/provider.rb +67 -0
  46. data/lib/courier/models/provider_create_params.rb +52 -0
  47. data/lib/courier/models/provider_delete_params.rb +20 -0
  48. data/lib/courier/models/provider_list_params.rb +22 -0
  49. data/lib/courier/models/provider_list_response.rb +24 -0
  50. data/lib/courier/models/provider_retrieve_params.rb +20 -0
  51. data/lib/courier/models/provider_update_params.rb +58 -0
  52. data/lib/courier/models/providers/catalog_list_params.rb +44 -0
  53. data/lib/courier/models/providers/catalog_list_response.rb +26 -0
  54. data/lib/courier/models/providers_catalog_entry.rb +86 -0
  55. data/lib/courier/models/routing_strategy_archive_params.rb +20 -0
  56. data/lib/courier/models/routing_strategy_create_params.rb +14 -0
  57. data/lib/courier/models/routing_strategy_create_request.rb +58 -0
  58. data/lib/courier/models/routing_strategy_get_response.rb +99 -0
  59. data/lib/courier/models/routing_strategy_list_notifications_params.rb +37 -0
  60. data/lib/courier/models/routing_strategy_list_params.rb +30 -0
  61. data/lib/courier/models/routing_strategy_list_response.rb +24 -0
  62. data/lib/courier/models/routing_strategy_mutation_response.rb +19 -0
  63. data/lib/courier/models/routing_strategy_replace_params.rb +20 -0
  64. data/lib/courier/models/routing_strategy_replace_request.rb +59 -0
  65. data/lib/courier/models/routing_strategy_retrieve_params.rb +20 -0
  66. data/lib/courier/models/routing_strategy_summary.rb +75 -0
  67. data/lib/courier/models/send_message_params.rb +6 -154
  68. data/lib/courier/models/tenant_template_input.rb +6 -152
  69. data/lib/courier/models/timeouts.rb +21 -0
  70. data/lib/courier/models/version_node.rb +46 -0
  71. data/lib/courier/models.rb +110 -0
  72. data/lib/courier/resources/notifications.rb +289 -12
  73. data/lib/courier/resources/providers/catalog.rb +49 -0
  74. data/lib/courier/resources/providers.rb +150 -0
  75. data/lib/courier/resources/routing_strategies.rb +179 -0
  76. data/lib/courier/version.rb +1 -1
  77. data/lib/courier.rb +60 -2
  78. data/rbi/courier/client.rbi +6 -0
  79. data/rbi/courier/internal/util.rbi +8 -0
  80. data/rbi/courier/models/associated_notification_list_response.rbi +45 -0
  81. data/rbi/courier/models/channel.rbi +106 -0
  82. data/rbi/courier/models/channel_metadata.rbi +28 -0
  83. data/rbi/courier/models/element_with_checksums.rbi +109 -0
  84. data/rbi/courier/models/elemental_content.rbi +6 -3
  85. data/rbi/courier/models/elemental_html_node_with_type.rbi +59 -0
  86. data/rbi/courier/models/elemental_node.rbi +2 -1
  87. data/rbi/courier/models/message_channels.rbi +11 -0
  88. data/rbi/courier/models/message_providers.rbi +11 -0
  89. data/rbi/courier/models/message_providers_type.rbi +60 -0
  90. data/rbi/courier/models/metadata.rbi +26 -0
  91. data/rbi/courier/models/notification_archive_params.rbi +35 -0
  92. data/rbi/courier/models/notification_content_get_response.rbi +45 -0
  93. data/rbi/courier/models/notification_content_mutation_response.rbi +95 -0
  94. data/rbi/courier/models/notification_content_put_request.rbi +145 -0
  95. data/rbi/courier/models/notification_create_params.rbi +27 -0
  96. data/rbi/courier/models/notification_element_put_request.rbi +98 -0
  97. data/rbi/courier/models/notification_list_params.rbi +15 -2
  98. data/rbi/courier/models/notification_list_response.rbi +159 -119
  99. data/rbi/courier/models/notification_list_versions_params.rbi +66 -0
  100. data/rbi/courier/models/notification_locale_put_request.rbi +79 -0
  101. data/rbi/courier/models/notification_publish_params.rbi +35 -0
  102. data/rbi/courier/models/notification_put_content_params.rbi +38 -0
  103. data/rbi/courier/models/notification_put_element_params.rbi +46 -0
  104. data/rbi/courier/models/notification_put_locale_params.rbi +46 -0
  105. data/rbi/courier/models/notification_replace_params.rbi +35 -0
  106. data/rbi/courier/models/notification_retrieve_content_params.rbi +21 -2
  107. data/rbi/courier/models/notification_retrieve_content_response.rbi +29 -0
  108. data/rbi/courier/models/notification_retrieve_params.rbi +54 -0
  109. data/rbi/courier/models/notification_template_create_request.rbi +102 -0
  110. data/rbi/courier/models/notification_template_get_response.rbi +162 -0
  111. data/rbi/courier/models/notification_template_mutation_response.rbi +121 -0
  112. data/rbi/courier/models/notification_template_payload.rbi +183 -0
  113. data/rbi/courier/models/notification_template_publish_request.rbi +35 -0
  114. data/rbi/courier/models/notification_template_state.rbi +26 -0
  115. data/rbi/courier/models/notification_template_summary.rbi +124 -0
  116. data/rbi/courier/models/notification_template_update_request.rbi +103 -0
  117. data/rbi/courier/models/notification_template_version_list_response.rbi +41 -0
  118. data/rbi/courier/models/provider.rbi +87 -0
  119. data/rbi/courier/models/provider_create_params.rbi +82 -0
  120. data/rbi/courier/models/provider_delete_params.rbi +35 -0
  121. data/rbi/courier/models/provider_list_params.rbi +43 -0
  122. data/rbi/courier/models/provider_list_response.rbi +42 -0
  123. data/rbi/courier/models/provider_retrieve_params.rbi +35 -0
  124. data/rbi/courier/models/provider_update_params.rbi +86 -0
  125. data/rbi/courier/models/providers/catalog_list_params.rbi +75 -0
  126. data/rbi/courier/models/providers/catalog_list_response.rbi +47 -0
  127. data/rbi/courier/models/providers_catalog_entry.rbi +129 -0
  128. data/rbi/courier/models/routing_strategy_archive_params.rbi +38 -0
  129. data/rbi/courier/models/routing_strategy_create_params.rbi +30 -0
  130. data/rbi/courier/models/routing_strategy_create_request.rbi +86 -0
  131. data/rbi/courier/models/routing_strategy_get_response.rbi +121 -0
  132. data/rbi/courier/models/routing_strategy_list_notifications_params.rbi +63 -0
  133. data/rbi/courier/models/routing_strategy_list_params.rbi +54 -0
  134. data/rbi/courier/models/routing_strategy_list_response.rbi +45 -0
  135. data/rbi/courier/models/routing_strategy_mutation_response.rbi +31 -0
  136. data/rbi/courier/models/routing_strategy_replace_params.rbi +38 -0
  137. data/rbi/courier/models/routing_strategy_replace_request.rbi +87 -0
  138. data/rbi/courier/models/routing_strategy_retrieve_params.rbi +38 -0
  139. data/rbi/courier/models/routing_strategy_summary.rbi +95 -0
  140. data/rbi/courier/models/send_message_params.rbi +6 -362
  141. data/rbi/courier/models/tenant_template_input.rbi +8 -336
  142. data/rbi/courier/models/timeouts.rbi +33 -0
  143. data/rbi/courier/models/version_node.rbi +65 -0
  144. data/rbi/courier/models.rbi +122 -0
  145. data/rbi/courier/resources/notifications.rbi +222 -6
  146. data/rbi/courier/resources/providers/catalog.rbi +38 -0
  147. data/rbi/courier/resources/providers.rbi +116 -0
  148. data/rbi/courier/resources/routing_strategies.rbi +147 -0
  149. data/sig/courier/client.rbs +4 -0
  150. data/sig/courier/internal/util.rbs +4 -0
  151. data/sig/courier/models/associated_notification_list_response.rbs +25 -0
  152. data/sig/courier/models/channel.rbs +61 -0
  153. data/sig/courier/models/channel_metadata.rbs +13 -0
  154. data/sig/courier/models/element_with_checksums.rbs +60 -0
  155. data/sig/courier/models/elemental_html_node_with_type.rbs +32 -0
  156. data/sig/courier/models/elemental_node.rbs +1 -0
  157. data/sig/courier/models/message_channels.rbs +7 -0
  158. data/sig/courier/models/message_providers.rbs +7 -0
  159. data/sig/courier/models/message_providers_type.rbs +35 -0
  160. data/sig/courier/models/metadata.rbs +13 -0
  161. data/sig/courier/models/notification_archive_params.rbs +20 -0
  162. data/sig/courier/models/notification_content_get_response.rbs +22 -0
  163. data/sig/courier/models/notification_content_mutation_response.rbs +47 -0
  164. data/sig/courier/models/notification_content_put_request.rbs +50 -0
  165. data/sig/courier/models/notification_create_params.rbs +15 -0
  166. data/sig/courier/models/notification_element_put_request.rbs +64 -0
  167. data/sig/courier/models/notification_list_params.rbs +7 -1
  168. data/sig/courier/models/notification_list_response.rbs +81 -71
  169. data/sig/courier/models/notification_list_versions_params.rbs +36 -0
  170. data/sig/courier/models/notification_locale_put_request.rbs +39 -0
  171. data/sig/courier/models/notification_publish_params.rbs +22 -0
  172. data/sig/courier/models/notification_put_content_params.rbs +22 -0
  173. data/sig/courier/models/notification_put_element_params.rbs +32 -0
  174. data/sig/courier/models/notification_put_locale_params.rbs +32 -0
  175. data/sig/courier/models/notification_replace_params.rbs +22 -0
  176. data/sig/courier/models/notification_retrieve_content_params.rbs +12 -2
  177. data/sig/courier/models/notification_retrieve_content_response.rbs +12 -0
  178. data/sig/courier/models/notification_retrieve_params.rbs +30 -0
  179. data/sig/courier/models/notification_template_create_request.rbs +40 -0
  180. data/sig/courier/models/notification_template_get_response.rbs +72 -0
  181. data/sig/courier/models/notification_template_mutation_response.rbs +46 -0
  182. data/sig/courier/models/notification_template_payload.rbs +75 -0
  183. data/sig/courier/models/notification_template_publish_request.rbs +15 -0
  184. data/sig/courier/models/notification_template_state.rbs +14 -0
  185. data/sig/courier/models/notification_template_summary.rbs +70 -0
  186. data/sig/courier/models/notification_template_update_request.rbs +40 -0
  187. data/sig/courier/models/notification_template_version_list_response.rbs +22 -0
  188. data/sig/courier/models/provider.rbs +52 -0
  189. data/sig/courier/models/provider_create_params.rbs +47 -0
  190. data/sig/courier/models/provider_delete_params.rbs +20 -0
  191. data/sig/courier/models/provider_list_params.rbs +25 -0
  192. data/sig/courier/models/provider_list_response.rbs +22 -0
  193. data/sig/courier/models/provider_retrieve_params.rbs +20 -0
  194. data/sig/courier/models/provider_update_params.rbs +52 -0
  195. data/sig/courier/models/providers/catalog_list_params.rbs +40 -0
  196. data/sig/courier/models/providers/catalog_list_response.rbs +27 -0
  197. data/sig/courier/models/providers_catalog_entry.rbs +64 -0
  198. data/sig/courier/models/routing_strategy_archive_params.rbs +20 -0
  199. data/sig/courier/models/routing_strategy_create_params.rbs +15 -0
  200. data/sig/courier/models/routing_strategy_create_request.rbs +45 -0
  201. data/sig/courier/models/routing_strategy_get_response.rbs +70 -0
  202. data/sig/courier/models/routing_strategy_list_notifications_params.rbs +34 -0
  203. data/sig/courier/models/routing_strategy_list_params.rbs +30 -0
  204. data/sig/courier/models/routing_strategy_list_response.rbs +25 -0
  205. data/sig/courier/models/routing_strategy_mutation_response.rbs +13 -0
  206. data/sig/courier/models/routing_strategy_replace_params.rbs +22 -0
  207. data/sig/courier/models/routing_strategy_replace_request.rbs +45 -0
  208. data/sig/courier/models/routing_strategy_retrieve_params.rbs +20 -0
  209. data/sig/courier/models/routing_strategy_summary.rbs +55 -0
  210. data/sig/courier/models/send_message_params.rbs +8 -130
  211. data/sig/courier/models/tenant_template_input.rbs +12 -134
  212. data/sig/courier/models/timeouts.rbs +15 -0
  213. data/sig/courier/models/version_node.rbs +32 -0
  214. data/sig/courier/models.rbs +108 -0
  215. data/sig/courier/resources/notifications.rbs +65 -3
  216. data/sig/courier/resources/providers/catalog.rbs +16 -0
  217. data/sig/courier/resources/providers.rbs +38 -0
  218. data/sig/courier/resources/routing_strategies.rbs +48 -0
  219. metadata +182 -8
  220. data/lib/courier/models/notifications/draft_retrieve_content_params.rb +0 -22
  221. data/lib/courier/resources/notifications/draft.rb +0 -33
  222. data/rbi/courier/models/notifications/draft_retrieve_content_params.rbi +0 -40
  223. data/rbi/courier/resources/notifications/draft.rbi +0 -23
  224. data/sig/courier/models/notifications/draft_retrieve_content_params.rbs +0 -22
  225. data/sig/courier/resources/notifications/draft.rbs +0 -14
@@ -0,0 +1,87 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class RoutingStrategyReplaceRequest < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Courier::RoutingStrategyReplaceRequest,
10
+ Courier::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Human-readable name for the routing strategy.
15
+ sig { returns(String) }
16
+ attr_accessor :name
17
+
18
+ # Routing tree defining channel selection method and order.
19
+ sig { returns(Courier::MessageRouting) }
20
+ attr_reader :routing
21
+
22
+ sig { params(routing: Courier::MessageRouting::OrHash).void }
23
+ attr_writer :routing
24
+
25
+ # Per-channel delivery configuration. Omit to clear.
26
+ sig { returns(T.nilable(T::Hash[Symbol, Courier::Channel])) }
27
+ attr_accessor :channels
28
+
29
+ # Optional description. Omit or null to clear.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_accessor :description
32
+
33
+ # Per-provider delivery configuration. Omit to clear.
34
+ sig { returns(T.nilable(T::Hash[Symbol, Courier::MessageProvidersType])) }
35
+ attr_accessor :providers
36
+
37
+ # Optional tags. Omit or null to clear.
38
+ sig { returns(T.nilable(T::Array[String])) }
39
+ attr_accessor :tags
40
+
41
+ # Request body for replacing a routing strategy. Full document replacement;
42
+ # missing optional fields are cleared.
43
+ sig do
44
+ params(
45
+ name: String,
46
+ routing: Courier::MessageRouting::OrHash,
47
+ channels: T.nilable(T::Hash[Symbol, Courier::Channel::OrHash]),
48
+ description: T.nilable(String),
49
+ providers:
50
+ T.nilable(T::Hash[Symbol, Courier::MessageProvidersType::OrHash]),
51
+ tags: T.nilable(T::Array[String])
52
+ ).returns(T.attached_class)
53
+ end
54
+ def self.new(
55
+ # Human-readable name for the routing strategy.
56
+ name:,
57
+ # Routing tree defining channel selection method and order.
58
+ routing:,
59
+ # Per-channel delivery configuration. Omit to clear.
60
+ channels: nil,
61
+ # Optional description. Omit or null to clear.
62
+ description: nil,
63
+ # Per-provider delivery configuration. Omit to clear.
64
+ providers: nil,
65
+ # Optional tags. Omit or null to clear.
66
+ tags: nil
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ name: String,
74
+ routing: Courier::MessageRouting,
75
+ channels: T.nilable(T::Hash[Symbol, Courier::Channel]),
76
+ description: T.nilable(String),
77
+ providers:
78
+ T.nilable(T::Hash[Symbol, Courier::MessageProvidersType]),
79
+ tags: T.nilable(T::Array[String])
80
+ }
81
+ )
82
+ end
83
+ def to_hash
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class RoutingStrategyRetrieveParams < 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::RoutingStrategyRetrieveParams,
13
+ Courier::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig do
21
+ params(
22
+ id: String,
23
+ request_options: Courier::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(id:, request_options: {})
27
+ end
28
+
29
+ sig do
30
+ override.returns(
31
+ { id: String, request_options: Courier::RequestOptions }
32
+ )
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,95 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class RoutingStrategySummary < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::RoutingStrategySummary, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # The routing strategy ID (rs\_ prefix).
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # Epoch milliseconds when the strategy was created.
16
+ sig { returns(Integer) }
17
+ attr_accessor :created
18
+
19
+ # User ID of the creator.
20
+ sig { returns(String) }
21
+ attr_accessor :creator
22
+
23
+ # Human-readable name.
24
+ sig { returns(String) }
25
+ attr_accessor :name
26
+
27
+ # Description of the routing strategy.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :description
30
+
31
+ # Tags for categorization.
32
+ sig { returns(T.nilable(T::Array[String])) }
33
+ attr_accessor :tags
34
+
35
+ # Epoch milliseconds of last update.
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_accessor :updated
38
+
39
+ # User ID of the last updater.
40
+ sig { returns(T.nilable(String)) }
41
+ attr_accessor :updater
42
+
43
+ # Routing strategy metadata returned in list responses. Does not include
44
+ # routing/channels/providers content.
45
+ sig do
46
+ params(
47
+ id: String,
48
+ created: Integer,
49
+ creator: String,
50
+ name: String,
51
+ description: T.nilable(String),
52
+ tags: T.nilable(T::Array[String]),
53
+ updated: T.nilable(Integer),
54
+ updater: T.nilable(String)
55
+ ).returns(T.attached_class)
56
+ end
57
+ def self.new(
58
+ # The routing strategy ID (rs\_ prefix).
59
+ id:,
60
+ # Epoch milliseconds when the strategy was created.
61
+ created:,
62
+ # User ID of the creator.
63
+ creator:,
64
+ # Human-readable name.
65
+ name:,
66
+ # Description of the routing strategy.
67
+ description: nil,
68
+ # Tags for categorization.
69
+ tags: nil,
70
+ # Epoch milliseconds of last update.
71
+ updated: nil,
72
+ # User ID of the last updater.
73
+ updater: nil
74
+ )
75
+ end
76
+
77
+ sig do
78
+ override.returns(
79
+ {
80
+ id: String,
81
+ created: Integer,
82
+ creator: String,
83
+ name: String,
84
+ description: T.nilable(String),
85
+ tags: T.nilable(T::Array[String]),
86
+ updated: T.nilable(Integer),
87
+ updater: T.nilable(String)
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+ end
94
+ end
95
+ end
@@ -58,13 +58,7 @@ module Courier
58
58
 
59
59
  # Define run-time configuration for channels. Valid ChannelId's: email, sms, push,
60
60
  # inbox, direct_message, banner, webhook.
61
- sig do
62
- returns(
63
- T.nilable(
64
- T::Hash[Symbol, Courier::SendMessageParams::Message::Channel]
65
- )
66
- )
67
- end
61
+ sig { returns(T.nilable(T::Hash[Symbol, Courier::Channel])) }
68
62
  attr_accessor :channels
69
63
 
70
64
  # Describes content that will work for email, inbox, push, chat, or any channel
@@ -148,11 +142,7 @@ module Courier
148
142
  attr_writer :preferences
149
143
 
150
144
  sig do
151
- returns(
152
- T.nilable(
153
- T::Hash[Symbol, Courier::SendMessageParams::Message::Provider]
154
- )
155
- )
145
+ returns(T.nilable(T::Hash[Symbol, Courier::MessageProvidersType]))
156
146
  end
157
147
  attr_accessor :providers
158
148
 
@@ -218,13 +208,7 @@ module Courier
218
208
  sig do
219
209
  params(
220
210
  brand_id: T.nilable(String),
221
- channels:
222
- T.nilable(
223
- T::Hash[
224
- Symbol,
225
- Courier::SendMessageParams::Message::Channel::OrHash
226
- ]
227
- ),
211
+ channels: T.nilable(T::Hash[Symbol, Courier::Channel::OrHash]),
228
212
  content:
229
213
  T.any(
230
214
  Courier::ElementalContentSugar::OrHash,
@@ -243,12 +227,7 @@ module Courier
243
227
  Courier::SendMessageParams::Message::Preferences::OrHash
244
228
  ),
245
229
  providers:
246
- T.nilable(
247
- T::Hash[
248
- Symbol,
249
- Courier::SendMessageParams::Message::Provider::OrHash
250
- ]
251
- ),
230
+ T.nilable(T::Hash[Symbol, Courier::MessageProvidersType::OrHash]),
252
231
  routing:
253
232
  T.nilable(Courier::SendMessageParams::Message::Routing::OrHash),
254
233
  template: T.nilable(String),
@@ -309,10 +288,7 @@ module Courier
309
288
  override.returns(
310
289
  {
311
290
  brand_id: T.nilable(String),
312
- channels:
313
- T.nilable(
314
- T::Hash[Symbol, Courier::SendMessageParams::Message::Channel]
315
- ),
291
+ channels: T.nilable(T::Hash[Symbol, Courier::Channel]),
316
292
  content:
317
293
  T.any(
318
294
  Courier::ElementalContentSugar,
@@ -327,9 +303,7 @@ module Courier
327
303
  preferences:
328
304
  T.nilable(Courier::SendMessageParams::Message::Preferences),
329
305
  providers:
330
- T.nilable(
331
- T::Hash[Symbol, Courier::SendMessageParams::Message::Provider]
332
- ),
306
+ T.nilable(T::Hash[Symbol, Courier::MessageProvidersType]),
333
307
  routing: T.nilable(Courier::SendMessageParams::Message::Routing),
334
308
  template: T.nilable(String),
335
309
  timeout: T.nilable(Courier::SendMessageParams::Message::Timeout),
@@ -364,233 +338,6 @@ module Courier
364
338
  def to_hash
365
339
  end
366
340
 
367
- class Channel < Courier::Internal::Type::BaseModel
368
- OrHash =
369
- T.type_alias do
370
- T.any(
371
- Courier::SendMessageParams::Message::Channel,
372
- Courier::Internal::AnyHash
373
- )
374
- end
375
-
376
- # Brand id used for rendering.
377
- sig { returns(T.nilable(String)) }
378
- attr_accessor :brand_id
379
-
380
- # JS conditional with access to data/profile.
381
- sig { returns(T.nilable(String)) }
382
- attr_accessor :if_
383
-
384
- sig do
385
- returns(
386
- T.nilable(Courier::SendMessageParams::Message::Channel::Metadata)
387
- )
388
- end
389
- attr_reader :metadata
390
-
391
- sig do
392
- params(
393
- metadata:
394
- T.nilable(
395
- Courier::SendMessageParams::Message::Channel::Metadata::OrHash
396
- )
397
- ).void
398
- end
399
- attr_writer :metadata
400
-
401
- # Channel specific overrides.
402
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
403
- attr_accessor :override
404
-
405
- # Providers enabled for this channel.
406
- sig { returns(T.nilable(T::Array[String])) }
407
- attr_accessor :providers
408
-
409
- # Defaults to `single`.
410
- sig do
411
- returns(
412
- T.nilable(
413
- Courier::SendMessageParams::Message::Channel::RoutingMethod::OrSymbol
414
- )
415
- )
416
- end
417
- attr_accessor :routing_method
418
-
419
- sig do
420
- returns(
421
- T.nilable(Courier::SendMessageParams::Message::Channel::Timeouts)
422
- )
423
- end
424
- attr_reader :timeouts
425
-
426
- sig do
427
- params(
428
- timeouts:
429
- T.nilable(
430
- Courier::SendMessageParams::Message::Channel::Timeouts::OrHash
431
- )
432
- ).void
433
- end
434
- attr_writer :timeouts
435
-
436
- sig do
437
- params(
438
- brand_id: T.nilable(String),
439
- if_: T.nilable(String),
440
- metadata:
441
- T.nilable(
442
- Courier::SendMessageParams::Message::Channel::Metadata::OrHash
443
- ),
444
- override: T.nilable(T::Hash[Symbol, T.anything]),
445
- providers: T.nilable(T::Array[String]),
446
- routing_method:
447
- T.nilable(
448
- Courier::SendMessageParams::Message::Channel::RoutingMethod::OrSymbol
449
- ),
450
- timeouts:
451
- T.nilable(
452
- Courier::SendMessageParams::Message::Channel::Timeouts::OrHash
453
- )
454
- ).returns(T.attached_class)
455
- end
456
- def self.new(
457
- # Brand id used for rendering.
458
- brand_id: nil,
459
- # JS conditional with access to data/profile.
460
- if_: nil,
461
- metadata: nil,
462
- # Channel specific overrides.
463
- override: nil,
464
- # Providers enabled for this channel.
465
- providers: nil,
466
- # Defaults to `single`.
467
- routing_method: nil,
468
- timeouts: nil
469
- )
470
- end
471
-
472
- sig do
473
- override.returns(
474
- {
475
- brand_id: T.nilable(String),
476
- if_: T.nilable(String),
477
- metadata:
478
- T.nilable(
479
- Courier::SendMessageParams::Message::Channel::Metadata
480
- ),
481
- override: T.nilable(T::Hash[Symbol, T.anything]),
482
- providers: T.nilable(T::Array[String]),
483
- routing_method:
484
- T.nilable(
485
- Courier::SendMessageParams::Message::Channel::RoutingMethod::OrSymbol
486
- ),
487
- timeouts:
488
- T.nilable(
489
- Courier::SendMessageParams::Message::Channel::Timeouts
490
- )
491
- }
492
- )
493
- end
494
- def to_hash
495
- end
496
-
497
- class Metadata < Courier::Internal::Type::BaseModel
498
- OrHash =
499
- T.type_alias do
500
- T.any(
501
- Courier::SendMessageParams::Message::Channel::Metadata,
502
- Courier::Internal::AnyHash
503
- )
504
- end
505
-
506
- sig { returns(T.nilable(Courier::Utm)) }
507
- attr_reader :utm
508
-
509
- sig { params(utm: T.nilable(Courier::Utm::OrHash)).void }
510
- attr_writer :utm
511
-
512
- sig do
513
- params(utm: T.nilable(Courier::Utm::OrHash)).returns(
514
- T.attached_class
515
- )
516
- end
517
- def self.new(utm: nil)
518
- end
519
-
520
- sig { override.returns({ utm: T.nilable(Courier::Utm) }) }
521
- def to_hash
522
- end
523
- end
524
-
525
- # Defaults to `single`.
526
- module RoutingMethod
527
- extend Courier::Internal::Type::Enum
528
-
529
- TaggedSymbol =
530
- T.type_alias do
531
- T.all(
532
- Symbol,
533
- Courier::SendMessageParams::Message::Channel::RoutingMethod
534
- )
535
- end
536
- OrSymbol = T.type_alias { T.any(Symbol, String) }
537
-
538
- ALL =
539
- T.let(
540
- :all,
541
- Courier::SendMessageParams::Message::Channel::RoutingMethod::TaggedSymbol
542
- )
543
- SINGLE =
544
- T.let(
545
- :single,
546
- Courier::SendMessageParams::Message::Channel::RoutingMethod::TaggedSymbol
547
- )
548
-
549
- sig do
550
- override.returns(
551
- T::Array[
552
- Courier::SendMessageParams::Message::Channel::RoutingMethod::TaggedSymbol
553
- ]
554
- )
555
- end
556
- def self.values
557
- end
558
- end
559
-
560
- class Timeouts < Courier::Internal::Type::BaseModel
561
- OrHash =
562
- T.type_alias do
563
- T.any(
564
- Courier::SendMessageParams::Message::Channel::Timeouts,
565
- Courier::Internal::AnyHash
566
- )
567
- end
568
-
569
- sig { returns(T.nilable(Integer)) }
570
- attr_accessor :channel
571
-
572
- sig { returns(T.nilable(Integer)) }
573
- attr_accessor :provider
574
-
575
- sig do
576
- params(
577
- channel: T.nilable(Integer),
578
- provider: T.nilable(Integer)
579
- ).returns(T.attached_class)
580
- end
581
- def self.new(channel: nil, provider: nil)
582
- end
583
-
584
- sig do
585
- override.returns(
586
- { channel: T.nilable(Integer), provider: T.nilable(Integer) }
587
- )
588
- end
589
- def to_hash
590
- end
591
- end
592
- end
593
-
594
341
  # Describes content that will work for email, inbox, push, chat, or any channel
595
342
  # id.
596
343
  module Content
@@ -807,109 +554,6 @@ module Courier
807
554
  end
808
555
  end
809
556
 
810
- class Provider < Courier::Internal::Type::BaseModel
811
- OrHash =
812
- T.type_alias do
813
- T.any(
814
- Courier::SendMessageParams::Message::Provider,
815
- Courier::Internal::AnyHash
816
- )
817
- end
818
-
819
- # JS conditional with access to data/profile.
820
- sig { returns(T.nilable(String)) }
821
- attr_accessor :if_
822
-
823
- sig do
824
- returns(
825
- T.nilable(Courier::SendMessageParams::Message::Provider::Metadata)
826
- )
827
- end
828
- attr_reader :metadata
829
-
830
- sig do
831
- params(
832
- metadata:
833
- T.nilable(
834
- Courier::SendMessageParams::Message::Provider::Metadata::OrHash
835
- )
836
- ).void
837
- end
838
- attr_writer :metadata
839
-
840
- # Provider-specific overrides.
841
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
842
- attr_accessor :override
843
-
844
- sig { returns(T.nilable(Integer)) }
845
- attr_accessor :timeouts
846
-
847
- sig do
848
- params(
849
- if_: T.nilable(String),
850
- metadata:
851
- T.nilable(
852
- Courier::SendMessageParams::Message::Provider::Metadata::OrHash
853
- ),
854
- override: T.nilable(T::Hash[Symbol, T.anything]),
855
- timeouts: T.nilable(Integer)
856
- ).returns(T.attached_class)
857
- end
858
- def self.new(
859
- # JS conditional with access to data/profile.
860
- if_: nil,
861
- metadata: nil,
862
- # Provider-specific overrides.
863
- override: nil,
864
- timeouts: nil
865
- )
866
- end
867
-
868
- sig do
869
- override.returns(
870
- {
871
- if_: T.nilable(String),
872
- metadata:
873
- T.nilable(
874
- Courier::SendMessageParams::Message::Provider::Metadata
875
- ),
876
- override: T.nilable(T::Hash[Symbol, T.anything]),
877
- timeouts: T.nilable(Integer)
878
- }
879
- )
880
- end
881
- def to_hash
882
- end
883
-
884
- class Metadata < Courier::Internal::Type::BaseModel
885
- OrHash =
886
- T.type_alias do
887
- T.any(
888
- Courier::SendMessageParams::Message::Provider::Metadata,
889
- Courier::Internal::AnyHash
890
- )
891
- end
892
-
893
- sig { returns(T.nilable(Courier::Utm)) }
894
- attr_reader :utm
895
-
896
- sig { params(utm: T.nilable(Courier::Utm::OrHash)).void }
897
- attr_writer :utm
898
-
899
- sig do
900
- params(utm: T.nilable(Courier::Utm::OrHash)).returns(
901
- T.attached_class
902
- )
903
- end
904
- def self.new(utm: nil)
905
- end
906
-
907
- sig { override.returns({ utm: T.nilable(Courier::Utm) }) }
908
- def to_hash
909
- end
910
- end
911
- end
912
-
913
557
  class Routing < Courier::Internal::Type::BaseModel
914
558
  OrHash =
915
559
  T.type_alias do