knockapi 1.17.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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/models/identify_user_request.rb +2 -2
  5. data/lib/knockapi/models/inline_identify_user_request.rb +2 -2
  6. data/lib/knockapi/models/inline_object_request.rb +2 -2
  7. data/lib/knockapi/models/object_set_params.rb +2 -2
  8. data/lib/knockapi/models/objects/bulk_set_params.rb +2 -2
  9. data/lib/knockapi/models/recipients/channel_data_request.rb +119 -3
  10. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +117 -1
  11. data/lib/knockapi/models/tenant_request.rb +2 -2
  12. data/lib/knockapi/models/tenant_set_params.rb +2 -2
  13. data/lib/knockapi/resources/objects.rb +2 -2
  14. data/lib/knockapi/resources/tenants.rb +1 -1
  15. data/lib/knockapi/resources/users.rb +2 -2
  16. data/lib/knockapi/version.rb +1 -1
  17. data/rbi/knockapi/models/identify_user_request.rbi +6 -0
  18. data/rbi/knockapi/models/inline_identify_user_request.rbi +6 -0
  19. data/rbi/knockapi/models/inline_object_request.rbi +6 -0
  20. data/rbi/knockapi/models/object_set_params.rbi +8 -0
  21. data/rbi/knockapi/models/objects/bulk_set_params.rbi +6 -0
  22. data/rbi/knockapi/models/recipients/channel_data_request.rbi +230 -0
  23. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +224 -0
  24. data/rbi/knockapi/models/tenant_request.rbi +6 -0
  25. data/rbi/knockapi/models/tenant_set_params.rbi +6 -0
  26. data/rbi/knockapi/resources/objects.rbi +4 -0
  27. data/rbi/knockapi/resources/tenants.rbi +2 -0
  28. data/rbi/knockapi/resources/users.rbi +4 -0
  29. data/sig/knockapi/models/recipients/channel_data_request.rbs +81 -0
  30. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +81 -0
  31. metadata +2 -2
@@ -24,7 +24,9 @@ module Knockapi
24
24
  Symbol,
25
25
  T.any(
26
26
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
27
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
27
28
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
29
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
28
30
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
29
31
  Knockapi::Recipients::SlackChannelData,
30
32
  Knockapi::Recipients::MsTeamsChannelData,
@@ -61,7 +63,9 @@ module Knockapi
61
63
  Symbol,
62
64
  T.any(
63
65
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
66
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
64
67
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
68
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
65
69
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
66
70
  Knockapi::Recipients::SlackChannelData::OrHash,
67
71
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -106,7 +110,9 @@ module Knockapi
106
110
  Symbol,
107
111
  T.any(
108
112
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
113
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
109
114
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
115
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
110
116
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
111
117
  Knockapi::Recipients::SlackChannelData,
112
118
  Knockapi::Recipients::MsTeamsChannelData,
@@ -19,7 +19,9 @@ module Knockapi
19
19
  Symbol,
20
20
  T.any(
21
21
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
22
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
22
23
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
24
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
23
25
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
24
26
  Knockapi::Recipients::SlackChannelData,
25
27
  Knockapi::Recipients::MsTeamsChannelData,
@@ -38,7 +40,9 @@ module Knockapi
38
40
  Symbol,
39
41
  T.any(
40
42
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
43
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
41
44
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
45
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
42
46
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
43
47
  Knockapi::Recipients::SlackChannelData::OrHash,
44
48
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -86,7 +90,9 @@ module Knockapi
86
90
  Symbol,
87
91
  T.any(
88
92
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
93
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
89
94
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
95
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
90
96
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
91
97
  Knockapi::Recipients::SlackChannelData::OrHash,
92
98
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -127,7 +133,9 @@ module Knockapi
127
133
  Symbol,
128
134
  T.any(
129
135
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
136
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
130
137
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
138
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
131
139
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
132
140
  Knockapi::Recipients::SlackChannelData,
133
141
  Knockapi::Recipients::MsTeamsChannelData,
@@ -61,7 +61,9 @@ module Knockapi
61
61
  Symbol,
62
62
  T.any(
63
63
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
64
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
64
65
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
66
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
65
67
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
66
68
  Knockapi::Recipients::SlackChannelData,
67
69
  Knockapi::Recipients::MsTeamsChannelData,
@@ -99,7 +101,9 @@ module Knockapi
99
101
  Symbol,
100
102
  T.any(
101
103
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
104
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
102
105
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
106
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
103
107
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
104
108
  Knockapi::Recipients::SlackChannelData::OrHash,
105
109
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -141,7 +145,9 @@ module Knockapi
141
145
  Symbol,
142
146
  T.any(
143
147
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
148
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
144
149
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
150
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
145
151
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
146
152
  Knockapi::Recipients::SlackChannelData,
147
153
  Knockapi::Recipients::MsTeamsChannelData,
@@ -17,7 +17,9 @@ module Knockapi
17
17
  returns(
18
18
  T.any(
19
19
  Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
20
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataDevicesOnly,
20
21
  Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
22
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataDevicesOnly,
21
23
  Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
22
24
  Knockapi::Recipients::SlackChannelData,
23
25
  Knockapi::Recipients::MsTeamsChannelData,
@@ -33,7 +35,9 @@ module Knockapi
33
35
  data:
34
36
  T.any(
35
37
  Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly::OrHash,
38
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataDevicesOnly::OrHash,
36
39
  Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly::OrHash,
40
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataDevicesOnly::OrHash,
37
41
  Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly::OrHash,
38
42
  Knockapi::Recipients::SlackChannelData::OrHash,
39
43
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -53,7 +57,9 @@ module Knockapi
53
57
  data:
54
58
  T.any(
55
59
  Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
60
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataDevicesOnly,
56
61
  Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
62
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataDevicesOnly,
57
63
  Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
58
64
  Knockapi::Recipients::SlackChannelData,
59
65
  Knockapi::Recipients::MsTeamsChannelData,
@@ -73,7 +79,9 @@ module Knockapi
73
79
  T.type_alias do
74
80
  T.any(
75
81
  Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly,
82
+ Knockapi::Recipients::ChannelDataRequest::Data::PushChannelDataDevicesOnly,
76
83
  Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly,
84
+ Knockapi::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataDevicesOnly,
77
85
  Knockapi::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly,
78
86
  Knockapi::Recipients::SlackChannelData,
79
87
  Knockapi::Recipients::MsTeamsChannelData,
@@ -107,6 +115,115 @@ module Knockapi
107
115
  end
108
116
  end
109
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
+
110
227
  class AwssnsPushChannelDataTargetArNsOnly < Knockapi::Internal::Type::BaseModel
111
228
  OrHash =
112
229
  T.type_alias do
@@ -137,6 +254,119 @@ module Knockapi
137
254
  end
138
255
  end
139
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
+
140
370
  class OneSignalChannelDataPlayerIDsOnly < Knockapi::Internal::Type::BaseModel
141
371
  OrHash =
142
372
  T.type_alias do
@@ -11,7 +11,9 @@ module Knockapi
11
11
  T.type_alias do
12
12
  T.any(
13
13
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
14
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
14
15
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
16
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
15
17
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
16
18
  Knockapi::Recipients::SlackChannelData,
17
19
  Knockapi::Recipients::MsTeamsChannelData,
@@ -45,6 +47,115 @@ module Knockapi
45
47
  end
46
48
  end
47
49
 
50
+ class PushChannelDataDevicesOnly < Knockapi::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias do
53
+ T.any(
54
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
55
+ Knockapi::Internal::AnyHash
56
+ )
57
+ end
58
+
59
+ # A list of devices. Each device contains a token, and optionally a locale and
60
+ # timezone.
61
+ sig do
62
+ returns(
63
+ T::Array[
64
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::Device
65
+ ]
66
+ )
67
+ end
68
+ attr_accessor :devices
69
+
70
+ # Push channel data.
71
+ sig do
72
+ params(
73
+ devices:
74
+ T::Array[
75
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::Device::OrHash
76
+ ]
77
+ ).returns(T.attached_class)
78
+ end
79
+ def self.new(
80
+ # A list of devices. Each device contains a token, and optionally a locale and
81
+ # timezone.
82
+ devices:
83
+ )
84
+ end
85
+
86
+ sig do
87
+ override.returns(
88
+ {
89
+ devices:
90
+ T::Array[
91
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::Device
92
+ ]
93
+ }
94
+ )
95
+ end
96
+ def to_hash
97
+ end
98
+
99
+ class Device < Knockapi::Internal::Type::BaseModel
100
+ OrHash =
101
+ T.type_alias do
102
+ T.any(
103
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::Device,
104
+ Knockapi::Internal::AnyHash
105
+ )
106
+ end
107
+
108
+ # The device token to send the push notification to.
109
+ sig { returns(String) }
110
+ attr_accessor :token
111
+
112
+ # The locale of the object. Used for
113
+ # [message localization](/concepts/translations).
114
+ sig { returns(T.nilable(String)) }
115
+ attr_accessor :locale
116
+
117
+ # The timezone of the object. Must be a
118
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
119
+ # Used
120
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
121
+ sig { returns(T.nilable(String)) }
122
+ attr_accessor :timezone
123
+
124
+ sig do
125
+ params(
126
+ token: String,
127
+ locale: T.nilable(String),
128
+ timezone: T.nilable(String)
129
+ ).returns(T.attached_class)
130
+ end
131
+ def self.new(
132
+ # The device token to send the push notification to.
133
+ token:,
134
+ # The locale of the object. Used for
135
+ # [message localization](/concepts/translations).
136
+ locale: nil,
137
+ # The timezone of the object. Must be a
138
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
139
+ # Used
140
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
141
+ timezone: nil
142
+ )
143
+ end
144
+
145
+ sig do
146
+ override.returns(
147
+ {
148
+ token: String,
149
+ locale: T.nilable(String),
150
+ timezone: T.nilable(String)
151
+ }
152
+ )
153
+ end
154
+ def to_hash
155
+ end
156
+ end
157
+ end
158
+
48
159
  class AwssnsPushChannelDataTargetArNsOnly < Knockapi::Internal::Type::BaseModel
49
160
  OrHash =
50
161
  T.type_alias do
@@ -75,6 +186,119 @@ module Knockapi
75
186
  end
76
187
  end
77
188
 
189
+ class AwssnsPushChannelDataDevicesOnly < Knockapi::Internal::Type::BaseModel
190
+ OrHash =
191
+ T.type_alias do
192
+ T.any(
193
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
194
+ Knockapi::Internal::AnyHash
195
+ )
196
+ end
197
+
198
+ # A list of devices. Each device contains a target_arn, and optionally a locale
199
+ # and timezone.
200
+ sig do
201
+ returns(
202
+ T::Array[
203
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::Device
204
+ ]
205
+ )
206
+ end
207
+ attr_accessor :devices
208
+
209
+ # AWS SNS push channel data.
210
+ sig do
211
+ params(
212
+ devices:
213
+ T::Array[
214
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::Device::OrHash
215
+ ]
216
+ ).returns(T.attached_class)
217
+ end
218
+ def self.new(
219
+ # A list of devices. Each device contains a target_arn, and optionally a locale
220
+ # and timezone.
221
+ devices:
222
+ )
223
+ end
224
+
225
+ sig do
226
+ override.returns(
227
+ {
228
+ devices:
229
+ T::Array[
230
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::Device
231
+ ]
232
+ }
233
+ )
234
+ end
235
+ def to_hash
236
+ end
237
+
238
+ class Device < Knockapi::Internal::Type::BaseModel
239
+ OrHash =
240
+ T.type_alias do
241
+ T.any(
242
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::Device,
243
+ Knockapi::Internal::AnyHash
244
+ )
245
+ end
246
+
247
+ # The ARN of a platform endpoint associated with a platform application and a
248
+ # device token. See
249
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
250
+ sig { returns(String) }
251
+ attr_accessor :target_arn
252
+
253
+ # The locale of the object. Used for
254
+ # [message localization](/concepts/translations).
255
+ sig { returns(T.nilable(String)) }
256
+ attr_accessor :locale
257
+
258
+ # The timezone of the object. Must be a
259
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
260
+ # Used
261
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
262
+ sig { returns(T.nilable(String)) }
263
+ attr_accessor :timezone
264
+
265
+ sig do
266
+ params(
267
+ target_arn: String,
268
+ locale: T.nilable(String),
269
+ timezone: T.nilable(String)
270
+ ).returns(T.attached_class)
271
+ end
272
+ def self.new(
273
+ # The ARN of a platform endpoint associated with a platform application and a
274
+ # device token. See
275
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
276
+ target_arn:,
277
+ # The locale of the object. Used for
278
+ # [message localization](/concepts/translations).
279
+ locale: nil,
280
+ # The timezone of the object. Must be a
281
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
282
+ # Used
283
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
284
+ timezone: nil
285
+ )
286
+ end
287
+
288
+ sig do
289
+ override.returns(
290
+ {
291
+ target_arn: String,
292
+ locale: T.nilable(String),
293
+ timezone: T.nilable(String)
294
+ }
295
+ )
296
+ end
297
+ def to_hash
298
+ end
299
+ end
300
+ end
301
+
78
302
  class OneSignalChannelDataPlayerIDsOnly < Knockapi::Internal::Type::BaseModel
79
303
  OrHash =
80
304
  T.type_alias do
@@ -20,7 +20,9 @@ module Knockapi
20
20
  Symbol,
21
21
  T.any(
22
22
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
23
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
23
24
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
25
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
24
26
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
25
27
  Knockapi::Recipients::SlackChannelData,
26
28
  Knockapi::Recipients::MsTeamsChannelData,
@@ -60,7 +62,9 @@ module Knockapi
60
62
  Symbol,
61
63
  T.any(
62
64
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
65
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
63
66
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
67
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
64
68
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
65
69
  Knockapi::Recipients::SlackChannelData::OrHash,
66
70
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -102,7 +106,9 @@ module Knockapi
102
106
  Symbol,
103
107
  T.any(
104
108
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
109
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
105
110
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
111
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
106
112
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
107
113
  Knockapi::Recipients::SlackChannelData,
108
114
  Knockapi::Recipients::MsTeamsChannelData,
@@ -19,7 +19,9 @@ module Knockapi
19
19
  Symbol,
20
20
  T.any(
21
21
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
22
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
22
23
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
24
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
23
25
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
24
26
  Knockapi::Recipients::SlackChannelData,
25
27
  Knockapi::Recipients::MsTeamsChannelData,
@@ -46,7 +48,9 @@ module Knockapi
46
48
  Symbol,
47
49
  T.any(
48
50
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
51
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
49
52
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
53
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
50
54
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
51
55
  Knockapi::Recipients::SlackChannelData::OrHash,
52
56
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
@@ -76,7 +80,9 @@ module Knockapi
76
80
  Symbol,
77
81
  T.any(
78
82
  Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
83
+ Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
79
84
  Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
85
+ Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
80
86
  Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
81
87
  Knockapi::Recipients::SlackChannelData,
82
88
  Knockapi::Recipients::MsTeamsChannelData,