trycourier 4.3.0 → 4.5.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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/trycourier/internal/transport/pooled_net_requester.rb +12 -10
  5. data/lib/trycourier/internal/type/base_model.rb +4 -3
  6. data/lib/trycourier/internal/type/union.rb +7 -9
  7. data/lib/trycourier/internal/util.rb +7 -2
  8. data/lib/trycourier/models/airship_profile.rb +21 -0
  9. data/lib/trycourier/models/airship_profile_audience.rb +15 -0
  10. data/lib/trycourier/models/audience.rb +3 -3
  11. data/lib/trycourier/models/audience_filter.rb +52 -0
  12. data/lib/trycourier/models/audience_recipient.rb +36 -0
  13. data/lib/trycourier/models/audience_update_params.rb +3 -3
  14. data/lib/trycourier/models/bulk_create_job_params.rb +12 -3
  15. data/lib/trycourier/models/bulk_retrieve_job_response.rb +15 -3
  16. data/lib/trycourier/models/device_type.rb +7 -0
  17. data/lib/trycourier/models/discord.rb +16 -0
  18. data/lib/trycourier/models/expo.rb +16 -0
  19. data/lib/trycourier/models/filter.rb +8 -51
  20. data/lib/trycourier/models/filter_config.rb +8 -51
  21. data/lib/trycourier/models/inbound_bulk_message.rb +79 -113
  22. data/lib/trycourier/models/inbound_bulk_message_user.rb +21 -6
  23. data/lib/trycourier/models/intercom.rb +21 -0
  24. data/lib/trycourier/models/intercom_recipient.rb +15 -0
  25. data/lib/trycourier/models/list_filter.rb +52 -0
  26. data/lib/trycourier/models/list_pattern_recipient.rb +23 -0
  27. data/lib/trycourier/models/list_recipient.rb +29 -0
  28. data/lib/trycourier/models/ms_teams.rb +22 -0
  29. data/lib/trycourier/models/ms_teams_base_properties.rb +21 -0
  30. data/lib/trycourier/models/ms_teams_recipient.rb +17 -0
  31. data/lib/trycourier/models/multiple_tokens.rb +15 -0
  32. data/lib/trycourier/models/nested_filter_config.rb +49 -0
  33. data/lib/trycourier/models/pagerduty.rb +33 -0
  34. data/lib/trycourier/models/pagerduty_recipient.rb +17 -0
  35. data/lib/trycourier/models/send_direct_message.rb +15 -0
  36. data/lib/trycourier/models/send_message_params.rb +38 -8
  37. data/lib/trycourier/models/send_to_channel.rb +15 -0
  38. data/lib/trycourier/models/send_to_ms_teams_channel_id.rb +27 -0
  39. data/lib/trycourier/models/send_to_ms_teams_channel_name.rb +33 -0
  40. data/lib/trycourier/models/send_to_ms_teams_conversation_id.rb +27 -0
  41. data/lib/trycourier/models/send_to_ms_teams_email.rb +27 -0
  42. data/lib/trycourier/models/send_to_ms_teams_user_id.rb +27 -0
  43. data/lib/trycourier/models/send_to_slack_channel.rb +21 -0
  44. data/lib/trycourier/models/send_to_slack_email.rb +21 -0
  45. data/lib/trycourier/models/send_to_slack_user_id.rb +21 -0
  46. data/lib/trycourier/models/single_filter_config.rb +62 -0
  47. data/lib/trycourier/models/slack.rb +18 -0
  48. data/lib/trycourier/models/slack_base_properties.rb +15 -0
  49. data/lib/trycourier/models/slack_recipient.rb +17 -0
  50. data/lib/trycourier/models/token.rb +15 -0
  51. data/lib/trycourier/models/user_profile.rb +274 -0
  52. data/lib/trycourier/models/user_profile_firebase_token.rb +19 -0
  53. data/lib/trycourier/models/webhook_auth_mode.rb +16 -0
  54. data/lib/trycourier/models/webhook_authentication.rb +40 -0
  55. data/lib/trycourier/models/webhook_method.rb +15 -0
  56. data/lib/trycourier/models/webhook_profile.rb +53 -0
  57. data/lib/trycourier/models/webhook_profile_type.rb +15 -0
  58. data/lib/trycourier/models/webhook_recipient.rb +17 -0
  59. data/lib/trycourier/models.rb +84 -2
  60. data/lib/trycourier/resources/audiences.rb +1 -1
  61. data/lib/trycourier/resources/bulk.rb +17 -3
  62. data/lib/trycourier/version.rb +1 -1
  63. data/lib/trycourier.rb +42 -1
  64. data/rbi/trycourier/models/airship_profile.rbi +41 -0
  65. data/rbi/trycourier/models/airship_profile_audience.rbi +26 -0
  66. data/rbi/trycourier/models/audience.rbi +8 -7
  67. data/rbi/trycourier/models/audience_filter.rbi +88 -0
  68. data/rbi/trycourier/models/audience_recipient.rbi +52 -0
  69. data/rbi/trycourier/models/audience_update_params.rbi +25 -7
  70. data/rbi/trycourier/models/bulk_create_job_params.rbi +21 -20
  71. data/rbi/trycourier/models/bulk_retrieve_job_response.rbi +24 -9
  72. data/rbi/trycourier/models/device_type.rbi +7 -0
  73. data/rbi/trycourier/models/discord.rbi +18 -0
  74. data/rbi/trycourier/models/expo.rbi +16 -0
  75. data/rbi/trycourier/models/filter.rbi +8 -78
  76. data/rbi/trycourier/models/filter_config.rbi +8 -83
  77. data/rbi/trycourier/models/inbound_bulk_message.rbi +97 -153
  78. data/rbi/trycourier/models/inbound_bulk_message_user.rbi +20 -7
  79. data/rbi/trycourier/models/intercom.rbi +35 -0
  80. data/rbi/trycourier/models/intercom_recipient.rbi +23 -0
  81. data/rbi/trycourier/models/list_filter.rbi +86 -0
  82. data/rbi/trycourier/models/list_pattern_recipient.rbi +39 -0
  83. data/rbi/trycourier/models/list_recipient.rbi +44 -0
  84. data/rbi/trycourier/models/ms_teams.rbi +24 -0
  85. data/rbi/trycourier/models/ms_teams_base_properties.rbi +31 -0
  86. data/rbi/trycourier/models/ms_teams_recipient.rbi +58 -0
  87. data/rbi/trycourier/models/multiple_tokens.rbi +27 -0
  88. data/rbi/trycourier/models/nested_filter_config.rbi +104 -0
  89. data/rbi/trycourier/models/pagerduty.rbi +53 -0
  90. data/rbi/trycourier/models/pagerduty_recipient.rbi +31 -0
  91. data/rbi/trycourier/models/send_direct_message.rbi +23 -0
  92. data/rbi/trycourier/models/send_message_params.rbi +50 -11
  93. data/rbi/trycourier/models/send_to_channel.rbi +23 -0
  94. data/rbi/trycourier/models/send_to_ms_teams_channel_id.rbi +42 -0
  95. data/rbi/trycourier/models/send_to_ms_teams_channel_name.rbi +51 -0
  96. data/rbi/trycourier/models/send_to_ms_teams_conversation_id.rbi +42 -0
  97. data/rbi/trycourier/models/send_to_ms_teams_email.rbi +37 -0
  98. data/rbi/trycourier/models/send_to_ms_teams_user_id.rbi +37 -0
  99. data/rbi/trycourier/models/send_to_slack_channel.rbi +28 -0
  100. data/rbi/trycourier/models/send_to_slack_email.rbi +28 -0
  101. data/rbi/trycourier/models/send_to_slack_user_id.rbi +28 -0
  102. data/rbi/trycourier/models/single_filter_config.rbi +116 -0
  103. data/rbi/trycourier/models/slack.rbi +22 -0
  104. data/rbi/trycourier/models/slack_base_properties.rbi +23 -0
  105. data/rbi/trycourier/models/slack_recipient.rbi +52 -0
  106. data/rbi/trycourier/models/token.rbi +21 -0
  107. data/rbi/trycourier/models/user_profile.rbi +377 -0
  108. data/rbi/trycourier/models/user_profile_firebase_token.rbi +25 -0
  109. data/rbi/trycourier/models/webhook_auth_mode.rbi +22 -0
  110. data/rbi/trycourier/models/webhook_authentication.rbi +64 -0
  111. data/rbi/trycourier/models/webhook_method.rbi +21 -0
  112. data/rbi/trycourier/models/webhook_profile.rbi +80 -0
  113. data/rbi/trycourier/models/webhook_profile_type.rbi +22 -0
  114. data/rbi/trycourier/models/webhook_recipient.rbi +31 -0
  115. data/rbi/trycourier/models.rbi +84 -2
  116. data/rbi/trycourier/resources/audiences.rbi +7 -1
  117. data/rbi/trycourier/resources/bulk.rbi +22 -8
  118. data/sig/trycourier/models/airship_profile.rbs +25 -0
  119. data/sig/trycourier/models/airship_profile_audience.rbs +13 -0
  120. data/sig/trycourier/models/audience.rbs +4 -4
  121. data/sig/trycourier/models/audience_filter.rbs +50 -0
  122. data/sig/trycourier/models/audience_recipient.rbs +30 -0
  123. data/sig/trycourier/models/audience_update_params.rbs +8 -4
  124. data/sig/trycourier/models/bulk_create_job_params.rbs +4 -4
  125. data/sig/trycourier/models/bulk_retrieve_job_response.rbs +4 -4
  126. data/sig/trycourier/models/device_type.rbs +5 -0
  127. data/sig/trycourier/models/discord.rbs +11 -0
  128. data/sig/trycourier/models/expo.rbs +11 -0
  129. data/sig/trycourier/models/filter.rbs +4 -61
  130. data/sig/trycourier/models/filter_config.rbs +4 -61
  131. data/sig/trycourier/models/inbound_bulk_message.rbs +52 -99
  132. data/sig/trycourier/models/inbound_bulk_message_user.rbs +4 -6
  133. data/sig/trycourier/models/intercom.rbs +15 -0
  134. data/sig/trycourier/models/intercom_recipient.rbs +13 -0
  135. data/sig/trycourier/models/list_filter.rbs +50 -0
  136. data/sig/trycourier/models/list_pattern_recipient.rbs +19 -0
  137. data/sig/trycourier/models/list_recipient.rbs +30 -0
  138. data/sig/trycourier/models/ms_teams.rbs +16 -0
  139. data/sig/trycourier/models/ms_teams_base_properties.rbs +15 -0
  140. data/sig/trycourier/models/ms_teams_recipient.rbs +13 -0
  141. data/sig/trycourier/models/multiple_tokens.rbs +13 -0
  142. data/sig/trycourier/models/nested_filter_config.rbs +64 -0
  143. data/sig/trycourier/models/pagerduty.rbs +35 -0
  144. data/sig/trycourier/models/pagerduty_recipient.rbs +13 -0
  145. data/sig/trycourier/models/send_direct_message.rbs +13 -0
  146. data/sig/trycourier/models/send_message_params.rbs +22 -6
  147. data/sig/trycourier/models/send_to_channel.rbs +13 -0
  148. data/sig/trycourier/models/send_to_ms_teams_channel_id.rbs +26 -0
  149. data/sig/trycourier/models/send_to_ms_teams_channel_name.rbs +35 -0
  150. data/sig/trycourier/models/send_to_ms_teams_conversation_id.rbs +26 -0
  151. data/sig/trycourier/models/send_to_ms_teams_email.rbs +22 -0
  152. data/sig/trycourier/models/send_to_ms_teams_user_id.rbs +26 -0
  153. data/sig/trycourier/models/send_to_slack_channel.rbs +15 -0
  154. data/sig/trycourier/models/send_to_slack_email.rbs +15 -0
  155. data/sig/trycourier/models/send_to_slack_user_id.rbs +15 -0
  156. data/sig/trycourier/models/single_filter_config.rbs +69 -0
  157. data/sig/trycourier/models/slack.rbs +14 -0
  158. data/sig/trycourier/models/slack_base_properties.rbs +13 -0
  159. data/sig/trycourier/models/slack_recipient.rbs +13 -0
  160. data/sig/trycourier/models/token.rbs +13 -0
  161. data/sig/trycourier/models/user_profile.rbs +212 -0
  162. data/sig/trycourier/models/user_profile_firebase_token.rbs +13 -0
  163. data/sig/trycourier/models/webhook_auth_mode.rbs +15 -0
  164. data/sig/trycourier/models/webhook_authentication.rbs +35 -0
  165. data/sig/trycourier/models/webhook_method.rbs +14 -0
  166. data/sig/trycourier/models/webhook_profile.rbs +40 -0
  167. data/sig/trycourier/models/webhook_profile_type.rbs +14 -0
  168. data/sig/trycourier/models/webhook_recipient.rbs +13 -0
  169. data/sig/trycourier/models.rbs +87 -5
  170. data/sig/trycourier/resources/audiences.rbs +1 -1
  171. data/sig/trycourier/resources/bulk.rbs +1 -1
  172. metadata +128 -5
  173. data/lib/trycourier/models/recipient.rb +0 -113
  174. data/rbi/trycourier/models/recipient.rbi +0 -161
  175. data/sig/trycourier/models/recipient.rbs +0 -92
@@ -1,16 +1,24 @@
1
1
  # typed: strong
2
2
 
3
3
  module Trycourier
4
+ AirshipProfile = Trycourier::Models::AirshipProfile
5
+
6
+ AirshipProfileAudience = Trycourier::Models::AirshipProfileAudience
7
+
4
8
  Alignment = Trycourier::Models::Alignment
5
9
 
6
10
  Audience = Trycourier::Models::Audience
7
11
 
8
12
  AudienceDeleteParams = Trycourier::Models::AudienceDeleteParams
9
13
 
14
+ AudienceFilter = Trycourier::Models::AudienceFilter
15
+
10
16
  AudienceListMembersParams = Trycourier::Models::AudienceListMembersParams
11
17
 
12
18
  AudienceListParams = Trycourier::Models::AudienceListParams
13
19
 
20
+ AudienceRecipient = Trycourier::Models::AudienceRecipient
21
+
14
22
  AudienceRetrieveParams = Trycourier::Models::AudienceRetrieveParams
15
23
 
16
24
  AudienceUpdateParams = Trycourier::Models::AudienceUpdateParams
@@ -76,6 +84,10 @@ module Trycourier
76
84
 
77
85
  DefaultPreferences = Trycourier::Models::DefaultPreferences
78
86
 
87
+ DeviceType = Trycourier::Models::DeviceType
88
+
89
+ Discord = Trycourier::Models::Discord
90
+
79
91
  ElementalActionNodeWithType = Trycourier::Models::ElementalActionNodeWithType
80
92
 
81
93
  ElementalBaseNode = Trycourier::Models::ElementalBaseNode
@@ -108,6 +120,8 @@ module Trycourier
108
120
 
109
121
  EmailHeader = Trycourier::Models::EmailHeader
110
122
 
123
+ Expo = Trycourier::Models::Expo
124
+
111
125
  Filter = Trycourier::Models::Filter
112
126
 
113
127
  FilterConfig = Trycourier::Models::FilterConfig
@@ -120,10 +134,20 @@ module Trycourier
120
134
 
121
135
  InboundTrackEventParams = Trycourier::Models::InboundTrackEventParams
122
136
 
137
+ Intercom = Trycourier::Models::Intercom
138
+
139
+ IntercomRecipient = Trycourier::Models::IntercomRecipient
140
+
123
141
  ListDeleteParams = Trycourier::Models::ListDeleteParams
124
142
 
143
+ ListFilter = Trycourier::Models::ListFilter
144
+
125
145
  ListListParams = Trycourier::Models::ListListParams
126
146
 
147
+ ListPatternRecipient = Trycourier::Models::ListPatternRecipient
148
+
149
+ ListRecipient = Trycourier::Models::ListRecipient
150
+
127
151
  ListRestoreParams = Trycourier::Models::ListRestoreParams
128
152
 
129
153
  ListRetrieveParams = Trycourier::Models::ListRetrieveParams
@@ -152,6 +176,16 @@ module Trycourier
152
176
 
153
177
  MessageRoutingChannel = Trycourier::Models::MessageRoutingChannel
154
178
 
179
+ MsTeams = Trycourier::Models::MsTeams
180
+
181
+ MsTeamsBaseProperties = Trycourier::Models::MsTeamsBaseProperties
182
+
183
+ MsTeamsRecipient = Trycourier::Models::MsTeamsRecipient
184
+
185
+ MultipleTokens = Trycourier::Models::MultipleTokens
186
+
187
+ NestedFilterConfig = Trycourier::Models::NestedFilterConfig
188
+
155
189
  NotificationGetContent = Trycourier::Models::NotificationGetContent
156
190
 
157
191
  NotificationListParams = Trycourier::Models::NotificationListParams
@@ -164,6 +198,10 @@ module Trycourier
164
198
 
165
199
  Notifications = Trycourier::Models::Notifications
166
200
 
201
+ Pagerduty = Trycourier::Models::Pagerduty
202
+
203
+ PagerdutyRecipient = Trycourier::Models::PagerdutyRecipient
204
+
167
205
  Paging = Trycourier::Models::Paging
168
206
 
169
207
  Preference = Trycourier::Models::Preference
@@ -184,16 +222,42 @@ module Trycourier
184
222
 
185
223
  PutSubscriptionsRecipient = Trycourier::Models::PutSubscriptionsRecipient
186
224
 
187
- Recipient = Trycourier::Models::Recipient
188
-
189
225
  RecipientPreferences = Trycourier::Models::RecipientPreferences
190
226
 
191
227
  RequestArchiveParams = Trycourier::Models::RequestArchiveParams
192
228
 
193
229
  Rule = Trycourier::Models::Rule
194
230
 
231
+ SendDirectMessage = Trycourier::Models::SendDirectMessage
232
+
195
233
  SendMessageParams = Trycourier::Models::SendMessageParams
196
234
 
235
+ SendToChannel = Trycourier::Models::SendToChannel
236
+
237
+ SendToMsTeamsChannelID = Trycourier::Models::SendToMsTeamsChannelID
238
+
239
+ SendToMsTeamsChannelName = Trycourier::Models::SendToMsTeamsChannelName
240
+
241
+ SendToMsTeamsConversationID = Trycourier::Models::SendToMsTeamsConversationID
242
+
243
+ SendToMsTeamsEmail = Trycourier::Models::SendToMsTeamsEmail
244
+
245
+ SendToMsTeamsUserID = Trycourier::Models::SendToMsTeamsUserID
246
+
247
+ SendToSlackChannel = Trycourier::Models::SendToSlackChannel
248
+
249
+ SendToSlackEmail = Trycourier::Models::SendToSlackEmail
250
+
251
+ SendToSlackUserID = Trycourier::Models::SendToSlackUserID
252
+
253
+ SingleFilterConfig = Trycourier::Models::SingleFilterConfig
254
+
255
+ Slack = Trycourier::Models::Slack
256
+
257
+ SlackBaseProperties = Trycourier::Models::SlackBaseProperties
258
+
259
+ SlackRecipient = Trycourier::Models::SlackRecipient
260
+
197
261
  SubscribeToListsRequestItem = Trycourier::Models::SubscribeToListsRequestItem
198
262
 
199
263
  SubscriptionList = Trycourier::Models::SubscriptionList
@@ -218,15 +282,33 @@ module Trycourier
218
282
 
219
283
  TextStyle = Trycourier::Models::TextStyle
220
284
 
285
+ Token = Trycourier::Models::Token
286
+
221
287
  TranslationRetrieveParams = Trycourier::Models::TranslationRetrieveParams
222
288
 
223
289
  TranslationUpdateParams = Trycourier::Models::TranslationUpdateParams
224
290
 
291
+ UserProfile = Trycourier::Models::UserProfile
292
+
293
+ UserProfileFirebaseToken = Trycourier::Models::UserProfileFirebaseToken
294
+
225
295
  UserRecipient = Trycourier::Models::UserRecipient
226
296
 
227
297
  Users = Trycourier::Models::Users
228
298
 
229
299
  Utm = Trycourier::Models::Utm
230
300
 
301
+ WebhookAuthentication = Trycourier::Models::WebhookAuthentication
302
+
303
+ WebhookAuthMode = Trycourier::Models::WebhookAuthMode
304
+
305
+ WebhookMethod = Trycourier::Models::WebhookMethod
306
+
307
+ WebhookProfile = Trycourier::Models::WebhookProfile
308
+
309
+ WebhookProfileType = Trycourier::Models::WebhookProfileType
310
+
311
+ WebhookRecipient = Trycourier::Models::WebhookRecipient
312
+
231
313
  WidgetBackground = Trycourier::Models::WidgetBackground
232
314
  end
@@ -22,7 +22,13 @@ module Trycourier
22
22
  params(
23
23
  audience_id: String,
24
24
  description: T.nilable(String),
25
- filter: T.nilable(Trycourier::Filter::OrHash),
25
+ filter:
26
+ T.nilable(
27
+ T.any(
28
+ Trycourier::SingleFilterConfig::OrHash,
29
+ Trycourier::NestedFilterConfig::OrHash
30
+ )
31
+ ),
26
32
  name: T.nilable(String),
27
33
  request_options: Trycourier::RequestOptions::OrHash
28
34
  ).returns(Trycourier::Models::AudienceUpdateResponse)
@@ -3,7 +3,11 @@
3
3
  module Trycourier
4
4
  module Resources
5
5
  class Bulk
6
- # Ingest user data into a Bulk Job
6
+ # Ingest user data into a Bulk Job.
7
+ #
8
+ # **Important**: For email-based bulk jobs, each user must include `profile.email`
9
+ # for provider routing to work correctly. The `to.email` field is not sufficient
10
+ # for email provider routing.
7
11
  sig do
8
12
  params(
9
13
  job_id: String,
@@ -19,18 +23,28 @@ module Trycourier
19
23
  )
20
24
  end
21
25
 
22
- # Create a bulk job
26
+ # Creates a new bulk job for sending messages to multiple recipients.
27
+ #
28
+ # **Required**: `message.event` (event ID or notification ID)
29
+ #
30
+ # **Optional (V2 format)**: `message.template` (notification ID) or
31
+ # `message.content` (Elemental content) can be provided to override the
32
+ # notification associated with the event.
23
33
  sig do
24
34
  params(
25
- message:
26
- T.any(
27
- Trycourier::InboundBulkMessage::InboundBulkTemplateMessage::OrHash,
28
- Trycourier::InboundBulkMessage::InboundBulkContentMessage::OrHash
29
- ),
35
+ message: Trycourier::InboundBulkMessage::OrHash,
30
36
  request_options: Trycourier::RequestOptions::OrHash
31
37
  ).returns(Trycourier::Models::BulkCreateJobResponse)
32
38
  end
33
- def create_job(message:, request_options: {})
39
+ def create_job(
40
+ # Bulk message definition. Supports two formats:
41
+ #
42
+ # - V1 format: Requires `event` field (event ID or notification ID)
43
+ # - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
44
+ # content) in addition to `event`
45
+ message:,
46
+ request_options: {}
47
+ )
34
48
  end
35
49
 
36
50
  # Get Bulk Job Users
@@ -0,0 +1,25 @@
1
+ module Trycourier
2
+ module Models
3
+ type airship_profile =
4
+ {
5
+ audience: Trycourier::AirshipProfileAudience,
6
+ device_types: ::Array[String]
7
+ }
8
+
9
+ class AirshipProfile < Trycourier::Internal::Type::BaseModel
10
+ attr_accessor audience: Trycourier::AirshipProfileAudience
11
+
12
+ attr_accessor device_types: ::Array[String]
13
+
14
+ def initialize: (
15
+ audience: Trycourier::AirshipProfileAudience,
16
+ device_types: ::Array[String]
17
+ ) -> void
18
+
19
+ def to_hash: -> {
20
+ audience: Trycourier::AirshipProfileAudience,
21
+ device_types: ::Array[String]
22
+ }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ module Trycourier
2
+ module Models
3
+ type airship_profile_audience = { named_user: String }
4
+
5
+ class AirshipProfileAudience < Trycourier::Internal::Type::BaseModel
6
+ attr_accessor named_user: String
7
+
8
+ def initialize: (named_user: String) -> void
9
+
10
+ def to_hash: -> { named_user: String }
11
+ end
12
+ end
13
+ end
@@ -5,7 +5,7 @@ module Trycourier
5
5
  id: String,
6
6
  created_at: String,
7
7
  description: String,
8
- filter: Trycourier::Filter,
8
+ filter: Trycourier::Models::filter,
9
9
  name: String,
10
10
  updated_at: String
11
11
  }
@@ -17,7 +17,7 @@ module Trycourier
17
17
 
18
18
  attr_accessor description: String
19
19
 
20
- attr_accessor filter: Trycourier::Filter
20
+ attr_accessor filter: Trycourier::Models::filter
21
21
 
22
22
  attr_accessor name: String
23
23
 
@@ -27,7 +27,7 @@ module Trycourier
27
27
  id: String,
28
28
  created_at: String,
29
29
  description: String,
30
- filter: Trycourier::Filter,
30
+ filter: Trycourier::Models::filter,
31
31
  name: String,
32
32
  updated_at: String
33
33
  ) -> void
@@ -36,7 +36,7 @@ module Trycourier
36
36
  id: String,
37
37
  created_at: String,
38
38
  description: String,
39
- filter: Trycourier::Filter,
39
+ filter: Trycourier::Models::filter,
40
40
  name: String,
41
41
  updated_at: String
42
42
  }
@@ -0,0 +1,50 @@
1
+ module Trycourier
2
+ module Models
3
+ type audience_filter =
4
+ {
5
+ operator: Trycourier::Models::AudienceFilter::operator,
6
+ path: Trycourier::Models::AudienceFilter::path,
7
+ value: String
8
+ }
9
+
10
+ class AudienceFilter < Trycourier::Internal::Type::BaseModel
11
+ attr_accessor operator: Trycourier::Models::AudienceFilter::operator
12
+
13
+ attr_accessor path: Trycourier::Models::AudienceFilter::path
14
+
15
+ attr_accessor value: String
16
+
17
+ def initialize: (
18
+ operator: Trycourier::Models::AudienceFilter::operator,
19
+ path: Trycourier::Models::AudienceFilter::path,
20
+ value: String
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ operator: Trycourier::Models::AudienceFilter::operator,
25
+ path: Trycourier::Models::AudienceFilter::path,
26
+ value: String
27
+ }
28
+
29
+ type operator = :MEMBER_OF
30
+
31
+ module Operator
32
+ extend Trycourier::Internal::Type::Enum
33
+
34
+ MEMBER_OF: :MEMBER_OF
35
+
36
+ def self?.values: -> ::Array[Trycourier::Models::AudienceFilter::operator]
37
+ end
38
+
39
+ type path = :account_id
40
+
41
+ module Path
42
+ extend Trycourier::Internal::Type::Enum
43
+
44
+ ACCOUNT_ID: :account_id
45
+
46
+ def self?.values: -> ::Array[Trycourier::Models::AudienceFilter::path]
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,30 @@
1
+ module Trycourier
2
+ module Models
3
+ type audience_recipient =
4
+ {
5
+ audience_id: String,
6
+ data: ::Hash[Symbol, top]?,
7
+ filters: ::Array[Trycourier::AudienceFilter]?
8
+ }
9
+
10
+ class AudienceRecipient < Trycourier::Internal::Type::BaseModel
11
+ attr_accessor audience_id: String
12
+
13
+ attr_accessor data: ::Hash[Symbol, top]?
14
+
15
+ attr_accessor filters: ::Array[Trycourier::AudienceFilter]?
16
+
17
+ def initialize: (
18
+ audience_id: String,
19
+ ?data: ::Hash[Symbol, top]?,
20
+ ?filters: ::Array[Trycourier::AudienceFilter]?
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ audience_id: String,
25
+ data: ::Hash[Symbol, top]?,
26
+ filters: ::Array[Trycourier::AudienceFilter]?
27
+ }
28
+ end
29
+ end
30
+ end
@@ -1,7 +1,11 @@
1
1
  module Trycourier
2
2
  module Models
3
3
  type audience_update_params =
4
- { description: String?, filter: Trycourier::Filter?, name: String? }
4
+ {
5
+ description: String?,
6
+ filter: Trycourier::Models::filter?,
7
+ name: String?
8
+ }
5
9
  & Trycourier::Internal::Type::request_parameters
6
10
 
7
11
  class AudienceUpdateParams < Trycourier::Internal::Type::BaseModel
@@ -10,20 +14,20 @@ module Trycourier
10
14
 
11
15
  attr_accessor description: String?
12
16
 
13
- attr_accessor filter: Trycourier::Filter?
17
+ attr_accessor filter: Trycourier::Models::filter?
14
18
 
15
19
  attr_accessor name: String?
16
20
 
17
21
  def initialize: (
18
22
  ?description: String?,
19
- ?filter: Trycourier::Filter?,
23
+ ?filter: Trycourier::Models::filter?,
20
24
  ?name: String?,
21
25
  ?request_options: Trycourier::request_opts
22
26
  ) -> void
23
27
 
24
28
  def to_hash: -> {
25
29
  description: String?,
26
- filter: Trycourier::Filter?,
30
+ filter: Trycourier::Models::filter?,
27
31
  name: String?,
28
32
  request_options: Trycourier::RequestOptions
29
33
  }
@@ -1,22 +1,22 @@
1
1
  module Trycourier
2
2
  module Models
3
3
  type bulk_create_job_params =
4
- { message: Trycourier::Models::inbound_bulk_message }
4
+ { message: Trycourier::InboundBulkMessage }
5
5
  & Trycourier::Internal::Type::request_parameters
6
6
 
7
7
  class BulkCreateJobParams < Trycourier::Internal::Type::BaseModel
8
8
  extend Trycourier::Internal::Type::RequestParameters::Converter
9
9
  include Trycourier::Internal::Type::RequestParameters
10
10
 
11
- attr_accessor message: Trycourier::Models::inbound_bulk_message
11
+ attr_accessor message: Trycourier::InboundBulkMessage
12
12
 
13
13
  def initialize: (
14
- message: Trycourier::Models::inbound_bulk_message,
14
+ message: Trycourier::InboundBulkMessage,
15
15
  ?request_options: Trycourier::request_opts
16
16
  ) -> void
17
17
 
18
18
  def to_hash: -> {
19
- message: Trycourier::Models::inbound_bulk_message,
19
+ message: Trycourier::InboundBulkMessage,
20
20
  request_options: Trycourier::RequestOptions
21
21
  }
22
22
  end
@@ -14,7 +14,7 @@ module Trycourier
14
14
 
15
15
  type job =
16
16
  {
17
- definition: Trycourier::Models::inbound_bulk_message,
17
+ definition: Trycourier::InboundBulkMessage,
18
18
  enqueued: Integer,
19
19
  failures: Integer,
20
20
  received: Integer,
@@ -22,7 +22,7 @@ module Trycourier
22
22
  }
23
23
 
24
24
  class Job < Trycourier::Internal::Type::BaseModel
25
- attr_accessor definition: Trycourier::Models::inbound_bulk_message
25
+ attr_accessor definition: Trycourier::InboundBulkMessage
26
26
 
27
27
  attr_accessor enqueued: Integer
28
28
 
@@ -33,7 +33,7 @@ module Trycourier
33
33
  attr_accessor status: Trycourier::Models::BulkRetrieveJobResponse::Job::status
34
34
 
35
35
  def initialize: (
36
- definition: Trycourier::Models::inbound_bulk_message,
36
+ definition: Trycourier::InboundBulkMessage,
37
37
  enqueued: Integer,
38
38
  failures: Integer,
39
39
  received: Integer,
@@ -41,7 +41,7 @@ module Trycourier
41
41
  ) -> void
42
42
 
43
43
  def to_hash: -> {
44
- definition: Trycourier::Models::inbound_bulk_message,
44
+ definition: Trycourier::InboundBulkMessage,
45
45
  enqueued: Integer,
46
46
  failures: Integer,
47
47
  received: Integer,
@@ -0,0 +1,5 @@
1
+ module Trycourier
2
+ module Models
3
+ class DeviceType = String
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ module Trycourier
2
+ module Models
3
+ type discord = Trycourier::SendToChannel | Trycourier::SendDirectMessage
4
+
5
+ module Discord
6
+ extend Trycourier::Internal::Type::Union
7
+
8
+ def self?.variants: -> ::Array[Trycourier::Models::discord]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Trycourier
2
+ module Models
3
+ type expo = Trycourier::Token | Trycourier::MultipleTokens
4
+
5
+ module Expo
6
+ extend Trycourier::Internal::Type::Union
7
+
8
+ def self?.variants: -> ::Array[Trycourier::Models::expo]
9
+ end
10
+ end
11
+ end
@@ -1,69 +1,12 @@
1
1
  module Trycourier
2
2
  module Models
3
3
  type filter =
4
- {
5
- operator: Trycourier::Models::Filter::operator,
6
- path: String,
7
- value: String
8
- }
4
+ Trycourier::SingleFilterConfig | Trycourier::NestedFilterConfig
9
5
 
10
- class Filter < Trycourier::Internal::Type::BaseModel
11
- attr_accessor operator: Trycourier::Models::Filter::operator
6
+ module Filter
7
+ extend Trycourier::Internal::Type::Union
12
8
 
13
- attr_accessor path: String
14
-
15
- attr_accessor value: String
16
-
17
- def initialize: (
18
- operator: Trycourier::Models::Filter::operator,
19
- path: String,
20
- value: String
21
- ) -> void
22
-
23
- def to_hash: -> {
24
- operator: Trycourier::Models::Filter::operator,
25
- path: String,
26
- value: String
27
- }
28
-
29
- type operator =
30
- :ENDS_WITH
31
- | :EQ
32
- | :EXISTS
33
- | :GT
34
- | :GTE
35
- | :INCLUDES
36
- | :IS_AFTER
37
- | :IS_BEFORE
38
- | :LT
39
- | :LTE
40
- | :NEQ
41
- | :OMIT
42
- | :STARTS_WITH
43
- | :AND
44
- | :OR
45
-
46
- module Operator
47
- extend Trycourier::Internal::Type::Enum
48
-
49
- ENDS_WITH: :ENDS_WITH
50
- EQ: :EQ
51
- EXISTS: :EXISTS
52
- GT: :GT
53
- GTE: :GTE
54
- INCLUDES: :INCLUDES
55
- IS_AFTER: :IS_AFTER
56
- IS_BEFORE: :IS_BEFORE
57
- LT: :LT
58
- LTE: :LTE
59
- NEQ: :NEQ
60
- OMIT: :OMIT
61
- STARTS_WITH: :STARTS_WITH
62
- AND: :AND
63
- OR: :OR
64
-
65
- def self?.values: -> ::Array[Trycourier::Models::Filter::operator]
66
- end
9
+ def self?.variants: -> ::Array[Trycourier::Models::filter]
67
10
  end
68
11
  end
69
12
  end
@@ -1,69 +1,12 @@
1
1
  module Trycourier
2
2
  module Models
3
3
  type filter_config =
4
- {
5
- operator: Trycourier::Models::FilterConfig::operator,
6
- path: String,
7
- value: String
8
- }
4
+ Trycourier::SingleFilterConfig | Trycourier::NestedFilterConfig
9
5
 
10
- class FilterConfig < Trycourier::Internal::Type::BaseModel
11
- attr_accessor operator: Trycourier::Models::FilterConfig::operator
6
+ module FilterConfig
7
+ extend Trycourier::Internal::Type::Union
12
8
 
13
- attr_accessor path: String
14
-
15
- attr_accessor value: String
16
-
17
- def initialize: (
18
- operator: Trycourier::Models::FilterConfig::operator,
19
- path: String,
20
- value: String
21
- ) -> void
22
-
23
- def to_hash: -> {
24
- operator: Trycourier::Models::FilterConfig::operator,
25
- path: String,
26
- value: String
27
- }
28
-
29
- type operator =
30
- :ENDS_WITH
31
- | :EQ
32
- | :EXISTS
33
- | :GT
34
- | :GTE
35
- | :INCLUDES
36
- | :IS_AFTER
37
- | :IS_BEFORE
38
- | :LT
39
- | :LTE
40
- | :NEQ
41
- | :OMIT
42
- | :STARTS_WITH
43
- | :AND
44
- | :OR
45
-
46
- module Operator
47
- extend Trycourier::Internal::Type::Enum
48
-
49
- ENDS_WITH: :ENDS_WITH
50
- EQ: :EQ
51
- EXISTS: :EXISTS
52
- GT: :GT
53
- GTE: :GTE
54
- INCLUDES: :INCLUDES
55
- IS_AFTER: :IS_AFTER
56
- IS_BEFORE: :IS_BEFORE
57
- LT: :LT
58
- LTE: :LTE
59
- NEQ: :NEQ
60
- OMIT: :OMIT
61
- STARTS_WITH: :STARTS_WITH
62
- AND: :AND
63
- OR: :OR
64
-
65
- def self?.values: -> ::Array[Trycourier::Models::FilterConfig::operator]
66
- end
9
+ def self?.variants: -> ::Array[Trycourier::Models::filter_config]
67
10
  end
68
11
  end
69
12
  end