trycourier 4.12.0 → 4.13.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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/courier/client.rb +4 -0
  4. data/lib/courier/models/digest_category.rb +53 -0
  5. data/lib/courier/models/digest_instance.rb +98 -0
  6. data/lib/courier/models/digest_instance_list_response.rb +72 -0
  7. data/lib/courier/models/digests/schedule_list_instances_params.rb +43 -0
  8. data/lib/courier/models/digests/schedule_release_params.rb +22 -0
  9. data/lib/courier/models.rb +8 -0
  10. data/lib/courier/resources/digests/schedules.rb +72 -0
  11. data/lib/courier/resources/digests.rb +18 -0
  12. data/lib/courier/version.rb +1 -1
  13. data/lib/courier.rb +7 -0
  14. data/rbi/courier/client.rbi +3 -0
  15. data/rbi/courier/models/digest_category.rbi +82 -0
  16. data/rbi/courier/models/digest_instance.rbi +138 -0
  17. data/rbi/courier/models/digest_instance_list_response.rbi +104 -0
  18. data/rbi/courier/models/digests/schedule_list_instances_params.rbi +70 -0
  19. data/rbi/courier/models/digests/schedule_release_params.rbi +40 -0
  20. data/rbi/courier/models.rbi +8 -0
  21. data/rbi/courier/resources/digests/schedules.rbi +54 -0
  22. data/rbi/courier/resources/digests.rbi +15 -0
  23. data/sig/courier/client.rbs +2 -0
  24. data/sig/courier/models/digest_category.rbs +46 -0
  25. data/sig/courier/models/digest_instance.rbs +83 -0
  26. data/sig/courier/models/digest_instance_list_response.rbs +57 -0
  27. data/sig/courier/models/digests/schedule_list_instances_params.rbs +38 -0
  28. data/sig/courier/models/digests/schedule_release_params.rbs +25 -0
  29. data/sig/courier/models.rbs +8 -0
  30. data/sig/courier/resources/digests/schedules.rbs +21 -0
  31. data/sig/courier/resources/digests.rbs +9 -0
  32. metadata +23 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e902cf56c5a1bbfd1efeb490133b4cbbd036913b9565d146a4e2a61cf016561e
4
- data.tar.gz: d8776360739874f39e33d8ce8a2161910808db4a0dbcc2062c8054ad6a840ee2
3
+ metadata.gz: 37aa19773ceb09212a579b95cece20b1d95e2d9c284986234c2982ab5c99dd29
4
+ data.tar.gz: b44f8bfc0a5af5fd6cbc74caa6c2129e2e3effeddb4c785bd8e5558fefbb1db2
5
5
  SHA512:
6
- metadata.gz: 9e25bc1935feedf5a3779307ebd3405b64dd491ba0cec9d0df81b68d4f9707fc0b019979a3933e53e68715b419debed4ea7b9c8553312983ee495a95ef82ca5b
7
- data.tar.gz: a611de89bb3b2907b6b3997a9b0815c9fd9e4558005046c77ed59eb05ccf21b1898a06856913c606767337b67f1296531e2e66212f6785fb0f002e0d839b13de
6
+ metadata.gz: 3bfd8cc5bd06c32e4840af2f2a30a1b9526606988d789ea40789023f0c33358f34a4b7be8832427e74141d8245c76beabea559e934b0c32773ac37dd50b512b6
7
+ data.tar.gz: 7449070ddd94cbf33a51a69b907b7b9f44b01db49f3e70e2682d3b9c9d1f2d3bbc18a6038c3e86395bc494a0938fb8069db6b9871001dafe60e4f200dd3fc36f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.13.0 (2026-06-12)
4
+
5
+ Full Changelog: [v4.12.0...v4.13.0](https://github.com/trycourier/courier-ruby/compare/v4.12.0...v4.13.0)
6
+
7
+ ### Features
8
+
9
+ * **digests:** document digest REST endpoints in OpenAPI spec ([6fdd4fc](https://github.com/trycourier/courier-ruby/commit/6fdd4fc94c104e0f3ca8905108a18eeafd9c5abc))
10
+
3
11
  ## 4.12.0 (2026-05-28)
4
12
 
5
13
  Full Changelog: [v4.11.0...v4.12.0](https://github.com/trycourier/courier-ruby/compare/v4.11.0...v4.12.0)
@@ -45,6 +45,9 @@ module Courier
45
45
  # @return [Courier::Resources::Bulk]
46
46
  attr_reader :bulk
47
47
 
48
+ # @return [Courier::Resources::Digests]
49
+ attr_reader :digests
50
+
48
51
  # @return [Courier::Resources::Inbound]
49
52
  attr_reader :inbound
50
53
 
@@ -145,6 +148,7 @@ module Courier
145
148
  @journeys = Courier::Resources::Journeys.new(client: self)
146
149
  @brands = Courier::Resources::Brands.new(client: self)
147
150
  @bulk = Courier::Resources::Bulk.new(client: self)
151
+ @digests = Courier::Resources::Digests.new(client: self)
148
152
  @inbound = Courier::Resources::Inbound.new(client: self)
149
153
  @lists = Courier::Resources::Lists.new(client: self)
150
154
  @messages = Courier::Resources::Messages.new(client: self)
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class DigestCategory < Courier::Internal::Type::BaseModel
6
+ # @!attribute category_key
7
+ # The key that identifies the category within the digest.
8
+ #
9
+ # @return [String]
10
+ required :category_key, String
11
+
12
+ # @!attribute retain
13
+ # Which events to keep when the number of events exceeds the retention limit for
14
+ # the category.
15
+ #
16
+ # @return [Symbol, Courier::Models::DigestCategory::Retain]
17
+ required :retain, enum: -> { Courier::DigestCategory::Retain }
18
+
19
+ # @!attribute sort_key
20
+ # The data key used to order events when `retain` is `highest` or `lowest`.
21
+ #
22
+ # @return [String, nil]
23
+ optional :sort_key, String
24
+
25
+ # @!method initialize(category_key:, retain:, sort_key: nil)
26
+ # Some parameter documentations has been truncated, see
27
+ # {Courier::Models::DigestCategory} for more details.
28
+ #
29
+ # @param category_key [String] The key that identifies the category within the digest.
30
+ #
31
+ # @param retain [Symbol, Courier::Models::DigestCategory::Retain] Which events to keep when the number of events exceeds the retention limit for t
32
+ #
33
+ # @param sort_key [String] The data key used to order events when `retain` is `highest` or `lowest`.
34
+
35
+ # Which events to keep when the number of events exceeds the retention limit for
36
+ # the category.
37
+ #
38
+ # @see Courier::Models::DigestCategory#retain
39
+ module Retain
40
+ extend Courier::Internal::Type::Enum
41
+
42
+ FIRST = :first
43
+ LAST = :last
44
+ HIGHEST = :highest
45
+ LOWEST = :lowest
46
+ NONE = :none
47
+
48
+ # @!method self.values
49
+ # @return [Array<Symbol>]
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class DigestInstance < Courier::Internal::Type::BaseModel
6
+ # @!attribute digest_instance_id
7
+ # A unique identifier for the digest instance.
8
+ #
9
+ # @return [String]
10
+ required :digest_instance_id, String
11
+
12
+ # @!attribute event_count
13
+ # The total number of events received for this instance.
14
+ #
15
+ # @return [Integer]
16
+ required :event_count, Integer
17
+
18
+ # @!attribute status
19
+ # The status of the digest instance. `IN_PROGRESS` instances are still
20
+ # accumulating events; `COMPLETED` instances have been released.
21
+ #
22
+ # @return [Symbol, Courier::Models::DigestInstance::Status]
23
+ required :status, enum: -> { Courier::DigestInstance::Status }
24
+
25
+ # @!attribute user_id
26
+ # The ID of the user this digest instance belongs to.
27
+ #
28
+ # @return [String]
29
+ required :user_id, String
30
+
31
+ # @!attribute categories
32
+ # The categories configured for the digest.
33
+ #
34
+ # @return [Array<Courier::Models::DigestCategory>, nil]
35
+ optional :categories, -> { Courier::Internal::Type::ArrayOf[Courier::DigestCategory] }
36
+
37
+ # @!attribute category_key_counts
38
+ # A map of category key to the number of events received for that category.
39
+ #
40
+ # @return [Hash{Symbol=>Integer}, nil]
41
+ optional :category_key_counts, Courier::Internal::Type::HashOf[Integer]
42
+
43
+ # @!attribute created_at
44
+ # An ISO 8601 timestamp of when the digest instance was created.
45
+ #
46
+ # @return [String, nil]
47
+ optional :created_at, String
48
+
49
+ # @!attribute disabled
50
+ # Whether the digest instance has been disabled.
51
+ #
52
+ # @return [Boolean, nil]
53
+ optional :disabled, Courier::Internal::Type::Boolean
54
+
55
+ # @!attribute tenant_id
56
+ # The ID of the tenant this digest instance belongs to, if any.
57
+ #
58
+ # @return [String, nil]
59
+ optional :tenant_id, String, nil?: true
60
+
61
+ # @!method initialize(digest_instance_id:, event_count:, status:, user_id:, categories: nil, category_key_counts: nil, created_at: nil, disabled: nil, tenant_id: nil)
62
+ # Some parameter documentations has been truncated, see
63
+ # {Courier::Models::DigestInstance} for more details.
64
+ #
65
+ # @param digest_instance_id [String] A unique identifier for the digest instance.
66
+ #
67
+ # @param event_count [Integer] The total number of events received for this instance.
68
+ #
69
+ # @param status [Symbol, Courier::Models::DigestInstance::Status] The status of the digest instance. `IN_PROGRESS` instances are still accumulatin
70
+ #
71
+ # @param user_id [String] The ID of the user this digest instance belongs to.
72
+ #
73
+ # @param categories [Array<Courier::Models::DigestCategory>] The categories configured for the digest.
74
+ #
75
+ # @param category_key_counts [Hash{Symbol=>Integer}] A map of category key to the number of events received for that category.
76
+ #
77
+ # @param created_at [String] An ISO 8601 timestamp of when the digest instance was created.
78
+ #
79
+ # @param disabled [Boolean] Whether the digest instance has been disabled.
80
+ #
81
+ # @param tenant_id [String, nil] The ID of the tenant this digest instance belongs to, if any.
82
+
83
+ # The status of the digest instance. `IN_PROGRESS` instances are still
84
+ # accumulating events; `COMPLETED` instances have been released.
85
+ #
86
+ # @see Courier::Models::DigestInstance#status
87
+ module Status
88
+ extend Courier::Internal::Type::Enum
89
+
90
+ IN_PROGRESS = :IN_PROGRESS
91
+ COMPLETED = :COMPLETED
92
+
93
+ # @!method self.values
94
+ # @return [Array<Symbol>]
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class DigestInstanceListResponse < Courier::Internal::Type::BaseModel
6
+ # @!attribute has_more
7
+ # Whether there are more digest instances to fetch using the cursor.
8
+ #
9
+ # @return [Boolean]
10
+ required :has_more, Courier::Internal::Type::Boolean
11
+
12
+ # @!attribute items
13
+ # The digest instances for this page of results.
14
+ #
15
+ # @return [Array<Courier::Models::DigestInstance>]
16
+ required :items, -> { Courier::Internal::Type::ArrayOf[Courier::DigestInstance] }
17
+
18
+ # @!attribute type
19
+ # Always `list` for a paginated list response.
20
+ #
21
+ # @return [Symbol, Courier::Models::DigestInstanceListResponse::Type]
22
+ required :type, enum: -> { Courier::DigestInstanceListResponse::Type }
23
+
24
+ # @!attribute cursor
25
+ # A cursor token for fetching the next page of results, or null when there are
26
+ # none.
27
+ #
28
+ # @return [String, nil]
29
+ optional :cursor, String, nil?: true
30
+
31
+ # @!attribute next_url
32
+ # The path to fetch the next page of results, or null when there are none.
33
+ #
34
+ # @return [String, nil]
35
+ optional :next_url, String, nil?: true
36
+
37
+ # @!attribute url
38
+ # The path of the current request.
39
+ #
40
+ # @return [String, nil]
41
+ optional :url, String
42
+
43
+ # @!method initialize(has_more:, items:, type:, cursor: nil, next_url: nil, url: nil)
44
+ # Some parameter documentations has been truncated, see
45
+ # {Courier::Models::DigestInstanceListResponse} for more details.
46
+ #
47
+ # @param has_more [Boolean] Whether there are more digest instances to fetch using the cursor.
48
+ #
49
+ # @param items [Array<Courier::Models::DigestInstance>] The digest instances for this page of results.
50
+ #
51
+ # @param type [Symbol, Courier::Models::DigestInstanceListResponse::Type] Always `list` for a paginated list response.
52
+ #
53
+ # @param cursor [String, nil] A cursor token for fetching the next page of results, or null when there are non
54
+ #
55
+ # @param next_url [String, nil] The path to fetch the next page of results, or null when there are none.
56
+ #
57
+ # @param url [String] The path of the current request.
58
+
59
+ # Always `list` for a paginated list response.
60
+ #
61
+ # @see Courier::Models::DigestInstanceListResponse#type
62
+ module Type
63
+ extend Courier::Internal::Type::Enum
64
+
65
+ LIST = :list
66
+
67
+ # @!method self.values
68
+ # @return [Array<Symbol>]
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ module Digests
6
+ # @see Courier::Resources::Digests::Schedules#list_instances
7
+ class ScheduleListInstancesParams < Courier::Internal::Type::BaseModel
8
+ extend Courier::Internal::Type::RequestParameters::Converter
9
+ include Courier::Internal::Type::RequestParameters
10
+
11
+ # @!attribute schedule_id
12
+ #
13
+ # @return [String]
14
+ required :schedule_id, String
15
+
16
+ # @!attribute cursor
17
+ # A cursor token from a previous response, used to fetch the next page of results.
18
+ #
19
+ # @return [String, nil]
20
+ optional :cursor, String
21
+
22
+ # @!attribute limit
23
+ # The maximum number of digest instances to return. Defaults to 20, with a maximum
24
+ # of 100.
25
+ #
26
+ # @return [Integer, nil]
27
+ optional :limit, Integer
28
+
29
+ # @!method initialize(schedule_id:, cursor: nil, limit: nil, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {Courier::Models::Digests::ScheduleListInstancesParams} for more details.
32
+ #
33
+ # @param schedule_id [String]
34
+ #
35
+ # @param cursor [String] A cursor token from a previous response, used to fetch the next page of results.
36
+ #
37
+ # @param limit [Integer] The maximum number of digest instances to return. Defaults to 20, with a maximum
38
+ #
39
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ module Digests
6
+ # @see Courier::Resources::Digests::Schedules#release
7
+ class ScheduleReleaseParams < Courier::Internal::Type::BaseModel
8
+ extend Courier::Internal::Type::RequestParameters::Converter
9
+ include Courier::Internal::Type::RequestParameters
10
+
11
+ # @!attribute schedule_id
12
+ #
13
+ # @return [String]
14
+ required :schedule_id, String
15
+
16
+ # @!method initialize(schedule_id:, request_options: {})
17
+ # @param schedule_id [String]
18
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -139,6 +139,14 @@ module Courier
139
139
 
140
140
  DeviceType = Courier::Models::DeviceType
141
141
 
142
+ DigestCategory = Courier::Models::DigestCategory
143
+
144
+ DigestInstance = Courier::Models::DigestInstance
145
+
146
+ DigestInstanceListResponse = Courier::Models::DigestInstanceListResponse
147
+
148
+ Digests = Courier::Models::Digests
149
+
142
150
  Discord = Courier::Models::Discord
143
151
 
144
152
  ElementalActionNodeWithType = Courier::Models::ElementalActionNodeWithType
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Resources
5
+ class Digests
6
+ class Schedules
7
+ # Some parameter documentations has been truncated, see
8
+ # {Courier::Models::Digests::ScheduleListInstancesParams} for more details.
9
+ #
10
+ # List the digest instances for a schedule. Each instance represents the events
11
+ # accumulated for a single user against the schedule, and can be used to monitor
12
+ # digest accumulation before the digest is released.
13
+ #
14
+ # @overload list_instances(schedule_id, cursor: nil, limit: nil, request_options: {})
15
+ #
16
+ # @param schedule_id [String] The ID of the digest schedule, in the form `sch/{uuid}`. The value must be URL-e
17
+ #
18
+ # @param cursor [String] A cursor token from a previous response, used to fetch the next page of results.
19
+ #
20
+ # @param limit [Integer] The maximum number of digest instances to return. Defaults to 20, with a maximum
21
+ #
22
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}, nil]
23
+ #
24
+ # @return [Courier::Models::DigestInstanceListResponse]
25
+ #
26
+ # @see Courier::Models::Digests::ScheduleListInstancesParams
27
+ def list_instances(schedule_id, params = {})
28
+ parsed, options = Courier::Digests::ScheduleListInstancesParams.dump_request(params)
29
+ query = Courier::Internal::Util.encode_query_params(parsed)
30
+ @client.request(
31
+ method: :get,
32
+ path: ["digests/schedules/%1$s/instances", schedule_id],
33
+ query: query,
34
+ model: Courier::DigestInstanceListResponse,
35
+ options: options
36
+ )
37
+ end
38
+
39
+ # Some parameter documentations has been truncated, see
40
+ # {Courier::Models::Digests::ScheduleReleaseParams} for more details.
41
+ #
42
+ # Send a digest now instead of waiting for its scheduled time, so your users get
43
+ # what they have collected so far right away.
44
+ #
45
+ # @overload release(schedule_id, request_options: {})
46
+ #
47
+ # @param schedule_id [String] The ID of the digest schedule to release, in the form `sch/{uuid}`. The value mu
48
+ #
49
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}, nil]
50
+ #
51
+ # @return [nil]
52
+ #
53
+ # @see Courier::Models::Digests::ScheduleReleaseParams
54
+ def release(schedule_id, params = {})
55
+ @client.request(
56
+ method: :post,
57
+ path: ["digests/schedules/%1$s/trigger", schedule_id],
58
+ model: NilClass,
59
+ options: params[:request_options]
60
+ )
61
+ end
62
+
63
+ # @api private
64
+ #
65
+ # @param client [Courier::Client]
66
+ def initialize(client:)
67
+ @client = client
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Resources
5
+ class Digests
6
+ # @return [Courier::Resources::Digests::Schedules]
7
+ attr_reader :schedules
8
+
9
+ # @api private
10
+ #
11
+ # @param client [Courier::Client]
12
+ def initialize(client:)
13
+ @client = client
14
+ @schedules = Courier::Resources::Digests::Schedules.new(client: client)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Courier
4
- VERSION = "4.12.0"
4
+ VERSION = "4.13.0"
5
5
  end
data/lib/courier.rb CHANGED
@@ -134,6 +134,11 @@ require_relative "courier/models/channel_preference"
134
134
  require_relative "courier/models/check"
135
135
  require_relative "courier/models/default_preferences"
136
136
  require_relative "courier/models/device_type"
137
+ require_relative "courier/models/digest_category"
138
+ require_relative "courier/models/digest_instance"
139
+ require_relative "courier/models/digest_instance_list_response"
140
+ require_relative "courier/models/digests/schedule_list_instances_params"
141
+ require_relative "courier/models/digests/schedule_release_params"
137
142
  require_relative "courier/models/discord"
138
143
  require_relative "courier/models/elemental_action_node_with_type"
139
144
  require_relative "courier/models/elemental_channel_node_with_type"
@@ -389,6 +394,8 @@ require_relative "courier/resources/automations"
389
394
  require_relative "courier/resources/automations/invoke"
390
395
  require_relative "courier/resources/brands"
391
396
  require_relative "courier/resources/bulk"
397
+ require_relative "courier/resources/digests"
398
+ require_relative "courier/resources/digests/schedules"
392
399
  require_relative "courier/resources/inbound"
393
400
  require_relative "courier/resources/journeys"
394
401
  require_relative "courier/resources/journeys/templates"
@@ -40,6 +40,9 @@ module Courier
40
40
  sig { returns(Courier::Resources::Bulk) }
41
41
  attr_reader :bulk
42
42
 
43
+ sig { returns(Courier::Resources::Digests) }
44
+ attr_reader :digests
45
+
43
46
  sig { returns(Courier::Resources::Inbound) }
44
47
  attr_reader :inbound
45
48
 
@@ -0,0 +1,82 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class DigestCategory < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::DigestCategory, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # The key that identifies the category within the digest.
12
+ sig { returns(String) }
13
+ attr_accessor :category_key
14
+
15
+ # Which events to keep when the number of events exceeds the retention limit for
16
+ # the category.
17
+ sig { returns(Courier::DigestCategory::Retain::TaggedSymbol) }
18
+ attr_accessor :retain
19
+
20
+ # The data key used to order events when `retain` is `highest` or `lowest`.
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :sort_key
23
+
24
+ sig { params(sort_key: String).void }
25
+ attr_writer :sort_key
26
+
27
+ sig do
28
+ params(
29
+ category_key: String,
30
+ retain: Courier::DigestCategory::Retain::OrSymbol,
31
+ sort_key: String
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ # The key that identifies the category within the digest.
36
+ category_key:,
37
+ # Which events to keep when the number of events exceeds the retention limit for
38
+ # the category.
39
+ retain:,
40
+ # The data key used to order events when `retain` is `highest` or `lowest`.
41
+ sort_key: nil
42
+ )
43
+ end
44
+
45
+ sig do
46
+ override.returns(
47
+ {
48
+ category_key: String,
49
+ retain: Courier::DigestCategory::Retain::TaggedSymbol,
50
+ sort_key: String
51
+ }
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+
57
+ # Which events to keep when the number of events exceeds the retention limit for
58
+ # the category.
59
+ module Retain
60
+ extend Courier::Internal::Type::Enum
61
+
62
+ TaggedSymbol =
63
+ T.type_alias { T.all(Symbol, Courier::DigestCategory::Retain) }
64
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
65
+
66
+ FIRST = T.let(:first, Courier::DigestCategory::Retain::TaggedSymbol)
67
+ LAST = T.let(:last, Courier::DigestCategory::Retain::TaggedSymbol)
68
+ HIGHEST = T.let(:highest, Courier::DigestCategory::Retain::TaggedSymbol)
69
+ LOWEST = T.let(:lowest, Courier::DigestCategory::Retain::TaggedSymbol)
70
+ NONE = T.let(:none, Courier::DigestCategory::Retain::TaggedSymbol)
71
+
72
+ sig do
73
+ override.returns(
74
+ T::Array[Courier::DigestCategory::Retain::TaggedSymbol]
75
+ )
76
+ end
77
+ def self.values
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end