trycourier 6.9.0 → 6.10.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: 6b9fddd9ae2196561574c358366ddd7830227d3990aaa52e89858de7e6b84cd9
4
- data.tar.gz: a8c10271062a26d1389aee6ba8a645c05f35261b4db2b713b37868ce6fc504ea
3
+ metadata.gz: 2bab9f203d342c48548c1f0e174e23733585494b0b3b8369d2ccedab9fbbaf34
4
+ data.tar.gz: 86a57ea48f82c3e4f7da5536bd4c2a3b80c07dfb9178ccdc8d36da6ef74c74ad
5
5
  SHA512:
6
- metadata.gz: 8d783b22c1f61fc844e696322372651dd2204b99c7a3d661d0223e64fb2e328bee79853279612d989540d92b2c97e82ca0f46a1ebc444020b855cadb9b0fa0dc
7
- data.tar.gz: e351011729fe6a218f2730bc2f2e2d5b7f4e722c80d9416fe74b95159634e00562eec047035d84f43ef65cc2c6b0f1f91ffbf890da900e7fc630b164ea52bdf4
6
+ metadata.gz: 94fb163ff7c2e6cd81eb20e028fbbf5a0cedc2f3eb299864a3c7f19c6c2d838f329dcf329b02438318bc1ab20cba5d56604377f2e359d54d298c620ac0384340
7
+ data.tar.gz: e7f0b03ecf872ddf5bc0b38a28fbd0c1bd169241e31c9729c623f1b1e7f42b58155d1ec30e3ddf60ae93aa9fb9a40337403b7f7bc581f0852a3f11cd844b5d54
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.10.0](https://github.com/trycourier/courier-ruby/compare/v6.9.0...v6.10.0) (2026-09-24)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** add GET /preferences/logs [C-21018] ([9303520](https://github.com/trycourier/courier-ruby/commit/930352053ab0a9ca9db9b5a06b7da82ce7f6c811))
9
+
3
10
  ## [6.9.0](https://github.com/trycourier/courier-ruby/compare/v6.8.0...v6.9.0) (2026-09-23)
4
11
 
5
12
 
data/README.md CHANGED
@@ -9,7 +9,7 @@ Add the gem to your `Gemfile`:
9
9
  <!-- x-release-please-start-version -->
10
10
 
11
11
  ```ruby
12
- gem "trycourier", "~> 6.9.0"
12
+ gem "trycourier", "~> 6.10.0"
13
13
  ```
14
14
 
15
15
  <!-- x-release-please-end -->
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class PreferenceChangeLogEntry < Courier::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ # Unique identifier for this change.
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute custom_routing
13
+ # The channels chosen for this topic, present only when has_custom_routing is
14
+ # true. Empty otherwise.
15
+ #
16
+ # @return [Array<Symbol, Courier::Models::ChannelClassification>]
17
+ required :custom_routing, -> { Courier::Internal::Type::ArrayOf[enum: Courier::ChannelClassification] }
18
+
19
+ # @!attribute has_custom_routing
20
+ # Whether specific delivery channels were chosen for this topic rather than the
21
+ # topic's default routing.
22
+ #
23
+ # @return [Boolean]
24
+ required :has_custom_routing, Courier::Internal::Type::Boolean
25
+
26
+ # @!attribute status
27
+ # The subscription status the change set.
28
+ #
29
+ # @return [Symbol, Courier::Models::PreferenceStatus]
30
+ required :status, enum: -> { Courier::PreferenceStatus }
31
+
32
+ # @!attribute timestamp
33
+ # When the change was made, as an ISO-8601 date-time in UTC.
34
+ #
35
+ # @return [String]
36
+ required :timestamp, String
37
+
38
+ # @!attribute topic_id
39
+ # The subscription topic the change applies to.
40
+ #
41
+ # @return [String]
42
+ required :topic_id, String
43
+
44
+ # @!attribute topic_name
45
+ # The display name of that topic when the change was made.
46
+ #
47
+ # @return [String]
48
+ required :topic_name, String
49
+
50
+ # @!attribute user_id
51
+ # The user whose preference changed.
52
+ #
53
+ # @return [String]
54
+ required :user_id, String
55
+
56
+ # @!attribute previous
57
+ # The value before this change, where it was recorded.
58
+ #
59
+ # @return [Courier::Models::PreferenceChangeLogValue, nil]
60
+ optional :previous, -> { Courier::PreferenceChangeLogValue }
61
+
62
+ # @!attribute tenant_id
63
+ # The tenant context the change was made in. Absent when the user set the
64
+ # preference outside any tenant.
65
+ #
66
+ # @return [String, nil]
67
+ optional :tenant_id, String
68
+
69
+ # @!method initialize(id:, custom_routing:, has_custom_routing:, status:, timestamp:, topic_id:, topic_name:, user_id:, previous: nil, tenant_id: nil)
70
+ # Some parameter documentations has been truncated, see
71
+ # {Courier::Models::PreferenceChangeLogEntry} for more details.
72
+ #
73
+ # @param id [String] Unique identifier for this change.
74
+ #
75
+ # @param custom_routing [Array<Symbol, Courier::Models::ChannelClassification>] The channels chosen for this topic, present only when has_custom_routing is true
76
+ #
77
+ # @param has_custom_routing [Boolean] Whether specific delivery channels were chosen for this topic rather than the to
78
+ #
79
+ # @param status [Symbol, Courier::Models::PreferenceStatus] The subscription status the change set.
80
+ #
81
+ # @param timestamp [String] When the change was made, as an ISO-8601 date-time in UTC.
82
+ #
83
+ # @param topic_id [String] The subscription topic the change applies to.
84
+ #
85
+ # @param topic_name [String] The display name of that topic when the change was made.
86
+ #
87
+ # @param user_id [String] The user whose preference changed.
88
+ #
89
+ # @param previous [Courier::Models::PreferenceChangeLogValue] The value before this change, where it was recorded.
90
+ #
91
+ # @param tenant_id [String] The tenant context the change was made in. Absent when the user set the preferen
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ class PreferenceChangeLogValue < Courier::Internal::Type::BaseModel
6
+ # @!attribute custom_routing
7
+ # The channels chosen before the change.
8
+ #
9
+ # @return [Array<Symbol, Courier::Models::ChannelClassification>]
10
+ required :custom_routing, -> { Courier::Internal::Type::ArrayOf[enum: Courier::ChannelClassification] }
11
+
12
+ # @!attribute has_custom_routing
13
+ # Whether custom routing was in effect before the change.
14
+ #
15
+ # @return [Boolean]
16
+ required :has_custom_routing, Courier::Internal::Type::Boolean
17
+
18
+ # @!attribute status
19
+ # The subscription status before the change.
20
+ #
21
+ # @return [Symbol, Courier::Models::PreferenceStatus]
22
+ required :status, enum: -> { Courier::PreferenceStatus }
23
+
24
+ # @!method initialize(custom_routing:, has_custom_routing:, status:)
25
+ # @param custom_routing [Array<Symbol, Courier::Models::ChannelClassification>] The channels chosen before the change.
26
+ #
27
+ # @param has_custom_routing [Boolean] Whether custom routing was in effect before the change.
28
+ #
29
+ # @param status [Symbol, Courier::Models::PreferenceStatus] The subscription status before the change.
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ # @see Courier::Resources::WorkspacePreferences#list_logs
6
+ class PreferenceLogsListResponse < Courier::Internal::Type::BaseModel
7
+ # @!attribute items
8
+ # One entry per preference change, newest first.
9
+ #
10
+ # @return [Array<Courier::Models::PreferenceChangeLogEntry>]
11
+ required :items, -> { Courier::Internal::Type::ArrayOf[Courier::PreferenceChangeLogEntry] }
12
+
13
+ # @!attribute paging
14
+ #
15
+ # @return [Courier::Models::Paging]
16
+ required :paging, -> { Courier::Paging }
17
+
18
+ # @!method initialize(items:, paging:)
19
+ # @param items [Array<Courier::Models::PreferenceChangeLogEntry>] One entry per preference change, newest first.
20
+ #
21
+ # @param paging [Courier::Models::Paging]
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Courier
4
+ module Models
5
+ # @see Courier::Resources::WorkspacePreferences#list_logs
6
+ class WorkspacePreferenceListLogsParams < Courier::Internal::Type::BaseModel
7
+ extend Courier::Internal::Type::RequestParameters::Converter
8
+ include Courier::Internal::Type::RequestParameters
9
+
10
+ # @!attribute cursor
11
+ # A cursor from a previous response's paging.cursor. Continue only while
12
+ # paging.more is true; the cursor is omitted on the last page.
13
+ #
14
+ # @return [String, nil]
15
+ optional :cursor, String
16
+
17
+ # @!attribute limit
18
+ # How many entries to return. Defaults to 25.
19
+ #
20
+ # @return [Integer, nil]
21
+ optional :limit, Integer
22
+
23
+ # @!attribute since
24
+ # Return only changes at or after this time, as an ISO-8601 date or date-time. A
25
+ # date alone is read as the start of that day in UTC.
26
+ #
27
+ # @return [String, nil]
28
+ optional :since, String
29
+
30
+ # @!attribute tenant_id
31
+ # Narrow to the changes this user made in one tenant context. Only valid together
32
+ # with user_id.
33
+ #
34
+ # @return [String, nil]
35
+ optional :tenant_id, String
36
+
37
+ # @!attribute user_id
38
+ # Return only this user's changes. Omit it to read every change in the
39
+ # environment.
40
+ #
41
+ # @return [String, nil]
42
+ optional :user_id, String
43
+
44
+ # @!method initialize(cursor: nil, limit: nil, since: nil, tenant_id: nil, user_id: nil, request_options: {})
45
+ # Some parameter documentations has been truncated, see
46
+ # {Courier::Models::WorkspacePreferenceListLogsParams} for more details.
47
+ #
48
+ # @param cursor [String] A cursor from a previous response's paging.cursor. Continue only while paging.mo
49
+ #
50
+ # @param limit [Integer] How many entries to return. Defaults to 25.
51
+ #
52
+ # @param since [String] Return only changes at or after this time, as an ISO-8601 date or date-time. A d
53
+ #
54
+ # @param tenant_id [String] Narrow to the changes this user made in one tenant context. Only valid together
55
+ #
56
+ # @param user_id [String] Return only this user's changes. Omit it to read every change in the environment
57
+ #
58
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}]
59
+ end
60
+ end
61
+ end
@@ -517,6 +517,12 @@ module Courier
517
517
 
518
518
  Preference = Courier::Models::Preference
519
519
 
520
+ PreferenceChangeLogEntry = Courier::Models::PreferenceChangeLogEntry
521
+
522
+ PreferenceChangeLogValue = Courier::Models::PreferenceChangeLogValue
523
+
524
+ PreferenceLogsListResponse = Courier::Models::PreferenceLogsListResponse
525
+
520
526
  PreferenceStatus = Courier::Models::PreferenceStatus
521
527
 
522
528
  ProfileCreateParams = Courier::Models::ProfileCreateParams
@@ -699,6 +705,8 @@ module Courier
699
705
 
700
706
  WorkspacePreferenceGetResponse = Courier::Models::WorkspacePreferenceGetResponse
701
707
 
708
+ WorkspacePreferenceListLogsParams = Courier::Models::WorkspacePreferenceListLogsParams
709
+
702
710
  WorkspacePreferenceListParams = Courier::Models::WorkspacePreferenceListParams
703
711
 
704
712
  WorkspacePreferenceListResponse = Courier::Models::WorkspacePreferenceListResponse
@@ -108,6 +108,43 @@ module Courier
108
108
  )
109
109
  end
110
110
 
111
+ # Some parameter documentations has been truncated, see
112
+ # {Courier::Models::WorkspacePreferenceListLogsParams} for more details.
113
+ #
114
+ # Returns the history of preference changes in this environment, newest first.
115
+ # Each entry records one change a user made to one subscription topic, and carries
116
+ # the value before it where there was one. Supply user_id to read a single user's
117
+ # history instead of the whole environment.
118
+ #
119
+ # @overload list_logs(cursor: nil, limit: nil, since: nil, tenant_id: nil, user_id: nil, request_options: {})
120
+ #
121
+ # @param cursor [String] A cursor from a previous response's paging.cursor. Continue only while paging.mo
122
+ #
123
+ # @param limit [Integer] How many entries to return. Defaults to 25.
124
+ #
125
+ # @param since [String] Return only changes at or after this time, as an ISO-8601 date or date-time. A d
126
+ #
127
+ # @param tenant_id [String] Narrow to the changes this user made in one tenant context. Only valid together
128
+ #
129
+ # @param user_id [String] Return only this user's changes. Omit it to read every change in the environment
130
+ #
131
+ # @param request_options [Courier::RequestOptions, Hash{Symbol=>Object}, nil]
132
+ #
133
+ # @return [Courier::Models::PreferenceLogsListResponse]
134
+ #
135
+ # @see Courier::Models::WorkspacePreferenceListLogsParams
136
+ def list_logs(params = {})
137
+ parsed, options = Courier::WorkspacePreferenceListLogsParams.dump_request(params)
138
+ query = Courier::Internal::Util.encode_query_params(parsed)
139
+ @client.request(
140
+ method: :get,
141
+ path: "preferences/logs",
142
+ query: query,
143
+ model: Courier::PreferenceLogsListResponse,
144
+ options: options
145
+ )
146
+ end
147
+
111
148
  # Some parameter documentations has been truncated, see
112
149
  # {Courier::Models::WorkspacePreferencePublishParams} for more details.
113
150
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Courier
4
- VERSION = "6.9.0"
4
+ VERSION = "6.10.0"
5
5
  end
data/lib/courier.rb CHANGED
@@ -345,6 +345,9 @@ require_relative "courier/models/pagerduty_recipient"
345
345
  require_relative "courier/models/paging"
346
346
  require_relative "courier/models/post_tenant_template_publish_response"
347
347
  require_relative "courier/models/preference"
348
+ require_relative "courier/models/preference_change_log_entry"
349
+ require_relative "courier/models/preference_change_log_value"
350
+ require_relative "courier/models/preference_logs_list_response"
348
351
  require_relative "courier/models/preference_status"
349
352
  require_relative "courier/models/profile_create_params"
350
353
  require_relative "courier/models/profile_create_response"
@@ -474,6 +477,7 @@ require_relative "courier/models/widget_background"
474
477
  require_relative "courier/models/workspace_preference_archive_params"
475
478
  require_relative "courier/models/workspace_preference_create_params"
476
479
  require_relative "courier/models/workspace_preference_get_response"
480
+ require_relative "courier/models/workspace_preference_list_logs_params"
477
481
  require_relative "courier/models/workspace_preference_list_params"
478
482
  require_relative "courier/models/workspace_preference_list_response"
479
483
  require_relative "courier/models/workspace_preference_publish_params"
@@ -0,0 +1,122 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class PreferenceChangeLogEntry < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::PreferenceChangeLogEntry, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier for this change.
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # The channels chosen for this topic, present only when has_custom_routing is
16
+ # true. Empty otherwise.
17
+ sig { returns(T::Array[Courier::ChannelClassification::TaggedSymbol]) }
18
+ attr_accessor :custom_routing
19
+
20
+ # Whether specific delivery channels were chosen for this topic rather than the
21
+ # topic's default routing.
22
+ sig { returns(T::Boolean) }
23
+ attr_accessor :has_custom_routing
24
+
25
+ # The subscription status the change set.
26
+ sig { returns(Courier::PreferenceStatus::TaggedSymbol) }
27
+ attr_accessor :status
28
+
29
+ # When the change was made, as an ISO-8601 date-time in UTC.
30
+ sig { returns(String) }
31
+ attr_accessor :timestamp
32
+
33
+ # The subscription topic the change applies to.
34
+ sig { returns(String) }
35
+ attr_accessor :topic_id
36
+
37
+ # The display name of that topic when the change was made.
38
+ sig { returns(String) }
39
+ attr_accessor :topic_name
40
+
41
+ # The user whose preference changed.
42
+ sig { returns(String) }
43
+ attr_accessor :user_id
44
+
45
+ # The value before this change, where it was recorded.
46
+ sig { returns(T.nilable(Courier::PreferenceChangeLogValue)) }
47
+ attr_reader :previous
48
+
49
+ sig { params(previous: Courier::PreferenceChangeLogValue::OrHash).void }
50
+ attr_writer :previous
51
+
52
+ # The tenant context the change was made in. Absent when the user set the
53
+ # preference outside any tenant.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :tenant_id
56
+
57
+ sig { params(tenant_id: String).void }
58
+ attr_writer :tenant_id
59
+
60
+ sig do
61
+ params(
62
+ id: String,
63
+ custom_routing: T::Array[Courier::ChannelClassification::OrSymbol],
64
+ has_custom_routing: T::Boolean,
65
+ status: Courier::PreferenceStatus::OrSymbol,
66
+ timestamp: String,
67
+ topic_id: String,
68
+ topic_name: String,
69
+ user_id: String,
70
+ previous: Courier::PreferenceChangeLogValue::OrHash,
71
+ tenant_id: String
72
+ ).returns(T.attached_class)
73
+ end
74
+ def self.new(
75
+ # Unique identifier for this change.
76
+ id:,
77
+ # The channels chosen for this topic, present only when has_custom_routing is
78
+ # true. Empty otherwise.
79
+ custom_routing:,
80
+ # Whether specific delivery channels were chosen for this topic rather than the
81
+ # topic's default routing.
82
+ has_custom_routing:,
83
+ # The subscription status the change set.
84
+ status:,
85
+ # When the change was made, as an ISO-8601 date-time in UTC.
86
+ timestamp:,
87
+ # The subscription topic the change applies to.
88
+ topic_id:,
89
+ # The display name of that topic when the change was made.
90
+ topic_name:,
91
+ # The user whose preference changed.
92
+ user_id:,
93
+ # The value before this change, where it was recorded.
94
+ previous: nil,
95
+ # The tenant context the change was made in. Absent when the user set the
96
+ # preference outside any tenant.
97
+ tenant_id: nil
98
+ )
99
+ end
100
+
101
+ sig do
102
+ override.returns(
103
+ {
104
+ id: String,
105
+ custom_routing:
106
+ T::Array[Courier::ChannelClassification::TaggedSymbol],
107
+ has_custom_routing: T::Boolean,
108
+ status: Courier::PreferenceStatus::TaggedSymbol,
109
+ timestamp: String,
110
+ topic_id: String,
111
+ topic_name: String,
112
+ user_id: String,
113
+ previous: Courier::PreferenceChangeLogValue,
114
+ tenant_id: String
115
+ }
116
+ )
117
+ end
118
+ def to_hash
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,54 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class PreferenceChangeLogValue < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::PreferenceChangeLogValue, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # The channels chosen before the change.
12
+ sig { returns(T::Array[Courier::ChannelClassification::TaggedSymbol]) }
13
+ attr_accessor :custom_routing
14
+
15
+ # Whether custom routing was in effect before the change.
16
+ sig { returns(T::Boolean) }
17
+ attr_accessor :has_custom_routing
18
+
19
+ # The subscription status before the change.
20
+ sig { returns(Courier::PreferenceStatus::TaggedSymbol) }
21
+ attr_accessor :status
22
+
23
+ sig do
24
+ params(
25
+ custom_routing: T::Array[Courier::ChannelClassification::OrSymbol],
26
+ has_custom_routing: T::Boolean,
27
+ status: Courier::PreferenceStatus::OrSymbol
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(
31
+ # The channels chosen before the change.
32
+ custom_routing:,
33
+ # Whether custom routing was in effect before the change.
34
+ has_custom_routing:,
35
+ # The subscription status before the change.
36
+ status:
37
+ )
38
+ end
39
+
40
+ sig do
41
+ override.returns(
42
+ {
43
+ custom_routing:
44
+ T::Array[Courier::ChannelClassification::TaggedSymbol],
45
+ has_custom_routing: T::Boolean,
46
+ status: Courier::PreferenceStatus::TaggedSymbol
47
+ }
48
+ )
49
+ end
50
+ def to_hash
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class PreferenceLogsListResponse < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::PreferenceLogsListResponse, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # One entry per preference change, newest first.
12
+ sig { returns(T::Array[Courier::PreferenceChangeLogEntry]) }
13
+ attr_accessor :items
14
+
15
+ sig { returns(Courier::Paging) }
16
+ attr_reader :paging
17
+
18
+ sig { params(paging: Courier::Paging::OrHash).void }
19
+ attr_writer :paging
20
+
21
+ sig do
22
+ params(
23
+ items: T::Array[Courier::PreferenceChangeLogEntry::OrHash],
24
+ paging: Courier::Paging::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # One entry per preference change, newest first.
29
+ items:,
30
+ paging:
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ items: T::Array[Courier::PreferenceChangeLogEntry],
38
+ paging: Courier::Paging
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,101 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class WorkspacePreferenceListLogsParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Courier::WorkspacePreferenceListLogsParams,
13
+ Courier::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # A cursor from a previous response's paging.cursor. Continue only while
18
+ # paging.more is true; the cursor is omitted on the last page.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :cursor
21
+
22
+ sig { params(cursor: String).void }
23
+ attr_writer :cursor
24
+
25
+ # How many entries to return. Defaults to 25.
26
+ sig { returns(T.nilable(Integer)) }
27
+ attr_reader :limit
28
+
29
+ sig { params(limit: Integer).void }
30
+ attr_writer :limit
31
+
32
+ # Return only changes at or after this time, as an ISO-8601 date or date-time. A
33
+ # date alone is read as the start of that day in UTC.
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :since
36
+
37
+ sig { params(since: String).void }
38
+ attr_writer :since
39
+
40
+ # Narrow to the changes this user made in one tenant context. Only valid together
41
+ # with user_id.
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :tenant_id
44
+
45
+ sig { params(tenant_id: String).void }
46
+ attr_writer :tenant_id
47
+
48
+ # Return only this user's changes. Omit it to read every change in the
49
+ # environment.
50
+ sig { returns(T.nilable(String)) }
51
+ attr_reader :user_id
52
+
53
+ sig { params(user_id: String).void }
54
+ attr_writer :user_id
55
+
56
+ sig do
57
+ params(
58
+ cursor: String,
59
+ limit: Integer,
60
+ since: String,
61
+ tenant_id: String,
62
+ user_id: String,
63
+ request_options: Courier::RequestOptions::OrHash
64
+ ).returns(T.attached_class)
65
+ end
66
+ def self.new(
67
+ # A cursor from a previous response's paging.cursor. Continue only while
68
+ # paging.more is true; the cursor is omitted on the last page.
69
+ cursor: nil,
70
+ # How many entries to return. Defaults to 25.
71
+ limit: nil,
72
+ # Return only changes at or after this time, as an ISO-8601 date or date-time. A
73
+ # date alone is read as the start of that day in UTC.
74
+ since: nil,
75
+ # Narrow to the changes this user made in one tenant context. Only valid together
76
+ # with user_id.
77
+ tenant_id: nil,
78
+ # Return only this user's changes. Omit it to read every change in the
79
+ # environment.
80
+ user_id: nil,
81
+ request_options: {}
82
+ )
83
+ end
84
+
85
+ sig do
86
+ override.returns(
87
+ {
88
+ cursor: String,
89
+ limit: Integer,
90
+ since: String,
91
+ tenant_id: String,
92
+ user_id: String,
93
+ request_options: Courier::RequestOptions
94
+ }
95
+ )
96
+ end
97
+ def to_hash
98
+ end
99
+ end
100
+ end
101
+ end
@@ -495,6 +495,12 @@ module Courier
495
495
 
496
496
  Preference = Courier::Models::Preference
497
497
 
498
+ PreferenceChangeLogEntry = Courier::Models::PreferenceChangeLogEntry
499
+
500
+ PreferenceChangeLogValue = Courier::Models::PreferenceChangeLogValue
501
+
502
+ PreferenceLogsListResponse = Courier::Models::PreferenceLogsListResponse
503
+
498
504
  PreferenceStatus = Courier::Models::PreferenceStatus
499
505
 
500
506
  ProfileCreateParams = Courier::Models::ProfileCreateParams
@@ -682,6 +688,9 @@ module Courier
682
688
  WorkspacePreferenceGetResponse =
683
689
  Courier::Models::WorkspacePreferenceGetResponse
684
690
 
691
+ WorkspacePreferenceListLogsParams =
692
+ Courier::Models::WorkspacePreferenceListLogsParams
693
+
685
694
  WorkspacePreferenceListParams = Courier::Models::WorkspacePreferenceListParams
686
695
 
687
696
  WorkspacePreferenceListResponse =
@@ -90,6 +90,39 @@ module Courier
90
90
  )
91
91
  end
92
92
 
93
+ # Returns the history of preference changes in this environment, newest first.
94
+ # Each entry records one change a user made to one subscription topic, and carries
95
+ # the value before it where there was one. Supply user_id to read a single user's
96
+ # history instead of the whole environment.
97
+ sig do
98
+ params(
99
+ cursor: String,
100
+ limit: Integer,
101
+ since: String,
102
+ tenant_id: String,
103
+ user_id: String,
104
+ request_options: Courier::RequestOptions::OrHash
105
+ ).returns(Courier::PreferenceLogsListResponse)
106
+ end
107
+ def list_logs(
108
+ # A cursor from a previous response's paging.cursor. Continue only while
109
+ # paging.more is true; the cursor is omitted on the last page.
110
+ cursor: nil,
111
+ # How many entries to return. Defaults to 25.
112
+ limit: nil,
113
+ # Return only changes at or after this time, as an ISO-8601 date or date-time. A
114
+ # date alone is read as the start of that day in UTC.
115
+ since: nil,
116
+ # Narrow to the changes this user made in one tenant context. Only valid together
117
+ # with user_id.
118
+ tenant_id: nil,
119
+ # Return only this user's changes. Omit it to read every change in the
120
+ # environment.
121
+ user_id: nil,
122
+ request_options: {}
123
+ )
124
+ end
125
+
93
126
  # Publishes the workspace preference page, snapshotting every preference and
94
127
  # topic, and returns the page id and a preview URL.
95
128
  sig do
@@ -0,0 +1,71 @@
1
+ module Courier
2
+ module Models
3
+ type preference_change_log_entry =
4
+ {
5
+ id: String,
6
+ custom_routing: ::Array[Courier::Models::channel_classification],
7
+ has_custom_routing: bool,
8
+ status: Courier::Models::preference_status,
9
+ timestamp: String,
10
+ topic_id: String,
11
+ topic_name: String,
12
+ user_id: String,
13
+ previous: Courier::PreferenceChangeLogValue,
14
+ tenant_id: String
15
+ }
16
+
17
+ class PreferenceChangeLogEntry < Courier::Internal::Type::BaseModel
18
+ attr_accessor id: String
19
+
20
+ attr_accessor custom_routing: ::Array[Courier::Models::channel_classification]
21
+
22
+ attr_accessor has_custom_routing: bool
23
+
24
+ attr_accessor status: Courier::Models::preference_status
25
+
26
+ attr_accessor timestamp: String
27
+
28
+ attr_accessor topic_id: String
29
+
30
+ attr_accessor topic_name: String
31
+
32
+ attr_accessor user_id: String
33
+
34
+ attr_reader previous: Courier::PreferenceChangeLogValue?
35
+
36
+ def previous=: (
37
+ Courier::PreferenceChangeLogValue
38
+ ) -> Courier::PreferenceChangeLogValue
39
+
40
+ attr_reader tenant_id: String?
41
+
42
+ def tenant_id=: (String) -> String
43
+
44
+ def initialize: (
45
+ id: String,
46
+ custom_routing: ::Array[Courier::Models::channel_classification],
47
+ has_custom_routing: bool,
48
+ status: Courier::Models::preference_status,
49
+ timestamp: String,
50
+ topic_id: String,
51
+ topic_name: String,
52
+ user_id: String,
53
+ ?previous: Courier::PreferenceChangeLogValue,
54
+ ?tenant_id: String
55
+ ) -> void
56
+
57
+ def to_hash: -> {
58
+ id: String,
59
+ custom_routing: ::Array[Courier::Models::channel_classification],
60
+ has_custom_routing: bool,
61
+ status: Courier::Models::preference_status,
62
+ timestamp: String,
63
+ topic_id: String,
64
+ topic_name: String,
65
+ user_id: String,
66
+ previous: Courier::PreferenceChangeLogValue,
67
+ tenant_id: String
68
+ }
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,30 @@
1
+ module Courier
2
+ module Models
3
+ type preference_change_log_value =
4
+ {
5
+ custom_routing: ::Array[Courier::Models::channel_classification],
6
+ has_custom_routing: bool,
7
+ status: Courier::Models::preference_status
8
+ }
9
+
10
+ class PreferenceChangeLogValue < Courier::Internal::Type::BaseModel
11
+ attr_accessor custom_routing: ::Array[Courier::Models::channel_classification]
12
+
13
+ attr_accessor has_custom_routing: bool
14
+
15
+ attr_accessor status: Courier::Models::preference_status
16
+
17
+ def initialize: (
18
+ custom_routing: ::Array[Courier::Models::channel_classification],
19
+ has_custom_routing: bool,
20
+ status: Courier::Models::preference_status
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ custom_routing: ::Array[Courier::Models::channel_classification],
25
+ has_custom_routing: bool,
26
+ status: Courier::Models::preference_status
27
+ }
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,25 @@
1
+ module Courier
2
+ module Models
3
+ type preference_logs_list_response =
4
+ {
5
+ items: ::Array[Courier::PreferenceChangeLogEntry],
6
+ paging: Courier::Paging
7
+ }
8
+
9
+ class PreferenceLogsListResponse < Courier::Internal::Type::BaseModel
10
+ attr_accessor items: ::Array[Courier::PreferenceChangeLogEntry]
11
+
12
+ attr_accessor paging: Courier::Paging
13
+
14
+ def initialize: (
15
+ items: ::Array[Courier::PreferenceChangeLogEntry],
16
+ paging: Courier::Paging
17
+ ) -> void
18
+
19
+ def to_hash: -> {
20
+ items: ::Array[Courier::PreferenceChangeLogEntry],
21
+ paging: Courier::Paging
22
+ }
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,56 @@
1
+ module Courier
2
+ module Models
3
+ type workspace_preference_list_logs_params =
4
+ {
5
+ cursor: String,
6
+ limit: Integer,
7
+ since: String,
8
+ tenant_id: String,
9
+ user_id: String
10
+ }
11
+ & Courier::Internal::Type::request_parameters
12
+
13
+ class WorkspacePreferenceListLogsParams < Courier::Internal::Type::BaseModel
14
+ extend Courier::Internal::Type::RequestParameters::Converter
15
+ include Courier::Internal::Type::RequestParameters
16
+
17
+ attr_reader cursor: String?
18
+
19
+ def cursor=: (String) -> String
20
+
21
+ attr_reader limit: Integer?
22
+
23
+ def limit=: (Integer) -> Integer
24
+
25
+ attr_reader since: String?
26
+
27
+ def since=: (String) -> String
28
+
29
+ attr_reader tenant_id: String?
30
+
31
+ def tenant_id=: (String) -> String
32
+
33
+ attr_reader user_id: String?
34
+
35
+ def user_id=: (String) -> String
36
+
37
+ def initialize: (
38
+ ?cursor: String,
39
+ ?limit: Integer,
40
+ ?since: String,
41
+ ?tenant_id: String,
42
+ ?user_id: String,
43
+ ?request_options: Courier::request_opts
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ cursor: String,
48
+ limit: Integer,
49
+ since: String,
50
+ tenant_id: String,
51
+ user_id: String,
52
+ request_options: Courier::RequestOptions
53
+ }
54
+ end
55
+ end
56
+ end
@@ -473,6 +473,12 @@ module Courier
473
473
 
474
474
  class Preference = Courier::Models::Preference
475
475
 
476
+ class PreferenceChangeLogEntry = Courier::Models::PreferenceChangeLogEntry
477
+
478
+ class PreferenceChangeLogValue = Courier::Models::PreferenceChangeLogValue
479
+
480
+ class PreferenceLogsListResponse = Courier::Models::PreferenceLogsListResponse
481
+
476
482
  module PreferenceStatus = Courier::Models::PreferenceStatus
477
483
 
478
484
  class ProfileCreateParams = Courier::Models::ProfileCreateParams
@@ -655,6 +661,8 @@ module Courier
655
661
 
656
662
  class WorkspacePreferenceGetResponse = Courier::Models::WorkspacePreferenceGetResponse
657
663
 
664
+ class WorkspacePreferenceListLogsParams = Courier::Models::WorkspacePreferenceListLogsParams
665
+
658
666
  class WorkspacePreferenceListParams = Courier::Models::WorkspacePreferenceListParams
659
667
 
660
668
  class WorkspacePreferenceListResponse = Courier::Models::WorkspacePreferenceListResponse
@@ -27,6 +27,15 @@ module Courier
27
27
  ?request_options: Courier::request_opts
28
28
  ) -> nil
29
29
 
30
+ def list_logs: (
31
+ ?cursor: String,
32
+ ?limit: Integer,
33
+ ?since: String,
34
+ ?tenant_id: String,
35
+ ?user_id: String,
36
+ ?request_options: Courier::request_opts
37
+ ) -> Courier::PreferenceLogsListResponse
38
+
30
39
  def publish: (
31
40
  ?brand_id: String?,
32
41
  ?description: String?,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trycourier
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.9.0
4
+ version: 6.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Courier
@@ -348,6 +348,9 @@ files:
348
348
  - lib/courier/models/post_tenant_template_publish_request.rb
349
349
  - lib/courier/models/post_tenant_template_publish_response.rb
350
350
  - lib/courier/models/preference.rb
351
+ - lib/courier/models/preference_change_log_entry.rb
352
+ - lib/courier/models/preference_change_log_value.rb
353
+ - lib/courier/models/preference_logs_list_response.rb
351
354
  - lib/courier/models/preference_status.rb
352
355
  - lib/courier/models/profile_create_params.rb
353
356
  - lib/courier/models/profile_create_response.rb
@@ -488,6 +491,7 @@ files:
488
491
  - lib/courier/models/workspace_preference_create_params.rb
489
492
  - lib/courier/models/workspace_preference_create_request.rb
490
493
  - lib/courier/models/workspace_preference_get_response.rb
494
+ - lib/courier/models/workspace_preference_list_logs_params.rb
491
495
  - lib/courier/models/workspace_preference_list_params.rb
492
496
  - lib/courier/models/workspace_preference_list_response.rb
493
497
  - lib/courier/models/workspace_preference_publish_params.rb
@@ -845,6 +849,9 @@ files:
845
849
  - rbi/courier/models/post_tenant_template_publish_request.rbi
846
850
  - rbi/courier/models/post_tenant_template_publish_response.rbi
847
851
  - rbi/courier/models/preference.rbi
852
+ - rbi/courier/models/preference_change_log_entry.rbi
853
+ - rbi/courier/models/preference_change_log_value.rbi
854
+ - rbi/courier/models/preference_logs_list_response.rbi
848
855
  - rbi/courier/models/preference_status.rbi
849
856
  - rbi/courier/models/profile_create_params.rbi
850
857
  - rbi/courier/models/profile_create_response.rbi
@@ -985,6 +992,7 @@ files:
985
992
  - rbi/courier/models/workspace_preference_create_params.rbi
986
993
  - rbi/courier/models/workspace_preference_create_request.rbi
987
994
  - rbi/courier/models/workspace_preference_get_response.rbi
995
+ - rbi/courier/models/workspace_preference_list_logs_params.rbi
988
996
  - rbi/courier/models/workspace_preference_list_params.rbi
989
997
  - rbi/courier/models/workspace_preference_list_response.rbi
990
998
  - rbi/courier/models/workspace_preference_publish_params.rbi
@@ -1341,6 +1349,9 @@ files:
1341
1349
  - sig/courier/models/post_tenant_template_publish_request.rbs
1342
1350
  - sig/courier/models/post_tenant_template_publish_response.rbs
1343
1351
  - sig/courier/models/preference.rbs
1352
+ - sig/courier/models/preference_change_log_entry.rbs
1353
+ - sig/courier/models/preference_change_log_value.rbs
1354
+ - sig/courier/models/preference_logs_list_response.rbs
1344
1355
  - sig/courier/models/preference_status.rbs
1345
1356
  - sig/courier/models/profile_create_params.rbs
1346
1357
  - sig/courier/models/profile_create_response.rbs
@@ -1481,6 +1492,7 @@ files:
1481
1492
  - sig/courier/models/workspace_preference_create_params.rbs
1482
1493
  - sig/courier/models/workspace_preference_create_request.rbs
1483
1494
  - sig/courier/models/workspace_preference_get_response.rbs
1495
+ - sig/courier/models/workspace_preference_list_logs_params.rbs
1484
1496
  - sig/courier/models/workspace_preference_list_params.rbs
1485
1497
  - sig/courier/models/workspace_preference_list_response.rbs
1486
1498
  - sig/courier/models/workspace_preference_publish_params.rbs