knockapi 1.18.0 → 1.19.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/client.rb +12 -0
  5. data/lib/knockapi/internal/transport/base_client.rb +7 -1
  6. data/lib/knockapi/internal/transport/pooled_net_requester.rb +6 -2
  7. data/lib/knockapi/models/identify_user_request.rb +2 -2
  8. data/lib/knockapi/models/inline_identify_user_request.rb +2 -2
  9. data/lib/knockapi/models/inline_object_request.rb +11 -3
  10. data/lib/knockapi/models/object_set_params.rb +11 -3
  11. data/lib/knockapi/models/objects/bulk_set_params.rb +11 -3
  12. data/lib/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rb +63 -0
  13. data/lib/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rb +25 -0
  14. data/lib/knockapi/models/recipients/channel_data.rb +4 -17
  15. data/lib/knockapi/models/recipients/channel_data_request.rb +8 -162
  16. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +6 -160
  17. data/lib/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rb +20 -0
  18. data/lib/knockapi/models/recipients/preference_set.rb +12 -54
  19. data/lib/knockapi/models/recipients/preference_set_channel_setting.rb +21 -0
  20. data/lib/knockapi/models/recipients/preference_set_request.rb +12 -54
  21. data/lib/knockapi/models/recipients/push_channel_data_devices_only.rb +60 -0
  22. data/lib/knockapi/models/recipients/push_channel_data_tokens_only.rb +20 -0
  23. data/lib/knockapi/models/tenant_request.rb +11 -3
  24. data/lib/knockapi/models/tenant_set_params.rb +11 -3
  25. data/lib/knockapi/models/users/feed_list_items_params.rb +15 -1
  26. data/lib/knockapi/resources/objects.rb +6 -4
  27. data/lib/knockapi/resources/tenants.rb +4 -2
  28. data/lib/knockapi/resources/users/feeds.rb +6 -1
  29. data/lib/knockapi/resources/users.rb +3 -3
  30. data/lib/knockapi/version.rb +1 -1
  31. data/lib/knockapi.rb +7 -0
  32. data/manifest.yaml +1 -0
  33. data/rbi/knockapi/client.rbi +7 -0
  34. data/rbi/knockapi/internal/transport/base_client.rbi +5 -0
  35. data/rbi/knockapi/internal/transport/pooled_net_requester.rbi +6 -2
  36. data/rbi/knockapi/internal/type/base_model.rbi +8 -4
  37. data/rbi/knockapi/models/identify_user_request.rbi +15 -15
  38. data/rbi/knockapi/models/inline_identify_user_request.rbi +15 -15
  39. data/rbi/knockapi/models/inline_object_request.rbi +23 -15
  40. data/rbi/knockapi/models/object_set_params.rbi +28 -20
  41. data/rbi/knockapi/models/objects/bulk_set_params.rbi +23 -15
  42. data/rbi/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rbi +120 -0
  43. data/rbi/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rbi +35 -0
  44. data/rbi/knockapi/models/recipients/channel_data.rbi +2 -30
  45. data/rbi/knockapi/models/recipients/channel_data_request.rbi +20 -326
  46. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +5 -309
  47. data/rbi/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rbi +33 -0
  48. data/rbi/knockapi/models/recipients/preference_set.rbi +6 -109
  49. data/rbi/knockapi/models/recipients/preference_set_channel_setting.rbi +38 -0
  50. data/rbi/knockapi/models/recipients/preference_set_request.rbi +12 -115
  51. data/rbi/knockapi/models/recipients/push_channel_data_devices_only.rbi +114 -0
  52. data/rbi/knockapi/models/recipients/push_channel_data_tokens_only.rbi +33 -0
  53. data/rbi/knockapi/models/tenant_request.rbi +23 -15
  54. data/rbi/knockapi/models/tenant_set_params.rbi +23 -15
  55. data/rbi/knockapi/models/users/feed_list_items_params.rbi +17 -0
  56. data/rbi/knockapi/resources/objects.rbi +14 -11
  57. data/rbi/knockapi/resources/tenants.rbi +8 -5
  58. data/rbi/knockapi/resources/users/feeds.rbi +6 -0
  59. data/rbi/knockapi/resources/users.rbi +11 -11
  60. data/sig/knockapi/client.rbs +3 -0
  61. data/sig/knockapi/internal/transport/base_client.rbs +2 -0
  62. data/sig/knockapi/internal/transport/pooled_net_requester.rbs +4 -1
  63. data/sig/knockapi/models/inline_object_request.rbs +5 -0
  64. data/sig/knockapi/models/object_set_params.rbs +5 -0
  65. data/sig/knockapi/models/objects/bulk_set_params.rbs +5 -0
  66. data/sig/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rbs +44 -0
  67. data/sig/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rbs +16 -0
  68. data/sig/knockapi/models/recipients/channel_data.rbs +1 -12
  69. data/sig/knockapi/models/recipients/channel_data_request.rbs +5 -116
  70. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +5 -116
  71. data/sig/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rbs +16 -0
  72. data/sig/knockapi/models/recipients/preference_set.rbs +3 -44
  73. data/sig/knockapi/models/recipients/preference_set_channel_setting.rbs +16 -0
  74. data/sig/knockapi/models/recipients/preference_set_request.rbs +3 -44
  75. data/sig/knockapi/models/recipients/push_channel_data_devices_only.rbs +40 -0
  76. data/sig/knockapi/models/recipients/push_channel_data_tokens_only.rbs +15 -0
  77. data/sig/knockapi/models/tenant_request.rbs +5 -0
  78. data/sig/knockapi/models/tenant_set_params.rbs +5 -0
  79. data/sig/knockapi/models/users/feed_list_items_params.rbs +7 -0
  80. data/sig/knockapi/resources/objects.rbs +1 -0
  81. data/sig/knockapi/resources/tenants.rbs +1 -0
  82. data/sig/knockapi/resources/users/feeds.rbs +1 -0
  83. metadata +20 -2
@@ -16,11 +16,11 @@ module Knockapi
16
16
  sig do
17
17
  returns(
18
18
  T.any(
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,
19
+ Knockapi::Recipients::PushChannelDataTokensOnly,
20
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
21
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
22
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
23
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
24
24
  Knockapi::Recipients::SlackChannelData,
25
25
  Knockapi::Recipients::MsTeamsChannelData,
26
26
  Knockapi::Recipients::DiscordChannelData
@@ -34,11 +34,11 @@ module Knockapi
34
34
  params(
35
35
  data:
36
36
  T.any(
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,
37
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
38
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
39
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
40
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
41
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
42
42
  Knockapi::Recipients::SlackChannelData::OrHash,
43
43
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
44
44
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -56,11 +56,11 @@ module Knockapi
56
56
  {
57
57
  data:
58
58
  T.any(
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,
59
+ Knockapi::Recipients::PushChannelDataTokensOnly,
60
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
61
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
62
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
63
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
64
64
  Knockapi::Recipients::SlackChannelData,
65
65
  Knockapi::Recipients::MsTeamsChannelData,
66
66
  Knockapi::Recipients::DiscordChannelData
@@ -78,323 +78,17 @@ module Knockapi
78
78
  Variants =
79
79
  T.type_alias do
80
80
  T.any(
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,
81
+ Knockapi::Recipients::PushChannelDataTokensOnly,
82
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
83
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
84
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
85
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
86
86
  Knockapi::Recipients::SlackChannelData,
87
87
  Knockapi::Recipients::MsTeamsChannelData,
88
88
  Knockapi::Recipients::DiscordChannelData
89
89
  )
90
90
  end
91
91
 
92
- class PushChannelDataTokensOnly < Knockapi::Internal::Type::BaseModel
93
- OrHash =
94
- T.type_alias do
95
- T.any(
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,
232
- Knockapi::Internal::AnyHash
233
- )
234
- end
235
-
236
- # A list of platform endpoint ARNs. See
237
- # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
238
- sig { returns(T::Array[String]) }
239
- attr_accessor :target_arns
240
-
241
- # AWS SNS push channel data.
242
- sig do
243
- params(target_arns: T::Array[String]).returns(T.attached_class)
244
- end
245
- def self.new(
246
- # A list of platform endpoint ARNs. See
247
- # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
248
- target_arns:
249
- )
250
- end
251
-
252
- sig { override.returns({ target_arns: T::Array[String] }) }
253
- def to_hash
254
- end
255
- end
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
-
398
92
  sig do
399
93
  override.returns(
400
94
  T::Array[Knockapi::Recipients::ChannelDataRequest::Data::Variants]