knockapi 1.14.0 → 1.16.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 +4 -4
- data/CHANGELOG.md +44 -0
- data/README.md +1 -1
- data/lib/knockapi/client.rb +6 -6
- data/lib/knockapi/file_part.rb +10 -7
- data/lib/knockapi/internal/transport/pooled_net_requester.rb +7 -10
- data/lib/knockapi/internal/type/file_input.rb +7 -4
- data/lib/knockapi/internal/util.rb +2 -1
- data/lib/knockapi/models/audience_add_members_params.rb +2 -2
- data/lib/knockapi/models/message.rb +30 -8
- data/lib/knockapi/resources/audiences.rb +5 -5
- data/lib/knockapi/resources/objects.rb +4 -4
- data/lib/knockapi/resources/tenants/bulk.rb +3 -2
- data/lib/knockapi/resources/tenants.rb +2 -2
- data/lib/knockapi/resources/users/guides.rb +3 -3
- data/lib/knockapi/resources/users.rb +4 -4
- data/lib/knockapi/resources/workflows.rb +2 -2
- data/lib/knockapi/version.rb +1 -1
- data/lib/knockapi.rb +0 -9
- data/rbi/knockapi/client.rbi +4 -5
- data/rbi/knockapi/file_part.rbi +1 -1
- data/rbi/knockapi/models/audience_add_members_params.rbi +2 -2
- data/rbi/knockapi/models/message.rbi +46 -10
- data/rbi/knockapi/resources/audiences.rbi +3 -3
- data/rbi/knockapi/resources/objects.rbi +2 -2
- data/rbi/knockapi/resources/tenants/bulk.rbi +3 -2
- data/rbi/knockapi/resources/tenants.rbi +1 -1
- data/rbi/knockapi/resources/users/guides.rbi +0 -3
- data/rbi/knockapi/resources/users.rbi +2 -2
- data/rbi/knockapi/resources/workflows.rbi +1 -1
- data/sig/knockapi/client.rbs +2 -3
- data/sig/knockapi/file_part.rbs +1 -1
- data/sig/knockapi/models/message.rbs +24 -3
- data/sig/knockapi/resources/audiences.rbs +2 -2
- data/sig/knockapi/resources/objects.rbs +2 -2
- data/sig/knockapi/resources/tenants.rbs +1 -4
- data/sig/knockapi/resources/users.rbs +2 -2
- data/sig/knockapi/resources/workflows.rbs +1 -1
- metadata +2 -29
- data/lib/knockapi/models/audience_add_members_response.rb +0 -7
- data/lib/knockapi/models/audience_remove_members_response.rb +0 -7
- data/lib/knockapi/models/object_delete_response.rb +0 -7
- data/lib/knockapi/models/object_unset_channel_data_response.rb +0 -7
- data/lib/knockapi/models/tenant_delete_response.rb +0 -7
- data/lib/knockapi/models/user_delete_response.rb +0 -7
- data/lib/knockapi/models/user_unset_channel_data_response.rb +0 -7
- data/lib/knockapi/models/workflow_cancel_response.rb +0 -7
- data/lib/knockapi/resources/shared.rb +0 -14
- data/rbi/knockapi/models/audience_add_members_response.rbi +0 -7
- data/rbi/knockapi/models/audience_remove_members_response.rbi +0 -7
- data/rbi/knockapi/models/object_delete_response.rbi +0 -7
- data/rbi/knockapi/models/object_unset_channel_data_response.rbi +0 -7
- data/rbi/knockapi/models/tenant_delete_response.rbi +0 -7
- data/rbi/knockapi/models/user_delete_response.rbi +0 -7
- data/rbi/knockapi/models/user_unset_channel_data_response.rbi +0 -7
- data/rbi/knockapi/models/workflow_cancel_response.rbi +0 -7
- data/rbi/knockapi/resources/shared.rbi +0 -12
- data/sig/knockapi/models/audience_add_members_response.rbs +0 -5
- data/sig/knockapi/models/audience_remove_members_response.rbs +0 -5
- data/sig/knockapi/models/object_delete_response.rbs +0 -5
- data/sig/knockapi/models/object_unset_channel_data_response.rbs +0 -5
- data/sig/knockapi/models/tenant_delete_response.rbs +0 -5
- data/sig/knockapi/models/user_delete_response.rbs +0 -5
- data/sig/knockapi/models/user_unset_channel_data_response.rbs +0 -5
- data/sig/knockapi/models/workflow_cancel_response.rbs +0 -5
- data/sig/knockapi/resources/shared.rbs +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1630ae8acf4360fc75f33510c2fcb8423468a3d833430f516275c3c7a6730546
|
|
4
|
+
data.tar.gz: 2eafc59334b1af87ca901007d2f2c8f2d917eebaa7ba47a9bb3513d4e8af870d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9e0edc59e0d14876def76d371494014a4b4353947938247f011ffd853aaf05c5c05a214309ecb092e4783c03a5235d3b12c744f9ec20b27ae9c81bc4103ff50
|
|
7
|
+
data.tar.gz: 49c8be1db5c6ce3e680c5768c1b9579148dc44151d68b49a28c0a162cd0261ae9c0f206388fc2d0fb1e884970a170a1b0f94ce03e0f4f7504afa86dff0b33f6a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.16.0 (2025-10-07)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.15.0...v1.16.0](https://github.com/knocklabs/knock-ruby/compare/v1.15.0...v1.16.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([f006836](https://github.com/knocklabs/knock-ruby/commit/f0068369fd1ad7dfa9843753966d6bfb3758e1ea))
|
|
10
|
+
* **api:** api update ([8f74167](https://github.com/knocklabs/knock-ruby/commit/8f74167231ab9aba28065beb23922d7c4cba9cea))
|
|
11
|
+
* **api:** api update ([27835b7](https://github.com/knocklabs/knock-ruby/commit/27835b7a76ec99e59511e5f92e0ddb88a48ed608))
|
|
12
|
+
* **api:** manual updates ([22850d8](https://github.com/knocklabs/knock-ruby/commit/22850d8c0b0605e045cc7d19020ac9f9c97ae163))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* always send `filename=...` for multipart requests where a file is expected ([1a6d4ac](https://github.com/knocklabs/knock-ruby/commit/1a6d4acdcf66e42ddc5b813a61dc7c535e5f90ee))
|
|
18
|
+
* coroutine leaks from connection pool ([3bc1ff2](https://github.com/knocklabs/knock-ruby/commit/3bc1ff25c7b0cda3f712779d67a8c5f6f5b28969))
|
|
19
|
+
* **internal:** use null byte as file separator in the fast formatting script ([d8c723e](https://github.com/knocklabs/knock-ruby/commit/d8c723ed107313e3cc641ea8b68eb5ee8543bfcc))
|
|
20
|
+
* shorten multipart boundary sep to less than RFC specificed max length ([66403e8](https://github.com/knocklabs/knock-ruby/commit/66403e82039587fbf154aff05c2cbfc1e56066a0))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Performance Improvements
|
|
24
|
+
|
|
25
|
+
* faster code formatting ([b578cd0](https://github.com/knocklabs/knock-ruby/commit/b578cd025eefbe8b3ba863403c8a59f9b0acc6bf))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Chores
|
|
29
|
+
|
|
30
|
+
* allow fast-format to use bsd sed as well ([c57f00b](https://github.com/knocklabs/knock-ruby/commit/c57f00b885b596ea799f8929986228240fa3aab4))
|
|
31
|
+
|
|
32
|
+
## 1.15.0 (2025-09-23)
|
|
33
|
+
|
|
34
|
+
Full Changelog: [v1.14.0...v1.15.0](https://github.com/knocklabs/knock-ruby/compare/v1.14.0...v1.15.0)
|
|
35
|
+
|
|
36
|
+
### Features
|
|
37
|
+
|
|
38
|
+
* **api:** api update ([9e20ef7](https://github.com/knocklabs/knock-ruby/commit/9e20ef78f55bd98a4a44ad32a85c63d5b0f7da97))
|
|
39
|
+
* **api:** api update ([f6a598f](https://github.com/knocklabs/knock-ruby/commit/f6a598f8caab8d8fadc652efa12ebbbc62a5d3dc))
|
|
40
|
+
* **api:** set idempotency key header by default ([14e4fac](https://github.com/knocklabs/knock-ruby/commit/14e4face034def9abbb45120d5c1af1cb415b689))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Chores
|
|
44
|
+
|
|
45
|
+
* improve example values ([3745058](https://github.com/knocklabs/knock-ruby/commit/37450588f7a937fec2ab49ab04c7142493c7d646))
|
|
46
|
+
|
|
3
47
|
## 1.14.0 (2025-09-19)
|
|
4
48
|
|
|
5
49
|
Full Changelog: [v1.13.0...v1.14.0](https://github.com/knocklabs/knock-ruby/compare/v1.13.0...v1.14.0)
|
data/README.md
CHANGED
data/lib/knockapi/client.rb
CHANGED
|
@@ -18,9 +18,6 @@ module Knockapi
|
|
|
18
18
|
# @return [String]
|
|
19
19
|
attr_reader :api_key
|
|
20
20
|
|
|
21
|
-
# @return [Knockapi::Resources::Shared]
|
|
22
|
-
attr_reader :shared
|
|
23
|
-
|
|
24
21
|
# @return [Knockapi::Resources::Recipients]
|
|
25
22
|
attr_reader :recipients
|
|
26
23
|
|
|
@@ -80,13 +77,16 @@ module Knockapi
|
|
|
80
77
|
# @param initial_retry_delay [Float]
|
|
81
78
|
#
|
|
82
79
|
# @param max_retry_delay [Float]
|
|
80
|
+
#
|
|
81
|
+
# @param idempotency_header [String]
|
|
83
82
|
def initialize(
|
|
84
83
|
api_key: ENV["KNOCK_API_KEY"],
|
|
85
84
|
base_url: ENV["KNOCK_BASE_URL"],
|
|
86
85
|
max_retries: self.class::DEFAULT_MAX_RETRIES,
|
|
87
86
|
timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
|
|
88
87
|
initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
|
|
89
|
-
max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
|
|
88
|
+
max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY,
|
|
89
|
+
idempotency_header: "Idempotency-Key"
|
|
90
90
|
)
|
|
91
91
|
base_url ||= "https://api.knock.app"
|
|
92
92
|
|
|
@@ -101,10 +101,10 @@ module Knockapi
|
|
|
101
101
|
timeout: timeout,
|
|
102
102
|
max_retries: max_retries,
|
|
103
103
|
initial_retry_delay: initial_retry_delay,
|
|
104
|
-
max_retry_delay: max_retry_delay
|
|
104
|
+
max_retry_delay: max_retry_delay,
|
|
105
|
+
idempotency_header: idempotency_header
|
|
105
106
|
)
|
|
106
107
|
|
|
107
|
-
@shared = Knockapi::Resources::Shared.new(client: self)
|
|
108
108
|
@recipients = Knockapi::Resources::Recipients.new(client: self)
|
|
109
109
|
@users = Knockapi::Resources::Users.new(client: self)
|
|
110
110
|
@objects = Knockapi::Resources::Objects.new(client: self)
|
data/lib/knockapi/file_part.rb
CHANGED
|
@@ -38,18 +38,21 @@ module Knockapi
|
|
|
38
38
|
def to_yaml(*a) = read.to_yaml(*a)
|
|
39
39
|
|
|
40
40
|
# @param content [Pathname, StringIO, IO, String]
|
|
41
|
-
# @param filename [String, nil]
|
|
41
|
+
# @param filename [Pathname, String, nil]
|
|
42
42
|
# @param content_type [String, nil]
|
|
43
43
|
def initialize(content, filename: nil, content_type: nil)
|
|
44
|
-
@
|
|
44
|
+
@content_type = content_type
|
|
45
45
|
@filename =
|
|
46
|
-
case content
|
|
47
|
-
in Pathname
|
|
48
|
-
|
|
46
|
+
case [filename, (@content = content)]
|
|
47
|
+
in [String | Pathname, _]
|
|
48
|
+
::File.basename(filename)
|
|
49
|
+
in [nil, Pathname]
|
|
50
|
+
content.basename.to_path
|
|
51
|
+
in [nil, IO]
|
|
52
|
+
content.to_path
|
|
49
53
|
else
|
|
50
|
-
filename
|
|
54
|
+
filename
|
|
51
55
|
end
|
|
52
|
-
@content_type = content_type
|
|
53
56
|
end
|
|
54
57
|
end
|
|
55
58
|
end
|
|
@@ -134,9 +134,9 @@ module Knockapi
|
|
|
134
134
|
|
|
135
135
|
# rubocop:disable Metrics/BlockLength
|
|
136
136
|
enum = Enumerator.new do |y|
|
|
137
|
-
|
|
138
|
-
next if finished
|
|
137
|
+
next if finished
|
|
139
138
|
|
|
139
|
+
with_pool(url, deadline: deadline) do |conn|
|
|
140
140
|
req, closing = self.class.build_request(request) do
|
|
141
141
|
self.class.calibrate_socket_timeout(conn, deadline)
|
|
142
142
|
end
|
|
@@ -149,7 +149,7 @@ module Knockapi
|
|
|
149
149
|
|
|
150
150
|
self.class.calibrate_socket_timeout(conn, deadline)
|
|
151
151
|
conn.request(req) do |rsp|
|
|
152
|
-
y << [
|
|
152
|
+
y << [req, rsp]
|
|
153
153
|
break if finished
|
|
154
154
|
|
|
155
155
|
rsp.read_body do |bytes|
|
|
@@ -160,6 +160,8 @@ module Knockapi
|
|
|
160
160
|
end
|
|
161
161
|
eof = true
|
|
162
162
|
end
|
|
163
|
+
ensure
|
|
164
|
+
conn.finish if !eof && conn&.started?
|
|
163
165
|
end
|
|
164
166
|
rescue Timeout::Error
|
|
165
167
|
raise Knockapi::Errors::APITimeoutError.new(url: url, request: req)
|
|
@@ -168,16 +170,11 @@ module Knockapi
|
|
|
168
170
|
end
|
|
169
171
|
# rubocop:enable Metrics/BlockLength
|
|
170
172
|
|
|
171
|
-
|
|
173
|
+
_, response = enum.next
|
|
172
174
|
body = Knockapi::Internal::Util.fused_enum(enum, external: true) do
|
|
173
175
|
finished = true
|
|
174
|
-
|
|
175
|
-
enum.next
|
|
176
|
-
rescue StopIteration
|
|
177
|
-
nil
|
|
178
|
-
end
|
|
176
|
+
loop { enum.next }
|
|
179
177
|
ensure
|
|
180
|
-
conn.finish if !eof && conn&.started?
|
|
181
178
|
closing&.call
|
|
182
179
|
end
|
|
183
180
|
[Integer(response.code), response, body]
|
|
@@ -82,17 +82,20 @@ module Knockapi
|
|
|
82
82
|
#
|
|
83
83
|
# @return [Pathname, StringIO, IO, String, Object]
|
|
84
84
|
def dump(value, state:)
|
|
85
|
-
# rubocop:disable Lint/DuplicateBranch
|
|
86
85
|
case value
|
|
86
|
+
in StringIO | String
|
|
87
|
+
# https://datatracker.ietf.org/doc/html/rfc7578#section-4.2
|
|
88
|
+
# while not required, a filename is recommended, and in practice many servers do expect this
|
|
89
|
+
Knockapi::FilePart.new(value, filename: "upload")
|
|
87
90
|
in IO
|
|
88
91
|
state[:can_retry] = false
|
|
92
|
+
value.to_path.nil? ? Knockapi::FilePart.new(value, filename: "upload") : value
|
|
89
93
|
in Knockapi::FilePart if value.content.is_a?(IO)
|
|
90
94
|
state[:can_retry] = false
|
|
95
|
+
value
|
|
91
96
|
else
|
|
97
|
+
value
|
|
92
98
|
end
|
|
93
|
-
# rubocop:enable Lint/DuplicateBranch
|
|
94
|
-
|
|
95
|
-
value
|
|
96
99
|
end
|
|
97
100
|
|
|
98
101
|
# @api private
|
|
@@ -566,7 +566,8 @@ module Knockapi
|
|
|
566
566
|
#
|
|
567
567
|
# @return [Array(String, Enumerable<String>)]
|
|
568
568
|
private def encode_multipart_streaming(body)
|
|
569
|
-
|
|
569
|
+
# RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
|
|
570
|
+
boundary = SecureRandom.urlsafe_base64(46)
|
|
570
571
|
|
|
571
572
|
closing = []
|
|
572
573
|
strio = writable_enum do |y|
|
|
@@ -8,13 +8,13 @@ module Knockapi
|
|
|
8
8
|
include Knockapi::Internal::Type::RequestParameters
|
|
9
9
|
|
|
10
10
|
# @!attribute members
|
|
11
|
-
# A list of audience members to add.
|
|
11
|
+
# A list of audience members to add. Limited to 1,000 members per request.
|
|
12
12
|
#
|
|
13
13
|
# @return [Array<Knockapi::Models::AudienceAddMembersParams::Member>]
|
|
14
14
|
required :members, -> { Knockapi::Internal::Type::ArrayOf[Knockapi::AudienceAddMembersParams::Member] }
|
|
15
15
|
|
|
16
16
|
# @!method initialize(members:, request_options: {})
|
|
17
|
-
# @param members [Array<Knockapi::Models::AudienceAddMembersParams::Member>] A list of audience members to add.
|
|
17
|
+
# @param members [Array<Knockapi::Models::AudienceAddMembersParams::Member>] A list of audience members to add. Limited to 1,000 members per request.
|
|
18
18
|
#
|
|
19
19
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}]
|
|
20
20
|
|
|
@@ -43,7 +43,7 @@ module Knockapi
|
|
|
43
43
|
required :recipient, union: -> { Knockapi::RecipientReference }
|
|
44
44
|
|
|
45
45
|
# @!attribute source
|
|
46
|
-
# The workflow that triggered the message.
|
|
46
|
+
# The workflow or guide that triggered the message.
|
|
47
47
|
#
|
|
48
48
|
# @return [Knockapi::Models::Message::Source]
|
|
49
49
|
required :source, -> { Knockapi::Message::Source }
|
|
@@ -160,7 +160,7 @@ module Knockapi
|
|
|
160
160
|
#
|
|
161
161
|
# @param recipient [String, Knockapi::Models::RecipientReference::ObjectReference] A reference to a recipient, either a user identifier (string) or an object refer
|
|
162
162
|
#
|
|
163
|
-
# @param source [Knockapi::Models::Message::Source] The workflow that triggered the message.
|
|
163
|
+
# @param source [Knockapi::Models::Message::Source] The workflow or guide that triggered the message.
|
|
164
164
|
#
|
|
165
165
|
# @param status [Symbol, Knockapi::Models::Message::Status] The message delivery status.
|
|
166
166
|
#
|
|
@@ -219,13 +219,13 @@ module Knockapi
|
|
|
219
219
|
required :categories, Knockapi::Internal::Type::ArrayOf[String]
|
|
220
220
|
|
|
221
221
|
# @!attribute key
|
|
222
|
-
# The key of the workflow that triggered the message.
|
|
222
|
+
# The key of the workflow or guide that triggered the message.
|
|
223
223
|
#
|
|
224
224
|
# @return [String]
|
|
225
225
|
required :key, String
|
|
226
226
|
|
|
227
227
|
# @!attribute version_id
|
|
228
|
-
# The ID of the version of the workflow that triggered the message.
|
|
228
|
+
# The ID of the version of the workflow or guide that triggered the message.
|
|
229
229
|
#
|
|
230
230
|
# @return [String]
|
|
231
231
|
required :version_id, String
|
|
@@ -236,18 +236,40 @@ module Knockapi
|
|
|
236
236
|
# @return [String, nil]
|
|
237
237
|
optional :step_ref, String, nil?: true
|
|
238
238
|
|
|
239
|
-
# @!
|
|
240
|
-
#
|
|
239
|
+
# @!attribute type
|
|
240
|
+
# Whether this message was generated from a workflow, broadcast, or guide.
|
|
241
|
+
#
|
|
242
|
+
# @return [Symbol, Knockapi::Models::Message::Source::Type, nil]
|
|
243
|
+
optional :type, enum: -> { Knockapi::Message::Source::Type }
|
|
244
|
+
|
|
245
|
+
# @!method initialize(_typename:, categories:, key:, version_id:, step_ref: nil, type: nil)
|
|
246
|
+
# The workflow or guide that triggered the message.
|
|
241
247
|
#
|
|
242
248
|
# @param _typename [String]
|
|
243
249
|
#
|
|
244
250
|
# @param categories [Array<String>] The categories associated with the message.
|
|
245
251
|
#
|
|
246
|
-
# @param key [String] The key of the workflow that triggered the message.
|
|
252
|
+
# @param key [String] The key of the workflow or guide that triggered the message.
|
|
247
253
|
#
|
|
248
|
-
# @param version_id [String] The ID of the version of the workflow that triggered the message.
|
|
254
|
+
# @param version_id [String] The ID of the version of the workflow or guide that triggered the message.
|
|
249
255
|
#
|
|
250
256
|
# @param step_ref [String, nil] The step reference for the step in the workflow that generated the message.
|
|
257
|
+
#
|
|
258
|
+
# @param type [Symbol, Knockapi::Models::Message::Source::Type] Whether this message was generated from a workflow, broadcast, or guide.
|
|
259
|
+
|
|
260
|
+
# Whether this message was generated from a workflow, broadcast, or guide.
|
|
261
|
+
#
|
|
262
|
+
# @see Knockapi::Models::Message::Source#type
|
|
263
|
+
module Type
|
|
264
|
+
extend Knockapi::Internal::Type::Enum
|
|
265
|
+
|
|
266
|
+
BROADCAST = :broadcast
|
|
267
|
+
WORKFLOW = :workflow
|
|
268
|
+
GUIDE = :guide
|
|
269
|
+
|
|
270
|
+
# @!method self.values
|
|
271
|
+
# @return [Array<Symbol>]
|
|
272
|
+
end
|
|
251
273
|
end
|
|
252
274
|
|
|
253
275
|
# The message delivery status.
|
|
@@ -9,11 +9,11 @@ module Knockapi
|
|
|
9
9
|
#
|
|
10
10
|
# @param key [String] The key of the audience.
|
|
11
11
|
#
|
|
12
|
-
# @param members [Array<Knockapi::Models::AudienceAddMembersParams::Member>] A list of audience members to add.
|
|
12
|
+
# @param members [Array<Knockapi::Models::AudienceAddMembersParams::Member>] A list of audience members to add. Limited to 1,000 members per request.
|
|
13
13
|
#
|
|
14
14
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
15
15
|
#
|
|
16
|
-
# @return [
|
|
16
|
+
# @return [nil]
|
|
17
17
|
#
|
|
18
18
|
# @see Knockapi::Models::AudienceAddMembersParams
|
|
19
19
|
def add_members(key, params)
|
|
@@ -22,7 +22,7 @@ module Knockapi
|
|
|
22
22
|
method: :post,
|
|
23
23
|
path: ["v1/audiences/%1$s/members", key],
|
|
24
24
|
body: parsed,
|
|
25
|
-
model:
|
|
25
|
+
model: NilClass,
|
|
26
26
|
options: options
|
|
27
27
|
)
|
|
28
28
|
end
|
|
@@ -57,7 +57,7 @@ module Knockapi
|
|
|
57
57
|
#
|
|
58
58
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
59
59
|
#
|
|
60
|
-
# @return [
|
|
60
|
+
# @return [nil]
|
|
61
61
|
#
|
|
62
62
|
# @see Knockapi::Models::AudienceRemoveMembersParams
|
|
63
63
|
def remove_members(key, params)
|
|
@@ -66,7 +66,7 @@ module Knockapi
|
|
|
66
66
|
method: :delete,
|
|
67
67
|
path: ["v1/audiences/%1$s/members", key],
|
|
68
68
|
body: parsed,
|
|
69
|
-
model:
|
|
69
|
+
model: NilClass,
|
|
70
70
|
options: options
|
|
71
71
|
)
|
|
72
72
|
end
|
|
@@ -49,14 +49,14 @@ module Knockapi
|
|
|
49
49
|
#
|
|
50
50
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
51
51
|
#
|
|
52
|
-
# @return [
|
|
52
|
+
# @return [nil]
|
|
53
53
|
#
|
|
54
54
|
# @see Knockapi::Models::ObjectDeleteParams
|
|
55
55
|
def delete(collection, id, params = {})
|
|
56
56
|
@client.request(
|
|
57
57
|
method: :delete,
|
|
58
58
|
path: ["v1/objects/%1$s/%2$s", collection, id],
|
|
59
|
-
model:
|
|
59
|
+
model: NilClass,
|
|
60
60
|
options: params[:request_options]
|
|
61
61
|
)
|
|
62
62
|
end
|
|
@@ -478,14 +478,14 @@ module Knockapi
|
|
|
478
478
|
#
|
|
479
479
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
480
480
|
#
|
|
481
|
-
# @return [
|
|
481
|
+
# @return [nil]
|
|
482
482
|
#
|
|
483
483
|
# @see Knockapi::Models::ObjectUnsetChannelDataParams
|
|
484
484
|
def unset_channel_data(collection, object_id_, channel_id, params = {})
|
|
485
485
|
@client.request(
|
|
486
486
|
method: :delete,
|
|
487
487
|
path: ["v1/objects/%1$s/%2$s/channel_data/%3$s", collection, object_id_, channel_id],
|
|
488
|
-
model:
|
|
488
|
+
model: NilClass,
|
|
489
489
|
options: params[:request_options]
|
|
490
490
|
)
|
|
491
491
|
end
|
|
@@ -4,7 +4,8 @@ module Knockapi
|
|
|
4
4
|
module Resources
|
|
5
5
|
class Tenants
|
|
6
6
|
class Bulk
|
|
7
|
-
# Delete
|
|
7
|
+
# Delete up to 100 tenants at a time in a single operation. This operation cannot
|
|
8
|
+
# be undone.
|
|
8
9
|
#
|
|
9
10
|
# @overload delete(tenant_ids:, request_options: {})
|
|
10
11
|
#
|
|
@@ -26,7 +27,7 @@ module Knockapi
|
|
|
26
27
|
)
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
# Set or update up to
|
|
30
|
+
# Set or update up to 100 tenants in a single operation.
|
|
30
31
|
#
|
|
31
32
|
# @overload set(tenants:, request_options: {})
|
|
32
33
|
#
|
|
@@ -45,14 +45,14 @@ module Knockapi
|
|
|
45
45
|
#
|
|
46
46
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
47
47
|
#
|
|
48
|
-
# @return [
|
|
48
|
+
# @return [nil]
|
|
49
49
|
#
|
|
50
50
|
# @see Knockapi::Models::TenantDeleteParams
|
|
51
51
|
def delete(id, params = {})
|
|
52
52
|
@client.request(
|
|
53
53
|
method: :delete,
|
|
54
54
|
path: ["v1/tenants/%1$s", id],
|
|
55
|
-
model:
|
|
55
|
+
model: NilClass,
|
|
56
56
|
options: params[:request_options]
|
|
57
57
|
)
|
|
58
58
|
end
|
|
@@ -41,7 +41,7 @@ module Knockapi
|
|
|
41
41
|
#
|
|
42
42
|
# @param user_id [String] The unique identifier of the user.
|
|
43
43
|
#
|
|
44
|
-
# @param message_id [String]
|
|
44
|
+
# @param message_id [String]
|
|
45
45
|
#
|
|
46
46
|
# @param channel_id [String] The unique identifier for the channel.
|
|
47
47
|
#
|
|
@@ -84,7 +84,7 @@ module Knockapi
|
|
|
84
84
|
#
|
|
85
85
|
# @param user_id [String] The unique identifier of the user.
|
|
86
86
|
#
|
|
87
|
-
# @param message_id [String]
|
|
87
|
+
# @param message_id [String]
|
|
88
88
|
#
|
|
89
89
|
# @param channel_id [String] The unique identifier for the channel.
|
|
90
90
|
#
|
|
@@ -127,7 +127,7 @@ module Knockapi
|
|
|
127
127
|
#
|
|
128
128
|
# @param user_id [String] The unique identifier of the user.
|
|
129
129
|
#
|
|
130
|
-
# @param message_id [String]
|
|
130
|
+
# @param message_id [String]
|
|
131
131
|
#
|
|
132
132
|
# @param channel_id [String] The unique identifier for the channel.
|
|
133
133
|
#
|
|
@@ -95,14 +95,14 @@ module Knockapi
|
|
|
95
95
|
#
|
|
96
96
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
97
97
|
#
|
|
98
|
-
# @return [
|
|
98
|
+
# @return [nil]
|
|
99
99
|
#
|
|
100
100
|
# @see Knockapi::Models::UserDeleteParams
|
|
101
101
|
def delete(user_id, params = {})
|
|
102
102
|
@client.request(
|
|
103
103
|
method: :delete,
|
|
104
104
|
path: ["v1/users/%1$s", user_id],
|
|
105
|
-
model:
|
|
105
|
+
model: NilClass,
|
|
106
106
|
options: params[:request_options]
|
|
107
107
|
)
|
|
108
108
|
end
|
|
@@ -420,14 +420,14 @@ module Knockapi
|
|
|
420
420
|
#
|
|
421
421
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
422
422
|
#
|
|
423
|
-
# @return [
|
|
423
|
+
# @return [nil]
|
|
424
424
|
#
|
|
425
425
|
# @see Knockapi::Models::UserUnsetChannelDataParams
|
|
426
426
|
def unset_channel_data(user_id, channel_id, params = {})
|
|
427
427
|
@client.request(
|
|
428
428
|
method: :delete,
|
|
429
429
|
path: ["v1/users/%1$s/channel_data/%2$s", user_id, channel_id],
|
|
430
|
-
model:
|
|
430
|
+
model: NilClass,
|
|
431
431
|
options: params[:request_options]
|
|
432
432
|
)
|
|
433
433
|
end
|
|
@@ -20,7 +20,7 @@ module Knockapi
|
|
|
20
20
|
#
|
|
21
21
|
# @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
22
22
|
#
|
|
23
|
-
# @return [
|
|
23
|
+
# @return [nil]
|
|
24
24
|
#
|
|
25
25
|
# @see Knockapi::Models::WorkflowCancelParams
|
|
26
26
|
def cancel(key, params)
|
|
@@ -29,7 +29,7 @@ module Knockapi
|
|
|
29
29
|
method: :post,
|
|
30
30
|
path: ["v1/workflows/%1$s/cancel", key],
|
|
31
31
|
body: parsed,
|
|
32
|
-
model:
|
|
32
|
+
model: NilClass,
|
|
33
33
|
options: options
|
|
34
34
|
)
|
|
35
35
|
end
|
data/lib/knockapi/version.rb
CHANGED
data/lib/knockapi.rb
CHANGED
|
@@ -59,12 +59,10 @@ require_relative "knockapi/models/recipients/preference_set_request"
|
|
|
59
59
|
require_relative "knockapi/models/identify_user_request"
|
|
60
60
|
require_relative "knockapi/models/activity"
|
|
61
61
|
require_relative "knockapi/models/audience_add_members_params"
|
|
62
|
-
require_relative "knockapi/models/audience_add_members_response"
|
|
63
62
|
require_relative "knockapi/models/audience_list_members_params"
|
|
64
63
|
require_relative "knockapi/models/audience_list_members_response"
|
|
65
64
|
require_relative "knockapi/models/audience_member"
|
|
66
65
|
require_relative "knockapi/models/audience_remove_members_params"
|
|
67
|
-
require_relative "knockapi/models/audience_remove_members_response"
|
|
68
66
|
require_relative "knockapi/models/bulk_operation"
|
|
69
67
|
require_relative "knockapi/models/bulk_operation_get_params"
|
|
70
68
|
require_relative "knockapi/models/channels/bulk_update_message_status_params"
|
|
@@ -113,7 +111,6 @@ require_relative "knockapi/models/object"
|
|
|
113
111
|
require_relative "knockapi/models/object_add_subscriptions_params"
|
|
114
112
|
require_relative "knockapi/models/object_add_subscriptions_response"
|
|
115
113
|
require_relative "knockapi/models/object_delete_params"
|
|
116
|
-
require_relative "knockapi/models/object_delete_response"
|
|
117
114
|
require_relative "knockapi/models/object_delete_subscriptions_params"
|
|
118
115
|
require_relative "knockapi/models/object_delete_subscriptions_response"
|
|
119
116
|
require_relative "knockapi/models/object_get_channel_data_params"
|
|
@@ -132,7 +129,6 @@ require_relative "knockapi/models/object_set_channel_data_params"
|
|
|
132
129
|
require_relative "knockapi/models/object_set_params"
|
|
133
130
|
require_relative "knockapi/models/object_set_preferences_params"
|
|
134
131
|
require_relative "knockapi/models/object_unset_channel_data_params"
|
|
135
|
-
require_relative "knockapi/models/object_unset_channel_data_response"
|
|
136
132
|
require_relative "knockapi/models/page_info"
|
|
137
133
|
require_relative "knockapi/models/providers/ms_team_check_auth_params"
|
|
138
134
|
require_relative "knockapi/models/providers/ms_team_check_auth_response"
|
|
@@ -175,7 +171,6 @@ require_relative "knockapi/models/schedule_update_params"
|
|
|
175
171
|
require_relative "knockapi/models/schedule_update_response"
|
|
176
172
|
require_relative "knockapi/models/tenant"
|
|
177
173
|
require_relative "knockapi/models/tenant_delete_params"
|
|
178
|
-
require_relative "knockapi/models/tenant_delete_response"
|
|
179
174
|
require_relative "knockapi/models/tenant_get_params"
|
|
180
175
|
require_relative "knockapi/models/tenant_list_params"
|
|
181
176
|
require_relative "knockapi/models/tenant_request"
|
|
@@ -184,7 +179,6 @@ require_relative "knockapi/models/tenants/bulk_set_params"
|
|
|
184
179
|
require_relative "knockapi/models/tenant_set_params"
|
|
185
180
|
require_relative "knockapi/models/user"
|
|
186
181
|
require_relative "knockapi/models/user_delete_params"
|
|
187
|
-
require_relative "knockapi/models/user_delete_response"
|
|
188
182
|
require_relative "knockapi/models/user_get_channel_data_params"
|
|
189
183
|
require_relative "knockapi/models/user_get_params"
|
|
190
184
|
require_relative "knockapi/models/user_get_preferences_params"
|
|
@@ -213,10 +207,8 @@ require_relative "knockapi/models/users/guide_mark_message_as_seen_response"
|
|
|
213
207
|
require_relative "knockapi/models/user_set_channel_data_params"
|
|
214
208
|
require_relative "knockapi/models/user_set_preferences_params"
|
|
215
209
|
require_relative "knockapi/models/user_unset_channel_data_params"
|
|
216
|
-
require_relative "knockapi/models/user_unset_channel_data_response"
|
|
217
210
|
require_relative "knockapi/models/user_update_params"
|
|
218
211
|
require_relative "knockapi/models/workflow_cancel_params"
|
|
219
|
-
require_relative "knockapi/models/workflow_cancel_response"
|
|
220
212
|
require_relative "knockapi/models/workflow_trigger_params"
|
|
221
213
|
require_relative "knockapi/models/workflow_trigger_response"
|
|
222
214
|
require_relative "knockapi/models"
|
|
@@ -240,7 +232,6 @@ require_relative "knockapi/resources/recipients/preferences"
|
|
|
240
232
|
require_relative "knockapi/resources/recipients/subscriptions"
|
|
241
233
|
require_relative "knockapi/resources/schedules"
|
|
242
234
|
require_relative "knockapi/resources/schedules/bulk"
|
|
243
|
-
require_relative "knockapi/resources/shared"
|
|
244
235
|
require_relative "knockapi/resources/tenants"
|
|
245
236
|
require_relative "knockapi/resources/tenants/bulk"
|
|
246
237
|
require_relative "knockapi/resources/users"
|
data/rbi/knockapi/client.rbi
CHANGED
|
@@ -13,9 +13,6 @@ module Knockapi
|
|
|
13
13
|
sig { returns(String) }
|
|
14
14
|
attr_reader :api_key
|
|
15
15
|
|
|
16
|
-
sig { returns(Knockapi::Resources::Shared) }
|
|
17
|
-
attr_reader :shared
|
|
18
|
-
|
|
19
16
|
sig { returns(Knockapi::Resources::Recipients) }
|
|
20
17
|
attr_reader :recipients
|
|
21
18
|
|
|
@@ -65,7 +62,8 @@ module Knockapi
|
|
|
65
62
|
max_retries: Integer,
|
|
66
63
|
timeout: Float,
|
|
67
64
|
initial_retry_delay: Float,
|
|
68
|
-
max_retry_delay: Float
|
|
65
|
+
max_retry_delay: Float,
|
|
66
|
+
idempotency_header: String
|
|
69
67
|
).returns(T.attached_class)
|
|
70
68
|
end
|
|
71
69
|
def self.new(
|
|
@@ -78,7 +76,8 @@ module Knockapi
|
|
|
78
76
|
max_retries: Knockapi::Client::DEFAULT_MAX_RETRIES,
|
|
79
77
|
timeout: Knockapi::Client::DEFAULT_TIMEOUT_IN_SECONDS,
|
|
80
78
|
initial_retry_delay: Knockapi::Client::DEFAULT_INITIAL_RETRY_DELAY,
|
|
81
|
-
max_retry_delay: Knockapi::Client::DEFAULT_MAX_RETRY_DELAY
|
|
79
|
+
max_retry_delay: Knockapi::Client::DEFAULT_MAX_RETRY_DELAY,
|
|
80
|
+
idempotency_header: "Idempotency-Key"
|
|
82
81
|
)
|
|
83
82
|
end
|
|
84
83
|
end
|
data/rbi/knockapi/file_part.rbi
CHANGED
|
@@ -11,7 +11,7 @@ module Knockapi
|
|
|
11
11
|
T.any(Knockapi::AudienceAddMembersParams, Knockapi::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
# A list of audience members to add.
|
|
14
|
+
# A list of audience members to add. Limited to 1,000 members per request.
|
|
15
15
|
sig { returns(T::Array[Knockapi::AudienceAddMembersParams::Member]) }
|
|
16
16
|
attr_accessor :members
|
|
17
17
|
|
|
@@ -22,7 +22,7 @@ module Knockapi
|
|
|
22
22
|
).returns(T.attached_class)
|
|
23
23
|
end
|
|
24
24
|
def self.new(
|
|
25
|
-
# A list of audience members to add.
|
|
25
|
+
# A list of audience members to add. Limited to 1,000 members per request.
|
|
26
26
|
members:,
|
|
27
27
|
request_options: {}
|
|
28
28
|
)
|