trycourier 6.11.3 → 6.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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/courier/models/journey_ai_node.rb +6 -1
  5. data/lib/courier/models/journey_conditions_field.rb +3 -3
  6. data/lib/courier/models/journey_run_step.rb +36 -1
  7. data/lib/courier/models/notification_template_email.rb +50 -0
  8. data/lib/courier/models/notification_template_payload.rb +20 -1
  9. data/lib/courier/models/provider.rb +8 -2
  10. data/lib/courier/models/provider_create_params.rb +11 -1
  11. data/lib/courier/models/provider_patch_params.rb +61 -0
  12. data/lib/courier/models/provider_update_params.rb +10 -1
  13. data/lib/courier/models.rb +4 -0
  14. data/lib/courier/resources/providers.rb +35 -0
  15. data/lib/courier/version.rb +1 -1
  16. data/lib/courier.rb +2 -0
  17. data/rbi/courier/models/journey_ai_node.rbi +10 -0
  18. data/rbi/courier/models/journey_run_step.rbi +48 -0
  19. data/rbi/courier/models/notification_template_email.rbi +82 -0
  20. data/rbi/courier/models/notification_template_payload.rbi +34 -3
  21. data/rbi/courier/models/provider.rbi +8 -2
  22. data/rbi/courier/models/provider_create_params.rbi +22 -2
  23. data/rbi/courier/models/provider_patch_params.rbi +92 -0
  24. data/rbi/courier/models/provider_update_params.rbi +20 -2
  25. data/rbi/courier/models.rbi +4 -0
  26. data/rbi/courier/resources/providers.rbi +54 -2
  27. data/sig/courier/models/journey_run_step.rbs +20 -0
  28. data/sig/courier/models/notification_template_email.rbs +43 -0
  29. data/sig/courier/models/notification_template_payload.rbs +8 -3
  30. data/sig/courier/models/provider_patch_params.rbs +52 -0
  31. data/sig/courier/models.rbs +4 -0
  32. data/sig/courier/resources/providers.rbs +9 -0
  33. metadata +8 -2
@@ -65,6 +65,25 @@ module Courier
65
65
  sig { returns(T::Array[String]) }
66
66
  attr_accessor :tags
67
67
 
68
+ # Email header fields for the template's email channel: the From, Reply-to, CC and
69
+ # BCC values set in the Studio email channel settings. Each value may use template
70
+ # variables, such as `{{data.cc}}`, which are resolved at send time. Reads omit
71
+ # `email` when no header is set, and omit each unset field. Writes treat it as
72
+ # optional, with three meanings. Omit it to keep the stored headers. Send null to
73
+ # clear all four. Send an object to replace all four: a field the object leaves
74
+ # out is cleared. Other email channel settings, such as the subject, are kept
75
+ # either way. Headers only apply while `content` has an email channel; with no
76
+ # email channel they are not stored.
77
+ sig { returns(T.nilable(Courier::NotificationTemplateEmail)) }
78
+ attr_reader :email
79
+
80
+ sig do
81
+ params(
82
+ email: T.nilable(Courier::NotificationTemplateEmail::OrHash)
83
+ ).void
84
+ end
85
+ attr_writer :email
86
+
68
87
  # Core template fields used in POST and PUT request bodies (nested under a
69
88
  # `notification` key) and returned at the top level in responses.
70
89
  sig do
@@ -78,7 +97,8 @@ module Courier
78
97
  T.nilable(
79
98
  Courier::NotificationTemplatePayload::Subscription::OrHash
80
99
  ),
81
- tags: T::Array[String]
100
+ tags: T::Array[String],
101
+ email: T.nilable(Courier::NotificationTemplateEmail::OrHash)
82
102
  ).returns(T.attached_class)
83
103
  end
84
104
  def self.new(
@@ -93,7 +113,17 @@ module Courier
93
113
  # Subscription topic reference, or null for none.
94
114
  subscription:,
95
115
  # Tags for categorization. Send empty array for none.
96
- tags:
116
+ tags:,
117
+ # Email header fields for the template's email channel: the From, Reply-to, CC and
118
+ # BCC values set in the Studio email channel settings. Each value may use template
119
+ # variables, such as `{{data.cc}}`, which are resolved at send time. Reads omit
120
+ # `email` when no header is set, and omit each unset field. Writes treat it as
121
+ # optional, with three meanings. Omit it to keep the stored headers. Send null to
122
+ # clear all four. Send an object to replace all four: a field the object leaves
123
+ # out is cleared. Other email channel settings, such as the subject, are kept
124
+ # either way. Headers only apply while `content` has an email channel; with no
125
+ # email channel they are not stored.
126
+ email: nil
97
127
  )
98
128
  end
99
129
 
@@ -106,7 +136,8 @@ module Courier
106
136
  routing: T.nilable(Courier::NotificationTemplatePayload::Routing),
107
137
  subscription:
108
138
  T.nilable(Courier::NotificationTemplatePayload::Subscription),
109
- tags: T::Array[String]
139
+ tags: T::Array[String],
140
+ email: T.nilable(Courier::NotificationTemplateEmail)
110
141
  }
111
142
  )
112
143
  end
@@ -18,7 +18,10 @@ module Courier
18
18
  sig { returns(String) }
19
19
  attr_accessor :provider
20
20
 
21
- # Provider-specific settings (snake_case keys on the wire).
21
+ # Provider-specific settings (snake_case keys on the wire). `rate_limit` is this
22
+ # configuration's send rate limit,
23
+ # `{ "rate": number, "period": "second" | "minute" | "hour" }`, or null for no
24
+ # limit.
22
25
  sig { returns(T::Hash[Symbol, T.anything]) }
23
26
  attr_accessor :settings
24
27
 
@@ -56,7 +59,10 @@ module Courier
56
59
  created:,
57
60
  # The provider key (e.g. "sendgrid", "twilio", "slack").
58
61
  provider:,
59
- # Provider-specific settings (snake_case keys on the wire).
62
+ # Provider-specific settings (snake_case keys on the wire). `rate_limit` is this
63
+ # configuration's send rate limit,
64
+ # `{ "rate": number, "period": "second" | "minute" | "hour" }`, or null for no
65
+ # limit.
60
66
  settings:,
61
67
  # Display title. Defaults to "Default Configuration" when not explicitly set.
62
68
  title:,
@@ -25,7 +25,17 @@ module Courier
25
25
 
26
26
  # Provider-specific settings (snake_case keys). Defaults to an empty object when
27
27
  # omitted. Use the catalog endpoint to discover required fields for a given
28
- # provider — omitting a required field returns a 400 validation error.
28
+ # provider — omitting a required field returns a 400 validation error. Set
29
+ # `rate_limit` to cap this configuration's send rate:
30
+ # `{ "rate": <number greater than 0>, "period": "second" | "minute" | "hour" }`,
31
+ # e.g. `{ "rate": 0.5, "period": "minute" }` for one send every 2 minutes. The
32
+ # interval between sends (`period` divided by `rate`) must be from 1 millisecond
33
+ # to 12 hours, otherwise the request returns a 400 `InvalidRateLimit` error. The
34
+ # limit applies per configuration and per environment (a test-environment
35
+ # configuration has its own limit). Sends above the rate are queued, not dropped,
36
+ # and changes take up to 60 seconds to apply. It has no effect on observability or
37
+ # CDP integrations, which do not send messages. Omit it or set it to null for no
38
+ # limit.
29
39
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
30
40
  attr_reader :settings
31
41
 
@@ -70,7 +80,17 @@ module Courier
70
80
  alias_: nil,
71
81
  # Provider-specific settings (snake_case keys). Defaults to an empty object when
72
82
  # omitted. Use the catalog endpoint to discover required fields for a given
73
- # provider — omitting a required field returns a 400 validation error.
83
+ # provider — omitting a required field returns a 400 validation error. Set
84
+ # `rate_limit` to cap this configuration's send rate:
85
+ # `{ "rate": <number greater than 0>, "period": "second" | "minute" | "hour" }`,
86
+ # e.g. `{ "rate": 0.5, "period": "minute" }` for one send every 2 minutes. The
87
+ # interval between sends (`period` divided by `rate`) must be from 1 millisecond
88
+ # to 12 hours, otherwise the request returns a 400 `InvalidRateLimit` error. The
89
+ # limit applies per configuration and per environment (a test-environment
90
+ # configuration has its own limit). Sends above the rate are queued, not dropped,
91
+ # and changes take up to 60 seconds to apply. It has no effect on observability or
92
+ # CDP integrations, which do not send messages. Omit it or set it to null for no
93
+ # limit.
74
94
  settings: nil,
75
95
  # Optional display title. Omit to use "Default Configuration".
76
96
  title: nil,
@@ -0,0 +1,92 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderPatchParams < 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(Courier::ProviderPatchParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ # Updated alias. Set to null to clear it.
18
+ sig { returns(T.nilable(String)) }
19
+ attr_accessor :alias_
20
+
21
+ # The provider key identifying the type. Optional. When sent, it must match the
22
+ # stored provider, otherwise the request returns a 400.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :provider
25
+
26
+ sig { params(provider: String).void }
27
+ attr_writer :provider
28
+
29
+ # Provider-specific settings (snake_case keys) to merge into the stored settings,
30
+ # using JSON Merge Patch (RFC 7396). Each key you send replaces the stored value,
31
+ # a key set to null is removed, nested objects merge recursively, and arrays
32
+ # replace the stored value. Keys you omit keep their stored values. Set
33
+ # `rate_limit` to null to remove this configuration's send rate limit.
34
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
35
+ attr_reader :settings
36
+
37
+ sig { params(settings: T::Hash[Symbol, T.anything]).void }
38
+ attr_writer :settings
39
+
40
+ # Updated display title.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_reader :title
43
+
44
+ sig { params(title: String).void }
45
+ attr_writer :title
46
+
47
+ sig do
48
+ params(
49
+ id: String,
50
+ alias_: T.nilable(String),
51
+ provider: String,
52
+ settings: T::Hash[Symbol, T.anything],
53
+ title: String,
54
+ request_options: Courier::RequestOptions::OrHash
55
+ ).returns(T.attached_class)
56
+ end
57
+ def self.new(
58
+ id:,
59
+ # Updated alias. Set to null to clear it.
60
+ alias_: nil,
61
+ # The provider key identifying the type. Optional. When sent, it must match the
62
+ # stored provider, otherwise the request returns a 400.
63
+ provider: nil,
64
+ # Provider-specific settings (snake_case keys) to merge into the stored settings,
65
+ # using JSON Merge Patch (RFC 7396). Each key you send replaces the stored value,
66
+ # a key set to null is removed, nested objects merge recursively, and arrays
67
+ # replace the stored value. Keys you omit keep their stored values. Set
68
+ # `rate_limit` to null to remove this configuration's send rate limit.
69
+ settings: nil,
70
+ # Updated display title.
71
+ title: nil,
72
+ request_options: {}
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ id: String,
80
+ alias_: T.nilable(String),
81
+ provider: String,
82
+ settings: T::Hash[Symbol, T.anything],
83
+ title: String,
84
+ request_options: Courier::RequestOptions
85
+ }
86
+ )
87
+ end
88
+ def to_hash
89
+ end
90
+ end
91
+ end
92
+ end
@@ -28,7 +28,16 @@ module Courier
28
28
 
29
29
  # Provider-specific settings (snake_case keys). Replaces the full settings object
30
30
  # — omitted settings fields are removed. Use the catalog endpoint to check
31
- # required fields.
31
+ # required fields. Set `rate_limit` to cap this configuration's send rate:
32
+ # `{ "rate": <number greater than 0>, "period": "second" | "minute" | "hour" }`,
33
+ # e.g. `{ "rate": 0.5, "period": "minute" }` for one send every 2 minutes. The
34
+ # interval between sends (`period` divided by `rate`) must be from 1 millisecond
35
+ # to 12 hours, otherwise the request returns a 400 `InvalidRateLimit` error. The
36
+ # limit applies per configuration and per environment (a test-environment
37
+ # configuration has its own limit). Sends above the rate are queued, not dropped,
38
+ # and changes take up to 60 seconds to apply. It has no effect on observability or
39
+ # CDP integrations, which do not send messages. Omitting `rate_limit` or setting
40
+ # it to null removes any existing limit, including one set in Studio.
32
41
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
33
42
  attr_reader :settings
34
43
 
@@ -61,7 +70,16 @@ module Courier
61
70
  alias_: nil,
62
71
  # Provider-specific settings (snake_case keys). Replaces the full settings object
63
72
  # — omitted settings fields are removed. Use the catalog endpoint to check
64
- # required fields.
73
+ # required fields. Set `rate_limit` to cap this configuration's send rate:
74
+ # `{ "rate": <number greater than 0>, "period": "second" | "minute" | "hour" }`,
75
+ # e.g. `{ "rate": 0.5, "period": "minute" }` for one send every 2 minutes. The
76
+ # interval between sends (`period` divided by `rate`) must be from 1 millisecond
77
+ # to 12 hours, otherwise the request returns a 400 `InvalidRateLimit` error. The
78
+ # limit applies per configuration and per environment (a test-environment
79
+ # configuration has its own limit). Sends above the rate are queued, not dropped,
80
+ # and changes take up to 60 seconds to apply. It has no effect on observability or
81
+ # CDP integrations, which do not send messages. Omitting `rate_limit` or setting
82
+ # it to null removes any existing limit, including one set in Studio.
65
83
  settings: nil,
66
84
  # Updated display title.
67
85
  title: nil,
@@ -467,6 +467,8 @@ module Courier
467
467
  NotificationTemplateCreateRequest =
468
468
  Courier::Models::NotificationTemplateCreateRequest
469
469
 
470
+ NotificationTemplateEmail = Courier::Models::NotificationTemplateEmail
471
+
470
472
  NotificationTemplatePayload = Courier::Models::NotificationTemplatePayload
471
473
 
472
474
  NotificationTemplatePublishRequest =
@@ -546,6 +548,8 @@ module Courier
546
548
 
547
549
  ProviderListParams = Courier::Models::ProviderListParams
548
550
 
551
+ ProviderPatchParams = Courier::Models::ProviderPatchParams
552
+
549
553
  ProviderRetrieveParams = Courier::Models::ProviderRetrieveParams
550
554
 
551
555
  Providers = Courier::Models::Providers
@@ -31,7 +31,17 @@ module Courier
31
31
  alias_: nil,
32
32
  # Body param: Provider-specific settings (snake_case keys). Defaults to an empty
33
33
  # object when omitted. Use the catalog endpoint to discover required fields for a
34
- # given provider — omitting a required field returns a 400 validation error.
34
+ # given provider — omitting a required field returns a 400 validation error. Set
35
+ # `rate_limit` to cap this configuration's send rate:
36
+ # `{ "rate": <number greater than 0>, "period": "second" | "minute" | "hour" }`,
37
+ # e.g. `{ "rate": 0.5, "period": "minute" }` for one send every 2 minutes. The
38
+ # interval between sends (`period` divided by `rate`) must be from 1 millisecond
39
+ # to 12 hours, otherwise the request returns a 400 `InvalidRateLimit` error. The
40
+ # limit applies per configuration and per environment (a test-environment
41
+ # configuration has its own limit). Sends above the rate are queued, not dropped,
42
+ # and changes take up to 60 seconds to apply. It has no effect on observability or
43
+ # CDP integrations, which do not send messages. Omit it or set it to null for no
44
+ # limit.
35
45
  settings: nil,
36
46
  # Body param: Optional display title. Omit to use "Default Configuration".
37
47
  title: nil,
@@ -88,7 +98,16 @@ module Courier
88
98
  alias_: nil,
89
99
  # Provider-specific settings (snake_case keys). Replaces the full settings object
90
100
  # — omitted settings fields are removed. Use the catalog endpoint to check
91
- # required fields.
101
+ # required fields. Set `rate_limit` to cap this configuration's send rate:
102
+ # `{ "rate": <number greater than 0>, "period": "second" | "minute" | "hour" }`,
103
+ # e.g. `{ "rate": 0.5, "period": "minute" }` for one send every 2 minutes. The
104
+ # interval between sends (`period` divided by `rate`) must be from 1 millisecond
105
+ # to 12 hours, otherwise the request returns a 400 `InvalidRateLimit` error. The
106
+ # limit applies per configuration and per environment (a test-environment
107
+ # configuration has its own limit). Sends above the rate are queued, not dropped,
108
+ # and changes take up to 60 seconds to apply. It has no effect on observability or
109
+ # CDP integrations, which do not send messages. Omitting `rate_limit` or setting
110
+ # it to null removes any existing limit, including one set in Studio.
92
111
  settings: nil,
93
112
  # Updated display title.
94
113
  title: nil,
@@ -126,6 +145,39 @@ module Courier
126
145
  )
127
146
  end
128
147
 
148
+ # Updates part of a provider's configuration and keeps every field you omit.
149
+ # Settings merge into the stored settings key by key, and a setting sent as null
150
+ # is removed.
151
+ sig do
152
+ params(
153
+ id: String,
154
+ alias_: T.nilable(String),
155
+ provider: String,
156
+ settings: T::Hash[Symbol, T.anything],
157
+ title: String,
158
+ request_options: Courier::RequestOptions::OrHash
159
+ ).returns(Courier::Provider)
160
+ end
161
+ def patch(
162
+ # A unique identifier of the provider configuration to update.
163
+ id,
164
+ # Updated alias. Set to null to clear it.
165
+ alias_: nil,
166
+ # The provider key identifying the type. Optional. When sent, it must match the
167
+ # stored provider, otherwise the request returns a 400.
168
+ provider: nil,
169
+ # Provider-specific settings (snake_case keys) to merge into the stored settings,
170
+ # using JSON Merge Patch (RFC 7396). Each key you send replaces the stored value,
171
+ # a key set to null is removed, nested objects merge recursively, and arrays
172
+ # replace the stored value. Keys you omit keep their stored values. Set
173
+ # `rate_limit` to null to remove this configuration's send rate limit.
174
+ settings: nil,
175
+ # Updated display title.
176
+ title: nil,
177
+ request_options: {}
178
+ )
179
+ end
180
+
129
181
  # @api private
130
182
  sig { params(client: Courier::Client).returns(T.attached_class) }
131
183
  def self.new(client:)
@@ -3,6 +3,8 @@ module Courier
3
3
  type journey_run_step =
4
4
  {
5
5
  action: String,
6
+ error: Courier::JourneyRunStep::Error?,
7
+ skip_reason: String?,
6
8
  status: String,
7
9
  created_at: String,
8
10
  message_id: String,
@@ -13,6 +15,10 @@ module Courier
13
15
  class JourneyRunStep < Courier::Internal::Type::BaseModel
14
16
  attr_accessor action: String
15
17
 
18
+ attr_accessor error: Courier::JourneyRunStep::Error?
19
+
20
+ attr_accessor skip_reason: String?
21
+
16
22
  attr_accessor status: String
17
23
 
18
24
  attr_reader created_at: String?
@@ -33,6 +39,8 @@ module Courier
33
39
 
34
40
  def initialize: (
35
41
  action: String,
42
+ error: Courier::JourneyRunStep::Error?,
43
+ skip_reason: String?,
36
44
  status: String,
37
45
  ?created_at: String,
38
46
  ?message_id: String,
@@ -42,12 +50,24 @@ module Courier
42
50
 
43
51
  def to_hash: -> {
44
52
  action: String,
53
+ error: Courier::JourneyRunStep::Error?,
54
+ skip_reason: String?,
45
55
  status: String,
46
56
  created_at: String,
47
57
  message_id: String,
48
58
  node_id: String,
49
59
  updated_at: String
50
60
  }
61
+
62
+ type error = { message: String }
63
+
64
+ class Error < Courier::Internal::Type::BaseModel
65
+ attr_accessor message: String
66
+
67
+ def initialize: (message: String) -> void
68
+
69
+ def to_hash: -> { message: String }
70
+ end
51
71
  end
52
72
  end
53
73
  end
@@ -0,0 +1,43 @@
1
+ module Courier
2
+ module Models
3
+ type notification_template_email =
4
+ {
5
+ bcc: ::Array[String],
6
+ cc: ::Array[String],
7
+ from: String,
8
+ reply_to: String
9
+ }
10
+
11
+ class NotificationTemplateEmail < Courier::Internal::Type::BaseModel
12
+ attr_reader bcc: ::Array[String]?
13
+
14
+ def bcc=: (::Array[String]) -> ::Array[String]
15
+
16
+ attr_reader cc: ::Array[String]?
17
+
18
+ def cc=: (::Array[String]) -> ::Array[String]
19
+
20
+ attr_reader from: String?
21
+
22
+ def from=: (String) -> String
23
+
24
+ attr_reader reply_to: String?
25
+
26
+ def reply_to=: (String) -> String
27
+
28
+ def initialize: (
29
+ ?bcc: ::Array[String],
30
+ ?cc: ::Array[String],
31
+ ?from: String,
32
+ ?reply_to: String
33
+ ) -> void
34
+
35
+ def to_hash: -> {
36
+ bcc: ::Array[String],
37
+ cc: ::Array[String],
38
+ from: String,
39
+ reply_to: String
40
+ }
41
+ end
42
+ end
43
+ end
@@ -7,7 +7,8 @@ module Courier
7
7
  name: String,
8
8
  routing: Courier::NotificationTemplatePayload::Routing?,
9
9
  subscription: Courier::NotificationTemplatePayload::Subscription?,
10
- tags: ::Array[String]
10
+ tags: ::Array[String],
11
+ email: Courier::NotificationTemplateEmail?
11
12
  }
12
13
 
13
14
  class NotificationTemplatePayload < Courier::Internal::Type::BaseModel
@@ -23,13 +24,16 @@ module Courier
23
24
 
24
25
  attr_accessor tags: ::Array[String]
25
26
 
27
+ attr_accessor email: Courier::NotificationTemplateEmail?
28
+
26
29
  def initialize: (
27
30
  brand: Courier::NotificationTemplatePayload::Brand?,
28
31
  content: Courier::ElementalContent,
29
32
  name: String,
30
33
  routing: Courier::NotificationTemplatePayload::Routing?,
31
34
  subscription: Courier::NotificationTemplatePayload::Subscription?,
32
- tags: ::Array[String]
35
+ tags: ::Array[String],
36
+ ?email: Courier::NotificationTemplateEmail?
33
37
  ) -> void
34
38
 
35
39
  def to_hash: -> {
@@ -38,7 +42,8 @@ module Courier
38
42
  name: String,
39
43
  routing: Courier::NotificationTemplatePayload::Routing?,
40
44
  subscription: Courier::NotificationTemplatePayload::Subscription?,
41
- tags: ::Array[String]
45
+ tags: ::Array[String],
46
+ email: Courier::NotificationTemplateEmail?
42
47
  }
43
48
 
44
49
  type brand = { id: String }
@@ -0,0 +1,52 @@
1
+ module Courier
2
+ module Models
3
+ type provider_patch_params =
4
+ {
5
+ id: String,
6
+ alias_: String?,
7
+ provider: String,
8
+ settings: ::Hash[Symbol, top],
9
+ title: String
10
+ }
11
+ & Courier::Internal::Type::request_parameters
12
+
13
+ class ProviderPatchParams < Courier::Internal::Type::BaseModel
14
+ extend Courier::Internal::Type::RequestParameters::Converter
15
+ include Courier::Internal::Type::RequestParameters
16
+
17
+ attr_accessor id: String
18
+
19
+ attr_accessor alias_: String?
20
+
21
+ attr_reader provider: String?
22
+
23
+ def provider=: (String) -> String
24
+
25
+ attr_reader settings: ::Hash[Symbol, top]?
26
+
27
+ def settings=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
28
+
29
+ attr_reader title: String?
30
+
31
+ def title=: (String) -> String
32
+
33
+ def initialize: (
34
+ id: String,
35
+ ?alias_: String?,
36
+ ?provider: String,
37
+ ?settings: ::Hash[Symbol, top],
38
+ ?title: String,
39
+ ?request_options: Courier::request_opts
40
+ ) -> void
41
+
42
+ def to_hash: -> {
43
+ id: String,
44
+ alias_: String?,
45
+ provider: String,
46
+ settings: ::Hash[Symbol, top],
47
+ title: String,
48
+ request_options: Courier::RequestOptions
49
+ }
50
+ end
51
+ end
52
+ end
@@ -451,6 +451,8 @@ module Courier
451
451
 
452
452
  class NotificationTemplateCreateRequest = Courier::Models::NotificationTemplateCreateRequest
453
453
 
454
+ class NotificationTemplateEmail = Courier::Models::NotificationTemplateEmail
455
+
454
456
  class NotificationTemplatePayload = Courier::Models::NotificationTemplatePayload
455
457
 
456
458
  class NotificationTemplatePublishRequest = Courier::Models::NotificationTemplatePublishRequest
@@ -523,6 +525,8 @@ module Courier
523
525
 
524
526
  class ProviderListParams = Courier::Models::ProviderListParams
525
527
 
528
+ class ProviderPatchParams = Courier::Models::ProviderPatchParams
529
+
526
530
  class ProviderRetrieveParams = Courier::Models::ProviderRetrieveParams
527
531
 
528
532
  module Providers = Courier::Models::Providers
@@ -34,6 +34,15 @@ module Courier
34
34
 
35
35
  def delete: (String id, ?request_options: Courier::request_opts) -> nil
36
36
 
37
+ def patch: (
38
+ String id,
39
+ ?alias_: String?,
40
+ ?provider: String,
41
+ ?settings: ::Hash[Symbol, top],
42
+ ?title: String,
43
+ ?request_options: Courier::request_opts
44
+ ) -> Courier::Provider
45
+
37
46
  def initialize: (client: Courier::Client) -> void
38
47
  end
39
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trycourier
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.11.3
4
+ version: 6.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Courier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-30 00:00:00.000000000 Z
11
+ date: 2026-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool
@@ -318,6 +318,7 @@ files:
318
318
  - lib/courier/models/notification_retrieve_params.rb
319
319
  - lib/courier/models/notification_template_alias.rb
320
320
  - lib/courier/models/notification_template_create_request.rb
321
+ - lib/courier/models/notification_template_email.rb
321
322
  - lib/courier/models/notification_template_payload.rb
322
323
  - lib/courier/models/notification_template_publish_request.rb
323
324
  - lib/courier/models/notification_template_response.rb
@@ -380,6 +381,7 @@ files:
380
381
  - lib/courier/models/provider_delete_params.rb
381
382
  - lib/courier/models/provider_list_params.rb
382
383
  - lib/courier/models/provider_list_response.rb
384
+ - lib/courier/models/provider_patch_params.rb
383
385
  - lib/courier/models/provider_retrieve_params.rb
384
386
  - lib/courier/models/provider_update_params.rb
385
387
  - lib/courier/models/providers/catalog_list_params.rb
@@ -845,6 +847,7 @@ files:
845
847
  - rbi/courier/models/notification_retrieve_params.rbi
846
848
  - rbi/courier/models/notification_template_alias.rbi
847
849
  - rbi/courier/models/notification_template_create_request.rbi
850
+ - rbi/courier/models/notification_template_email.rbi
848
851
  - rbi/courier/models/notification_template_payload.rbi
849
852
  - rbi/courier/models/notification_template_publish_request.rbi
850
853
  - rbi/courier/models/notification_template_response.rbi
@@ -907,6 +910,7 @@ files:
907
910
  - rbi/courier/models/provider_delete_params.rbi
908
911
  - rbi/courier/models/provider_list_params.rbi
909
912
  - rbi/courier/models/provider_list_response.rbi
913
+ - rbi/courier/models/provider_patch_params.rbi
910
914
  - rbi/courier/models/provider_retrieve_params.rbi
911
915
  - rbi/courier/models/provider_update_params.rbi
912
916
  - rbi/courier/models/providers/catalog_list_params.rbi
@@ -1371,6 +1375,7 @@ files:
1371
1375
  - sig/courier/models/notification_retrieve_params.rbs
1372
1376
  - sig/courier/models/notification_template_alias.rbs
1373
1377
  - sig/courier/models/notification_template_create_request.rbs
1378
+ - sig/courier/models/notification_template_email.rbs
1374
1379
  - sig/courier/models/notification_template_payload.rbs
1375
1380
  - sig/courier/models/notification_template_publish_request.rbs
1376
1381
  - sig/courier/models/notification_template_response.rbs
@@ -1433,6 +1438,7 @@ files:
1433
1438
  - sig/courier/models/provider_delete_params.rbs
1434
1439
  - sig/courier/models/provider_list_params.rbs
1435
1440
  - sig/courier/models/provider_list_response.rbs
1441
+ - sig/courier/models/provider_patch_params.rbs
1436
1442
  - sig/courier/models/provider_retrieve_params.rbs
1437
1443
  - sig/courier/models/provider_update_params.rbs
1438
1444
  - sig/courier/models/providers/catalog_list_params.rbs