knockapi 1.13.0 → 1.15.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/client.rb +6 -2
  5. data/lib/knockapi/errors.rb +25 -11
  6. data/lib/knockapi/internal/entries_cursor.rb +1 -1
  7. data/lib/knockapi/internal/items_cursor.rb +1 -1
  8. data/lib/knockapi/internal/ms_teams_pagination.rb +1 -1
  9. data/lib/knockapi/internal/slack_channels_cursor.rb +1 -1
  10. data/lib/knockapi/internal/transport/base_client.rb +11 -7
  11. data/lib/knockapi/internal/type/base_page.rb +1 -1
  12. data/lib/knockapi/internal/util.rb +1 -1
  13. data/lib/knockapi/resources/audiences.rb +4 -4
  14. data/lib/knockapi/resources/objects.rb +4 -4
  15. data/lib/knockapi/resources/tenants.rb +2 -2
  16. data/lib/knockapi/resources/users/guides.rb +3 -3
  17. data/lib/knockapi/resources/users.rb +4 -4
  18. data/lib/knockapi/resources/workflows.rb +2 -2
  19. data/lib/knockapi/version.rb +1 -1
  20. data/lib/knockapi.rb +0 -8
  21. data/rbi/knockapi/client.rbi +4 -2
  22. data/rbi/knockapi/errors.rbi +29 -2
  23. data/rbi/knockapi/internal/transport/base_client.rbi +4 -5
  24. data/rbi/knockapi/internal/type/base_page.rbi +1 -1
  25. data/rbi/knockapi/internal/util.rbi +1 -1
  26. data/rbi/knockapi/resources/audiences.rbi +2 -2
  27. data/rbi/knockapi/resources/objects.rbi +2 -2
  28. data/rbi/knockapi/resources/tenants.rbi +1 -1
  29. data/rbi/knockapi/resources/users/guides.rbi +0 -3
  30. data/rbi/knockapi/resources/users.rbi +2 -2
  31. data/rbi/knockapi/resources/workflows.rbi +1 -1
  32. data/sig/knockapi/client.rbs +2 -1
  33. data/sig/knockapi/errors.rbs +7 -0
  34. data/sig/knockapi/resources/audiences.rbs +2 -2
  35. data/sig/knockapi/resources/objects.rbs +2 -2
  36. data/sig/knockapi/resources/tenants.rbs +1 -4
  37. data/sig/knockapi/resources/users.rbs +2 -2
  38. data/sig/knockapi/resources/workflows.rbs +1 -1
  39. metadata +2 -26
  40. data/lib/knockapi/models/audience_add_members_response.rb +0 -7
  41. data/lib/knockapi/models/audience_remove_members_response.rb +0 -7
  42. data/lib/knockapi/models/object_delete_response.rb +0 -7
  43. data/lib/knockapi/models/object_unset_channel_data_response.rb +0 -7
  44. data/lib/knockapi/models/tenant_delete_response.rb +0 -7
  45. data/lib/knockapi/models/user_delete_response.rb +0 -7
  46. data/lib/knockapi/models/user_unset_channel_data_response.rb +0 -7
  47. data/lib/knockapi/models/workflow_cancel_response.rb +0 -7
  48. data/rbi/knockapi/models/audience_add_members_response.rbi +0 -7
  49. data/rbi/knockapi/models/audience_remove_members_response.rbi +0 -7
  50. data/rbi/knockapi/models/object_delete_response.rbi +0 -7
  51. data/rbi/knockapi/models/object_unset_channel_data_response.rbi +0 -7
  52. data/rbi/knockapi/models/tenant_delete_response.rbi +0 -7
  53. data/rbi/knockapi/models/user_delete_response.rbi +0 -7
  54. data/rbi/knockapi/models/user_unset_channel_data_response.rbi +0 -7
  55. data/rbi/knockapi/models/workflow_cancel_response.rbi +0 -7
  56. data/sig/knockapi/models/audience_add_members_response.rbs +0 -5
  57. data/sig/knockapi/models/audience_remove_members_response.rbs +0 -5
  58. data/sig/knockapi/models/object_delete_response.rbs +0 -5
  59. data/sig/knockapi/models/object_unset_channel_data_response.rbs +0 -5
  60. data/sig/knockapi/models/tenant_delete_response.rbs +0 -5
  61. data/sig/knockapi/models/user_delete_response.rbs +0 -5
  62. data/sig/knockapi/models/user_unset_channel_data_response.rbs +0 -5
  63. data/sig/knockapi/models/workflow_cancel_response.rbs +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de4f4337ddae3ff013f23c8ab79b48785b5bbf34ed79d31dad83b5111a98330f
4
- data.tar.gz: ea934f1d6c8128e2bdcb55d14e7904f8da88cfe73e7e0791dc293e5428f997f0
3
+ metadata.gz: 8d72e806e4aa7f07a86c10e93b8e6060c1da2860ab3d8af247e6c20e83bedacf
4
+ data.tar.gz: 49d2bd4bfe5cc74233d8549938819497bf410f7b2d5686cb8c2096c6f86d40db
5
5
  SHA512:
6
- metadata.gz: 4599b2cbbdbdaeda625d4a5b383d19a28fec88c9fe6d33a279967c1f11fa8f96af8c6c20ee1c94c0041137a5c0916fc96ad5903e9ae7e636dd9f1435356d83a3
7
- data.tar.gz: 290da7f20e22193ea4b6f0488c9c23cf05f017dada61b9742993b75472944e32d4ffc7cf9e4129299da40a6eef1a4aa3c35bd9c01529c9e81593519270c605e2
6
+ metadata.gz: 18b9a4fcab27e4ed869e66b8f189f3ddd780dbe6636eba4a29b143d1cc5362a4069812f55a65041b92b5a1820fe8be29b0b08dd16bfb791504b9e1b163d9cb00
7
+ data.tar.gz: 2c8f5226db4d52750c0905dfc38de19ba144cc771e4b4d9316972f7395641f22a09eebae4e0f63315d4d1450172d490502eed29a13e4959888a932529bfefa35
data/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.15.0 (2025-09-23)
4
+
5
+ Full Changelog: [v1.14.0...v1.15.0](https://github.com/knocklabs/knock-ruby/compare/v1.14.0...v1.15.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([9e20ef7](https://github.com/knocklabs/knock-ruby/commit/9e20ef78f55bd98a4a44ad32a85c63d5b0f7da97))
10
+ * **api:** api update ([f6a598f](https://github.com/knocklabs/knock-ruby/commit/f6a598f8caab8d8fadc652efa12ebbbc62a5d3dc))
11
+ * **api:** set idempotency key header by default ([14e4fac](https://github.com/knocklabs/knock-ruby/commit/14e4face034def9abbb45120d5c1af1cb415b689))
12
+
13
+
14
+ ### Chores
15
+
16
+ * improve example values ([3745058](https://github.com/knocklabs/knock-ruby/commit/37450588f7a937fec2ab49ab04c7142493c7d646))
17
+
18
+ ## 1.14.0 (2025-09-19)
19
+
20
+ Full Changelog: [v1.13.0...v1.14.0](https://github.com/knocklabs/knock-ruby/compare/v1.13.0...v1.14.0)
21
+
22
+ ### Features
23
+
24
+ * expose response headers for both streams and errors ([5cbf48f](https://github.com/knocklabs/knock-ruby/commit/5cbf48f94eecc974a2e3d9a200a04bbfc9d08db4))
25
+
26
+
27
+ ### Chores
28
+
29
+ * do not install brew dependencies in ./scripts/bootstrap by default ([daac840](https://github.com/knocklabs/knock-ruby/commit/daac84029a5ba728f68163b9cccb77dacf56a6b1))
30
+
3
31
  ## 1.13.0 (2025-09-10)
4
32
 
5
33
  Full Changelog: [v1.12.0...v1.13.0](https://github.com/knocklabs/knock-ruby/compare/v1.12.0...v1.13.0)
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.13.0"
20
+ gem "knockapi", "~> 1.15.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -80,13 +80,16 @@ module Knockapi
80
80
  # @param initial_retry_delay [Float]
81
81
  #
82
82
  # @param max_retry_delay [Float]
83
+ #
84
+ # @param idempotency_header [String]
83
85
  def initialize(
84
86
  api_key: ENV["KNOCK_API_KEY"],
85
87
  base_url: ENV["KNOCK_BASE_URL"],
86
88
  max_retries: self.class::DEFAULT_MAX_RETRIES,
87
89
  timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
88
90
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
89
- max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
91
+ max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY,
92
+ idempotency_header: "Idempotency-Key"
90
93
  )
91
94
  base_url ||= "https://api.knock.app"
92
95
 
@@ -101,7 +104,8 @@ module Knockapi
101
104
  timeout: timeout,
102
105
  max_retries: max_retries,
103
106
  initial_retry_delay: initial_retry_delay,
104
- max_retry_delay: max_retry_delay
107
+ max_retry_delay: max_retry_delay,
108
+ idempotency_header: idempotency_header
105
109
  )
106
110
 
107
111
  @shared = Knockapi::Resources::Shared.new(client: self)
@@ -40,6 +40,9 @@ module Knockapi
40
40
  # @return [Integer, nil]
41
41
  attr_accessor :status
42
42
 
43
+ # @return [Hash{String=>String}, nil]
44
+ attr_accessor :headers
45
+
43
46
  # @return [Object, nil]
44
47
  attr_accessor :body
45
48
 
@@ -47,13 +50,15 @@ module Knockapi
47
50
  #
48
51
  # @param url [URI::Generic]
49
52
  # @param status [Integer, nil]
53
+ # @param headers [Hash{String=>String}, nil]
50
54
  # @param body [Object, nil]
51
55
  # @param request [nil]
52
56
  # @param response [nil]
53
57
  # @param message [String, nil]
54
- def initialize(url:, status: nil, body: nil, request: nil, response: nil, message: nil)
58
+ def initialize(url:, status: nil, headers: nil, body: nil, request: nil, response: nil, message: nil)
55
59
  @url = url
56
60
  @status = status
61
+ @headers = headers
57
62
  @body = body
58
63
  @request = request
59
64
  @response = response
@@ -74,6 +79,7 @@ module Knockapi
74
79
  #
75
80
  # @param url [URI::Generic]
76
81
  # @param status [nil]
82
+ # @param headers [Hash{String=>String}, nil]
77
83
  # @param body [nil]
78
84
  # @param request [nil]
79
85
  # @param response [nil]
@@ -81,6 +87,7 @@ module Knockapi
81
87
  def initialize(
82
88
  url:,
83
89
  status: nil,
90
+ headers: nil,
84
91
  body: nil,
85
92
  request: nil,
86
93
  response: nil,
@@ -95,6 +102,7 @@ module Knockapi
95
102
  #
96
103
  # @param url [URI::Generic]
97
104
  # @param status [nil]
105
+ # @param headers [Hash{String=>String}, nil]
98
106
  # @param body [nil]
99
107
  # @param request [nil]
100
108
  # @param response [nil]
@@ -102,6 +110,7 @@ module Knockapi
102
110
  def initialize(
103
111
  url:,
104
112
  status: nil,
113
+ headers: nil,
105
114
  body: nil,
106
115
  request: nil,
107
116
  response: nil,
@@ -116,21 +125,24 @@ module Knockapi
116
125
  #
117
126
  # @param url [URI::Generic]
118
127
  # @param status [Integer]
128
+ # @param headers [Hash{String=>String}, nil]
119
129
  # @param body [Object, nil]
120
130
  # @param request [nil]
121
131
  # @param response [nil]
122
132
  # @param message [String, nil]
123
133
  #
124
134
  # @return [self]
125
- def self.for(url:, status:, body:, request:, response:, message: nil)
126
- kwargs = {
127
- url: url,
128
- status: status,
129
- body: body,
130
- request: request,
131
- response: response,
132
- message: message
133
- }
135
+ def self.for(url:, status:, headers:, body:, request:, response:, message: nil)
136
+ kwargs =
137
+ {
138
+ url: url,
139
+ status: status,
140
+ headers: headers,
141
+ body: body,
142
+ request: request,
143
+ response: response,
144
+ message: message
145
+ }
134
146
 
135
147
  case status
136
148
  in 400
@@ -162,15 +174,17 @@ module Knockapi
162
174
  #
163
175
  # @param url [URI::Generic]
164
176
  # @param status [Integer]
177
+ # @param headers [Hash{String=>String}, nil]
165
178
  # @param body [Object, nil]
166
179
  # @param request [nil]
167
180
  # @param response [nil]
168
181
  # @param message [String, nil]
169
- def initialize(url:, status:, body:, request:, response:, message: nil)
182
+ def initialize(url:, status:, headers:, body:, request:, response:, message: nil)
170
183
  message ||= {url: url.to_s, status: status, body: body}
171
184
  super(
172
185
  url: url,
173
186
  status: status,
187
+ headers: headers,
174
188
  body: body,
175
189
  request: request,
176
190
  response: response,
@@ -60,7 +60,7 @@ module Knockapi
60
60
  #
61
61
  # @param client [Knockapi::Internal::Transport::BaseClient]
62
62
  # @param req [Hash{Symbol=>Object}]
63
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
63
+ # @param headers [Hash{String=>String}]
64
64
  # @param page_data [Hash{Symbol=>Object}]
65
65
  def initialize(client:, req:, headers:, page_data:)
66
66
  super
@@ -60,7 +60,7 @@ module Knockapi
60
60
  #
61
61
  # @param client [Knockapi::Internal::Transport::BaseClient]
62
62
  # @param req [Hash{Symbol=>Object}]
63
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
63
+ # @param headers [Hash{String=>String}]
64
64
  # @param page_data [Hash{Symbol=>Object}]
65
65
  def initialize(client:, req:, headers:, page_data:)
66
66
  super
@@ -60,7 +60,7 @@ module Knockapi
60
60
  #
61
61
  # @param client [Knockapi::Internal::Transport::BaseClient]
62
62
  # @param req [Hash{Symbol=>Object}]
63
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
63
+ # @param headers [Hash{String=>String}]
64
64
  # @param page_data [Hash{Symbol=>Object}]
65
65
  def initialize(client:, req:, headers:, page_data:)
66
66
  super
@@ -60,7 +60,7 @@ module Knockapi
60
60
  #
61
61
  # @param client [Knockapi::Internal::Transport::BaseClient]
62
62
  # @param req [Hash{Symbol=>Object}]
63
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
63
+ # @param headers [Hash{String=>String}]
64
64
  # @param page_data [Hash{Symbol=>Object}]
65
65
  def initialize(client:, req:, headers:, page_data:)
66
66
  super
@@ -47,7 +47,7 @@ module Knockapi
47
47
  # @api private
48
48
  #
49
49
  # @param status [Integer]
50
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
50
+ # @param headers [Hash{String=>String}]
51
51
  #
52
52
  # @return [Boolean]
53
53
  def should_retry?(status, headers:)
@@ -85,7 +85,7 @@ module Knockapi
85
85
  #
86
86
  # @param status [Integer]
87
87
  #
88
- # @param response_headers [Hash{String=>String}, Net::HTTPHeader]
88
+ # @param response_headers [Hash{String=>String}]
89
89
  #
90
90
  # @return [Hash{Symbol=>Object}]
91
91
  def follow_redirect(request, status:, response_headers:)
@@ -378,6 +378,7 @@ module Knockapi
378
378
  rescue Knockapi::Errors::APIConnectionError => e
379
379
  status = e
380
380
  end
381
+ headers = Knockapi::Internal::Util.normalized_headers(response&.each_header&.to_h)
381
382
 
382
383
  case status
383
384
  in ..299
@@ -390,7 +391,7 @@ module Knockapi
390
391
  in 300..399
391
392
  self.class.reap_connection!(status, stream: stream)
392
393
 
393
- request = self.class.follow_redirect(request, status: status, response_headers: response)
394
+ request = self.class.follow_redirect(request, status: status, response_headers: headers)
394
395
  send_request(
395
396
  request,
396
397
  redirect_count: redirect_count + 1,
@@ -399,9 +400,9 @@ module Knockapi
399
400
  )
400
401
  in Knockapi::Errors::APIConnectionError if retry_count >= max_retries
401
402
  raise status
402
- in (400..) if retry_count >= max_retries || !self.class.should_retry?(status, headers: response)
403
+ in (400..) if retry_count >= max_retries || !self.class.should_retry?(status, headers: headers)
403
404
  decoded = Kernel.then do
404
- Knockapi::Internal::Util.decode_content(response, stream: stream, suppress_error: true)
405
+ Knockapi::Internal::Util.decode_content(headers, stream: stream, suppress_error: true)
405
406
  ensure
406
407
  self.class.reap_connection!(status, stream: stream)
407
408
  end
@@ -409,6 +410,7 @@ module Knockapi
409
410
  raise Knockapi::Errors::APIStatusError.for(
410
411
  url: url,
411
412
  status: status,
413
+ headers: headers,
412
414
  body: decoded,
413
415
  request: nil,
414
416
  response: response
@@ -485,19 +487,21 @@ module Knockapi
485
487
  send_retry_header: send_retry_header
486
488
  )
487
489
 
488
- decoded = Knockapi::Internal::Util.decode_content(response, stream: stream)
490
+ headers = Knockapi::Internal::Util.normalized_headers(response.each_header.to_h)
491
+ decoded = Knockapi::Internal::Util.decode_content(headers, stream: stream)
489
492
  case req
490
493
  in {stream: Class => st}
491
494
  st.new(
492
495
  model: model,
493
496
  url: url,
494
497
  status: status,
498
+ headers: headers,
495
499
  response: response,
496
500
  unwrap: unwrap,
497
501
  stream: decoded
498
502
  )
499
503
  in {page: Class => page}
500
- page.new(client: self, req: req, headers: response, page_data: decoded)
504
+ page.new(client: self, req: req, headers: headers, page_data: decoded)
501
505
  else
502
506
  unwrapped = Knockapi::Internal::Util.dig(decoded, unwrap)
503
507
  Knockapi::Internal::Type::Converter.coerce(model, unwrapped)
@@ -39,7 +39,7 @@ module Knockapi
39
39
  #
40
40
  # @param client [Knockapi::Internal::Transport::BaseClient]
41
41
  # @param req [Hash{Symbol=>Object}]
42
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
42
+ # @param headers [Hash{String=>String}]
43
43
  # @param page_data [Object]
44
44
  def initialize(client:, req:, headers:, page_data:)
45
45
  @client = client
@@ -647,7 +647,7 @@ module Knockapi
647
647
  #
648
648
  # Assumes each chunk in stream has `Encoding::BINARY`.
649
649
  #
650
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
650
+ # @param headers [Hash{String=>String}]
651
651
  # @param stream [Enumerable<String>]
652
652
  # @param suppress_error [Boolean]
653
653
  #
@@ -13,7 +13,7 @@ module Knockapi
13
13
  #
14
14
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
15
15
  #
16
- # @return [String]
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: String,
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 [String]
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: String,
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 [String]
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: String,
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 [String]
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: String,
488
+ model: NilClass,
489
489
  options: params[:request_options]
490
490
  )
491
491
  end
@@ -45,14 +45,14 @@ module Knockapi
45
45
  #
46
46
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
47
47
  #
48
- # @return [String]
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: String,
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] The unique identifier for the message.
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] The unique identifier for the message.
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] The unique identifier for the message.
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 [String]
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: String,
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 [String]
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: String,
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 [String]
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: String,
32
+ model: NilClass,
33
33
  options: options
34
34
  )
35
35
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.13.0"
4
+ VERSION = "1.15.0"
5
5
  end
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"
@@ -65,7 +65,8 @@ module Knockapi
65
65
  max_retries: Integer,
66
66
  timeout: Float,
67
67
  initial_retry_delay: Float,
68
- max_retry_delay: Float
68
+ max_retry_delay: Float,
69
+ idempotency_header: String
69
70
  ).returns(T.attached_class)
70
71
  end
71
72
  def self.new(
@@ -78,7 +79,8 @@ module Knockapi
78
79
  max_retries: Knockapi::Client::DEFAULT_MAX_RETRIES,
79
80
  timeout: Knockapi::Client::DEFAULT_TIMEOUT_IN_SECONDS,
80
81
  initial_retry_delay: Knockapi::Client::DEFAULT_INITIAL_RETRY_DELAY,
81
- max_retry_delay: Knockapi::Client::DEFAULT_MAX_RETRY_DELAY
82
+ max_retry_delay: Knockapi::Client::DEFAULT_MAX_RETRY_DELAY,
83
+ idempotency_header: "Idempotency-Key"
82
84
  )
83
85
  end
84
86
  end