knockapi 1.41.0 → 1.42.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: 212bf583c0371646f77848cc48f260cff14d6c5584bcf1013e0ebc0ebddedfe5
4
- data.tar.gz: 279beca19bd0961751d7db0ffdddf9767ae83668045da3bd815931a539f119a8
3
+ metadata.gz: afb0347a9022e3737e27a4cda9592a99130fe4e1cf701621d5fd23a96b319893
4
+ data.tar.gz: da410e0b30cc88ec3c43f541e0799e4e76e75c9e7539f10e2cf5b0f4fe7616fa
5
5
  SHA512:
6
- metadata.gz: 67f582068a735e628429ed09543faf0272be0e10216505c04520ae449c6cb2652f1c257c81bcbc35701c6d433e1170445e1f6e00a2b5a7ec4a2ca469c661c67a
7
- data.tar.gz: 6928887a997bfd52da13def979bcfda2846585cdb1ae596c5337b283acbd42b8c417eecb67d15461297aa496bf720529e6b1bace32a2c2d182f2bf27b1969c06
6
+ metadata.gz: 67f738c898c02679260b948b981d7907cdcf10a419e320485ed5a217b649387086cc6e9603bcb736b14a2389f727d9ad8689328a7d993cde1761448adb5378da
7
+ data.tar.gz: 1e78c6da32be0c18670b0e6f61d1e21f02d51903e670c07df8a3627a7f51086e54167310b232371e91d06d09d3a0e0f7262de08ec56bdf99b5a827a28afcad9f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.42.0](https://github.com/knocklabs/knock-ruby/compare/v1.41.0...v1.42.0) (2026-09-17)
4
+
5
+
6
+ ### Features
7
+
8
+ * update api spec to v0.1.1699 ([3b8a336](https://github.com/knocklabs/knock-ruby/commit/3b8a336570ae3c51bef9044dafcbcc03c50425d3))
9
+ * update api spec to v0.1.1707 ([6b60fa7](https://github.com/knocklabs/knock-ruby/commit/6b60fa7fa700edb7324bc373e29a135b7a84d7d0))
10
+ * update api spec to v0.1.1712 ([5f68394](https://github.com/knocklabs/knock-ruby/commit/5f683948e074e9e534aa5ba176de4198471f57ed))
11
+
3
12
  ## [1.41.0](https://github.com/knocklabs/knock-ruby/compare/v1.40.0...v1.41.0) (2026-09-09)
4
13
 
5
14
 
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.41.0"
20
+ gem "knockapi", "~> 1.42.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -66,22 +66,23 @@ module Knockapi
66
66
  module Type
67
67
  extend Knockapi::Internal::Type::Enum
68
68
 
69
- MESSAGE_READ = :"message.read"
70
- MESSAGE_SENT = :"message.sent"
71
- MESSAGE_SEEN = :"message.seen"
72
69
  MESSAGE_CREATED = :"message.created"
73
70
  MESSAGE_QUEUED = :"message.queued"
71
+ MESSAGE_SENT = :"message.sent"
72
+ MESSAGE_NOT_SENT = :"message.not_sent"
74
73
  MESSAGE_DELIVERED = :"message.delivered"
75
74
  MESSAGE_DELIVERY_ATTEMPTED = :"message.delivery_attempted"
76
75
  MESSAGE_UNDELIVERED = :"message.undelivered"
77
76
  MESSAGE_BOUNCED = :"message.bounced"
78
- MESSAGE_NOT_SENT = :"message.not_sent"
79
- MESSAGE_ARCHIVED = :"message.archived"
80
- MESSAGE_LINK_CLICKED = :"message.link_clicked"
81
- MESSAGE_INTERACTED = :"message.interacted"
77
+ MESSAGE_COMPLAINT = :"message.complaint"
78
+ MESSAGE_READ = :"message.read"
82
79
  MESSAGE_UNREAD = :"message.unread"
80
+ MESSAGE_SEEN = :"message.seen"
83
81
  MESSAGE_UNSEEN = :"message.unseen"
82
+ MESSAGE_ARCHIVED = :"message.archived"
84
83
  MESSAGE_UNARCHIVED = :"message.unarchived"
84
+ MESSAGE_INTERACTED = :"message.interacted"
85
+ MESSAGE_LINK_CLICKED = :"message.link_clicked"
85
86
 
86
87
  # @!method self.values
87
88
  # @return [Array<Symbol>]
@@ -34,10 +34,24 @@ module Knockapi
34
34
  # @return [String]
35
35
  required :channel_id, String
36
36
 
37
- # @!method initialize(channel_id:)
37
+ # @!attribute knock_tenant_id
38
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
39
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
40
+ # this tenant, Knock prefers this connection over untagged connections.
41
+ #
42
+ # @return [String, nil]
43
+ optional :knock_tenant_id, String, nil?: true
44
+
45
+ # @!method initialize(channel_id:, knock_tenant_id: nil)
46
+ # Some parameter documentations has been truncated, see
47
+ # {Knockapi::Models::Recipients::DiscordChannelData::Connection::DiscordChannelConnection}
48
+ # for more details.
49
+ #
38
50
  # Discord channel connection.
39
51
  #
40
52
  # @param channel_id [String] Discord channel ID.
53
+ #
54
+ # @param knock_tenant_id [String, nil] An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection. Dis
41
55
  end
42
56
 
43
57
  class DiscordIncomingWebhookConnection < Knockapi::Internal::Type::BaseModel
@@ -48,10 +62,24 @@ module Knockapi
48
62
  required :incoming_webhook,
49
63
  -> { Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook }
50
64
 
51
- # @!method initialize(incoming_webhook:)
65
+ # @!attribute knock_tenant_id
66
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
67
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
68
+ # this tenant, Knock prefers this connection over untagged connections.
69
+ #
70
+ # @return [String, nil]
71
+ optional :knock_tenant_id, String, nil?: true
72
+
73
+ # @!method initialize(incoming_webhook:, knock_tenant_id: nil)
74
+ # Some parameter documentations has been truncated, see
75
+ # {Knockapi::Models::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection}
76
+ # for more details.
77
+ #
52
78
  # Discord incoming webhook connection.
53
79
  #
54
80
  # @param incoming_webhook [Knockapi::Models::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook] Discord incoming webhook object.
81
+ #
82
+ # @param knock_tenant_id [String, nil] An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection. Dis
55
83
 
56
84
  # @see Knockapi::Models::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection#incoming_webhook
57
85
  class IncomingWebhook < Knockapi::Internal::Type::BaseModel
@@ -35,6 +35,14 @@ module Knockapi
35
35
  variant -> { Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection }
36
36
 
37
37
  class MsTeamsTokenConnection < Knockapi::Internal::Type::BaseModel
38
+ # @!attribute knock_tenant_id
39
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
40
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
41
+ # this tenant, Knock prefers this connection over untagged connections.
42
+ #
43
+ # @return [String, nil]
44
+ optional :knock_tenant_id, String, nil?: true
45
+
38
46
  # @!attribute ms_teams_channel_id
39
47
  # Microsoft Teams channel ID.
40
48
  #
@@ -59,9 +67,15 @@ module Knockapi
59
67
  # @return [String, nil]
60
68
  optional :ms_teams_user_id, String, nil?: true
61
69
 
62
- # @!method initialize(ms_teams_channel_id: nil, ms_teams_team_id: nil, ms_teams_tenant_id: nil, ms_teams_user_id: nil)
70
+ # @!method initialize(knock_tenant_id: nil, ms_teams_channel_id: nil, ms_teams_team_id: nil, ms_teams_tenant_id: nil, ms_teams_user_id: nil)
71
+ # Some parameter documentations has been truncated, see
72
+ # {Knockapi::Models::Recipients::MsTeamsChannelData::Connection::MsTeamsTokenConnection}
73
+ # for more details.
74
+ #
63
75
  # Microsoft Teams token connection.
64
76
  #
77
+ # @param knock_tenant_id [String, nil] An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection. Dis
78
+ #
65
79
  # @param ms_teams_channel_id [String, nil] Microsoft Teams channel ID.
66
80
  #
67
81
  # @param ms_teams_team_id [String, nil] Microsoft Teams team ID.
@@ -79,10 +93,24 @@ module Knockapi
79
93
  required :incoming_webhook,
80
94
  -> { Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook }
81
95
 
82
- # @!method initialize(incoming_webhook:)
96
+ # @!attribute knock_tenant_id
97
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
98
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
99
+ # this tenant, Knock prefers this connection over untagged connections.
100
+ #
101
+ # @return [String, nil]
102
+ optional :knock_tenant_id, String, nil?: true
103
+
104
+ # @!method initialize(incoming_webhook:, knock_tenant_id: nil)
105
+ # Some parameter documentations has been truncated, see
106
+ # {Knockapi::Models::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection}
107
+ # for more details.
108
+ #
83
109
  # Microsoft Teams incoming webhook connection.
84
110
  #
85
111
  # @param incoming_webhook [Knockapi::Models::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook] Microsoft Teams incoming webhook.
112
+ #
113
+ # @param knock_tenant_id [String, nil] An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection. Dis
86
114
 
87
115
  # @see Knockapi::Models::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection#incoming_webhook
88
116
  class IncomingWebhook < Knockapi::Internal::Type::BaseModel
@@ -53,13 +53,25 @@ module Knockapi
53
53
  # @return [String, nil]
54
54
  optional :channel_name, String, nil?: true
55
55
 
56
+ # @!attribute knock_tenant_id
57
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
58
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
59
+ # this tenant, Knock prefers this connection over untagged connections.
60
+ #
61
+ # @return [String, nil]
62
+ optional :knock_tenant_id, String, nil?: true
63
+
56
64
  # @!attribute user_id
57
65
  # A Slack user ID from the Slack provider.
58
66
  #
59
67
  # @return [String, nil]
60
68
  optional :user_id, String, nil?: true
61
69
 
62
- # @!method initialize(access_token: nil, channel_id: nil, channel_name: nil, user_id: nil)
70
+ # @!method initialize(access_token: nil, channel_id: nil, channel_name: nil, knock_tenant_id: nil, user_id: nil)
71
+ # Some parameter documentations has been truncated, see
72
+ # {Knockapi::Models::Recipients::SlackChannelData::Connection::SlackTokenConnection}
73
+ # for more details.
74
+ #
63
75
  # A Slack connection token.
64
76
  #
65
77
  # @param access_token [String, nil] A Slack access token.
@@ -68,6 +80,8 @@ module Knockapi
68
80
  #
69
81
  # @param channel_name [String, nil] Slack channel name.
70
82
  #
83
+ # @param knock_tenant_id [String, nil] An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection. Dis
84
+ #
71
85
  # @param user_id [String, nil] A Slack user ID from the Slack provider.
72
86
  end
73
87
 
@@ -79,10 +93,24 @@ module Knockapi
79
93
  required :incoming_webhook,
80
94
  -> { Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook }
81
95
 
82
- # @!method initialize(incoming_webhook:)
96
+ # @!attribute knock_tenant_id
97
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
98
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
99
+ # this tenant, Knock prefers this connection over untagged connections.
100
+ #
101
+ # @return [String, nil]
102
+ optional :knock_tenant_id, String, nil?: true
103
+
104
+ # @!method initialize(incoming_webhook:, knock_tenant_id: nil)
105
+ # Some parameter documentations has been truncated, see
106
+ # {Knockapi::Models::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection}
107
+ # for more details.
108
+ #
83
109
  # A Slack connection incoming webhook.
84
110
  #
85
111
  # @param incoming_webhook [Knockapi::Models::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook] A Slack connection incoming webhook.
112
+ #
113
+ # @param knock_tenant_id [String, nil] An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection. Dis
86
114
 
87
115
  # @see Knockapi::Models::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection#incoming_webhook
88
116
  class IncomingWebhook < Knockapi::Internal::Type::BaseModel
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.41.0"
4
+ VERSION = "1.42.0"
5
5
  end
@@ -89,16 +89,14 @@ module Knockapi
89
89
  T.type_alias { T.all(Symbol, Knockapi::MessageEvent::Type) }
90
90
  OrSymbol = T.type_alias { T.any(Symbol, String) }
91
91
 
92
- MESSAGE_READ =
93
- T.let(:"message.read", Knockapi::MessageEvent::Type::TaggedSymbol)
94
- MESSAGE_SENT =
95
- T.let(:"message.sent", Knockapi::MessageEvent::Type::TaggedSymbol)
96
- MESSAGE_SEEN =
97
- T.let(:"message.seen", Knockapi::MessageEvent::Type::TaggedSymbol)
98
92
  MESSAGE_CREATED =
99
93
  T.let(:"message.created", Knockapi::MessageEvent::Type::TaggedSymbol)
100
94
  MESSAGE_QUEUED =
101
95
  T.let(:"message.queued", Knockapi::MessageEvent::Type::TaggedSymbol)
96
+ MESSAGE_SENT =
97
+ T.let(:"message.sent", Knockapi::MessageEvent::Type::TaggedSymbol)
98
+ MESSAGE_NOT_SENT =
99
+ T.let(:"message.not_sent", Knockapi::MessageEvent::Type::TaggedSymbol)
102
100
  MESSAGE_DELIVERED =
103
101
  T.let(
104
102
  :"message.delivered",
@@ -116,13 +114,24 @@ module Knockapi
116
114
  )
117
115
  MESSAGE_BOUNCED =
118
116
  T.let(:"message.bounced", Knockapi::MessageEvent::Type::TaggedSymbol)
119
- MESSAGE_NOT_SENT =
120
- T.let(:"message.not_sent", Knockapi::MessageEvent::Type::TaggedSymbol)
117
+ MESSAGE_COMPLAINT =
118
+ T.let(
119
+ :"message.complaint",
120
+ Knockapi::MessageEvent::Type::TaggedSymbol
121
+ )
122
+ MESSAGE_READ =
123
+ T.let(:"message.read", Knockapi::MessageEvent::Type::TaggedSymbol)
124
+ MESSAGE_UNREAD =
125
+ T.let(:"message.unread", Knockapi::MessageEvent::Type::TaggedSymbol)
126
+ MESSAGE_SEEN =
127
+ T.let(:"message.seen", Knockapi::MessageEvent::Type::TaggedSymbol)
128
+ MESSAGE_UNSEEN =
129
+ T.let(:"message.unseen", Knockapi::MessageEvent::Type::TaggedSymbol)
121
130
  MESSAGE_ARCHIVED =
122
131
  T.let(:"message.archived", Knockapi::MessageEvent::Type::TaggedSymbol)
123
- MESSAGE_LINK_CLICKED =
132
+ MESSAGE_UNARCHIVED =
124
133
  T.let(
125
- :"message.link_clicked",
134
+ :"message.unarchived",
126
135
  Knockapi::MessageEvent::Type::TaggedSymbol
127
136
  )
128
137
  MESSAGE_INTERACTED =
@@ -130,13 +139,9 @@ module Knockapi
130
139
  :"message.interacted",
131
140
  Knockapi::MessageEvent::Type::TaggedSymbol
132
141
  )
133
- MESSAGE_UNREAD =
134
- T.let(:"message.unread", Knockapi::MessageEvent::Type::TaggedSymbol)
135
- MESSAGE_UNSEEN =
136
- T.let(:"message.unseen", Knockapi::MessageEvent::Type::TaggedSymbol)
137
- MESSAGE_UNARCHIVED =
142
+ MESSAGE_LINK_CLICKED =
138
143
  T.let(
139
- :"message.unarchived",
144
+ :"message.link_clicked",
140
145
  Knockapi::MessageEvent::Type::TaggedSymbol
141
146
  )
142
147
 
@@ -85,15 +85,34 @@ module Knockapi
85
85
  sig { returns(String) }
86
86
  attr_accessor :channel_id
87
87
 
88
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
89
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
90
+ # this tenant, Knock prefers this connection over untagged connections.
91
+ sig { returns(T.nilable(String)) }
92
+ attr_accessor :knock_tenant_id
93
+
88
94
  # Discord channel connection.
89
- sig { params(channel_id: String).returns(T.attached_class) }
95
+ sig do
96
+ params(
97
+ channel_id: String,
98
+ knock_tenant_id: T.nilable(String)
99
+ ).returns(T.attached_class)
100
+ end
90
101
  def self.new(
91
102
  # Discord channel ID.
92
- channel_id:
103
+ channel_id:,
104
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
105
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
106
+ # this tenant, Knock prefers this connection over untagged connections.
107
+ knock_tenant_id: nil
93
108
  )
94
109
  end
95
110
 
96
- sig { override.returns({ channel_id: String }) }
111
+ sig do
112
+ override.returns(
113
+ { channel_id: String, knock_tenant_id: T.nilable(String) }
114
+ )
115
+ end
97
116
  def to_hash
98
117
  end
99
118
  end
@@ -123,16 +142,27 @@ module Knockapi
123
142
  end
124
143
  attr_writer :incoming_webhook
125
144
 
145
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
146
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
147
+ # this tenant, Knock prefers this connection over untagged connections.
148
+ sig { returns(T.nilable(String)) }
149
+ attr_accessor :knock_tenant_id
150
+
126
151
  # Discord incoming webhook connection.
127
152
  sig do
128
153
  params(
129
154
  incoming_webhook:
130
- Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook::OrHash
155
+ Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook::OrHash,
156
+ knock_tenant_id: T.nilable(String)
131
157
  ).returns(T.attached_class)
132
158
  end
133
159
  def self.new(
134
160
  # Discord incoming webhook object.
135
- incoming_webhook:
161
+ incoming_webhook:,
162
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
163
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
164
+ # this tenant, Knock prefers this connection over untagged connections.
165
+ knock_tenant_id: nil
136
166
  )
137
167
  end
138
168
 
@@ -140,7 +170,8 @@ module Knockapi
140
170
  override.returns(
141
171
  {
142
172
  incoming_webhook:
143
- Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook
173
+ Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook,
174
+ knock_tenant_id: T.nilable(String)
144
175
  }
145
176
  )
146
177
  end
@@ -88,6 +88,12 @@ module Knockapi
88
88
  )
89
89
  end
90
90
 
91
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
92
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
93
+ # this tenant, Knock prefers this connection over untagged connections.
94
+ sig { returns(T.nilable(String)) }
95
+ attr_accessor :knock_tenant_id
96
+
91
97
  # Microsoft Teams channel ID.
92
98
  sig { returns(T.nilable(String)) }
93
99
  attr_accessor :ms_teams_channel_id
@@ -107,6 +113,7 @@ module Knockapi
107
113
  # Microsoft Teams token connection.
108
114
  sig do
109
115
  params(
116
+ knock_tenant_id: T.nilable(String),
110
117
  ms_teams_channel_id: T.nilable(String),
111
118
  ms_teams_team_id: T.nilable(String),
112
119
  ms_teams_tenant_id: T.nilable(String),
@@ -114,6 +121,10 @@ module Knockapi
114
121
  ).returns(T.attached_class)
115
122
  end
116
123
  def self.new(
124
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
125
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
126
+ # this tenant, Knock prefers this connection over untagged connections.
127
+ knock_tenant_id: nil,
117
128
  # Microsoft Teams channel ID.
118
129
  ms_teams_channel_id: nil,
119
130
  # Microsoft Teams team ID.
@@ -128,6 +139,7 @@ module Knockapi
128
139
  sig do
129
140
  override.returns(
130
141
  {
142
+ knock_tenant_id: T.nilable(String),
131
143
  ms_teams_channel_id: T.nilable(String),
132
144
  ms_teams_team_id: T.nilable(String),
133
145
  ms_teams_tenant_id: T.nilable(String),
@@ -164,16 +176,27 @@ module Knockapi
164
176
  end
165
177
  attr_writer :incoming_webhook
166
178
 
179
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
180
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
181
+ # this tenant, Knock prefers this connection over untagged connections.
182
+ sig { returns(T.nilable(String)) }
183
+ attr_accessor :knock_tenant_id
184
+
167
185
  # Microsoft Teams incoming webhook connection.
168
186
  sig do
169
187
  params(
170
188
  incoming_webhook:
171
- Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook::OrHash
189
+ Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook::OrHash,
190
+ knock_tenant_id: T.nilable(String)
172
191
  ).returns(T.attached_class)
173
192
  end
174
193
  def self.new(
175
194
  # Microsoft Teams incoming webhook.
176
- incoming_webhook:
195
+ incoming_webhook:,
196
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
197
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
198
+ # this tenant, Knock prefers this connection over untagged connections.
199
+ knock_tenant_id: nil
177
200
  )
178
201
  end
179
202
 
@@ -181,7 +204,8 @@ module Knockapi
181
204
  override.returns(
182
205
  {
183
206
  incoming_webhook:
184
- Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook
207
+ Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook,
208
+ knock_tenant_id: T.nilable(String)
185
209
  }
186
210
  )
187
211
  end
@@ -111,6 +111,12 @@ module Knockapi
111
111
  sig { returns(T.nilable(String)) }
112
112
  attr_accessor :channel_name
113
113
 
114
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
115
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
116
+ # this tenant, Knock prefers this connection over untagged connections.
117
+ sig { returns(T.nilable(String)) }
118
+ attr_accessor :knock_tenant_id
119
+
114
120
  # A Slack user ID from the Slack provider.
115
121
  sig { returns(T.nilable(String)) }
116
122
  attr_accessor :user_id
@@ -121,6 +127,7 @@ module Knockapi
121
127
  access_token: T.nilable(String),
122
128
  channel_id: T.nilable(String),
123
129
  channel_name: T.nilable(String),
130
+ knock_tenant_id: T.nilable(String),
124
131
  user_id: T.nilable(String)
125
132
  ).returns(T.attached_class)
126
133
  end
@@ -131,6 +138,10 @@ module Knockapi
131
138
  channel_id: nil,
132
139
  # Slack channel name.
133
140
  channel_name: nil,
141
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
142
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
143
+ # this tenant, Knock prefers this connection over untagged connections.
144
+ knock_tenant_id: nil,
134
145
  # A Slack user ID from the Slack provider.
135
146
  user_id: nil
136
147
  )
@@ -142,6 +153,7 @@ module Knockapi
142
153
  access_token: T.nilable(String),
143
154
  channel_id: T.nilable(String),
144
155
  channel_name: T.nilable(String),
156
+ knock_tenant_id: T.nilable(String),
145
157
  user_id: T.nilable(String)
146
158
  }
147
159
  )
@@ -175,16 +187,27 @@ module Knockapi
175
187
  end
176
188
  attr_writer :incoming_webhook
177
189
 
190
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
191
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
192
+ # this tenant, Knock prefers this connection over untagged connections.
193
+ sig { returns(T.nilable(String)) }
194
+ attr_accessor :knock_tenant_id
195
+
178
196
  # A Slack connection incoming webhook.
179
197
  sig do
180
198
  params(
181
199
  incoming_webhook:
182
- Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook::OrHash
200
+ Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook::OrHash,
201
+ knock_tenant_id: T.nilable(String)
183
202
  ).returns(T.attached_class)
184
203
  end
185
204
  def self.new(
186
205
  # A Slack connection incoming webhook.
187
- incoming_webhook:
206
+ incoming_webhook:,
207
+ # An optional Knock tenant ID (`knock_tenant_id`) that scopes this connection.
208
+ # Distinct from provider-specific tenant IDs. When a workflow is triggered with
209
+ # this tenant, Knock prefers this connection over untagged connections.
210
+ knock_tenant_id: nil
188
211
  )
189
212
  end
190
213
 
@@ -192,7 +215,8 @@ module Knockapi
192
215
  override.returns(
193
216
  {
194
217
  incoming_webhook:
195
- Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook
218
+ Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook,
219
+ knock_tenant_id: T.nilable(String)
196
220
  }
197
221
  )
198
222
  end
@@ -42,42 +42,44 @@ module Knockapi
42
42
  }
43
43
 
44
44
  type type_ =
45
- :"message.read"
46
- | :"message.sent"
47
- | :"message.seen"
48
- | :"message.created"
45
+ :"message.created"
49
46
  | :"message.queued"
47
+ | :"message.sent"
48
+ | :"message.not_sent"
50
49
  | :"message.delivered"
51
50
  | :"message.delivery_attempted"
52
51
  | :"message.undelivered"
53
52
  | :"message.bounced"
54
- | :"message.not_sent"
55
- | :"message.archived"
56
- | :"message.link_clicked"
57
- | :"message.interacted"
53
+ | :"message.complaint"
54
+ | :"message.read"
58
55
  | :"message.unread"
56
+ | :"message.seen"
59
57
  | :"message.unseen"
58
+ | :"message.archived"
60
59
  | :"message.unarchived"
60
+ | :"message.interacted"
61
+ | :"message.link_clicked"
61
62
 
62
63
  module Type
63
64
  extend Knockapi::Internal::Type::Enum
64
65
 
65
- MESSAGE_READ: :"message.read"
66
- MESSAGE_SENT: :"message.sent"
67
- MESSAGE_SEEN: :"message.seen"
68
66
  MESSAGE_CREATED: :"message.created"
69
67
  MESSAGE_QUEUED: :"message.queued"
68
+ MESSAGE_SENT: :"message.sent"
69
+ MESSAGE_NOT_SENT: :"message.not_sent"
70
70
  MESSAGE_DELIVERED: :"message.delivered"
71
71
  MESSAGE_DELIVERY_ATTEMPTED: :"message.delivery_attempted"
72
72
  MESSAGE_UNDELIVERED: :"message.undelivered"
73
73
  MESSAGE_BOUNCED: :"message.bounced"
74
- MESSAGE_NOT_SENT: :"message.not_sent"
75
- MESSAGE_ARCHIVED: :"message.archived"
76
- MESSAGE_LINK_CLICKED: :"message.link_clicked"
77
- MESSAGE_INTERACTED: :"message.interacted"
74
+ MESSAGE_COMPLAINT: :"message.complaint"
75
+ MESSAGE_READ: :"message.read"
78
76
  MESSAGE_UNREAD: :"message.unread"
77
+ MESSAGE_SEEN: :"message.seen"
79
78
  MESSAGE_UNSEEN: :"message.unseen"
79
+ MESSAGE_ARCHIVED: :"message.archived"
80
80
  MESSAGE_UNARCHIVED: :"message.unarchived"
81
+ MESSAGE_INTERACTED: :"message.interacted"
82
+ MESSAGE_LINK_CLICKED: :"message.link_clicked"
81
83
 
82
84
  def self?.values: -> ::Array[Knockapi::Models::MessageEvent::type_]
83
85
  end
@@ -24,30 +24,41 @@ module Knockapi
24
24
  module Connection
25
25
  extend Knockapi::Internal::Type::Union
26
26
 
27
- type discord_channel_connection = { channel_id: String }
27
+ type discord_channel_connection =
28
+ { channel_id: String, knock_tenant_id: String? }
28
29
 
29
30
  class DiscordChannelConnection < Knockapi::Internal::Type::BaseModel
30
31
  attr_accessor channel_id: String
31
32
 
32
- def initialize: (channel_id: String) -> void
33
+ attr_accessor knock_tenant_id: String?
33
34
 
34
- def to_hash: -> { channel_id: String }
35
+ def initialize: (
36
+ channel_id: String,
37
+ ?knock_tenant_id: String?
38
+ ) -> void
39
+
40
+ def to_hash: -> { channel_id: String, knock_tenant_id: String? }
35
41
  end
36
42
 
37
43
  type discord_incoming_webhook_connection =
38
44
  {
39
- incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook
45
+ incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook,
46
+ knock_tenant_id: String?
40
47
  }
41
48
 
42
49
  class DiscordIncomingWebhookConnection < Knockapi::Internal::Type::BaseModel
43
50
  attr_accessor incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook
44
51
 
52
+ attr_accessor knock_tenant_id: String?
53
+
45
54
  def initialize: (
46
- incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook
55
+ incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook,
56
+ ?knock_tenant_id: String?
47
57
  ) -> void
48
58
 
49
59
  def to_hash: -> {
50
- incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook
60
+ incoming_webhook: Knockapi::Recipients::DiscordChannelData::Connection::DiscordIncomingWebhookConnection::IncomingWebhook,
61
+ knock_tenant_id: String?
51
62
  }
52
63
 
53
64
  type incoming_webhook = { url: String }
@@ -31,6 +31,7 @@ module Knockapi
31
31
 
32
32
  type ms_teams_token_connection =
33
33
  {
34
+ knock_tenant_id: String?,
34
35
  ms_teams_channel_id: String?,
35
36
  ms_teams_team_id: String?,
36
37
  ms_teams_tenant_id: String?,
@@ -38,6 +39,8 @@ module Knockapi
38
39
  }
39
40
 
40
41
  class MsTeamsTokenConnection < Knockapi::Internal::Type::BaseModel
42
+ attr_accessor knock_tenant_id: String?
43
+
41
44
  attr_accessor ms_teams_channel_id: String?
42
45
 
43
46
  attr_accessor ms_teams_team_id: String?
@@ -47,6 +50,7 @@ module Knockapi
47
50
  attr_accessor ms_teams_user_id: String?
48
51
 
49
52
  def initialize: (
53
+ ?knock_tenant_id: String?,
50
54
  ?ms_teams_channel_id: String?,
51
55
  ?ms_teams_team_id: String?,
52
56
  ?ms_teams_tenant_id: String?,
@@ -54,6 +58,7 @@ module Knockapi
54
58
  ) -> void
55
59
 
56
60
  def to_hash: -> {
61
+ knock_tenant_id: String?,
57
62
  ms_teams_channel_id: String?,
58
63
  ms_teams_team_id: String?,
59
64
  ms_teams_tenant_id: String?,
@@ -63,18 +68,23 @@ module Knockapi
63
68
 
64
69
  type ms_teams_incoming_webhook_connection =
65
70
  {
66
- incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook
71
+ incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook,
72
+ knock_tenant_id: String?
67
73
  }
68
74
 
69
75
  class MsTeamsIncomingWebhookConnection < Knockapi::Internal::Type::BaseModel
70
76
  attr_accessor incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook
71
77
 
78
+ attr_accessor knock_tenant_id: String?
79
+
72
80
  def initialize: (
73
- incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook
81
+ incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook,
82
+ ?knock_tenant_id: String?
74
83
  ) -> void
75
84
 
76
85
  def to_hash: -> {
77
- incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook
86
+ incoming_webhook: Knockapi::Recipients::MsTeamsChannelData::Connection::MsTeamsIncomingWebhookConnection::IncomingWebhook,
87
+ knock_tenant_id: String?
78
88
  }
79
89
 
80
90
  type incoming_webhook = { url: String }
@@ -34,6 +34,7 @@ module Knockapi
34
34
  access_token: String?,
35
35
  channel_id: String?,
36
36
  channel_name: String?,
37
+ knock_tenant_id: String?,
37
38
  user_id: String?
38
39
  }
39
40
 
@@ -44,12 +45,15 @@ module Knockapi
44
45
 
45
46
  attr_accessor channel_name: String?
46
47
 
48
+ attr_accessor knock_tenant_id: String?
49
+
47
50
  attr_accessor user_id: String?
48
51
 
49
52
  def initialize: (
50
53
  ?access_token: String?,
51
54
  ?channel_id: String?,
52
55
  ?channel_name: String?,
56
+ ?knock_tenant_id: String?,
53
57
  ?user_id: String?
54
58
  ) -> void
55
59
 
@@ -57,24 +61,30 @@ module Knockapi
57
61
  access_token: String?,
58
62
  channel_id: String?,
59
63
  channel_name: String?,
64
+ knock_tenant_id: String?,
60
65
  user_id: String?
61
66
  }
62
67
  end
63
68
 
64
69
  type slack_incoming_webhook_connection =
65
70
  {
66
- incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook
71
+ incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook,
72
+ knock_tenant_id: String?
67
73
  }
68
74
 
69
75
  class SlackIncomingWebhookConnection < Knockapi::Internal::Type::BaseModel
70
76
  attr_accessor incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook
71
77
 
78
+ attr_accessor knock_tenant_id: String?
79
+
72
80
  def initialize: (
73
- incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook
81
+ incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook,
82
+ ?knock_tenant_id: String?
74
83
  ) -> void
75
84
 
76
85
  def to_hash: -> {
77
- incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook
86
+ incoming_webhook: Knockapi::Recipients::SlackChannelData::Connection::SlackIncomingWebhookConnection::IncomingWebhook,
87
+ knock_tenant_id: String?
78
88
  }
79
89
 
80
90
  type incoming_webhook = { url: String }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knockapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.41.0
4
+ version: 1.42.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-09-10 00:00:00.000000000 Z
11
+ date: 2026-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi