knockapi 1.12.0 → 1.14.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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/errors.rb +25 -11
  5. data/lib/knockapi/internal/entries_cursor.rb +1 -1
  6. data/lib/knockapi/internal/items_cursor.rb +1 -1
  7. data/lib/knockapi/internal/ms_teams_pagination.rb +1 -1
  8. data/lib/knockapi/internal/slack_channels_cursor.rb +1 -1
  9. data/lib/knockapi/internal/transport/base_client.rb +11 -7
  10. data/lib/knockapi/internal/type/base_page.rb +1 -1
  11. data/lib/knockapi/internal/util.rb +1 -1
  12. data/lib/knockapi/models/identify_user_request.rb +2 -2
  13. data/lib/knockapi/models/inline_identify_user_request.rb +2 -2
  14. data/lib/knockapi/models/inline_object_request.rb +2 -2
  15. data/lib/knockapi/models/object_set_params.rb +2 -2
  16. data/lib/knockapi/models/objects/bulk_set_params.rb +2 -2
  17. data/lib/knockapi/models/recipients/channel_data.rb +25 -3
  18. data/lib/knockapi/models/recipients/channel_data_request.rb +24 -3
  19. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +22 -1
  20. data/lib/knockapi/models/tenant_request.rb +2 -2
  21. data/lib/knockapi/models/tenant_set_params.rb +2 -2
  22. data/lib/knockapi/models/users/guide_get_channel_response.rb +9 -1
  23. data/lib/knockapi/resources/objects.rb +2 -2
  24. data/lib/knockapi/resources/tenants.rb +1 -1
  25. data/lib/knockapi/resources/users.rb +2 -2
  26. data/lib/knockapi/version.rb +1 -1
  27. data/rbi/knockapi/errors.rbi +29 -2
  28. data/rbi/knockapi/internal/transport/base_client.rbi +4 -5
  29. data/rbi/knockapi/internal/type/base_page.rbi +1 -1
  30. data/rbi/knockapi/internal/util.rbi +1 -1
  31. data/rbi/knockapi/models/identify_user_request.rbi +3 -0
  32. data/rbi/knockapi/models/inline_identify_user_request.rbi +3 -0
  33. data/rbi/knockapi/models/inline_object_request.rbi +3 -0
  34. data/rbi/knockapi/models/object_set_params.rbi +4 -0
  35. data/rbi/knockapi/models/objects/bulk_set_params.rbi +3 -0
  36. data/rbi/knockapi/models/recipients/channel_data.rbi +39 -2
  37. data/rbi/knockapi/models/recipients/channel_data_request.rbi +34 -0
  38. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +31 -0
  39. data/rbi/knockapi/models/tenant_request.rbi +3 -0
  40. data/rbi/knockapi/models/tenant_set_params.rbi +3 -0
  41. data/rbi/knockapi/models/users/guide_get_channel_response.rbi +11 -0
  42. data/rbi/knockapi/resources/objects.rbi +2 -0
  43. data/rbi/knockapi/resources/tenants.rbi +1 -0
  44. data/rbi/knockapi/resources/users.rbi +2 -0
  45. data/sig/knockapi/errors.rbs +7 -0
  46. data/sig/knockapi/models/recipients/channel_data.rbs +13 -0
  47. data/sig/knockapi/models/recipients/channel_data_request.rbs +11 -0
  48. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +11 -0
  49. data/sig/knockapi/models/users/guide_get_channel_response.rbs +7 -0
  50. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f70bdc48166f046ccdf747cb8b1b5f0243f426fd44c1cb0a8755398de49ba15
4
- data.tar.gz: 56964c493eefa8d2074e731d555a8de08bf631203ca3fd0ed6e5b46e1844f9b4
3
+ metadata.gz: 705d1a2dcdf780d7381bfe2afd9f8fbcfeef3d3cf9d1de25c59e66312c99d240
4
+ data.tar.gz: 4a3dc9e5f4099f91844cd93c557fccae11febdc4f1cfd54c4c024deff6e064f1
5
5
  SHA512:
6
- metadata.gz: 59aabd5b5cee769894c14541a886f3832d69970d91de6620965c910b1a3029252f259be7f527687b06c090d3ab13e01ad97b2b117fe0b2ee4fea0f5eb99f8b43
7
- data.tar.gz: c3f89f7634d3fa6026bce31e6be0ca6c3765a680fe47e74b4f60e73173b2ac18087feafe0d30b79e7f8991a5e3bb98176f0ffffd53b865d9b4211a5fa4389aa1
6
+ metadata.gz: e48a5a4811a24450b63764ac62b67faf0c9ee514a9bc7d5911ec10ef46be833ba0667dcf5cf1369f72e10eb0663bdcda4794a007f2514496ff4de81184cb4180
7
+ data.tar.gz: 30be4f558089c7e211ec922a4ffb75a53d7ad5bf851cafff8f628aff4cb0b1ffbe0732cf99363e971bd45218773c42d22469dcc3d397ec98b5570ec9871f0aa6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.14.0 (2025-09-19)
4
+
5
+ Full Changelog: [v1.13.0...v1.14.0](https://github.com/knocklabs/knock-ruby/compare/v1.13.0...v1.14.0)
6
+
7
+ ### Features
8
+
9
+ * expose response headers for both streams and errors ([5cbf48f](https://github.com/knocklabs/knock-ruby/commit/5cbf48f94eecc974a2e3d9a200a04bbfc9d08db4))
10
+
11
+
12
+ ### Chores
13
+
14
+ * do not install brew dependencies in ./scripts/bootstrap by default ([daac840](https://github.com/knocklabs/knock-ruby/commit/daac84029a5ba728f68163b9cccb77dacf56a6b1))
15
+
16
+ ## 1.13.0 (2025-09-10)
17
+
18
+ Full Changelog: [v1.12.0...v1.13.0](https://github.com/knocklabs/knock-ruby/compare/v1.12.0...v1.13.0)
19
+
20
+ ### Features
21
+
22
+ * **api:** api update ([1d41369](https://github.com/knocklabs/knock-ruby/commit/1d41369c045725172e6910a4fb4ee546218e55d3))
23
+ * **api:** api update ([4cbcd27](https://github.com/knocklabs/knock-ruby/commit/4cbcd27c56bf486d159ceefc0890014184aab50d))
24
+ * **api:** api update ([4cd0c7d](https://github.com/knocklabs/knock-ruby/commit/4cd0c7d4541e1da08e5489df81b4732ff995e8cb))
25
+ * **api:** api update ([2435936](https://github.com/knocklabs/knock-ruby/commit/243593653acf3381827206d7c3844350fb395fce))
26
+ * **api:** api update ([ed2ca0f](https://github.com/knocklabs/knock-ruby/commit/ed2ca0f0d3d587b2fca1ff4a0fb3dcfec7b67b75))
27
+
3
28
  ## 1.12.0 (2025-09-02)
4
29
 
5
30
  Full Changelog: [v1.11.2...v1.12.0](https://github.com/knocklabs/knock-ruby/compare/v1.11.2...v1.12.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.12.0"
20
+ gem "knockapi", "~> 1.14.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -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
  #
@@ -12,7 +12,7 @@ module Knockapi
12
12
  # @!attribute channel_data
13
13
  # A request to set channel data for a type of channel inline.
14
14
  #
15
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
15
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
16
16
  optional :channel_data,
17
17
  -> {
18
18
  Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
@@ -79,7 +79,7 @@ module Knockapi
79
79
  #
80
80
  # @param avatar [String, nil] A URL for the avatar of the user.
81
81
  #
82
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
82
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
83
83
  #
84
84
  # @param created_at [Time, nil] The creation date of the user from your system.
85
85
  #
@@ -18,7 +18,7 @@ module Knockapi
18
18
  # @!attribute channel_data
19
19
  # A request to set channel data for a type of channel inline.
20
20
  #
21
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
21
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
22
22
  optional :channel_data,
23
23
  -> {
24
24
  Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
@@ -88,7 +88,7 @@ module Knockapi
88
88
  #
89
89
  # @param avatar [String, nil] A URL for the avatar of the user.
90
90
  #
91
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
91
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
92
92
  #
93
93
  # @param created_at [Time, nil] The creation date of the user from your system.
94
94
  #
@@ -18,7 +18,7 @@ module Knockapi
18
18
  # @!attribute channel_data
19
19
  # A request to set channel data for a type of channel inline.
20
20
  #
21
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
21
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
22
22
  optional :channel_data,
23
23
  -> {
24
24
  Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
@@ -51,7 +51,7 @@ module Knockapi
51
51
  #
52
52
  # @param collection [String] The collection this object belongs to.
53
53
  #
54
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
54
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
55
55
  #
56
56
  # @param created_at [Time, nil] Timestamp when the resource was created.
57
57
  #
@@ -10,7 +10,7 @@ module Knockapi
10
10
  # @!attribute channel_data
11
11
  # A request to set channel data for a type of channel inline.
12
12
  #
13
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
13
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
14
14
  optional :channel_data,
15
15
  -> { Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem] }
16
16
 
@@ -42,7 +42,7 @@ module Knockapi
42
42
  # Some parameter documentations has been truncated, see
43
43
  # {Knockapi::Models::ObjectSetParams} for more details.
44
44
  #
45
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}] A request to set channel data for a type of channel inline.
45
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}] A request to set channel data for a type of channel inline.
46
46
  #
47
47
  # @param locale [String, nil] The locale of the object. Used for [message localization](/concepts/translations
48
48
  #
@@ -29,7 +29,7 @@ module Knockapi
29
29
  # @!attribute channel_data
30
30
  # A request to set channel data for a type of channel inline.
31
31
  #
32
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
32
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
33
33
  optional :channel_data,
34
34
  -> {
35
35
  Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
@@ -60,7 +60,7 @@ module Knockapi
60
60
  #
61
61
  # @param id [String] Unique identifier for the object.
62
62
  #
63
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
63
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
64
64
  #
65
65
  # @param created_at [Time, nil] Timestamp when the resource was created.
66
66
  #
@@ -19,7 +19,7 @@ module Knockapi
19
19
  # @!attribute data
20
20
  # Channel data for a given channel type.
21
21
  #
22
- # @return [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData, Knockapi::Models::Recipients::OneSignalChannelData]
22
+ # @return [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData]
23
23
  required :data, union: -> { Knockapi::Recipients::RecipientsChannelData::Data }
24
24
 
25
25
  # @!attribute provider
@@ -35,7 +35,7 @@ module Knockapi
35
35
  #
36
36
  # @param channel_id [String] The unique identifier for the channel.
37
37
  #
38
- # @param data [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData, Knockapi::Models::Recipients::OneSignalChannelData] Channel data for a given channel type.
38
+ # @param data [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData] Channel data for a given channel type.
39
39
  #
40
40
  # @param provider [Symbol, Knockapi::Models::Recipients::RecipientsChannelData::Provider] The type of provider.
41
41
 
@@ -60,8 +60,29 @@ module Knockapi
60
60
  # OneSignal channel data.
61
61
  variant -> { Knockapi::Recipients::OneSignalChannelData }
62
62
 
63
+ # AWS SNS push channel data.
64
+ variant -> { Knockapi::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData }
65
+
66
+ class AwsSnsPushChannelData < Knockapi::Internal::Type::BaseModel
67
+ # @!attribute target_arns
68
+ # A list of platform endpoint ARNs. See
69
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
70
+ #
71
+ # @return [Array<String>]
72
+ required :target_arns, Knockapi::Internal::Type::ArrayOf[String]
73
+
74
+ # @!method initialize(target_arns:)
75
+ # Some parameter documentations has been truncated, see
76
+ # {Knockapi::Models::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData}
77
+ # for more details.
78
+ #
79
+ # AWS SNS push channel data.
80
+ #
81
+ # @param target_arns [Array<String>] A list of platform endpoint ARNs. See [Setting up an Amazon SNS platform endpoin
82
+ end
83
+
63
84
  # @!method self.variants
64
- # @return [Array(Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData, Knockapi::Models::Recipients::OneSignalChannelData)]
85
+ # @return [Array(Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::RecipientsChannelData::Data::AwsSnsPushChannelData)]
65
86
  end
66
87
 
67
88
  # The type of provider.
@@ -72,6 +93,7 @@ module Knockapi
72
93
 
73
94
  PUSH_FCM = :push_fcm
74
95
  PUSH_APNS = :push_apns
96
+ PUSH_AWS_SNS = :push_aws_sns
75
97
  PUSH_EXPO = :push_expo
76
98
  PUSH_ONE_SIGNAL = :push_one_signal
77
99
  CHAT_SLACK = :chat_slack
@@ -7,13 +7,13 @@ module Knockapi
7
7
  # @!attribute data
8
8
  # Channel data for a given channel type.
9
9
  #
10
- # @return [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData]
10
+ # @return [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData]
11
11
  required :data, union: -> { Knockapi::Recipients::ChannelDataRequest::Data }
12
12
 
13
13
  # @!method initialize(data:)
14
14
  # A request to set channel data for a type of channel.
15
15
  #
16
- # @param data [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData] Channel data for a given channel type.
16
+ # @param data [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData] Channel data for a given channel type.
17
17
 
18
18
  # Channel data for a given channel type.
19
19
  #
@@ -27,6 +27,9 @@ module Knockapi
27
27
  # OneSignal channel data.
28
28
  variant -> { Knockapi::Recipients::OneSignalChannelData }
29
29
 
30
+ # AWS SNS push channel data.
31
+ variant -> { Knockapi::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData }
32
+
30
33
  # Slack channel data.
31
34
  variant -> { Knockapi::Recipients::SlackChannelData }
32
35
 
@@ -36,8 +39,26 @@ module Knockapi
36
39
  # Discord channel data.
37
40
  variant -> { Knockapi::Recipients::DiscordChannelData }
38
41
 
42
+ class AwsSnsPushChannelData < Knockapi::Internal::Type::BaseModel
43
+ # @!attribute target_arns
44
+ # A list of platform endpoint ARNs. See
45
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
46
+ #
47
+ # @return [Array<String>]
48
+ required :target_arns, Knockapi::Internal::Type::ArrayOf[String]
49
+
50
+ # @!method initialize(target_arns:)
51
+ # Some parameter documentations has been truncated, see
52
+ # {Knockapi::Models::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData}
53
+ # for more details.
54
+ #
55
+ # AWS SNS push channel data.
56
+ #
57
+ # @param target_arns [Array<String>] A list of platform endpoint ARNs. See [Setting up an Amazon SNS platform endpoin
58
+ end
59
+
39
60
  # @!method self.variants
40
- # @return [Array(Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData)]
61
+ # @return [Array(Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData)]
41
62
  end
42
63
  end
43
64
  end
@@ -13,6 +13,9 @@ module Knockapi
13
13
  # OneSignal channel data.
14
14
  variant -> { Knockapi::Recipients::OneSignalChannelData }
15
15
 
16
+ # AWS SNS push channel data.
17
+ variant -> { Knockapi::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData }
18
+
16
19
  # Slack channel data.
17
20
  variant -> { Knockapi::Recipients::SlackChannelData }
18
21
 
@@ -22,8 +25,26 @@ module Knockapi
22
25
  # Discord channel data.
23
26
  variant -> { Knockapi::Recipients::DiscordChannelData }
24
27
 
28
+ class AwsSnsPushChannelData < Knockapi::Internal::Type::BaseModel
29
+ # @!attribute target_arns
30
+ # A list of platform endpoint ARNs. See
31
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
32
+ #
33
+ # @return [Array<String>]
34
+ required :target_arns, Knockapi::Internal::Type::ArrayOf[String]
35
+
36
+ # @!method initialize(target_arns:)
37
+ # Some parameter documentations has been truncated, see
38
+ # {Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData}
39
+ # for more details.
40
+ #
41
+ # AWS SNS push channel data.
42
+ #
43
+ # @param target_arns [Array<String>] A list of platform endpoint ARNs. See [Setting up an Amazon SNS platform endpoin
44
+ end
45
+
25
46
  # @!method self.variants
26
- # @return [Array(Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData)]
47
+ # @return [Array(Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData)]
27
48
  end
28
49
 
29
50
  # @type [Knockapi::Internal::Type::Converter]
@@ -12,7 +12,7 @@ module Knockapi
12
12
  # @!attribute channel_data
13
13
  # A request to set channel data for a type of channel inline.
14
14
  #
15
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
15
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
16
16
  optional :channel_data,
17
17
  -> {
18
18
  Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
@@ -44,7 +44,7 @@ module Knockapi
44
44
  #
45
45
  # @param id [String] The unique identifier for the tenant.
46
46
  #
47
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
47
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
48
48
  #
49
49
  # @param preferences [Hash{Symbol=>Knockapi::Models::Recipients::PreferenceSetRequest}, nil] Inline set preferences for a recipient, where the key is the preference set id.
50
50
  #
@@ -10,7 +10,7 @@ module Knockapi
10
10
  # @!attribute channel_data
11
11
  # A request to set channel data for a type of channel inline.
12
12
  #
13
- # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
13
+ # @return [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil]
14
14
  optional :channel_data,
15
15
  -> {
16
16
  Knockapi::Internal::Type::HashOf[union: Knockapi::Recipients::InlineChannelDataRequestItem]
@@ -24,7 +24,7 @@ module Knockapi
24
24
  optional :settings, -> { Knockapi::TenantSetParams::Settings }
25
25
 
26
26
  # @!method initialize(channel_data: nil, settings: nil, request_options: {})
27
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
27
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}, nil] A request to set channel data for a type of channel inline.
28
28
  #
29
29
  # @param settings [Knockapi::Models::TenantSetParams::Settings] The settings for the tenant. Includes branding and preference set.
30
30
  #
@@ -32,6 +32,12 @@ module Knockapi
32
32
  # @return [String, nil]
33
33
  optional :id, String
34
34
 
35
+ # @!attribute active
36
+ # Whether the guide is active.
37
+ #
38
+ # @return [Boolean, nil]
39
+ optional :active, Knockapi::Internal::Type::Boolean
40
+
35
41
  # @!attribute content
36
42
  # The content of the guide.
37
43
  #
@@ -50,9 +56,11 @@ module Knockapi
50
56
  # @return [String, nil]
51
57
  optional :title, String
52
58
 
53
- # @!method initialize(id: nil, content: nil, metadata: nil, title: nil)
59
+ # @!method initialize(id: nil, active: nil, content: nil, metadata: nil, title: nil)
54
60
  # @param id [String] The unique identifier for the guide.
55
61
  #
62
+ # @param active [Boolean] Whether the guide is active.
63
+ #
56
64
  # @param content [String] The content of the guide.
57
65
  #
58
66
  # @param metadata [Hash{Symbol=>Object}] The metadata of the guide.
@@ -368,7 +368,7 @@ module Knockapi
368
368
  #
369
369
  # @param id [String] Unique identifier for the object.
370
370
  #
371
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}] A request to set channel data for a type of channel inline.
371
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData}] A request to set channel data for a type of channel inline.
372
372
  #
373
373
  # @param locale [String, nil] The locale of the object. Used for [message localization](/concepts/translations
374
374
  #
@@ -404,7 +404,7 @@ module Knockapi
404
404
  #
405
405
  # @param channel_id [String] The unique identifier for the channel.
406
406
  #
407
- # @param data [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData] Channel data for a given channel type.
407
+ # @param data [Knockapi::Models::Recipients::PushChannelData, Knockapi::Models::Recipients::OneSignalChannelData, Knockapi::Models::Recipients::ChannelDataRequest::Data::AwsSnsPushChannelData, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData] Channel data for a given channel type.
408
408
  #
409
409
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
410
410
  #