knockapi 1.16.0 → 1.17.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/internal/transport/pooled_net_requester.rb +30 -24
  5. data/lib/knockapi/internal/util.rb +5 -5
  6. data/lib/knockapi/models/identify_user_request.rb +2 -2
  7. data/lib/knockapi/models/inline_identify_user_request.rb +2 -2
  8. data/lib/knockapi/models/inline_object_request.rb +2 -2
  9. data/lib/knockapi/models/message.rb +94 -3
  10. data/lib/knockapi/models/messages/batch_archive_response.rb +1 -1
  11. data/lib/knockapi/models/messages/batch_mark_as_interacted_response.rb +1 -1
  12. data/lib/knockapi/models/messages/batch_mark_as_read_response.rb +1 -1
  13. data/lib/knockapi/models/messages/batch_mark_as_seen_response.rb +1 -1
  14. data/lib/knockapi/models/messages/batch_mark_as_unread_response.rb +1 -1
  15. data/lib/knockapi/models/messages/batch_mark_as_unseen_response.rb +1 -1
  16. data/lib/knockapi/models/messages/batch_unarchive_response.rb +1 -1
  17. data/lib/knockapi/models/object_set_params.rb +2 -2
  18. data/lib/knockapi/models/objects/bulk_set_params.rb +2 -2
  19. data/lib/knockapi/models/recipients/channel_data.rb +133 -11
  20. data/lib/knockapi/models/recipients/channel_data_request.rb +36 -10
  21. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +34 -8
  22. data/lib/knockapi/models/recipients/preference_set.rb +130 -3
  23. data/lib/knockapi/models/recipients/preference_set_request.rb +136 -3
  24. data/lib/knockapi/models/tenant_request.rb +2 -2
  25. data/lib/knockapi/models/tenant_set_params.rb +2 -2
  26. data/lib/knockapi/models/users/guide_get_channel_response.rb +270 -34
  27. data/lib/knockapi/resources/messages/batch.rb +7 -7
  28. data/lib/knockapi/resources/objects.rb +7 -3
  29. data/lib/knockapi/resources/tenants.rb +1 -1
  30. data/lib/knockapi/resources/users.rb +7 -3
  31. data/lib/knockapi/version.rb +1 -1
  32. data/lib/knockapi.rb +0 -2
  33. data/rbi/knockapi/models/identify_user_request.rbi +9 -9
  34. data/rbi/knockapi/models/inline_identify_user_request.rbi +9 -9
  35. data/rbi/knockapi/models/inline_object_request.rbi +9 -9
  36. data/rbi/knockapi/models/message.rbi +123 -2
  37. data/rbi/knockapi/models/messages/batch_archive_response.rbi +1 -1
  38. data/rbi/knockapi/models/messages/batch_mark_as_interacted_response.rbi +1 -1
  39. data/rbi/knockapi/models/messages/batch_mark_as_read_response.rbi +1 -1
  40. data/rbi/knockapi/models/messages/batch_mark_as_seen_response.rbi +1 -1
  41. data/rbi/knockapi/models/messages/batch_mark_as_unread_response.rbi +1 -1
  42. data/rbi/knockapi/models/messages/batch_mark_as_unseen_response.rbi +1 -1
  43. data/rbi/knockapi/models/messages/batch_unarchive_response.rbi +1 -1
  44. data/rbi/knockapi/models/object_set_params.rbi +12 -12
  45. data/rbi/knockapi/models/objects/bulk_set_params.rbi +9 -9
  46. data/rbi/knockapi/models/recipients/channel_data.rbi +250 -12
  47. data/rbi/knockapi/models/recipients/channel_data_request.rbi +68 -14
  48. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +57 -5
  49. data/rbi/knockapi/models/recipients/preference_set.rbi +279 -0
  50. data/rbi/knockapi/models/recipients/preference_set_request.rbi +299 -0
  51. data/rbi/knockapi/models/tenant_request.rbi +9 -9
  52. data/rbi/knockapi/models/tenant_set_params.rbi +9 -9
  53. data/rbi/knockapi/models/users/guide_get_channel_response.rbi +532 -70
  54. data/rbi/knockapi/resources/messages/batch.rbi +7 -7
  55. data/rbi/knockapi/resources/objects.rbi +22 -6
  56. data/rbi/knockapi/resources/tenants.rbi +3 -3
  57. data/rbi/knockapi/resources/users.rbi +22 -6
  58. data/sig/knockapi/models/message.rbs +79 -0
  59. data/sig/knockapi/models/messages/batch_archive_response.rbs +1 -1
  60. data/sig/knockapi/models/messages/batch_mark_as_interacted_response.rbs +1 -2
  61. data/sig/knockapi/models/messages/batch_mark_as_read_response.rbs +1 -1
  62. data/sig/knockapi/models/messages/batch_mark_as_seen_response.rbs +1 -1
  63. data/sig/knockapi/models/messages/batch_mark_as_unread_response.rbs +1 -1
  64. data/sig/knockapi/models/messages/batch_mark_as_unseen_response.rbs +1 -1
  65. data/sig/knockapi/models/messages/batch_unarchive_response.rbs +1 -1
  66. data/sig/knockapi/models/recipients/channel_data.rbs +97 -7
  67. data/sig/knockapi/models/recipients/channel_data_request.rbs +27 -5
  68. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +27 -5
  69. data/sig/knockapi/models/recipients/preference_set.rbs +87 -0
  70. data/sig/knockapi/models/recipients/preference_set_request.rbs +87 -0
  71. data/sig/knockapi/models/users/guide_get_channel_response.rbs +294 -31
  72. data/sig/knockapi/resources/objects.rbs +2 -0
  73. data/sig/knockapi/resources/users.rbs +2 -0
  74. metadata +2 -8
  75. data/lib/knockapi/models/recipients/one_signal_channel_data.rb +0 -20
  76. data/lib/knockapi/models/recipients/push_channel_data.rb +0 -20
  77. data/rbi/knockapi/models/recipients/one_signal_channel_data.rbi +0 -33
  78. data/rbi/knockapi/models/recipients/push_channel_data.rbi +0 -33
  79. data/sig/knockapi/models/recipients/one_signal_channel_data.rbs +0 -15
  80. data/sig/knockapi/models/recipients/push_channel_data.rbs +0 -15
@@ -51,12 +51,12 @@ module Knockapi
51
51
  channel_id: String,
52
52
  data:
53
53
  T.any(
54
- Knockapi::Recipients::PushChannelData::OrHash,
54
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull::OrHash,
55
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull::OrHash,
56
+ Knockapi::Recipients::RecipientsChannelData::Data::OneSignalChannelDataPlayerIDsOnly::OrHash,
55
57
  Knockapi::Recipients::SlackChannelData::OrHash,
56
58
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
57
- Knockapi::Recipients::DiscordChannelData::OrHash,
58
- Knockapi::Recipients::OneSignalChannelData::OrHash,
59
- Knockapi::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData::OrHash
59
+ Knockapi::Recipients::DiscordChannelData::OrHash
60
60
  ),
61
61
  provider:
62
62
  Knockapi::Recipients::RecipientsChannelData::Provider::OrSymbol
@@ -95,24 +95,152 @@ module Knockapi
95
95
  Variants =
96
96
  T.type_alias do
97
97
  T.any(
98
- Knockapi::Recipients::PushChannelData,
98
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull,
99
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull,
100
+ Knockapi::Recipients::RecipientsChannelData::Data::OneSignalChannelDataPlayerIDsOnly,
99
101
  Knockapi::Recipients::SlackChannelData,
100
102
  Knockapi::Recipients::MsTeamsChannelData,
101
- Knockapi::Recipients::DiscordChannelData,
102
- Knockapi::Recipients::OneSignalChannelData,
103
- Knockapi::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData
103
+ Knockapi::Recipients::DiscordChannelData
104
104
  )
105
105
  end
106
106
 
107
- class AwsSnsPushChannelData < Knockapi::Internal::Type::BaseModel
107
+ class PushChannelDataFull < Knockapi::Internal::Type::BaseModel
108
108
  OrHash =
109
109
  T.type_alias do
110
110
  T.any(
111
- Knockapi::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData,
111
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull,
112
112
  Knockapi::Internal::AnyHash
113
113
  )
114
114
  end
115
115
 
116
+ # A list of devices. Each device contains a token, and optionally a locale and
117
+ # timezone.
118
+ sig do
119
+ returns(
120
+ T::Array[
121
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull::Device
122
+ ]
123
+ )
124
+ end
125
+ attr_accessor :devices
126
+
127
+ # A list of push channel tokens.
128
+ sig { returns(T::Array[String]) }
129
+ attr_accessor :tokens
130
+
131
+ # Push channel data.
132
+ sig do
133
+ params(
134
+ devices:
135
+ T::Array[
136
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull::Device::OrHash
137
+ ],
138
+ tokens: T::Array[String]
139
+ ).returns(T.attached_class)
140
+ end
141
+ def self.new(
142
+ # A list of devices. Each device contains a token, and optionally a locale and
143
+ # timezone.
144
+ devices:,
145
+ # A list of push channel tokens.
146
+ tokens:
147
+ )
148
+ end
149
+
150
+ sig do
151
+ override.returns(
152
+ {
153
+ devices:
154
+ T::Array[
155
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull::Device
156
+ ],
157
+ tokens: T::Array[String]
158
+ }
159
+ )
160
+ end
161
+ def to_hash
162
+ end
163
+
164
+ class Device < Knockapi::Internal::Type::BaseModel
165
+ OrHash =
166
+ T.type_alias do
167
+ T.any(
168
+ Knockapi::Recipients::RecipientsChannelData::Data::PushChannelDataFull::Device,
169
+ Knockapi::Internal::AnyHash
170
+ )
171
+ end
172
+
173
+ # The device token to send the push notification to.
174
+ sig { returns(String) }
175
+ attr_accessor :token
176
+
177
+ # The locale of the object. Used for
178
+ # [message localization](/concepts/translations).
179
+ sig { returns(T.nilable(String)) }
180
+ attr_accessor :locale
181
+
182
+ # The timezone of the object. Must be a
183
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
184
+ # Used
185
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
186
+ sig { returns(T.nilable(String)) }
187
+ attr_accessor :timezone
188
+
189
+ sig do
190
+ params(
191
+ token: String,
192
+ locale: T.nilable(String),
193
+ timezone: T.nilable(String)
194
+ ).returns(T.attached_class)
195
+ end
196
+ def self.new(
197
+ # The device token to send the push notification to.
198
+ token:,
199
+ # The locale of the object. Used for
200
+ # [message localization](/concepts/translations).
201
+ locale: nil,
202
+ # The timezone of the object. Must be a
203
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
204
+ # Used
205
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
206
+ timezone: nil
207
+ )
208
+ end
209
+
210
+ sig do
211
+ override.returns(
212
+ {
213
+ token: String,
214
+ locale: T.nilable(String),
215
+ timezone: T.nilable(String)
216
+ }
217
+ )
218
+ end
219
+ def to_hash
220
+ end
221
+ end
222
+ end
223
+
224
+ class AwssnsPushChannelDataFull < Knockapi::Internal::Type::BaseModel
225
+ OrHash =
226
+ T.type_alias do
227
+ T.any(
228
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull,
229
+ Knockapi::Internal::AnyHash
230
+ )
231
+ end
232
+
233
+ # A list of devices. Each device contains a target_arn, and optionally a locale
234
+ # and timezone.
235
+ sig do
236
+ returns(
237
+ T::Array[
238
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull::Device
239
+ ]
240
+ )
241
+ end
242
+ attr_accessor :devices
243
+
116
244
  # A list of platform endpoint ARNs. See
117
245
  # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
118
246
  sig { returns(T::Array[String]) }
@@ -120,16 +248,126 @@ module Knockapi
120
248
 
121
249
  # AWS SNS push channel data.
122
250
  sig do
123
- params(target_arns: T::Array[String]).returns(T.attached_class)
251
+ params(
252
+ devices:
253
+ T::Array[
254
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull::Device::OrHash
255
+ ],
256
+ target_arns: T::Array[String]
257
+ ).returns(T.attached_class)
124
258
  end
125
259
  def self.new(
260
+ # A list of devices. Each device contains a target_arn, and optionally a locale
261
+ # and timezone.
262
+ devices:,
126
263
  # A list of platform endpoint ARNs. See
127
264
  # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
128
265
  target_arns:
129
266
  )
130
267
  end
131
268
 
132
- sig { override.returns({ target_arns: T::Array[String] }) }
269
+ sig do
270
+ override.returns(
271
+ {
272
+ devices:
273
+ T::Array[
274
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull::Device
275
+ ],
276
+ target_arns: T::Array[String]
277
+ }
278
+ )
279
+ end
280
+ def to_hash
281
+ end
282
+
283
+ class Device < Knockapi::Internal::Type::BaseModel
284
+ OrHash =
285
+ T.type_alias do
286
+ T.any(
287
+ Knockapi::Recipients::RecipientsChannelData::Data::AwssnsPushChannelDataFull::Device,
288
+ Knockapi::Internal::AnyHash
289
+ )
290
+ end
291
+
292
+ # The ARN of a platform endpoint associated with a platform application and a
293
+ # device token. See
294
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
295
+ sig { returns(String) }
296
+ attr_accessor :target_arn
297
+
298
+ # The locale of the object. Used for
299
+ # [message localization](/concepts/translations).
300
+ sig { returns(T.nilable(String)) }
301
+ attr_accessor :locale
302
+
303
+ # The timezone of the object. Must be a
304
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
305
+ # Used
306
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
307
+ sig { returns(T.nilable(String)) }
308
+ attr_accessor :timezone
309
+
310
+ sig do
311
+ params(
312
+ target_arn: String,
313
+ locale: T.nilable(String),
314
+ timezone: T.nilable(String)
315
+ ).returns(T.attached_class)
316
+ end
317
+ def self.new(
318
+ # The ARN of a platform endpoint associated with a platform application and a
319
+ # device token. See
320
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
321
+ target_arn:,
322
+ # The locale of the object. Used for
323
+ # [message localization](/concepts/translations).
324
+ locale: nil,
325
+ # The timezone of the object. Must be a
326
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
327
+ # Used
328
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
329
+ timezone: nil
330
+ )
331
+ end
332
+
333
+ sig do
334
+ override.returns(
335
+ {
336
+ target_arn: String,
337
+ locale: T.nilable(String),
338
+ timezone: T.nilable(String)
339
+ }
340
+ )
341
+ end
342
+ def to_hash
343
+ end
344
+ end
345
+ end
346
+
347
+ class OneSignalChannelDataPlayerIDsOnly < Knockapi::Internal::Type::BaseModel
348
+ OrHash =
349
+ T.type_alias do
350
+ T.any(
351
+ Knockapi::Recipients::RecipientsChannelData::Data::OneSignalChannelDataPlayerIDsOnly,
352
+ Knockapi::Internal::AnyHash
353
+ )
354
+ end
355
+
356
+ # A list of OneSignal player IDs.
357
+ sig { returns(T::Array[String]) }
358
+ attr_accessor :player_ids
359
+
360
+ # OneSignal channel data.
361
+ sig do
362
+ params(player_ids: T::Array[String]).returns(T.attached_class)
363
+ end
364
+ def self.new(
365
+ # A list of OneSignal player IDs.
366
+ player_ids:
367
+ )
368
+ end
369
+
370
+ sig { override.returns({ player_ids: T::Array[String] }) }
133
371
  def to_hash
134
372
  end
135
373
  end
@@ -16,9 +16,9 @@ module Knockapi
16
16
  sig do
17
17
  returns(
18
18
  T.any(
19
- Knockapi::Recipients::PushChannelData,
20
- Knockapi::Recipients::OneSignalChannelData,
21
- Knockapi::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData,
19
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
20
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
21
+ Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
22
22
  Knockapi::Recipients::SlackChannelData,
23
23
  Knockapi::Recipients::MsTeamsChannelData,
24
24
  Knockapi::Recipients::DiscordChannelData
@@ -32,9 +32,9 @@ module Knockapi
32
32
  params(
33
33
  data:
34
34
  T.any(
35
- Knockapi::Recipients::PushChannelData::OrHash,
36
- Knockapi::Recipients::OneSignalChannelData::OrHash,
37
- Knockapi::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData::OrHash,
35
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly::OrHash,
36
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly::OrHash,
37
+ Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly::OrHash,
38
38
  Knockapi::Recipients::SlackChannelData::OrHash,
39
39
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
40
40
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -52,9 +52,9 @@ module Knockapi
52
52
  {
53
53
  data:
54
54
  T.any(
55
- Knockapi::Recipients::PushChannelData,
56
- Knockapi::Recipients::OneSignalChannelData,
57
- Knockapi::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData,
55
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
56
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
57
+ Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
58
58
  Knockapi::Recipients::SlackChannelData,
59
59
  Knockapi::Recipients::MsTeamsChannelData,
60
60
  Knockapi::Recipients::DiscordChannelData
@@ -72,20 +72,46 @@ module Knockapi
72
72
  Variants =
73
73
  T.type_alias do
74
74
  T.any(
75
- Knockapi::Recipients::PushChannelData,
76
- Knockapi::Recipients::OneSignalChannelData,
77
- Knockapi::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData,
75
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
76
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
77
+ Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
78
78
  Knockapi::Recipients::SlackChannelData,
79
79
  Knockapi::Recipients::MsTeamsChannelData,
80
80
  Knockapi::Recipients::DiscordChannelData
81
81
  )
82
82
  end
83
83
 
84
- class AwsSnsPushChannelData < Knockapi::Internal::Type::BaseModel
84
+ class PushChannelDataTokensOnly < Knockapi::Internal::Type::BaseModel
85
85
  OrHash =
86
86
  T.type_alias do
87
87
  T.any(
88
- Knockapi::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData,
88
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
89
+ Knockapi::Internal::AnyHash
90
+ )
91
+ end
92
+
93
+ # A list of push channel tokens.
94
+ sig { returns(T::Array[String]) }
95
+ attr_accessor :tokens
96
+
97
+ # Push channel data.
98
+ sig { params(tokens: T::Array[String]).returns(T.attached_class) }
99
+ def self.new(
100
+ # A list of push channel tokens.
101
+ tokens:
102
+ )
103
+ end
104
+
105
+ sig { override.returns({ tokens: T::Array[String] }) }
106
+ def to_hash
107
+ end
108
+ end
109
+
110
+ class AwssnsPushChannelDataTargetArNsOnly < Knockapi::Internal::Type::BaseModel
111
+ OrHash =
112
+ T.type_alias do
113
+ T.any(
114
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
89
115
  Knockapi::Internal::AnyHash
90
116
  )
91
117
  end
@@ -111,6 +137,34 @@ module Knockapi
111
137
  end
112
138
  end
113
139
 
140
+ class OneSignalChannelDataPlayerIDsOnly < Knockapi::Internal::Type::BaseModel
141
+ OrHash =
142
+ T.type_alias do
143
+ T.any(
144
+ Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
145
+ Knockapi::Internal::AnyHash
146
+ )
147
+ end
148
+
149
+ # A list of OneSignal player IDs.
150
+ sig { returns(T::Array[String]) }
151
+ attr_accessor :player_ids
152
+
153
+ # OneSignal channel data.
154
+ sig do
155
+ params(player_ids: T::Array[String]).returns(T.attached_class)
156
+ end
157
+ def self.new(
158
+ # A list of OneSignal player IDs.
159
+ player_ids:
160
+ )
161
+ end
162
+
163
+ sig { override.returns({ player_ids: T::Array[String] }) }
164
+ def to_hash
165
+ end
166
+ end
167
+
114
168
  sig do
115
169
  override.returns(
116
170
  T::Array[Knockapi::Recipients::ChannelDataRequest::Data::Variants]
@@ -10,20 +10,46 @@ module Knockapi
10
10
  Variants =
11
11
  T.type_alias do
12
12
  T.any(
13
- Knockapi::Recipients::PushChannelData,
14
- Knockapi::Recipients::OneSignalChannelData,
15
- Knockapi::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData,
13
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
14
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
15
+ Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
16
16
  Knockapi::Recipients::SlackChannelData,
17
17
  Knockapi::Recipients::MsTeamsChannelData,
18
18
  Knockapi::Recipients::DiscordChannelData
19
19
  )
20
20
  end
21
21
 
22
- class AwsSnsPushChannelData < Knockapi::Internal::Type::BaseModel
22
+ class PushChannelDataTokensOnly < Knockapi::Internal::Type::BaseModel
23
23
  OrHash =
24
24
  T.type_alias do
25
25
  T.any(
26
- Knockapi::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData,
26
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
27
+ Knockapi::Internal::AnyHash
28
+ )
29
+ end
30
+
31
+ # A list of push channel tokens.
32
+ sig { returns(T::Array[String]) }
33
+ attr_accessor :tokens
34
+
35
+ # Push channel data.
36
+ sig { params(tokens: T::Array[String]).returns(T.attached_class) }
37
+ def self.new(
38
+ # A list of push channel tokens.
39
+ tokens:
40
+ )
41
+ end
42
+
43
+ sig { override.returns({ tokens: T::Array[String] }) }
44
+ def to_hash
45
+ end
46
+ end
47
+
48
+ class AwssnsPushChannelDataTargetArNsOnly < Knockapi::Internal::Type::BaseModel
49
+ OrHash =
50
+ T.type_alias do
51
+ T.any(
52
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
27
53
  Knockapi::Internal::AnyHash
28
54
  )
29
55
  end
@@ -49,6 +75,32 @@ module Knockapi
49
75
  end
50
76
  end
51
77
 
78
+ class OneSignalChannelDataPlayerIDsOnly < Knockapi::Internal::Type::BaseModel
79
+ OrHash =
80
+ T.type_alias do
81
+ T.any(
82
+ Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
83
+ Knockapi::Internal::AnyHash
84
+ )
85
+ end
86
+
87
+ # A list of OneSignal player IDs.
88
+ sig { returns(T::Array[String]) }
89
+ attr_accessor :player_ids
90
+
91
+ # OneSignal channel data.
92
+ sig { params(player_ids: T::Array[String]).returns(T.attached_class) }
93
+ def self.new(
94
+ # A list of OneSignal player IDs.
95
+ player_ids:
96
+ )
97
+ end
98
+
99
+ sig { override.returns({ player_ids: T::Array[String] }) }
100
+ def to_hash
101
+ end
102
+ end
103
+
52
104
  sig do
53
105
  override.returns(
54
106
  T::Array[