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
@@ -15,74 +15,72 @@ module Knockapi
15
15
  # A list of guides.
16
16
  sig do
17
17
  returns(
18
- T::Array[Knockapi::Models::Users::GuideGetChannelResponse::Guide]
18
+ T::Array[Knockapi::Models::Users::GuideGetChannelResponse::Entry]
19
19
  )
20
20
  end
21
- attr_accessor :guides
21
+ attr_accessor :entries
22
22
 
23
- # The recipient of the guide.
23
+ # A map of guide group keys to their last display timestamps.
24
+ sig { returns(T::Hash[Symbol, Time]) }
25
+ attr_accessor :guide_group_display_logs
26
+
27
+ # A list of guide groups with their display sequences and intervals.
24
28
  sig do
25
29
  returns(
26
- T.nilable(
27
- Knockapi::Models::Users::GuideGetChannelResponse::Recipient
28
- )
30
+ T::Array[
31
+ Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup
32
+ ]
29
33
  )
30
34
  end
31
- attr_reader :recipient
32
-
33
- sig do
34
- params(
35
- recipient:
36
- T.nilable(
37
- Knockapi::Models::Users::GuideGetChannelResponse::Recipient::OrHash
38
- )
39
- ).void
40
- end
41
- attr_writer :recipient
35
+ attr_accessor :guide_groups
42
36
 
43
37
  # A response for a list of guides.
44
38
  sig do
45
39
  params(
46
- guides:
40
+ entries:
47
41
  T::Array[
48
- Knockapi::Models::Users::GuideGetChannelResponse::Guide::OrHash
42
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::OrHash
49
43
  ],
50
- recipient:
51
- T.nilable(
52
- Knockapi::Models::Users::GuideGetChannelResponse::Recipient::OrHash
53
- )
44
+ guide_group_display_logs: T::Hash[Symbol, Time],
45
+ guide_groups:
46
+ T::Array[
47
+ Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup::OrHash
48
+ ]
54
49
  ).returns(T.attached_class)
55
50
  end
56
51
  def self.new(
57
52
  # A list of guides.
58
- guides:,
59
- # The recipient of the guide.
60
- recipient: nil
53
+ entries:,
54
+ # A map of guide group keys to their last display timestamps.
55
+ guide_group_display_logs:,
56
+ # A list of guide groups with their display sequences and intervals.
57
+ guide_groups:
61
58
  )
62
59
  end
63
60
 
64
61
  sig do
65
62
  override.returns(
66
63
  {
67
- guides:
64
+ entries:
68
65
  T::Array[
69
- Knockapi::Models::Users::GuideGetChannelResponse::Guide
66
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry
70
67
  ],
71
- recipient:
72
- T.nilable(
73
- Knockapi::Models::Users::GuideGetChannelResponse::Recipient
74
- )
68
+ guide_group_display_logs: T::Hash[Symbol, Time],
69
+ guide_groups:
70
+ T::Array[
71
+ Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup
72
+ ]
75
73
  }
76
74
  )
77
75
  end
78
76
  def to_hash
79
77
  end
80
78
 
81
- class Guide < Knockapi::Internal::Type::BaseModel
79
+ class Entry < Knockapi::Internal::Type::BaseModel
82
80
  OrHash =
83
81
  T.type_alias do
84
82
  T.any(
85
- Knockapi::Models::Users::GuideGetChannelResponse::Guide,
83
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry,
86
84
  Knockapi::Internal::AnyHash
87
85
  )
88
86
  end
@@ -94,6 +92,59 @@ module Knockapi
94
92
  sig { params(id: String).void }
95
93
  attr_writer :id
96
94
 
95
+ # The typename of the schema.
96
+ sig { returns(T.nilable(String)) }
97
+ attr_reader :_typename
98
+
99
+ sig { params(_typename: String).void }
100
+ attr_writer :_typename
101
+
102
+ # A list of URL Patterns to evaluate user's current location to activate the
103
+ # guide, if matched
104
+ sig do
105
+ returns(
106
+ T.nilable(
107
+ T::Array[
108
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLPattern
109
+ ]
110
+ )
111
+ )
112
+ end
113
+ attr_reader :activation_url_patterns
114
+
115
+ sig do
116
+ params(
117
+ activation_url_patterns:
118
+ T::Array[
119
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLPattern::OrHash
120
+ ]
121
+ ).void
122
+ end
123
+ attr_writer :activation_url_patterns
124
+
125
+ # A list of URL rules to evaluate user's current location to activate the guide,
126
+ # if matched
127
+ sig do
128
+ returns(
129
+ T.nilable(
130
+ T::Array[
131
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLRule
132
+ ]
133
+ )
134
+ )
135
+ end
136
+ attr_reader :activation_url_rules
137
+
138
+ sig do
139
+ params(
140
+ activation_url_rules:
141
+ T::Array[
142
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLRule::OrHash
143
+ ]
144
+ ).void
145
+ end
146
+ attr_writer :activation_url_rules
147
+
97
148
  # Whether the guide is active.
98
149
  sig { returns(T.nilable(T::Boolean)) }
99
150
  attr_reader :active
@@ -101,47 +152,120 @@ module Knockapi
101
152
  sig { params(active: T::Boolean).void }
102
153
  attr_writer :active
103
154
 
104
- # The content of the guide.
155
+ sig { returns(T.nilable(T::Boolean)) }
156
+ attr_reader :bypass_global_group_limit
157
+
158
+ sig { params(bypass_global_group_limit: T::Boolean).void }
159
+ attr_writer :bypass_global_group_limit
160
+
105
161
  sig { returns(T.nilable(String)) }
106
- attr_reader :content
162
+ attr_reader :channel_id
163
+
164
+ sig { params(channel_id: String).void }
165
+ attr_writer :channel_id
107
166
 
108
- sig { params(content: String).void }
109
- attr_writer :content
167
+ sig { returns(T.nilable(Time)) }
168
+ attr_reader :inserted_at
110
169
 
111
- # The metadata of the guide.
112
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
113
- attr_reader :metadata
170
+ sig { params(inserted_at: Time).void }
171
+ attr_writer :inserted_at
114
172
 
115
- sig { params(metadata: T::Hash[Symbol, T.anything]).void }
116
- attr_writer :metadata
173
+ # The key of the guide.
174
+ sig { returns(T.nilable(String)) }
175
+ attr_reader :key
176
+
177
+ sig { params(key: String).void }
178
+ attr_writer :key
117
179
 
118
- # The title of the guide.
119
180
  sig { returns(T.nilable(String)) }
120
- attr_reader :title
181
+ attr_reader :semver
182
+
183
+ sig { params(semver: String).void }
184
+ attr_writer :semver
185
+
186
+ sig do
187
+ returns(
188
+ T.nilable(
189
+ T::Array[
190
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step
191
+ ]
192
+ )
193
+ )
194
+ end
195
+ attr_reader :steps
196
+
197
+ sig do
198
+ params(
199
+ steps:
200
+ T::Array[
201
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::OrHash
202
+ ]
203
+ ).void
204
+ end
205
+ attr_writer :steps
206
+
207
+ # The type of the guide.
208
+ sig { returns(T.nilable(String)) }
209
+ attr_reader :type
210
+
211
+ sig { params(type: String).void }
212
+ attr_writer :type
121
213
 
122
- sig { params(title: String).void }
123
- attr_writer :title
214
+ sig { returns(T.nilable(Time)) }
215
+ attr_reader :updated_at
216
+
217
+ sig { params(updated_at: Time).void }
218
+ attr_writer :updated_at
124
219
 
125
220
  sig do
126
221
  params(
127
222
  id: String,
223
+ _typename: String,
224
+ activation_url_patterns:
225
+ T::Array[
226
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLPattern::OrHash
227
+ ],
228
+ activation_url_rules:
229
+ T::Array[
230
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLRule::OrHash
231
+ ],
128
232
  active: T::Boolean,
129
- content: String,
130
- metadata: T::Hash[Symbol, T.anything],
131
- title: String
233
+ bypass_global_group_limit: T::Boolean,
234
+ channel_id: String,
235
+ inserted_at: Time,
236
+ key: String,
237
+ semver: String,
238
+ steps:
239
+ T::Array[
240
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::OrHash
241
+ ],
242
+ type: String,
243
+ updated_at: Time
132
244
  ).returns(T.attached_class)
133
245
  end
134
246
  def self.new(
135
247
  # The unique identifier for the guide.
136
248
  id: nil,
249
+ # The typename of the schema.
250
+ _typename: nil,
251
+ # A list of URL Patterns to evaluate user's current location to activate the
252
+ # guide, if matched
253
+ activation_url_patterns: nil,
254
+ # A list of URL rules to evaluate user's current location to activate the guide,
255
+ # if matched
256
+ activation_url_rules: nil,
137
257
  # Whether the guide is active.
138
258
  active: nil,
139
- # The content of the guide.
140
- content: nil,
141
- # The metadata of the guide.
142
- metadata: nil,
143
- # The title of the guide.
144
- title: nil
259
+ bypass_global_group_limit: nil,
260
+ channel_id: nil,
261
+ inserted_at: nil,
262
+ # The key of the guide.
263
+ key: nil,
264
+ semver: nil,
265
+ steps: nil,
266
+ # The type of the guide.
267
+ type: nil,
268
+ updated_at: nil
145
269
  )
146
270
  end
147
271
 
@@ -149,42 +273,380 @@ module Knockapi
149
273
  override.returns(
150
274
  {
151
275
  id: String,
276
+ _typename: String,
277
+ activation_url_patterns:
278
+ T::Array[
279
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLPattern
280
+ ],
281
+ activation_url_rules:
282
+ T::Array[
283
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLRule
284
+ ],
152
285
  active: T::Boolean,
153
- content: String,
154
- metadata: T::Hash[Symbol, T.anything],
155
- title: String
286
+ bypass_global_group_limit: T::Boolean,
287
+ channel_id: String,
288
+ inserted_at: Time,
289
+ key: String,
290
+ semver: String,
291
+ steps:
292
+ T::Array[
293
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step
294
+ ],
295
+ type: String,
296
+ updated_at: Time
156
297
  }
157
298
  )
158
299
  end
159
300
  def to_hash
160
301
  end
302
+
303
+ class ActivationURLPattern < Knockapi::Internal::Type::BaseModel
304
+ OrHash =
305
+ T.type_alias do
306
+ T.any(
307
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLPattern,
308
+ Knockapi::Internal::AnyHash
309
+ )
310
+ end
311
+
312
+ # The directive for the URL pattern ('allow' or 'block')
313
+ sig { returns(T.nilable(String)) }
314
+ attr_reader :directive
315
+
316
+ sig { params(directive: String).void }
317
+ attr_writer :directive
318
+
319
+ # The pathname pattern to match (supports wildcards like /\*)
320
+ sig { returns(T.nilable(String)) }
321
+ attr_reader :pathname
322
+
323
+ sig { params(pathname: String).void }
324
+ attr_writer :pathname
325
+
326
+ sig do
327
+ params(directive: String, pathname: String).returns(
328
+ T.attached_class
329
+ )
330
+ end
331
+ def self.new(
332
+ # The directive for the URL pattern ('allow' or 'block')
333
+ directive: nil,
334
+ # The pathname pattern to match (supports wildcards like /\*)
335
+ pathname: nil
336
+ )
337
+ end
338
+
339
+ sig { override.returns({ directive: String, pathname: String }) }
340
+ def to_hash
341
+ end
342
+ end
343
+
344
+ class ActivationURLRule < Knockapi::Internal::Type::BaseModel
345
+ OrHash =
346
+ T.type_alias do
347
+ T.any(
348
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::ActivationURLRule,
349
+ Knockapi::Internal::AnyHash
350
+ )
351
+ end
352
+
353
+ # The value to compare against
354
+ sig { returns(T.nilable(String)) }
355
+ attr_reader :argument
356
+
357
+ sig { params(argument: String).void }
358
+ attr_writer :argument
359
+
360
+ # The directive for the URL pattern ('allow' or 'block')
361
+ sig { returns(T.nilable(String)) }
362
+ attr_reader :directive
363
+
364
+ sig { params(directive: String).void }
365
+ attr_writer :directive
366
+
367
+ # The comparison operator ('contains' or 'equal_to')
368
+ sig { returns(T.nilable(String)) }
369
+ attr_reader :operator
370
+
371
+ sig { params(operator: String).void }
372
+ attr_writer :operator
373
+
374
+ # The variable to evaluate ('pathname')
375
+ sig { returns(T.nilable(String)) }
376
+ attr_reader :variable
377
+
378
+ sig { params(variable: String).void }
379
+ attr_writer :variable
380
+
381
+ sig do
382
+ params(
383
+ argument: String,
384
+ directive: String,
385
+ operator: String,
386
+ variable: String
387
+ ).returns(T.attached_class)
388
+ end
389
+ def self.new(
390
+ # The value to compare against
391
+ argument: nil,
392
+ # The directive for the URL pattern ('allow' or 'block')
393
+ directive: nil,
394
+ # The comparison operator ('contains' or 'equal_to')
395
+ operator: nil,
396
+ # The variable to evaluate ('pathname')
397
+ variable: nil
398
+ )
399
+ end
400
+
401
+ sig do
402
+ override.returns(
403
+ {
404
+ argument: String,
405
+ directive: String,
406
+ operator: String,
407
+ variable: String
408
+ }
409
+ )
410
+ end
411
+ def to_hash
412
+ end
413
+ end
414
+
415
+ class Step < Knockapi::Internal::Type::BaseModel
416
+ OrHash =
417
+ T.type_alias do
418
+ T.any(
419
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step,
420
+ Knockapi::Internal::AnyHash
421
+ )
422
+ end
423
+
424
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
425
+ attr_reader :content
426
+
427
+ sig { params(content: T::Hash[Symbol, T.anything]).void }
428
+ attr_writer :content
429
+
430
+ sig do
431
+ returns(
432
+ T.nilable(
433
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::Message
434
+ )
435
+ )
436
+ end
437
+ attr_reader :message
438
+
439
+ sig do
440
+ params(
441
+ message:
442
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::Message::OrHash
443
+ ).void
444
+ end
445
+ attr_writer :message
446
+
447
+ sig { returns(T.nilable(String)) }
448
+ attr_reader :ref
449
+
450
+ sig { params(ref: String).void }
451
+ attr_writer :ref
452
+
453
+ sig { returns(T.nilable(String)) }
454
+ attr_reader :schema_key
455
+
456
+ sig { params(schema_key: String).void }
457
+ attr_writer :schema_key
458
+
459
+ sig { returns(T.nilable(String)) }
460
+ attr_reader :schema_semver
461
+
462
+ sig { params(schema_semver: String).void }
463
+ attr_writer :schema_semver
464
+
465
+ sig { returns(T.nilable(String)) }
466
+ attr_reader :schema_variant_key
467
+
468
+ sig { params(schema_variant_key: String).void }
469
+ attr_writer :schema_variant_key
470
+
471
+ sig do
472
+ params(
473
+ content: T::Hash[Symbol, T.anything],
474
+ message:
475
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::Message::OrHash,
476
+ ref: String,
477
+ schema_key: String,
478
+ schema_semver: String,
479
+ schema_variant_key: String
480
+ ).returns(T.attached_class)
481
+ end
482
+ def self.new(
483
+ content: nil,
484
+ message: nil,
485
+ ref: nil,
486
+ schema_key: nil,
487
+ schema_semver: nil,
488
+ schema_variant_key: nil
489
+ )
490
+ end
491
+
492
+ sig do
493
+ override.returns(
494
+ {
495
+ content: T::Hash[Symbol, T.anything],
496
+ message:
497
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::Message,
498
+ ref: String,
499
+ schema_key: String,
500
+ schema_semver: String,
501
+ schema_variant_key: String
502
+ }
503
+ )
504
+ end
505
+ def to_hash
506
+ end
507
+
508
+ class Message < Knockapi::Internal::Type::BaseModel
509
+ OrHash =
510
+ T.type_alias do
511
+ T.any(
512
+ Knockapi::Models::Users::GuideGetChannelResponse::Entry::Step::Message,
513
+ Knockapi::Internal::AnyHash
514
+ )
515
+ end
516
+
517
+ sig { returns(T.nilable(String)) }
518
+ attr_accessor :id
519
+
520
+ sig { returns(T.nilable(Time)) }
521
+ attr_accessor :archived_at
522
+
523
+ sig { returns(T.nilable(Time)) }
524
+ attr_accessor :interacted_at
525
+
526
+ sig { returns(T.nilable(Time)) }
527
+ attr_accessor :link_clicked_at
528
+
529
+ sig { returns(T.nilable(Time)) }
530
+ attr_accessor :read_at
531
+
532
+ sig { returns(T.nilable(Time)) }
533
+ attr_accessor :seen_at
534
+
535
+ sig do
536
+ params(
537
+ id: T.nilable(String),
538
+ archived_at: T.nilable(Time),
539
+ interacted_at: T.nilable(Time),
540
+ link_clicked_at: T.nilable(Time),
541
+ read_at: T.nilable(Time),
542
+ seen_at: T.nilable(Time)
543
+ ).returns(T.attached_class)
544
+ end
545
+ def self.new(
546
+ id: nil,
547
+ archived_at: nil,
548
+ interacted_at: nil,
549
+ link_clicked_at: nil,
550
+ read_at: nil,
551
+ seen_at: nil
552
+ )
553
+ end
554
+
555
+ sig do
556
+ override.returns(
557
+ {
558
+ id: T.nilable(String),
559
+ archived_at: T.nilable(Time),
560
+ interacted_at: T.nilable(Time),
561
+ link_clicked_at: T.nilable(Time),
562
+ read_at: T.nilable(Time),
563
+ seen_at: T.nilable(Time)
564
+ }
565
+ )
566
+ end
567
+ def to_hash
568
+ end
569
+ end
570
+ end
161
571
  end
162
572
 
163
- class Recipient < Knockapi::Internal::Type::BaseModel
573
+ class GuideGroup < Knockapi::Internal::Type::BaseModel
164
574
  OrHash =
165
575
  T.type_alias do
166
576
  T.any(
167
- Knockapi::Models::Users::GuideGetChannelResponse::Recipient,
577
+ Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup,
168
578
  Knockapi::Internal::AnyHash
169
579
  )
170
580
  end
171
581
 
172
- # Unique identifier for the recipient.
173
582
  sig { returns(T.nilable(String)) }
174
- attr_reader :id
583
+ attr_reader :_typename
175
584
 
176
- sig { params(id: String).void }
177
- attr_writer :id
585
+ sig { params(_typename: String).void }
586
+ attr_writer :_typename
587
+
588
+ sig { returns(T.nilable(Integer)) }
589
+ attr_reader :display_interval
178
590
 
179
- # The recipient of the guide.
180
- sig { params(id: String).returns(T.attached_class) }
591
+ sig { params(display_interval: Integer).void }
592
+ attr_writer :display_interval
593
+
594
+ sig { returns(T.nilable(T::Array[String])) }
595
+ attr_reader :display_sequence
596
+
597
+ sig { params(display_sequence: T::Array[String]).void }
598
+ attr_writer :display_sequence
599
+
600
+ sig { returns(T.nilable(Time)) }
601
+ attr_reader :inserted_at
602
+
603
+ sig { params(inserted_at: Time).void }
604
+ attr_writer :inserted_at
605
+
606
+ sig { returns(T.nilable(String)) }
607
+ attr_reader :key
608
+
609
+ sig { params(key: String).void }
610
+ attr_writer :key
611
+
612
+ sig { returns(T.nilable(Time)) }
613
+ attr_reader :updated_at
614
+
615
+ sig { params(updated_at: Time).void }
616
+ attr_writer :updated_at
617
+
618
+ sig do
619
+ params(
620
+ _typename: String,
621
+ display_interval: Integer,
622
+ display_sequence: T::Array[String],
623
+ inserted_at: Time,
624
+ key: String,
625
+ updated_at: Time
626
+ ).returns(T.attached_class)
627
+ end
181
628
  def self.new(
182
- # Unique identifier for the recipient.
183
- id: nil
629
+ _typename: nil,
630
+ display_interval: nil,
631
+ display_sequence: nil,
632
+ inserted_at: nil,
633
+ key: nil,
634
+ updated_at: nil
184
635
  )
185
636
  end
186
637
 
187
- sig { override.returns({ id: String }) }
638
+ sig do
639
+ override.returns(
640
+ {
641
+ _typename: String,
642
+ display_interval: Integer,
643
+ display_sequence: T::Array[String],
644
+ inserted_at: Time,
645
+ key: String,
646
+ updated_at: Time
647
+ }
648
+ )
649
+ end
188
650
  def to_hash
189
651
  end
190
652
  end