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