knockapi 1.25.1 → 1.26.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95dc137b6092011539e7c489a17decbd00009f5be384d2577032c45dc61206ba
4
- data.tar.gz: 9763c56b2a6c1a0eda462a7b513deced67343e1d02b1d184250bd22f98c57287
3
+ metadata.gz: 42cb0fe9e17a3aa6604e9b5059e49852d7289815cc62c96ea60dfcc95a9f3d83
4
+ data.tar.gz: dc86f87556acc0929eb541f2102b12f397363cf8e2498329e2969202038313da
5
5
  SHA512:
6
- metadata.gz: b77d86b976ae7194bee86cf80584d7dba83bdf46cacf79a874bd5349023e23d32fb01c0ddc164ceea9fdb5b3b6e56a1af8b3173304f23c8905215906413e4129
7
- data.tar.gz: b12fa4303ad159a34b6941febfd6fa16827dd44270b67a858bbb3a7f5c67b6d5d2b67aa1ecf0763fa4f4f1fda3e9855fc1003f6e9ed438fe2e4d9112191d46f2
6
+ metadata.gz: 804874b733eb20bacb0b382660825015558e582a7f450538d9226b4f9be6fc58f2175c9740d36a79cc4363e2b214ec3361c399e6a9832878364485e9e0164f06
7
+ data.tar.gz: 9d1bc8e9d15cc4b0113e8df8351f7d3309199132d8adcf24475d0fcfa1d1e48cb695a596725c3d93caf65fa9a7144f581c0606e99f6d7ee0fe2c67faab3dbf97
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.26.0 (2026-01-16)
4
+
5
+ Full Changelog: [v1.25.1...v1.26.0](https://github.com/knocklabs/knock-ruby/compare/v1.25.1...v1.26.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([04d2e5a](https://github.com/knocklabs/knock-ruby/commit/04d2e5a33c984fc502525a4994cd3e15023b028a))
10
+ * **api:** api update ([0e52398](https://github.com/knocklabs/knock-ruby/commit/0e52398502d88f25790725df54813f5cece44a69))
11
+
12
+
13
+ ### Chores
14
+
15
+ * **internal:** update `actions/checkout` version ([aa18733](https://github.com/knocklabs/knock-ruby/commit/aa187339691334c36410d2eb2d35eeb62addc122))
16
+ * move `cgi` into dependencies for ruby 4 ([e06fcea](https://github.com/knocklabs/knock-ruby/commit/e06fcea3affc4265c987a44731bd7c6c83ef291d))
17
+
3
18
  ## 1.25.1 (2026-01-05)
4
19
 
5
20
  Full Changelog: [v1.25.0...v1.25.1](https://github.com/knocklabs/knock-ruby/compare/v1.25.0...v1.25.1)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "knockapi", "~> 1.25.1"
20
+ gem "knockapi", "~> 1.26.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -49,7 +49,7 @@ module Knockapi
49
49
  CONTAINS_ALL = :contains_all
50
50
  IS_TIMESTAMP = :is_timestamp
51
51
  IS_NOT_TIMESTAMP = :is_not_timestamp
52
- IS_TIMESTAMP_AFTER = :is_timestamp_after
52
+ IS_TIMESTAMP_ON_OR_AFTER = :is_timestamp_on_or_after
53
53
  IS_TIMESTAMP_BEFORE = :is_timestamp_before
54
54
  IS_TIMESTAMP_BETWEEN = :is_timestamp_between
55
55
  IS_AUDIENCE_MEMBER = :is_audience_member
@@ -25,7 +25,14 @@ module Knockapi
25
25
  required :guide_groups,
26
26
  -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup] }
27
27
 
28
- # @!method initialize(entries:, guide_group_display_logs:, guide_groups:)
28
+ # @!attribute ineligible_guides
29
+ # Markers for guides the user is not eligible to see.
30
+ #
31
+ # @return [Array<Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide>]
32
+ required :ineligible_guides,
33
+ -> { Knockapi::Internal::Type::ArrayOf[Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide] }
34
+
35
+ # @!method initialize(entries:, guide_group_display_logs:, guide_groups:, ineligible_guides:)
29
36
  # A response for a list of guides.
30
37
  #
31
38
  # @param entries [Array<Knockapi::Models::Users::GuideGetChannelResponse::Entry>] A list of guides.
@@ -33,6 +40,8 @@ module Knockapi
33
40
  # @param guide_group_display_logs [Hash{Symbol=>Time}] A map of guide group keys to their last display timestamps.
34
41
  #
35
42
  # @param guide_groups [Array<Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup>] A list of guide groups with their display sequences and intervals.
43
+ #
44
+ # @param ineligible_guides [Array<Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide>] Markers for guides the user is not eligible to see.
36
45
 
37
46
  class Entry < Knockapi::Internal::Type::BaseModel
38
47
  # @!attribute id
@@ -317,6 +326,48 @@ module Knockapi
317
326
  # @param key [String]
318
327
  # @param updated_at [Time]
319
328
  end
329
+
330
+ class IneligibleGuide < Knockapi::Internal::Type::BaseModel
331
+ # @!attribute key
332
+ # The guide's key identifier
333
+ #
334
+ # @return [String]
335
+ required :key, String
336
+
337
+ # @!attribute message
338
+ # Human-readable explanation of ineligibility
339
+ #
340
+ # @return [String]
341
+ required :message, String
342
+
343
+ # @!attribute reason
344
+ # Reason code for ineligibility
345
+ #
346
+ # @return [Symbol, Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason]
347
+ required :reason, enum: -> { Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason }
348
+
349
+ # @!method initialize(key:, message:, reason:)
350
+ # @param key [String] The guide's key identifier
351
+ #
352
+ # @param message [String] Human-readable explanation of ineligibility
353
+ #
354
+ # @param reason [Symbol, Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason] Reason code for ineligibility
355
+
356
+ # Reason code for ineligibility
357
+ #
358
+ # @see Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide#reason
359
+ module Reason
360
+ extend Knockapi::Internal::Type::Enum
361
+
362
+ GUIDE_NOT_ACTIVE = :guide_not_active
363
+ MARKED_AS_ARCHIVED = :marked_as_archived
364
+ TARGET_CONDITIONS_NOT_MET = :target_conditions_not_met
365
+ NOT_IN_TARGET_AUDIENCE = :not_in_target_audience
366
+
367
+ # @!method self.values
368
+ # @return [Array<Symbol>]
369
+ end
370
+ end
320
371
  end
321
372
  end
322
373
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.25.1"
4
+ VERSION = "1.26.0"
5
5
  end
@@ -85,9 +85,9 @@ module Knockapi
85
85
  T.let(:is_timestamp, Knockapi::Condition::Operator::TaggedSymbol)
86
86
  IS_NOT_TIMESTAMP =
87
87
  T.let(:is_not_timestamp, Knockapi::Condition::Operator::TaggedSymbol)
88
- IS_TIMESTAMP_AFTER =
88
+ IS_TIMESTAMP_ON_OR_AFTER =
89
89
  T.let(
90
- :is_timestamp_after,
90
+ :is_timestamp_on_or_after,
91
91
  Knockapi::Condition::Operator::TaggedSymbol
92
92
  )
93
93
  IS_TIMESTAMP_BEFORE =
@@ -34,6 +34,16 @@ module Knockapi
34
34
  end
35
35
  attr_accessor :guide_groups
36
36
 
37
+ # Markers for guides the user is not eligible to see.
38
+ sig do
39
+ returns(
40
+ T::Array[
41
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide
42
+ ]
43
+ )
44
+ end
45
+ attr_accessor :ineligible_guides
46
+
37
47
  # A response for a list of guides.
38
48
  sig do
39
49
  params(
@@ -45,6 +55,10 @@ module Knockapi
45
55
  guide_groups:
46
56
  T::Array[
47
57
  Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup::OrHash
58
+ ],
59
+ ineligible_guides:
60
+ T::Array[
61
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::OrHash
48
62
  ]
49
63
  ).returns(T.attached_class)
50
64
  end
@@ -54,7 +68,9 @@ module Knockapi
54
68
  # A map of guide group keys to their last display timestamps.
55
69
  guide_group_display_logs:,
56
70
  # A list of guide groups with their display sequences and intervals.
57
- guide_groups:
71
+ guide_groups:,
72
+ # Markers for guides the user is not eligible to see.
73
+ ineligible_guides:
58
74
  )
59
75
  end
60
76
 
@@ -69,6 +85,10 @@ module Knockapi
69
85
  guide_groups:
70
86
  T::Array[
71
87
  Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup
88
+ ],
89
+ ineligible_guides:
90
+ T::Array[
91
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide
72
92
  ]
73
93
  }
74
94
  )
@@ -650,6 +670,108 @@ module Knockapi
650
670
  def to_hash
651
671
  end
652
672
  end
673
+
674
+ class IneligibleGuide < Knockapi::Internal::Type::BaseModel
675
+ OrHash =
676
+ T.type_alias do
677
+ T.any(
678
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide,
679
+ Knockapi::Internal::AnyHash
680
+ )
681
+ end
682
+
683
+ # The guide's key identifier
684
+ sig { returns(String) }
685
+ attr_accessor :key
686
+
687
+ # Human-readable explanation of ineligibility
688
+ sig { returns(String) }
689
+ attr_accessor :message
690
+
691
+ # Reason code for ineligibility
692
+ sig do
693
+ returns(
694
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
695
+ )
696
+ end
697
+ attr_accessor :reason
698
+
699
+ sig do
700
+ params(
701
+ key: String,
702
+ message: String,
703
+ reason:
704
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::OrSymbol
705
+ ).returns(T.attached_class)
706
+ end
707
+ def self.new(
708
+ # The guide's key identifier
709
+ key:,
710
+ # Human-readable explanation of ineligibility
711
+ message:,
712
+ # Reason code for ineligibility
713
+ reason:
714
+ )
715
+ end
716
+
717
+ sig do
718
+ override.returns(
719
+ {
720
+ key: String,
721
+ message: String,
722
+ reason:
723
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
724
+ }
725
+ )
726
+ end
727
+ def to_hash
728
+ end
729
+
730
+ # Reason code for ineligibility
731
+ module Reason
732
+ extend Knockapi::Internal::Type::Enum
733
+
734
+ TaggedSymbol =
735
+ T.type_alias do
736
+ T.all(
737
+ Symbol,
738
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason
739
+ )
740
+ end
741
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
742
+
743
+ GUIDE_NOT_ACTIVE =
744
+ T.let(
745
+ :guide_not_active,
746
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
747
+ )
748
+ MARKED_AS_ARCHIVED =
749
+ T.let(
750
+ :marked_as_archived,
751
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
752
+ )
753
+ TARGET_CONDITIONS_NOT_MET =
754
+ T.let(
755
+ :target_conditions_not_met,
756
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
757
+ )
758
+ NOT_IN_TARGET_AUDIENCE =
759
+ T.let(
760
+ :not_in_target_audience,
761
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
762
+ )
763
+
764
+ sig do
765
+ override.returns(
766
+ T::Array[
767
+ Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::Reason::TaggedSymbol
768
+ ]
769
+ )
770
+ end
771
+ def self.values
772
+ end
773
+ end
774
+ end
653
775
  end
654
776
  end
655
777
  end
@@ -40,7 +40,7 @@ module Knockapi
40
40
  | :contains_all
41
41
  | :is_timestamp
42
42
  | :is_not_timestamp
43
- | :is_timestamp_after
43
+ | :is_timestamp_on_or_after
44
44
  | :is_timestamp_before
45
45
  | :is_timestamp_between
46
46
  | :is_audience_member
@@ -62,7 +62,7 @@ module Knockapi
62
62
  CONTAINS_ALL: :contains_all
63
63
  IS_TIMESTAMP: :is_timestamp
64
64
  IS_NOT_TIMESTAMP: :is_not_timestamp
65
- IS_TIMESTAMP_AFTER: :is_timestamp_after
65
+ IS_TIMESTAMP_ON_OR_AFTER: :is_timestamp_on_or_after
66
66
  IS_TIMESTAMP_BEFORE: :is_timestamp_before
67
67
  IS_TIMESTAMP_BETWEEN: :is_timestamp_between
68
68
  IS_AUDIENCE_MEMBER: :is_audience_member
@@ -5,7 +5,8 @@ module Knockapi
5
5
  {
6
6
  entries: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::Entry],
7
7
  guide_group_display_logs: ::Hash[Symbol, Time],
8
- guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup]
8
+ guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup],
9
+ ineligible_guides: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide]
9
10
  }
10
11
 
11
12
  class GuideGetChannelResponse < Knockapi::Internal::Type::BaseModel
@@ -15,16 +16,20 @@ module Knockapi
15
16
 
16
17
  attr_accessor guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup]
17
18
 
19
+ attr_accessor ineligible_guides: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide]
20
+
18
21
  def initialize: (
19
22
  entries: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::Entry],
20
23
  guide_group_display_logs: ::Hash[Symbol, Time],
21
- guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup]
24
+ guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup],
25
+ ineligible_guides: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide]
22
26
  ) -> void
23
27
 
24
28
  def to_hash: -> {
25
29
  entries: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::Entry],
26
30
  guide_group_display_logs: ::Hash[Symbol, Time],
27
- guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup]
31
+ guide_groups: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::GuideGroup],
32
+ ineligible_guides: ::Array[Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide]
28
33
  }
29
34
 
30
35
  type entry =
@@ -343,6 +348,50 @@ module Knockapi
343
348
  updated_at: Time
344
349
  }
345
350
  end
351
+
352
+ type ineligible_guide =
353
+ {
354
+ key: String,
355
+ message: String,
356
+ reason: Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::reason
357
+ }
358
+
359
+ class IneligibleGuide < Knockapi::Internal::Type::BaseModel
360
+ attr_accessor key: String
361
+
362
+ attr_accessor message: String
363
+
364
+ attr_accessor reason: Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::reason
365
+
366
+ def initialize: (
367
+ key: String,
368
+ message: String,
369
+ reason: Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::reason
370
+ ) -> void
371
+
372
+ def to_hash: -> {
373
+ key: String,
374
+ message: String,
375
+ reason: Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::reason
376
+ }
377
+
378
+ type reason =
379
+ :guide_not_active
380
+ | :marked_as_archived
381
+ | :target_conditions_not_met
382
+ | :not_in_target_audience
383
+
384
+ module Reason
385
+ extend Knockapi::Internal::Type::Enum
386
+
387
+ GUIDE_NOT_ACTIVE: :guide_not_active
388
+ MARKED_AS_ARCHIVED: :marked_as_archived
389
+ TARGET_CONDITIONS_NOT_MET: :target_conditions_not_met
390
+ NOT_IN_TARGET_AUDIENCE: :not_in_target_audience
391
+
392
+ def self?.values: -> ::Array[Knockapi::Models::Users::GuideGetChannelResponse::IneligibleGuide::reason]
393
+ end
394
+ end
346
395
  end
347
396
  end
348
397
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knockapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.25.1
4
+ version: 1.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Knock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-01-05 00:00:00.000000000 Z
11
+ date: 2026-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cgi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: connection_pool
15
29
  requirement: !ruby/object:Gem::Requirement