knockapi 1.17.0 → 1.19.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +1 -1
  4. data/lib/knockapi/client.rb +12 -0
  5. data/lib/knockapi/internal/transport/base_client.rb +7 -1
  6. data/lib/knockapi/internal/transport/pooled_net_requester.rb +6 -2
  7. data/lib/knockapi/models/identify_user_request.rb +2 -2
  8. data/lib/knockapi/models/inline_identify_user_request.rb +2 -2
  9. data/lib/knockapi/models/inline_object_request.rb +11 -3
  10. data/lib/knockapi/models/object_set_params.rb +11 -3
  11. data/lib/knockapi/models/objects/bulk_set_params.rb +11 -3
  12. data/lib/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rb +63 -0
  13. data/lib/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rb +25 -0
  14. data/lib/knockapi/models/recipients/channel_data.rb +4 -17
  15. data/lib/knockapi/models/recipients/channel_data_request.rb +12 -50
  16. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +10 -48
  17. data/lib/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rb +20 -0
  18. data/lib/knockapi/models/recipients/preference_set.rb +12 -54
  19. data/lib/knockapi/models/recipients/preference_set_channel_setting.rb +21 -0
  20. data/lib/knockapi/models/recipients/preference_set_request.rb +12 -54
  21. data/lib/knockapi/models/recipients/push_channel_data_devices_only.rb +60 -0
  22. data/lib/knockapi/models/recipients/push_channel_data_tokens_only.rb +20 -0
  23. data/lib/knockapi/models/tenant_request.rb +11 -3
  24. data/lib/knockapi/models/tenant_set_params.rb +11 -3
  25. data/lib/knockapi/models/users/feed_list_items_params.rb +15 -1
  26. data/lib/knockapi/resources/objects.rb +6 -4
  27. data/lib/knockapi/resources/tenants.rb +4 -2
  28. data/lib/knockapi/resources/users/feeds.rb +6 -1
  29. data/lib/knockapi/resources/users.rb +3 -3
  30. data/lib/knockapi/version.rb +1 -1
  31. data/lib/knockapi.rb +7 -0
  32. data/manifest.yaml +1 -0
  33. data/rbi/knockapi/client.rbi +7 -0
  34. data/rbi/knockapi/internal/transport/base_client.rbi +5 -0
  35. data/rbi/knockapi/internal/transport/pooled_net_requester.rbi +6 -2
  36. data/rbi/knockapi/internal/type/base_model.rbi +8 -4
  37. data/rbi/knockapi/models/identify_user_request.rbi +15 -9
  38. data/rbi/knockapi/models/inline_identify_user_request.rbi +15 -9
  39. data/rbi/knockapi/models/inline_object_request.rbi +23 -9
  40. data/rbi/knockapi/models/object_set_params.rbi +28 -12
  41. data/rbi/knockapi/models/objects/bulk_set_params.rbi +23 -9
  42. data/rbi/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rbi +120 -0
  43. data/rbi/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rbi +35 -0
  44. data/rbi/knockapi/models/recipients/channel_data.rbi +2 -30
  45. data/rbi/knockapi/models/recipients/channel_data_request.rbi +20 -96
  46. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +5 -85
  47. data/rbi/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rbi +33 -0
  48. data/rbi/knockapi/models/recipients/preference_set.rbi +6 -109
  49. data/rbi/knockapi/models/recipients/preference_set_channel_setting.rbi +38 -0
  50. data/rbi/knockapi/models/recipients/preference_set_request.rbi +12 -115
  51. data/rbi/knockapi/models/recipients/push_channel_data_devices_only.rbi +114 -0
  52. data/rbi/knockapi/models/recipients/push_channel_data_tokens_only.rbi +33 -0
  53. data/rbi/knockapi/models/tenant_request.rbi +23 -9
  54. data/rbi/knockapi/models/tenant_set_params.rbi +23 -9
  55. data/rbi/knockapi/models/users/feed_list_items_params.rbi +17 -0
  56. data/rbi/knockapi/resources/objects.rbi +14 -7
  57. data/rbi/knockapi/resources/tenants.rbi +8 -3
  58. data/rbi/knockapi/resources/users/feeds.rbi +6 -0
  59. data/rbi/knockapi/resources/users.rbi +11 -7
  60. data/sig/knockapi/client.rbs +3 -0
  61. data/sig/knockapi/internal/transport/base_client.rbs +2 -0
  62. data/sig/knockapi/internal/transport/pooled_net_requester.rbs +4 -1
  63. data/sig/knockapi/models/inline_object_request.rbs +5 -0
  64. data/sig/knockapi/models/object_set_params.rbs +5 -0
  65. data/sig/knockapi/models/objects/bulk_set_params.rbs +5 -0
  66. data/sig/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rbs +44 -0
  67. data/sig/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rbs +16 -0
  68. data/sig/knockapi/models/recipients/channel_data.rbs +1 -12
  69. data/sig/knockapi/models/recipients/channel_data_request.rbs +5 -35
  70. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +5 -35
  71. data/sig/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rbs +16 -0
  72. data/sig/knockapi/models/recipients/preference_set.rbs +3 -44
  73. data/sig/knockapi/models/recipients/preference_set_channel_setting.rbs +16 -0
  74. data/sig/knockapi/models/recipients/preference_set_request.rbs +3 -44
  75. data/sig/knockapi/models/recipients/push_channel_data_devices_only.rbs +40 -0
  76. data/sig/knockapi/models/recipients/push_channel_data_tokens_only.rbs +15 -0
  77. data/sig/knockapi/models/tenant_request.rbs +5 -0
  78. data/sig/knockapi/models/tenant_set_params.rbs +5 -0
  79. data/sig/knockapi/models/users/feed_list_items_params.rbs +7 -0
  80. data/sig/knockapi/resources/objects.rbs +1 -0
  81. data/sig/knockapi/resources/tenants.rbs +1 -0
  82. data/sig/knockapi/resources/users/feeds.rbs +1 -0
  83. metadata +20 -2
@@ -26,6 +26,9 @@ module Knockapi
26
26
  )
27
27
  end
28
28
 
29
+ # Some parameter documentations has been truncated, see
30
+ # {Knockapi::Models::Users::FeedListItemsParams} for more details.
31
+ #
29
32
  # Returns a paginated list of feed items for a user in reverse chronological
30
33
  # order, including metadata about the feed. If the user has not yet been
31
34
  # identified within Knock, an empty feed will be returned.
@@ -41,7 +44,7 @@ module Knockapi
41
44
  # - This endpoint’s rate limit is always scoped per-user and per-environment. This
42
45
  # is true even for requests made without a signed user token.
43
46
  #
44
- # @overload list_items(user_id, id, after: nil, archived: nil, before: nil, has_tenant: nil, page_size: nil, source: nil, status: nil, tenant: nil, trigger_data: nil, workflow_categories: nil, request_options: {})
47
+ # @overload list_items(user_id, id, after: nil, archived: nil, before: nil, has_tenant: nil, locale: nil, page_size: nil, source: nil, status: nil, tenant: nil, trigger_data: nil, workflow_categories: nil, request_options: {})
45
48
  #
46
49
  # @param user_id [String] The unique identifier of the user.
47
50
  #
@@ -55,6 +58,8 @@ module Knockapi
55
58
  #
56
59
  # @param has_tenant [Boolean] Whether the feed items have a tenant.
57
60
  #
61
+ # @param locale [String] The locale to render the feed items in. Must be in the IETF 5646 format (e.g. `e
62
+ #
58
63
  # @param page_size [Integer] The number of items per page (defaults to 50).
59
64
  #
60
65
  # @param source [String] The workflow key associated with the message in the feed.
@@ -25,7 +25,7 @@ module Knockapi
25
25
  #
26
26
  # @param avatar [String, nil] A URL for the avatar of the user.
27
27
  #
28
- # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly, Knockapi::Models::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly, Knockapi::Models::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly, 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
+ # @param channel_data [Hash{Symbol=>Knockapi::Models::Recipients::PushChannelDataTokensOnly, Knockapi::Models::Recipients::PushChannelDataDevicesOnly, Knockapi::Models::Recipients::AwsSnsPushChannelDataTargetArnsOnly, Knockapi::Models::Recipients::AwsSnsPushChannelDataDevicesOnly, Knockapi::Models::Recipients::OneSignalChannelDataPlayerIDsOnly, 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.
29
29
  #
30
30
  # @param created_at [Time, nil] The creation date of the user from your system.
31
31
  #
@@ -354,7 +354,7 @@ module Knockapi
354
354
  #
355
355
  # @param channel_id [String] The unique identifier for the channel.
356
356
  #
357
- # @param data [Knockapi::Models::Recipients::ChannelDataRequest::Data::PushChannelDataTokensOnly, Knockapi::Models::Recipients::ChannelDataRequest::Data::AwssnsPushChannelDataTargetArNsOnly, Knockapi::Models::Recipients::ChannelDataRequest::Data::OneSignalChannelDataPlayerIDsOnly, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData] Channel data for a given channel type.
357
+ # @param data [Knockapi::Models::Recipients::PushChannelDataTokensOnly, Knockapi::Models::Recipients::PushChannelDataDevicesOnly, Knockapi::Models::Recipients::AwsSnsPushChannelDataTargetArnsOnly, Knockapi::Models::Recipients::AwsSnsPushChannelDataDevicesOnly, Knockapi::Models::Recipients::OneSignalChannelDataPlayerIDsOnly, Knockapi::Models::Recipients::SlackChannelData, Knockapi::Models::Recipients::MsTeamsChannelData, Knockapi::Models::Recipients::DiscordChannelData] Channel data for a given channel type.
358
358
  #
359
359
  # @param request_options [Knockapi::RequestOptions, Hash{Symbol=>Object}, nil]
360
360
  #
@@ -392,7 +392,7 @@ module Knockapi
392
392
  #
393
393
  # @param channel_types [Knockapi::Models::Recipients::PreferenceSetChannelTypes, nil] Channel type preferences.
394
394
  #
395
- # @param channels [Hash{Symbol=>Boolean, Knockapi::Models::Recipients::PreferenceSetRequest::Channel::PreferenceSetChannelSetting}, nil] Channel preferences.
395
+ # @param channels [Hash{Symbol=>Boolean, Knockapi::Models::Recipients::PreferenceSetChannelSetting}, nil] Channel preferences.
396
396
  #
397
397
  # @param commercial_subscribed [Boolean, nil] Whether the recipient is subscribed to commercial communications. When false, th
398
398
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knockapi
4
- VERSION = "1.17.0"
4
+ VERSION = "1.19.0"
5
5
  end
data/lib/knockapi.rb CHANGED
@@ -9,6 +9,7 @@ require "erb"
9
9
  require "etc"
10
10
  require "json"
11
11
  require "net/http"
12
+ require "openssl"
12
13
  require "pathname"
13
14
  require "rbconfig"
14
15
  require "securerandom"
@@ -147,13 +148,19 @@ require_relative "knockapi/models/providers/slack_revoke_access_response"
147
148
  require_relative "knockapi/models/recipient"
148
149
  require_relative "knockapi/models/recipient_reference"
149
150
  require_relative "knockapi/models/recipient_request"
151
+ require_relative "knockapi/models/recipients/aws_sns_push_channel_data_devices_only"
152
+ require_relative "knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only"
150
153
  require_relative "knockapi/models/recipients/discord_channel_data"
151
154
  require_relative "knockapi/models/recipients/inline_channel_data_request"
152
155
  require_relative "knockapi/models/recipients/inline_preference_set_request"
153
156
  require_relative "knockapi/models/recipients/ms_teams_channel_data"
157
+ require_relative "knockapi/models/recipients/one_signal_channel_data_player_ids_only"
154
158
  require_relative "knockapi/models/recipients/preference_set"
159
+ require_relative "knockapi/models/recipients/preference_set_channel_setting"
155
160
  require_relative "knockapi/models/recipients/preference_set_channel_types"
156
161
  require_relative "knockapi/models/recipients/preference_set_channel_type_setting"
162
+ require_relative "knockapi/models/recipients/push_channel_data_devices_only"
163
+ require_relative "knockapi/models/recipients/push_channel_data_tokens_only"
157
164
  require_relative "knockapi/models/recipients/channel_data"
158
165
  require_relative "knockapi/models/recipients/slack_channel_data"
159
166
  require_relative "knockapi/models/recipients/subscription"
data/manifest.yaml CHANGED
@@ -6,6 +6,7 @@ dependencies:
6
6
  - etc
7
7
  - json
8
8
  - net/http
9
+ - openssl
9
10
  - pathname
10
11
  - rbconfig
11
12
  - securerandom
@@ -13,6 +13,10 @@ module Knockapi
13
13
  sig { returns(String) }
14
14
  attr_reader :api_key
15
15
 
16
+ # The slug of an existing branch
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :branch
19
+
16
20
  sig { returns(Knockapi::Resources::Recipients) }
17
21
  attr_reader :recipients
18
22
 
@@ -58,6 +62,7 @@ module Knockapi
58
62
  sig do
59
63
  params(
60
64
  api_key: T.nilable(String),
65
+ branch: T.nilable(String),
61
66
  base_url: T.nilable(String),
62
67
  max_retries: Integer,
63
68
  timeout: Float,
@@ -69,6 +74,8 @@ module Knockapi
69
74
  def self.new(
70
75
  # Defaults to `ENV["KNOCK_API_KEY"]`
71
76
  api_key: ENV["KNOCK_API_KEY"],
77
+ # The slug of an existing branch Defaults to `ENV["KNOCK_BRANCH"]`
78
+ branch: ENV["KNOCK_BRANCH"],
72
79
  # Override the default base URL for the API, e.g.,
73
80
  # `"https://api.example.com/v2/"`. Defaults to `ENV["KNOCK_BASE_URL"]`
74
81
  base_url: ENV["KNOCK_BASE_URL"],
@@ -176,6 +176,11 @@ module Knockapi
176
176
  private def auth_headers
177
177
  end
178
178
 
179
+ # @api private
180
+ sig { returns(String) }
181
+ private def user_agent
182
+ end
183
+
179
184
  # @api private
180
185
  sig { returns(String) }
181
186
  private def generate_idempotency_key
@@ -26,8 +26,12 @@ module Knockapi
26
26
 
27
27
  class << self
28
28
  # @api private
29
- sig { params(url: URI::Generic).returns(Net::HTTP) }
30
- def connect(url)
29
+ sig do
30
+ params(cert_store: OpenSSL::X509::Store, url: URI::Generic).returns(
31
+ Net::HTTP
32
+ )
33
+ end
34
+ def connect(cert_store:, url:)
31
35
  end
32
36
 
33
37
  # @api private
@@ -31,7 +31,7 @@ module Knockapi
31
31
  #
32
32
  # Assumes superclass fields are totally defined before fields are accessed /
33
33
  # defined on subclasses.
34
- sig { params(child: T.self_type).void }
34
+ sig { params(child: Knockapi::Internal::Type::BaseModel).void }
35
35
  def inherited(child)
36
36
  end
37
37
 
@@ -274,9 +274,13 @@ module Knockapi
274
274
 
275
275
  # Create a new instance of a model.
276
276
  sig do
277
- params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(
278
- T.attached_class
279
- )
277
+ params(
278
+ data:
279
+ T.any(
280
+ T::Hash[Symbol, T.anything],
281
+ Knockapi::Internal::Type::BaseModel
282
+ )
283
+ ).returns(T.attached_class)
280
284
  end
281
285
  def self.new(data = {})
282
286
  end
@@ -19,9 +19,11 @@ module Knockapi
19
19
  T::Hash[
20
20
  Symbol,
21
21
  T.any(
22
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
23
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
24
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
22
+ Knockapi::Recipients::PushChannelDataTokensOnly,
23
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
24
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
25
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
26
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
25
27
  Knockapi::Recipients::SlackChannelData,
26
28
  Knockapi::Recipients::MsTeamsChannelData,
27
29
  Knockapi::Recipients::DiscordChannelData
@@ -81,9 +83,11 @@ module Knockapi
81
83
  T::Hash[
82
84
  Symbol,
83
85
  T.any(
84
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
85
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
86
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
86
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
87
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
88
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
89
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
90
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
87
91
  Knockapi::Recipients::SlackChannelData::OrHash,
88
92
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
89
93
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -142,9 +146,11 @@ module Knockapi
142
146
  T::Hash[
143
147
  Symbol,
144
148
  T.any(
145
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
146
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
147
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
149
+ Knockapi::Recipients::PushChannelDataTokensOnly,
150
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
151
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
152
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
153
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
148
154
  Knockapi::Recipients::SlackChannelData,
149
155
  Knockapi::Recipients::MsTeamsChannelData,
150
156
  Knockapi::Recipients::DiscordChannelData
@@ -26,9 +26,11 @@ module Knockapi
26
26
  T::Hash[
27
27
  Symbol,
28
28
  T.any(
29
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
30
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
31
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
29
+ Knockapi::Recipients::PushChannelDataTokensOnly,
30
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
31
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
32
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
33
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
32
34
  Knockapi::Recipients::SlackChannelData,
33
35
  Knockapi::Recipients::MsTeamsChannelData,
34
36
  Knockapi::Recipients::DiscordChannelData
@@ -90,9 +92,11 @@ module Knockapi
90
92
  T::Hash[
91
93
  Symbol,
92
94
  T.any(
93
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
94
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
95
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
95
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
96
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
97
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
98
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
99
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
96
100
  Knockapi::Recipients::SlackChannelData::OrHash,
97
101
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
98
102
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -154,9 +158,11 @@ module Knockapi
154
158
  T::Hash[
155
159
  Symbol,
156
160
  T.any(
157
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
158
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
159
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
161
+ Knockapi::Recipients::PushChannelDataTokensOnly,
162
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
163
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
164
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
165
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
160
166
  Knockapi::Recipients::SlackChannelData,
161
167
  Knockapi::Recipients::MsTeamsChannelData,
162
168
  Knockapi::Recipients::DiscordChannelData
@@ -23,9 +23,11 @@ module Knockapi
23
23
  T::Hash[
24
24
  Symbol,
25
25
  T.any(
26
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
27
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
28
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
26
+ Knockapi::Recipients::PushChannelDataTokensOnly,
27
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
28
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
29
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
30
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
29
31
  Knockapi::Recipients::SlackChannelData,
30
32
  Knockapi::Recipients::MsTeamsChannelData,
31
33
  Knockapi::Recipients::DiscordChannelData
@@ -40,6 +42,10 @@ module Knockapi
40
42
  sig { returns(T.nilable(Time)) }
41
43
  attr_accessor :created_at
42
44
 
45
+ # An optional name for the object.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_accessor :name
48
+
43
49
  # Inline set preferences for a recipient, where the key is the preference set id.
44
50
  # Preferences that are set inline will be merged into any existing preferences
45
51
  # rather than replacing them.
@@ -60,9 +66,11 @@ module Knockapi
60
66
  T::Hash[
61
67
  Symbol,
62
68
  T.any(
63
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
64
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
65
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
69
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
70
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
71
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
72
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
73
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
66
74
  Knockapi::Recipients::SlackChannelData::OrHash,
67
75
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
68
76
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -70,6 +78,7 @@ module Knockapi
70
78
  ]
71
79
  ),
72
80
  created_at: T.nilable(Time),
81
+ name: T.nilable(String),
73
82
  preferences:
74
83
  T.nilable(
75
84
  T::Hash[
@@ -88,6 +97,8 @@ module Knockapi
88
97
  channel_data: nil,
89
98
  # Timestamp when the resource was created.
90
99
  created_at: nil,
100
+ # An optional name for the object.
101
+ name: nil,
91
102
  # Inline set preferences for a recipient, where the key is the preference set id.
92
103
  # Preferences that are set inline will be merged into any existing preferences
93
104
  # rather than replacing them.
@@ -105,9 +116,11 @@ module Knockapi
105
116
  T::Hash[
106
117
  Symbol,
107
118
  T.any(
108
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
109
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
110
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
119
+ Knockapi::Recipients::PushChannelDataTokensOnly,
120
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
121
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
122
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
123
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
111
124
  Knockapi::Recipients::SlackChannelData,
112
125
  Knockapi::Recipients::MsTeamsChannelData,
113
126
  Knockapi::Recipients::DiscordChannelData
@@ -115,6 +128,7 @@ module Knockapi
115
128
  ]
116
129
  ),
117
130
  created_at: T.nilable(Time),
131
+ name: T.nilable(String),
118
132
  preferences:
119
133
  T.nilable(
120
134
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest]
@@ -18,9 +18,11 @@ module Knockapi
18
18
  T::Hash[
19
19
  Symbol,
20
20
  T.any(
21
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
22
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
23
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
21
+ Knockapi::Recipients::PushChannelDataTokensOnly,
22
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
23
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
24
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
25
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
24
26
  Knockapi::Recipients::SlackChannelData,
25
27
  Knockapi::Recipients::MsTeamsChannelData,
26
28
  Knockapi::Recipients::DiscordChannelData
@@ -37,9 +39,11 @@ module Knockapi
37
39
  T::Hash[
38
40
  Symbol,
39
41
  T.any(
40
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
41
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
42
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
42
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
43
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
44
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
45
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
46
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
43
47
  Knockapi::Recipients::SlackChannelData::OrHash,
44
48
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
45
49
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -54,6 +58,10 @@ module Knockapi
54
58
  sig { returns(T.nilable(String)) }
55
59
  attr_accessor :locale
56
60
 
61
+ # An optional name for the object.
62
+ sig { returns(T.nilable(String)) }
63
+ attr_accessor :name
64
+
57
65
  # Inline set preferences for a recipient, where the key is the preference set id.
58
66
  # Preferences that are set inline will be merged into any existing preferences
59
67
  # rather than replacing them.
@@ -85,15 +93,18 @@ module Knockapi
85
93
  T::Hash[
86
94
  Symbol,
87
95
  T.any(
88
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
89
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
90
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
96
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
97
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
98
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
99
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
100
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
91
101
  Knockapi::Recipients::SlackChannelData::OrHash,
92
102
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
93
103
  Knockapi::Recipients::DiscordChannelData::OrHash
94
104
  )
95
105
  ],
96
106
  locale: T.nilable(String),
107
+ name: T.nilable(String),
97
108
  preferences:
98
109
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest::OrHash],
99
110
  timezone: T.nilable(String),
@@ -106,6 +117,8 @@ module Knockapi
106
117
  # The locale of the object. Used for
107
118
  # [message localization](/concepts/translations).
108
119
  locale: nil,
120
+ # An optional name for the object.
121
+ name: nil,
109
122
  # Inline set preferences for a recipient, where the key is the preference set id.
110
123
  # Preferences that are set inline will be merged into any existing preferences
111
124
  # rather than replacing them.
@@ -126,15 +139,18 @@ module Knockapi
126
139
  T::Hash[
127
140
  Symbol,
128
141
  T.any(
129
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
130
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
131
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
142
+ Knockapi::Recipients::PushChannelDataTokensOnly,
143
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
144
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
145
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
146
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
132
147
  Knockapi::Recipients::SlackChannelData,
133
148
  Knockapi::Recipients::MsTeamsChannelData,
134
149
  Knockapi::Recipients::DiscordChannelData
135
150
  )
136
151
  ],
137
152
  locale: T.nilable(String),
153
+ name: T.nilable(String),
138
154
  preferences:
139
155
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest],
140
156
  timezone: T.nilable(String),
@@ -60,9 +60,11 @@ module Knockapi
60
60
  T::Hash[
61
61
  Symbol,
62
62
  T.any(
63
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
64
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
65
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
63
+ Knockapi::Recipients::PushChannelDataTokensOnly,
64
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
65
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
66
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
67
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
66
68
  Knockapi::Recipients::SlackChannelData,
67
69
  Knockapi::Recipients::MsTeamsChannelData,
68
70
  Knockapi::Recipients::DiscordChannelData
@@ -77,6 +79,10 @@ module Knockapi
77
79
  sig { returns(T.nilable(Time)) }
78
80
  attr_accessor :created_at
79
81
 
82
+ # An optional name for the object.
83
+ sig { returns(T.nilable(String)) }
84
+ attr_accessor :name
85
+
80
86
  # Inline set preferences for a recipient, where the key is the preference set id.
81
87
  # Preferences that are set inline will be merged into any existing preferences
82
88
  # rather than replacing them.
@@ -98,9 +104,11 @@ module Knockapi
98
104
  T::Hash[
99
105
  Symbol,
100
106
  T.any(
101
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
102
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
103
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly::OrHash,
107
+ Knockapi::Recipients::PushChannelDataTokensOnly::OrHash,
108
+ Knockapi::Recipients::PushChannelDataDevicesOnly::OrHash,
109
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly::OrHash,
110
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::OrHash,
111
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly::OrHash,
104
112
  Knockapi::Recipients::SlackChannelData::OrHash,
105
113
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
106
114
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -108,6 +116,7 @@ module Knockapi
108
116
  ]
109
117
  ),
110
118
  created_at: T.nilable(Time),
119
+ name: T.nilable(String),
111
120
  preferences:
112
121
  T.nilable(
113
122
  T::Hash[
@@ -124,6 +133,8 @@ module Knockapi
124
133
  channel_data: nil,
125
134
  # Timestamp when the resource was created.
126
135
  created_at: nil,
136
+ # An optional name for the object.
137
+ name: nil,
127
138
  # Inline set preferences for a recipient, where the key is the preference set id.
128
139
  # Preferences that are set inline will be merged into any existing preferences
129
140
  # rather than replacing them.
@@ -140,9 +151,11 @@ module Knockapi
140
151
  T::Hash[
141
152
  Symbol,
142
153
  T.any(
143
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
144
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
145
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
154
+ Knockapi::Recipients::PushChannelDataTokensOnly,
155
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
156
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
157
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
158
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
146
159
  Knockapi::Recipients::SlackChannelData,
147
160
  Knockapi::Recipients::MsTeamsChannelData,
148
161
  Knockapi::Recipients::DiscordChannelData
@@ -150,6 +163,7 @@ module Knockapi
150
163
  ]
151
164
  ),
152
165
  created_at: T.nilable(Time),
166
+ name: T.nilable(String),
153
167
  preferences:
154
168
  T.nilable(
155
169
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest]
@@ -0,0 +1,120 @@
1
+ # typed: strong
2
+
3
+ module Knockapi
4
+ module Models
5
+ module Recipients
6
+ class AwsSnsPushChannelDataDevicesOnly < Knockapi::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
11
+ Knockapi::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # A list of devices. Each device contains a target_arn, and optionally a locale
16
+ # and timezone.
17
+ sig do
18
+ returns(
19
+ T::Array[
20
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::Device
21
+ ]
22
+ )
23
+ end
24
+ attr_accessor :devices
25
+
26
+ # AWS SNS push channel data.
27
+ sig do
28
+ params(
29
+ devices:
30
+ T::Array[
31
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::Device::OrHash
32
+ ]
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # A list of devices. Each device contains a target_arn, and optionally a locale
37
+ # and timezone.
38
+ devices:
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ devices:
46
+ T::Array[
47
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::Device
48
+ ]
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+
55
+ class Device < Knockapi::Internal::Type::BaseModel
56
+ OrHash =
57
+ T.type_alias do
58
+ T.any(
59
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly::Device,
60
+ Knockapi::Internal::AnyHash
61
+ )
62
+ end
63
+
64
+ # The ARN of a platform endpoint associated with a platform application and a
65
+ # device token. See
66
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
67
+ sig { returns(String) }
68
+ attr_accessor :target_arn
69
+
70
+ # The locale of the object. Used for
71
+ # [message localization](/concepts/translations).
72
+ sig { returns(T.nilable(String)) }
73
+ attr_accessor :locale
74
+
75
+ # The timezone of the object. Must be a
76
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
77
+ # Used
78
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
79
+ sig { returns(T.nilable(String)) }
80
+ attr_accessor :timezone
81
+
82
+ sig do
83
+ params(
84
+ target_arn: String,
85
+ locale: T.nilable(String),
86
+ timezone: T.nilable(String)
87
+ ).returns(T.attached_class)
88
+ end
89
+ def self.new(
90
+ # The ARN of a platform endpoint associated with a platform application and a
91
+ # device token. See
92
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
93
+ target_arn:,
94
+ # The locale of the object. Used for
95
+ # [message localization](/concepts/translations).
96
+ locale: nil,
97
+ # The timezone of the object. Must be a
98
+ # valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
99
+ # Used
100
+ # for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
101
+ timezone: nil
102
+ )
103
+ end
104
+
105
+ sig do
106
+ override.returns(
107
+ {
108
+ target_arn: String,
109
+ locale: T.nilable(String),
110
+ timezone: T.nilable(String)
111
+ }
112
+ )
113
+ end
114
+ def to_hash
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end