knockapi 1.18.0 → 1.20.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -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_add_subscriptions_params.rb +13 -3
  12. data/lib/knockapi/models/objects/bulk_set_params.rb +11 -3
  13. data/lib/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rb +63 -0
  14. data/lib/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rb +25 -0
  15. data/lib/knockapi/models/recipients/channel_data.rb +4 -17
  16. data/lib/knockapi/models/recipients/channel_data_request.rb +8 -162
  17. data/lib/knockapi/models/recipients/inline_channel_data_request.rb +6 -160
  18. data/lib/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rb +20 -0
  19. data/lib/knockapi/models/recipients/preference_set.rb +12 -54
  20. data/lib/knockapi/models/recipients/preference_set_channel_setting.rb +21 -0
  21. data/lib/knockapi/models/recipients/preference_set_request.rb +12 -54
  22. data/lib/knockapi/models/recipients/push_channel_data_devices_only.rb +60 -0
  23. data/lib/knockapi/models/recipients/push_channel_data_tokens_only.rb +20 -0
  24. data/lib/knockapi/models/tenant_get_params.rb +14 -1
  25. data/lib/knockapi/models/tenant_request.rb +11 -3
  26. data/lib/knockapi/models/tenant_set_params.rb +24 -3
  27. data/lib/knockapi/models/users/feed_list_items_params.rb +15 -1
  28. data/lib/knockapi/resources/objects/bulk.rb +1 -1
  29. data/lib/knockapi/resources/objects.rb +6 -4
  30. data/lib/knockapi/resources/tenants.rb +23 -7
  31. data/lib/knockapi/resources/users/feeds.rb +6 -1
  32. data/lib/knockapi/resources/users.rb +3 -3
  33. data/lib/knockapi/version.rb +1 -1
  34. data/lib/knockapi.rb +7 -0
  35. data/manifest.yaml +1 -0
  36. data/rbi/knockapi/client.rbi +7 -0
  37. data/rbi/knockapi/internal/transport/base_client.rbi +5 -0
  38. data/rbi/knockapi/internal/transport/pooled_net_requester.rbi +6 -2
  39. data/rbi/knockapi/internal/type/base_model.rbi +8 -4
  40. data/rbi/knockapi/models/identify_user_request.rbi +15 -15
  41. data/rbi/knockapi/models/inline_identify_user_request.rbi +15 -15
  42. data/rbi/knockapi/models/inline_object_request.rbi +23 -15
  43. data/rbi/knockapi/models/object_set_params.rbi +28 -20
  44. data/rbi/knockapi/models/objects/bulk_add_subscriptions_params.rbi +11 -2
  45. data/rbi/knockapi/models/objects/bulk_set_params.rbi +23 -15
  46. data/rbi/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rbi +120 -0
  47. data/rbi/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rbi +35 -0
  48. data/rbi/knockapi/models/recipients/channel_data.rbi +2 -30
  49. data/rbi/knockapi/models/recipients/channel_data_request.rbi +20 -326
  50. data/rbi/knockapi/models/recipients/inline_channel_data_request.rbi +5 -309
  51. data/rbi/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rbi +33 -0
  52. data/rbi/knockapi/models/recipients/preference_set.rbi +6 -109
  53. data/rbi/knockapi/models/recipients/preference_set_channel_setting.rbi +38 -0
  54. data/rbi/knockapi/models/recipients/preference_set_request.rbi +12 -115
  55. data/rbi/knockapi/models/recipients/push_channel_data_devices_only.rbi +114 -0
  56. data/rbi/knockapi/models/recipients/push_channel_data_tokens_only.rbi +33 -0
  57. data/rbi/knockapi/models/tenant_get_params.rbi +28 -5
  58. data/rbi/knockapi/models/tenant_request.rbi +23 -15
  59. data/rbi/knockapi/models/tenant_set_params.rbi +38 -15
  60. data/rbi/knockapi/models/users/feed_list_items_params.rbi +17 -0
  61. data/rbi/knockapi/resources/objects/bulk.rbi +1 -1
  62. data/rbi/knockapi/resources/objects.rbi +14 -11
  63. data/rbi/knockapi/resources/tenants.rbi +21 -8
  64. data/rbi/knockapi/resources/users/feeds.rbi +6 -0
  65. data/rbi/knockapi/resources/users.rbi +11 -11
  66. data/sig/knockapi/client.rbs +3 -0
  67. data/sig/knockapi/internal/transport/base_client.rbs +2 -0
  68. data/sig/knockapi/internal/transport/pooled_net_requester.rbs +4 -1
  69. data/sig/knockapi/models/inline_object_request.rbs +5 -0
  70. data/sig/knockapi/models/object_set_params.rbs +5 -0
  71. data/sig/knockapi/models/objects/bulk_add_subscriptions_params.rbs +5 -0
  72. data/sig/knockapi/models/objects/bulk_set_params.rbs +5 -0
  73. data/sig/knockapi/models/recipients/aws_sns_push_channel_data_devices_only.rbs +44 -0
  74. data/sig/knockapi/models/recipients/aws_sns_push_channel_data_target_arns_only.rbs +16 -0
  75. data/sig/knockapi/models/recipients/channel_data.rbs +1 -12
  76. data/sig/knockapi/models/recipients/channel_data_request.rbs +5 -116
  77. data/sig/knockapi/models/recipients/inline_channel_data_request.rbs +5 -116
  78. data/sig/knockapi/models/recipients/one_signal_channel_data_player_ids_only.rbs +16 -0
  79. data/sig/knockapi/models/recipients/preference_set.rbs +3 -44
  80. data/sig/knockapi/models/recipients/preference_set_channel_setting.rbs +16 -0
  81. data/sig/knockapi/models/recipients/preference_set_request.rbs +3 -44
  82. data/sig/knockapi/models/recipients/push_channel_data_devices_only.rbs +40 -0
  83. data/sig/knockapi/models/recipients/push_channel_data_tokens_only.rbs +15 -0
  84. data/sig/knockapi/models/tenant_get_params.rbs +15 -3
  85. data/sig/knockapi/models/tenant_request.rbs +5 -0
  86. data/sig/knockapi/models/tenant_set_params.rbs +12 -0
  87. data/sig/knockapi/models/users/feed_list_items_params.rbs +7 -0
  88. data/sig/knockapi/resources/objects.rbs +1 -0
  89. data/sig/knockapi/resources/tenants.rbs +3 -0
  90. data/sig/knockapi/resources/users/feeds.rbs +1 -0
  91. metadata +20 -2
@@ -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,11 +19,11 @@ module Knockapi
19
19
  T::Hash[
20
20
  Symbol,
21
21
  T.any(
22
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
23
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
24
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
25
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
26
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
22
+ Knockapi::Recipients::PushChannelDataTokensOnly,
23
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
24
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
25
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
26
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
27
27
  Knockapi::Recipients::SlackChannelData,
28
28
  Knockapi::Recipients::MsTeamsChannelData,
29
29
  Knockapi::Recipients::DiscordChannelData
@@ -83,11 +83,11 @@ module Knockapi
83
83
  T::Hash[
84
84
  Symbol,
85
85
  T.any(
86
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
87
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
88
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
89
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
90
- 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,
91
91
  Knockapi::Recipients::SlackChannelData::OrHash,
92
92
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
93
93
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -146,11 +146,11 @@ module Knockapi
146
146
  T::Hash[
147
147
  Symbol,
148
148
  T.any(
149
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
150
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
151
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
152
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
153
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
149
+ Knockapi::Recipients::PushChannelDataTokensOnly,
150
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
151
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
152
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
153
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
154
154
  Knockapi::Recipients::SlackChannelData,
155
155
  Knockapi::Recipients::MsTeamsChannelData,
156
156
  Knockapi::Recipients::DiscordChannelData
@@ -26,11 +26,11 @@ module Knockapi
26
26
  T::Hash[
27
27
  Symbol,
28
28
  T.any(
29
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
30
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
31
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
32
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
33
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
29
+ Knockapi::Recipients::PushChannelDataTokensOnly,
30
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
31
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
32
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
33
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
34
34
  Knockapi::Recipients::SlackChannelData,
35
35
  Knockapi::Recipients::MsTeamsChannelData,
36
36
  Knockapi::Recipients::DiscordChannelData
@@ -92,11 +92,11 @@ module Knockapi
92
92
  T::Hash[
93
93
  Symbol,
94
94
  T.any(
95
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
96
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
97
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
98
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
99
- 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,
100
100
  Knockapi::Recipients::SlackChannelData::OrHash,
101
101
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
102
102
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -158,11 +158,11 @@ module Knockapi
158
158
  T::Hash[
159
159
  Symbol,
160
160
  T.any(
161
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
162
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
163
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
164
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
165
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
161
+ Knockapi::Recipients::PushChannelDataTokensOnly,
162
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
163
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
164
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
165
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
166
166
  Knockapi::Recipients::SlackChannelData,
167
167
  Knockapi::Recipients::MsTeamsChannelData,
168
168
  Knockapi::Recipients::DiscordChannelData
@@ -23,11 +23,11 @@ module Knockapi
23
23
  T::Hash[
24
24
  Symbol,
25
25
  T.any(
26
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
27
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
28
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
29
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
30
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
26
+ Knockapi::Recipients::PushChannelDataTokensOnly,
27
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
28
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
29
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
30
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
31
31
  Knockapi::Recipients::SlackChannelData,
32
32
  Knockapi::Recipients::MsTeamsChannelData,
33
33
  Knockapi::Recipients::DiscordChannelData
@@ -42,6 +42,10 @@ module Knockapi
42
42
  sig { returns(T.nilable(Time)) }
43
43
  attr_accessor :created_at
44
44
 
45
+ # An optional name for the object.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_accessor :name
48
+
45
49
  # Inline set preferences for a recipient, where the key is the preference set id.
46
50
  # Preferences that are set inline will be merged into any existing preferences
47
51
  # rather than replacing them.
@@ -62,11 +66,11 @@ module Knockapi
62
66
  T::Hash[
63
67
  Symbol,
64
68
  T.any(
65
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
66
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
67
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
68
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
69
- 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,
70
74
  Knockapi::Recipients::SlackChannelData::OrHash,
71
75
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
72
76
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -74,6 +78,7 @@ module Knockapi
74
78
  ]
75
79
  ),
76
80
  created_at: T.nilable(Time),
81
+ name: T.nilable(String),
77
82
  preferences:
78
83
  T.nilable(
79
84
  T::Hash[
@@ -92,6 +97,8 @@ module Knockapi
92
97
  channel_data: nil,
93
98
  # Timestamp when the resource was created.
94
99
  created_at: nil,
100
+ # An optional name for the object.
101
+ name: nil,
95
102
  # Inline set preferences for a recipient, where the key is the preference set id.
96
103
  # Preferences that are set inline will be merged into any existing preferences
97
104
  # rather than replacing them.
@@ -109,11 +116,11 @@ module Knockapi
109
116
  T::Hash[
110
117
  Symbol,
111
118
  T.any(
112
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
113
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
114
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
115
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
116
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
119
+ Knockapi::Recipients::PushChannelDataTokensOnly,
120
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
121
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
122
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
123
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
117
124
  Knockapi::Recipients::SlackChannelData,
118
125
  Knockapi::Recipients::MsTeamsChannelData,
119
126
  Knockapi::Recipients::DiscordChannelData
@@ -121,6 +128,7 @@ module Knockapi
121
128
  ]
122
129
  ),
123
130
  created_at: T.nilable(Time),
131
+ name: T.nilable(String),
124
132
  preferences:
125
133
  T.nilable(
126
134
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest]
@@ -18,11 +18,11 @@ module Knockapi
18
18
  T::Hash[
19
19
  Symbol,
20
20
  T.any(
21
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
22
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
23
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
24
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
25
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
21
+ Knockapi::Recipients::PushChannelDataTokensOnly,
22
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
23
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
24
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
25
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
26
26
  Knockapi::Recipients::SlackChannelData,
27
27
  Knockapi::Recipients::MsTeamsChannelData,
28
28
  Knockapi::Recipients::DiscordChannelData
@@ -39,11 +39,11 @@ module Knockapi
39
39
  T::Hash[
40
40
  Symbol,
41
41
  T.any(
42
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
43
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
44
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
45
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
46
- 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,
47
47
  Knockapi::Recipients::SlackChannelData::OrHash,
48
48
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
49
49
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -58,6 +58,10 @@ module Knockapi
58
58
  sig { returns(T.nilable(String)) }
59
59
  attr_accessor :locale
60
60
 
61
+ # An optional name for the object.
62
+ sig { returns(T.nilable(String)) }
63
+ attr_accessor :name
64
+
61
65
  # Inline set preferences for a recipient, where the key is the preference set id.
62
66
  # Preferences that are set inline will be merged into any existing preferences
63
67
  # rather than replacing them.
@@ -89,17 +93,18 @@ module Knockapi
89
93
  T::Hash[
90
94
  Symbol,
91
95
  T.any(
92
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
93
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
94
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
95
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
96
- 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,
97
101
  Knockapi::Recipients::SlackChannelData::OrHash,
98
102
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
99
103
  Knockapi::Recipients::DiscordChannelData::OrHash
100
104
  )
101
105
  ],
102
106
  locale: T.nilable(String),
107
+ name: T.nilable(String),
103
108
  preferences:
104
109
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest::OrHash],
105
110
  timezone: T.nilable(String),
@@ -112,6 +117,8 @@ module Knockapi
112
117
  # The locale of the object. Used for
113
118
  # [message localization](/concepts/translations).
114
119
  locale: nil,
120
+ # An optional name for the object.
121
+ name: nil,
115
122
  # Inline set preferences for a recipient, where the key is the preference set id.
116
123
  # Preferences that are set inline will be merged into any existing preferences
117
124
  # rather than replacing them.
@@ -132,17 +139,18 @@ module Knockapi
132
139
  T::Hash[
133
140
  Symbol,
134
141
  T.any(
135
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
136
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
137
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
138
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
139
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
142
+ Knockapi::Recipients::PushChannelDataTokensOnly,
143
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
144
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
145
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
146
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
140
147
  Knockapi::Recipients::SlackChannelData,
141
148
  Knockapi::Recipients::MsTeamsChannelData,
142
149
  Knockapi::Recipients::DiscordChannelData
143
150
  )
144
151
  ],
145
152
  locale: T.nilable(String),
153
+ name: T.nilable(String),
146
154
  preferences:
147
155
  T::Hash[Symbol, Knockapi::Recipients::PreferenceSetRequest],
148
156
  timezone: T.nilable(String),
@@ -15,7 +15,7 @@ module Knockapi
15
15
  )
16
16
  end
17
17
 
18
- # A list of subscriptions.
18
+ # A nested list of subscriptions.
19
19
  sig do
20
20
  returns(
21
21
  T::Array[
@@ -35,7 +35,7 @@ module Knockapi
35
35
  ).returns(T.attached_class)
36
36
  end
37
37
  def self.new(
38
- # A list of subscriptions.
38
+ # A nested list of subscriptions.
39
39
  subscriptions:,
40
40
  request_options: {}
41
41
  )
@@ -64,6 +64,10 @@ module Knockapi
64
64
  )
65
65
  end
66
66
 
67
+ # Unique identifier for the object.
68
+ sig { returns(String) }
69
+ attr_accessor :id
70
+
67
71
  # The recipients of the subscription. You can subscribe up to 100 recipients to an
68
72
  # object at a time.
69
73
  sig do
@@ -83,8 +87,10 @@ module Knockapi
83
87
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
84
88
  attr_accessor :properties
85
89
 
90
+ # A list of subscriptions. 1 subscribed-to id, and N subscriber recipients.
86
91
  sig do
87
92
  params(
93
+ id: String,
88
94
  recipients:
89
95
  T::Array[
90
96
  T.any(
@@ -97,6 +103,8 @@ module Knockapi
97
103
  ).returns(T.attached_class)
98
104
  end
99
105
  def self.new(
106
+ # Unique identifier for the object.
107
+ id:,
100
108
  # The recipients of the subscription. You can subscribe up to 100 recipients to an
101
109
  # object at a time.
102
110
  recipients:,
@@ -108,6 +116,7 @@ module Knockapi
108
116
  sig do
109
117
  override.returns(
110
118
  {
119
+ id: String,
111
120
  recipients:
112
121
  T::Array[
113
122
  T.any(
@@ -60,11 +60,11 @@ module Knockapi
60
60
  T::Hash[
61
61
  Symbol,
62
62
  T.any(
63
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
64
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
65
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
66
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
67
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
63
+ Knockapi::Recipients::PushChannelDataTokensOnly,
64
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
65
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
66
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
67
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
68
68
  Knockapi::Recipients::SlackChannelData,
69
69
  Knockapi::Recipients::MsTeamsChannelData,
70
70
  Knockapi::Recipients::DiscordChannelData
@@ -79,6 +79,10 @@ module Knockapi
79
79
  sig { returns(T.nilable(Time)) }
80
80
  attr_accessor :created_at
81
81
 
82
+ # An optional name for the object.
83
+ sig { returns(T.nilable(String)) }
84
+ attr_accessor :name
85
+
82
86
  # Inline set preferences for a recipient, where the key is the preference set id.
83
87
  # Preferences that are set inline will be merged into any existing preferences
84
88
  # rather than replacing them.
@@ -100,11 +104,11 @@ module Knockapi
100
104
  T::Hash[
101
105
  Symbol,
102
106
  T.any(
103
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly::OrHash,
104
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly::OrHash,
105
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly::OrHash,
106
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly::OrHash,
107
- 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,
108
112
  Knockapi::Recipients::SlackChannelData::OrHash,
109
113
  Knockapi::Recipients::MsTeamsChannelData::OrHash,
110
114
  Knockapi::Recipients::DiscordChannelData::OrHash
@@ -112,6 +116,7 @@ module Knockapi
112
116
  ]
113
117
  ),
114
118
  created_at: T.nilable(Time),
119
+ name: T.nilable(String),
115
120
  preferences:
116
121
  T.nilable(
117
122
  T::Hash[
@@ -128,6 +133,8 @@ module Knockapi
128
133
  channel_data: nil,
129
134
  # Timestamp when the resource was created.
130
135
  created_at: nil,
136
+ # An optional name for the object.
137
+ name: nil,
131
138
  # Inline set preferences for a recipient, where the key is the preference set id.
132
139
  # Preferences that are set inline will be merged into any existing preferences
133
140
  # rather than replacing them.
@@ -144,11 +151,11 @@ module Knockapi
144
151
  T::Hash[
145
152
  Symbol,
146
153
  T.any(
147
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataTokensOnly,
148
- Knockapi::Recipients::InlineChannelDataRequestItem::PushChannelDataDevicesOnly,
149
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataTargetArNsOnly,
150
- Knockapi::Recipients::InlineChannelDataRequestItem::AwssnsPushChannelDataDevicesOnly,
151
- Knockapi::Recipients::InlineChannelDataRequestItem::OneSignalChannelDataPlayerIDsOnly,
154
+ Knockapi::Recipients::PushChannelDataTokensOnly,
155
+ Knockapi::Recipients::PushChannelDataDevicesOnly,
156
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
157
+ Knockapi::Recipients::AwsSnsPushChannelDataDevicesOnly,
158
+ Knockapi::Recipients::OneSignalChannelDataPlayerIDsOnly,
152
159
  Knockapi::Recipients::SlackChannelData,
153
160
  Knockapi::Recipients::MsTeamsChannelData,
154
161
  Knockapi::Recipients::DiscordChannelData
@@ -156,6 +163,7 @@ module Knockapi
156
163
  ]
157
164
  ),
158
165
  created_at: T.nilable(Time),
166
+ name: T.nilable(String),
159
167
  preferences:
160
168
  T.nilable(
161
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
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Knockapi
4
+ module Models
5
+ module Recipients
6
+ class AwsSnsPushChannelDataTargetArnsOnly < Knockapi::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Knockapi::Recipients::AwsSnsPushChannelDataTargetArnsOnly,
11
+ Knockapi::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # A list of platform endpoint ARNs. See
16
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
17
+ sig { returns(T::Array[String]) }
18
+ attr_accessor :target_arns
19
+
20
+ # AWS SNS push channel data.
21
+ sig { params(target_arns: T::Array[String]).returns(T.attached_class) }
22
+ def self.new(
23
+ # A list of platform endpoint ARNs. See
24
+ # [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
25
+ target_arns:
26
+ )
27
+ end
28
+
29
+ sig { override.returns({ target_arns: T::Array[String] }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end