trycourier 4.4.0 → 4.5.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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/trycourier/internal/transport/pooled_net_requester.rb +12 -10
  5. data/lib/trycourier/internal/type/base_model.rb +4 -3
  6. data/lib/trycourier/internal/type/union.rb +7 -9
  7. data/lib/trycourier/internal/util.rb +7 -2
  8. data/lib/trycourier/models/airship_profile.rb +21 -0
  9. data/lib/trycourier/models/airship_profile_audience.rb +15 -0
  10. data/lib/trycourier/models/audience.rb +3 -3
  11. data/lib/trycourier/models/audience_filter.rb +52 -0
  12. data/lib/trycourier/models/audience_recipient.rb +36 -0
  13. data/lib/trycourier/models/audience_update_params.rb +3 -3
  14. data/lib/trycourier/models/device_type.rb +7 -0
  15. data/lib/trycourier/models/discord.rb +16 -0
  16. data/lib/trycourier/models/expo.rb +16 -0
  17. data/lib/trycourier/models/filter.rb +8 -51
  18. data/lib/trycourier/models/filter_config.rb +8 -51
  19. data/lib/trycourier/models/intercom.rb +21 -0
  20. data/lib/trycourier/models/intercom_recipient.rb +15 -0
  21. data/lib/trycourier/models/list_filter.rb +52 -0
  22. data/lib/trycourier/models/list_pattern_recipient.rb +23 -0
  23. data/lib/trycourier/models/list_recipient.rb +29 -0
  24. data/lib/trycourier/models/ms_teams.rb +22 -0
  25. data/lib/trycourier/models/ms_teams_base_properties.rb +21 -0
  26. data/lib/trycourier/models/ms_teams_recipient.rb +17 -0
  27. data/lib/trycourier/models/multiple_tokens.rb +15 -0
  28. data/lib/trycourier/models/nested_filter_config.rb +49 -0
  29. data/lib/trycourier/models/pagerduty.rb +33 -0
  30. data/lib/trycourier/models/pagerduty_recipient.rb +17 -0
  31. data/lib/trycourier/models/send_direct_message.rb +15 -0
  32. data/lib/trycourier/models/send_message_params.rb +24 -7
  33. data/lib/trycourier/models/send_to_channel.rb +15 -0
  34. data/lib/trycourier/models/send_to_ms_teams_channel_id.rb +27 -0
  35. data/lib/trycourier/models/send_to_ms_teams_channel_name.rb +33 -0
  36. data/lib/trycourier/models/send_to_ms_teams_conversation_id.rb +27 -0
  37. data/lib/trycourier/models/send_to_ms_teams_email.rb +27 -0
  38. data/lib/trycourier/models/send_to_ms_teams_user_id.rb +27 -0
  39. data/lib/trycourier/models/send_to_slack_channel.rb +21 -0
  40. data/lib/trycourier/models/send_to_slack_email.rb +21 -0
  41. data/lib/trycourier/models/send_to_slack_user_id.rb +21 -0
  42. data/lib/trycourier/models/single_filter_config.rb +62 -0
  43. data/lib/trycourier/models/slack.rb +18 -0
  44. data/lib/trycourier/models/slack_base_properties.rb +15 -0
  45. data/lib/trycourier/models/slack_recipient.rb +17 -0
  46. data/lib/trycourier/models/token.rb +15 -0
  47. data/lib/trycourier/models/user_profile.rb +274 -0
  48. data/lib/trycourier/models/user_profile_firebase_token.rb +19 -0
  49. data/lib/trycourier/models/webhook_auth_mode.rb +16 -0
  50. data/lib/trycourier/models/webhook_authentication.rb +40 -0
  51. data/lib/trycourier/models/webhook_method.rb +15 -0
  52. data/lib/trycourier/models/webhook_profile.rb +53 -0
  53. data/lib/trycourier/models/webhook_profile_type.rb +15 -0
  54. data/lib/trycourier/models/webhook_recipient.rb +17 -0
  55. data/lib/trycourier/models.rb +84 -2
  56. data/lib/trycourier/resources/audiences.rb +1 -1
  57. data/lib/trycourier/version.rb +1 -1
  58. data/lib/trycourier.rb +42 -1
  59. data/rbi/trycourier/models/airship_profile.rbi +41 -0
  60. data/rbi/trycourier/models/airship_profile_audience.rbi +26 -0
  61. data/rbi/trycourier/models/audience.rbi +8 -7
  62. data/rbi/trycourier/models/audience_filter.rbi +88 -0
  63. data/rbi/trycourier/models/audience_recipient.rbi +52 -0
  64. data/rbi/trycourier/models/audience_update_params.rbi +25 -7
  65. data/rbi/trycourier/models/device_type.rbi +7 -0
  66. data/rbi/trycourier/models/discord.rbi +18 -0
  67. data/rbi/trycourier/models/expo.rbi +16 -0
  68. data/rbi/trycourier/models/filter.rbi +8 -78
  69. data/rbi/trycourier/models/filter_config.rbi +8 -83
  70. data/rbi/trycourier/models/intercom.rbi +35 -0
  71. data/rbi/trycourier/models/intercom_recipient.rbi +23 -0
  72. data/rbi/trycourier/models/list_filter.rbi +86 -0
  73. data/rbi/trycourier/models/list_pattern_recipient.rbi +39 -0
  74. data/rbi/trycourier/models/list_recipient.rbi +44 -0
  75. data/rbi/trycourier/models/ms_teams.rbi +24 -0
  76. data/rbi/trycourier/models/ms_teams_base_properties.rbi +31 -0
  77. data/rbi/trycourier/models/ms_teams_recipient.rbi +58 -0
  78. data/rbi/trycourier/models/multiple_tokens.rbi +27 -0
  79. data/rbi/trycourier/models/nested_filter_config.rbi +104 -0
  80. data/rbi/trycourier/models/pagerduty.rbi +53 -0
  81. data/rbi/trycourier/models/pagerduty_recipient.rbi +31 -0
  82. data/rbi/trycourier/models/send_direct_message.rbi +23 -0
  83. data/rbi/trycourier/models/send_message_params.rbi +34 -10
  84. data/rbi/trycourier/models/send_to_channel.rbi +23 -0
  85. data/rbi/trycourier/models/send_to_ms_teams_channel_id.rbi +42 -0
  86. data/rbi/trycourier/models/send_to_ms_teams_channel_name.rbi +51 -0
  87. data/rbi/trycourier/models/send_to_ms_teams_conversation_id.rbi +42 -0
  88. data/rbi/trycourier/models/send_to_ms_teams_email.rbi +37 -0
  89. data/rbi/trycourier/models/send_to_ms_teams_user_id.rbi +37 -0
  90. data/rbi/trycourier/models/send_to_slack_channel.rbi +28 -0
  91. data/rbi/trycourier/models/send_to_slack_email.rbi +28 -0
  92. data/rbi/trycourier/models/send_to_slack_user_id.rbi +28 -0
  93. data/rbi/trycourier/models/single_filter_config.rbi +116 -0
  94. data/rbi/trycourier/models/slack.rbi +22 -0
  95. data/rbi/trycourier/models/slack_base_properties.rbi +23 -0
  96. data/rbi/trycourier/models/slack_recipient.rbi +52 -0
  97. data/rbi/trycourier/models/token.rbi +21 -0
  98. data/rbi/trycourier/models/user_profile.rbi +377 -0
  99. data/rbi/trycourier/models/user_profile_firebase_token.rbi +25 -0
  100. data/rbi/trycourier/models/webhook_auth_mode.rbi +22 -0
  101. data/rbi/trycourier/models/webhook_authentication.rbi +64 -0
  102. data/rbi/trycourier/models/webhook_method.rbi +21 -0
  103. data/rbi/trycourier/models/webhook_profile.rbi +80 -0
  104. data/rbi/trycourier/models/webhook_profile_type.rbi +22 -0
  105. data/rbi/trycourier/models/webhook_recipient.rbi +31 -0
  106. data/rbi/trycourier/models.rbi +84 -2
  107. data/rbi/trycourier/resources/audiences.rbi +7 -1
  108. data/sig/trycourier/models/airship_profile.rbs +25 -0
  109. data/sig/trycourier/models/airship_profile_audience.rbs +13 -0
  110. data/sig/trycourier/models/audience.rbs +4 -4
  111. data/sig/trycourier/models/audience_filter.rbs +50 -0
  112. data/sig/trycourier/models/audience_recipient.rbs +30 -0
  113. data/sig/trycourier/models/audience_update_params.rbs +8 -4
  114. data/sig/trycourier/models/device_type.rbs +5 -0
  115. data/sig/trycourier/models/discord.rbs +11 -0
  116. data/sig/trycourier/models/expo.rbs +11 -0
  117. data/sig/trycourier/models/filter.rbs +4 -61
  118. data/sig/trycourier/models/filter_config.rbs +4 -61
  119. data/sig/trycourier/models/intercom.rbs +15 -0
  120. data/sig/trycourier/models/intercom_recipient.rbs +13 -0
  121. data/sig/trycourier/models/list_filter.rbs +50 -0
  122. data/sig/trycourier/models/list_pattern_recipient.rbs +19 -0
  123. data/sig/trycourier/models/list_recipient.rbs +30 -0
  124. data/sig/trycourier/models/ms_teams.rbs +16 -0
  125. data/sig/trycourier/models/ms_teams_base_properties.rbs +15 -0
  126. data/sig/trycourier/models/ms_teams_recipient.rbs +13 -0
  127. data/sig/trycourier/models/multiple_tokens.rbs +13 -0
  128. data/sig/trycourier/models/nested_filter_config.rbs +64 -0
  129. data/sig/trycourier/models/pagerduty.rbs +35 -0
  130. data/sig/trycourier/models/pagerduty_recipient.rbs +13 -0
  131. data/sig/trycourier/models/send_direct_message.rbs +13 -0
  132. data/sig/trycourier/models/send_message_params.rbs +9 -3
  133. data/sig/trycourier/models/send_to_channel.rbs +13 -0
  134. data/sig/trycourier/models/send_to_ms_teams_channel_id.rbs +26 -0
  135. data/sig/trycourier/models/send_to_ms_teams_channel_name.rbs +35 -0
  136. data/sig/trycourier/models/send_to_ms_teams_conversation_id.rbs +26 -0
  137. data/sig/trycourier/models/send_to_ms_teams_email.rbs +22 -0
  138. data/sig/trycourier/models/send_to_ms_teams_user_id.rbs +26 -0
  139. data/sig/trycourier/models/send_to_slack_channel.rbs +15 -0
  140. data/sig/trycourier/models/send_to_slack_email.rbs +15 -0
  141. data/sig/trycourier/models/send_to_slack_user_id.rbs +15 -0
  142. data/sig/trycourier/models/single_filter_config.rbs +69 -0
  143. data/sig/trycourier/models/slack.rbs +14 -0
  144. data/sig/trycourier/models/slack_base_properties.rbs +13 -0
  145. data/sig/trycourier/models/slack_recipient.rbs +13 -0
  146. data/sig/trycourier/models/token.rbs +13 -0
  147. data/sig/trycourier/models/user_profile.rbs +212 -0
  148. data/sig/trycourier/models/user_profile_firebase_token.rbs +13 -0
  149. data/sig/trycourier/models/webhook_auth_mode.rbs +15 -0
  150. data/sig/trycourier/models/webhook_authentication.rbs +35 -0
  151. data/sig/trycourier/models/webhook_method.rbs +14 -0
  152. data/sig/trycourier/models/webhook_profile.rbs +40 -0
  153. data/sig/trycourier/models/webhook_profile_type.rbs +14 -0
  154. data/sig/trycourier/models/webhook_recipient.rbs +13 -0
  155. data/sig/trycourier/models.rbs +86 -4
  156. data/sig/trycourier/resources/audiences.rbs +1 -1
  157. metadata +128 -5
  158. data/lib/trycourier/models/recipient.rb +0 -113
  159. data/rbi/trycourier/models/recipient.rbi +0 -161
  160. data/sig/trycourier/models/recipient.rbs +0 -92
@@ -0,0 +1,377 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class UserProfile < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::UserProfile, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(Trycourier::UserProfile::Address)) }
12
+ attr_reader :address
13
+
14
+ sig do
15
+ params(
16
+ address: T.nilable(Trycourier::UserProfile::Address::OrHash)
17
+ ).void
18
+ end
19
+ attr_writer :address
20
+
21
+ sig { returns(T.nilable(Trycourier::AirshipProfile)) }
22
+ attr_reader :airship
23
+
24
+ sig do
25
+ params(airship: T.nilable(Trycourier::AirshipProfile::OrHash)).void
26
+ end
27
+ attr_writer :airship
28
+
29
+ sig { returns(T.nilable(String)) }
30
+ attr_accessor :apn
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_accessor :birthdate
34
+
35
+ # A free form object. Due to a limitation of the API Explorer, you can only enter
36
+ # string key/values below, but this API accepts more complex object structures.
37
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
38
+ attr_accessor :custom
39
+
40
+ sig do
41
+ returns(
42
+ T.nilable(
43
+ T.any(Trycourier::SendToChannel, Trycourier::SendDirectMessage)
44
+ )
45
+ )
46
+ end
47
+ attr_accessor :discord
48
+
49
+ sig { returns(T.nilable(String)) }
50
+ attr_accessor :email
51
+
52
+ sig { returns(T.nilable(T::Boolean)) }
53
+ attr_accessor :email_verified
54
+
55
+ sig do
56
+ returns(T.nilable(T.any(Trycourier::Token, Trycourier::MultipleTokens)))
57
+ end
58
+ attr_accessor :expo
59
+
60
+ sig { returns(T.nilable(String)) }
61
+ attr_accessor :facebook_psid
62
+
63
+ sig { returns(T.nilable(String)) }
64
+ attr_accessor :family_name
65
+
66
+ sig { returns(T.nilable(Trycourier::UserProfileFirebaseToken::Variants)) }
67
+ attr_accessor :firebase_token
68
+
69
+ sig { returns(T.nilable(String)) }
70
+ attr_accessor :gender
71
+
72
+ sig { returns(T.nilable(String)) }
73
+ attr_accessor :given_name
74
+
75
+ sig { returns(T.nilable(Trycourier::Intercom)) }
76
+ attr_reader :intercom
77
+
78
+ sig { params(intercom: T.nilable(Trycourier::Intercom::OrHash)).void }
79
+ attr_writer :intercom
80
+
81
+ sig { returns(T.nilable(String)) }
82
+ attr_accessor :locale
83
+
84
+ sig { returns(T.nilable(String)) }
85
+ attr_accessor :middle_name
86
+
87
+ sig do
88
+ returns(
89
+ T.nilable(
90
+ T.any(
91
+ Trycourier::SendToMsTeamsUserID,
92
+ Trycourier::SendToMsTeamsEmail,
93
+ Trycourier::SendToMsTeamsChannelID,
94
+ Trycourier::SendToMsTeamsConversationID,
95
+ Trycourier::SendToMsTeamsChannelName
96
+ )
97
+ )
98
+ )
99
+ end
100
+ attr_accessor :ms_teams
101
+
102
+ sig { returns(T.nilable(String)) }
103
+ attr_accessor :name
104
+
105
+ sig { returns(T.nilable(String)) }
106
+ attr_accessor :nickname
107
+
108
+ sig { returns(T.nilable(String)) }
109
+ attr_accessor :phone_number
110
+
111
+ sig { returns(T.nilable(T::Boolean)) }
112
+ attr_accessor :phone_number_verified
113
+
114
+ sig { returns(T.nilable(String)) }
115
+ attr_accessor :picture
116
+
117
+ sig { returns(T.nilable(String)) }
118
+ attr_accessor :preferred_name
119
+
120
+ sig { returns(T.nilable(String)) }
121
+ attr_accessor :profile
122
+
123
+ sig do
124
+ returns(
125
+ T.nilable(
126
+ T.any(
127
+ Trycourier::SendToSlackChannel,
128
+ Trycourier::SendToSlackEmail,
129
+ Trycourier::SendToSlackUserID
130
+ )
131
+ )
132
+ )
133
+ end
134
+ attr_accessor :slack
135
+
136
+ sig { returns(T.nilable(String)) }
137
+ attr_accessor :sub
138
+
139
+ sig { returns(T.nilable(String)) }
140
+ attr_accessor :target_arn
141
+
142
+ sig { returns(T.nilable(String)) }
143
+ attr_accessor :updated_at
144
+
145
+ sig { returns(T.nilable(String)) }
146
+ attr_accessor :website
147
+
148
+ sig { returns(T.nilable(String)) }
149
+ attr_accessor :zoneinfo
150
+
151
+ sig do
152
+ params(
153
+ address: T.nilable(Trycourier::UserProfile::Address::OrHash),
154
+ airship: T.nilable(Trycourier::AirshipProfile::OrHash),
155
+ apn: T.nilable(String),
156
+ birthdate: T.nilable(String),
157
+ custom: T.nilable(T::Hash[Symbol, T.anything]),
158
+ discord:
159
+ T.nilable(
160
+ T.any(
161
+ Trycourier::SendToChannel::OrHash,
162
+ Trycourier::SendDirectMessage::OrHash
163
+ )
164
+ ),
165
+ email: T.nilable(String),
166
+ email_verified: T.nilable(T::Boolean),
167
+ expo:
168
+ T.nilable(
169
+ T.any(
170
+ Trycourier::Token::OrHash,
171
+ Trycourier::MultipleTokens::OrHash
172
+ )
173
+ ),
174
+ facebook_psid: T.nilable(String),
175
+ family_name: T.nilable(String),
176
+ firebase_token:
177
+ T.nilable(Trycourier::UserProfileFirebaseToken::Variants),
178
+ gender: T.nilable(String),
179
+ given_name: T.nilable(String),
180
+ intercom: T.nilable(Trycourier::Intercom::OrHash),
181
+ locale: T.nilable(String),
182
+ middle_name: T.nilable(String),
183
+ ms_teams:
184
+ T.nilable(
185
+ T.any(
186
+ Trycourier::SendToMsTeamsUserID::OrHash,
187
+ Trycourier::SendToMsTeamsEmail::OrHash,
188
+ Trycourier::SendToMsTeamsChannelID::OrHash,
189
+ Trycourier::SendToMsTeamsConversationID::OrHash,
190
+ Trycourier::SendToMsTeamsChannelName::OrHash
191
+ )
192
+ ),
193
+ name: T.nilable(String),
194
+ nickname: T.nilable(String),
195
+ phone_number: T.nilable(String),
196
+ phone_number_verified: T.nilable(T::Boolean),
197
+ picture: T.nilable(String),
198
+ preferred_name: T.nilable(String),
199
+ profile: T.nilable(String),
200
+ slack:
201
+ T.nilable(
202
+ T.any(
203
+ Trycourier::SendToSlackChannel::OrHash,
204
+ Trycourier::SendToSlackEmail::OrHash,
205
+ Trycourier::SendToSlackUserID::OrHash
206
+ )
207
+ ),
208
+ sub: T.nilable(String),
209
+ target_arn: T.nilable(String),
210
+ updated_at: T.nilable(String),
211
+ website: T.nilable(String),
212
+ zoneinfo: T.nilable(String)
213
+ ).returns(T.attached_class)
214
+ end
215
+ def self.new(
216
+ address: nil,
217
+ airship: nil,
218
+ apn: nil,
219
+ birthdate: nil,
220
+ # A free form object. Due to a limitation of the API Explorer, you can only enter
221
+ # string key/values below, but this API accepts more complex object structures.
222
+ custom: nil,
223
+ discord: nil,
224
+ email: nil,
225
+ email_verified: nil,
226
+ expo: nil,
227
+ facebook_psid: nil,
228
+ family_name: nil,
229
+ firebase_token: nil,
230
+ gender: nil,
231
+ given_name: nil,
232
+ intercom: nil,
233
+ locale: nil,
234
+ middle_name: nil,
235
+ ms_teams: nil,
236
+ name: nil,
237
+ nickname: nil,
238
+ phone_number: nil,
239
+ phone_number_verified: nil,
240
+ picture: nil,
241
+ preferred_name: nil,
242
+ profile: nil,
243
+ slack: nil,
244
+ sub: nil,
245
+ target_arn: nil,
246
+ updated_at: nil,
247
+ website: nil,
248
+ zoneinfo: nil
249
+ )
250
+ end
251
+
252
+ sig do
253
+ override.returns(
254
+ {
255
+ address: T.nilable(Trycourier::UserProfile::Address),
256
+ airship: T.nilable(Trycourier::AirshipProfile),
257
+ apn: T.nilable(String),
258
+ birthdate: T.nilable(String),
259
+ custom: T.nilable(T::Hash[Symbol, T.anything]),
260
+ discord:
261
+ T.nilable(
262
+ T.any(Trycourier::SendToChannel, Trycourier::SendDirectMessage)
263
+ ),
264
+ email: T.nilable(String),
265
+ email_verified: T.nilable(T::Boolean),
266
+ expo:
267
+ T.nilable(T.any(Trycourier::Token, Trycourier::MultipleTokens)),
268
+ facebook_psid: T.nilable(String),
269
+ family_name: T.nilable(String),
270
+ firebase_token:
271
+ T.nilable(Trycourier::UserProfileFirebaseToken::Variants),
272
+ gender: T.nilable(String),
273
+ given_name: T.nilable(String),
274
+ intercom: T.nilable(Trycourier::Intercom),
275
+ locale: T.nilable(String),
276
+ middle_name: T.nilable(String),
277
+ ms_teams:
278
+ T.nilable(
279
+ T.any(
280
+ Trycourier::SendToMsTeamsUserID,
281
+ Trycourier::SendToMsTeamsEmail,
282
+ Trycourier::SendToMsTeamsChannelID,
283
+ Trycourier::SendToMsTeamsConversationID,
284
+ Trycourier::SendToMsTeamsChannelName
285
+ )
286
+ ),
287
+ name: T.nilable(String),
288
+ nickname: T.nilable(String),
289
+ phone_number: T.nilable(String),
290
+ phone_number_verified: T.nilable(T::Boolean),
291
+ picture: T.nilable(String),
292
+ preferred_name: T.nilable(String),
293
+ profile: T.nilable(String),
294
+ slack:
295
+ T.nilable(
296
+ T.any(
297
+ Trycourier::SendToSlackChannel,
298
+ Trycourier::SendToSlackEmail,
299
+ Trycourier::SendToSlackUserID
300
+ )
301
+ ),
302
+ sub: T.nilable(String),
303
+ target_arn: T.nilable(String),
304
+ updated_at: T.nilable(String),
305
+ website: T.nilable(String),
306
+ zoneinfo: T.nilable(String)
307
+ }
308
+ )
309
+ end
310
+ def to_hash
311
+ end
312
+
313
+ class Address < Trycourier::Internal::Type::BaseModel
314
+ OrHash =
315
+ T.type_alias do
316
+ T.any(
317
+ Trycourier::UserProfile::Address,
318
+ Trycourier::Internal::AnyHash
319
+ )
320
+ end
321
+
322
+ sig { returns(String) }
323
+ attr_accessor :country
324
+
325
+ sig { returns(String) }
326
+ attr_accessor :formatted
327
+
328
+ sig { returns(String) }
329
+ attr_accessor :locality
330
+
331
+ sig { returns(String) }
332
+ attr_accessor :postal_code
333
+
334
+ sig { returns(String) }
335
+ attr_accessor :region
336
+
337
+ sig { returns(String) }
338
+ attr_accessor :street_address
339
+
340
+ sig do
341
+ params(
342
+ country: String,
343
+ formatted: String,
344
+ locality: String,
345
+ postal_code: String,
346
+ region: String,
347
+ street_address: String
348
+ ).returns(T.attached_class)
349
+ end
350
+ def self.new(
351
+ country:,
352
+ formatted:,
353
+ locality:,
354
+ postal_code:,
355
+ region:,
356
+ street_address:
357
+ )
358
+ end
359
+
360
+ sig do
361
+ override.returns(
362
+ {
363
+ country: String,
364
+ formatted: String,
365
+ locality: String,
366
+ postal_code: String,
367
+ region: String,
368
+ street_address: String
369
+ }
370
+ )
371
+ end
372
+ def to_hash
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end
@@ -0,0 +1,25 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ module UserProfileFirebaseToken
6
+ extend Trycourier::Internal::Type::Union
7
+
8
+ Variants = T.type_alias { T.any(String, T::Array[String]) }
9
+
10
+ sig do
11
+ override.returns(
12
+ T::Array[Trycourier::UserProfileFirebaseToken::Variants]
13
+ )
14
+ end
15
+ def self.variants
16
+ end
17
+
18
+ StringArray =
19
+ T.let(
20
+ Trycourier::Internal::Type::ArrayOf[String],
21
+ Trycourier::Internal::Type::Converter
22
+ )
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ module WebhookAuthMode
6
+ extend Trycourier::Internal::Type::Enum
7
+
8
+ TaggedSymbol = T.type_alias { T.all(Symbol, Trycourier::WebhookAuthMode) }
9
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10
+
11
+ NONE = T.let(:none, Trycourier::WebhookAuthMode::TaggedSymbol)
12
+ BASIC = T.let(:basic, Trycourier::WebhookAuthMode::TaggedSymbol)
13
+ BEARER = T.let(:bearer, Trycourier::WebhookAuthMode::TaggedSymbol)
14
+
15
+ sig do
16
+ override.returns(T::Array[Trycourier::WebhookAuthMode::TaggedSymbol])
17
+ end
18
+ def self.values
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,64 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class WebhookAuthentication < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Trycourier::WebhookAuthentication,
10
+ Trycourier::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The authentication mode to use. Defaults to 'none' if not specified.
15
+ sig { returns(Trycourier::WebhookAuthMode::OrSymbol) }
16
+ attr_accessor :mode
17
+
18
+ # Token for bearer authentication.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :token
21
+
22
+ # Password for basic authentication.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :password
25
+
26
+ # Username for basic authentication.
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :username
29
+
30
+ sig do
31
+ params(
32
+ mode: Trycourier::WebhookAuthMode::OrSymbol,
33
+ token: T.nilable(String),
34
+ password: T.nilable(String),
35
+ username: T.nilable(String)
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # The authentication mode to use. Defaults to 'none' if not specified.
40
+ mode:,
41
+ # Token for bearer authentication.
42
+ token: nil,
43
+ # Password for basic authentication.
44
+ password: nil,
45
+ # Username for basic authentication.
46
+ username: nil
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ mode: Trycourier::WebhookAuthMode::OrSymbol,
54
+ token: T.nilable(String),
55
+ password: T.nilable(String),
56
+ username: T.nilable(String)
57
+ }
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,21 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ module WebhookMethod
6
+ extend Trycourier::Internal::Type::Enum
7
+
8
+ TaggedSymbol = T.type_alias { T.all(Symbol, Trycourier::WebhookMethod) }
9
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10
+
11
+ POST = T.let(:POST, Trycourier::WebhookMethod::TaggedSymbol)
12
+ PUT = T.let(:PUT, Trycourier::WebhookMethod::TaggedSymbol)
13
+
14
+ sig do
15
+ override.returns(T::Array[Trycourier::WebhookMethod::TaggedSymbol])
16
+ end
17
+ def self.values
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,80 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class WebhookProfile < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::WebhookProfile, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ # The URL to send the webhook request to.
12
+ sig { returns(String) }
13
+ attr_accessor :url
14
+
15
+ # Authentication configuration for the webhook request.
16
+ sig { returns(T.nilable(Trycourier::WebhookAuthentication)) }
17
+ attr_reader :authentication
18
+
19
+ sig do
20
+ params(
21
+ authentication: T.nilable(Trycourier::WebhookAuthentication::OrHash)
22
+ ).void
23
+ end
24
+ attr_writer :authentication
25
+
26
+ # Custom headers to include in the webhook request.
27
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
28
+ attr_accessor :headers
29
+
30
+ # The HTTP method to use for the webhook request. Defaults to POST if not
31
+ # specified.
32
+ sig { returns(T.nilable(Trycourier::WebhookMethod::OrSymbol)) }
33
+ attr_accessor :method_
34
+
35
+ # Specifies what profile information is included in the request payload. Defaults
36
+ # to 'limited' if not specified.
37
+ sig { returns(T.nilable(Trycourier::WebhookProfileType::OrSymbol)) }
38
+ attr_accessor :profile
39
+
40
+ sig do
41
+ params(
42
+ url: String,
43
+ authentication: T.nilable(Trycourier::WebhookAuthentication::OrHash),
44
+ headers: T.nilable(T::Hash[Symbol, String]),
45
+ method_: T.nilable(Trycourier::WebhookMethod::OrSymbol),
46
+ profile: T.nilable(Trycourier::WebhookProfileType::OrSymbol)
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The URL to send the webhook request to.
51
+ url:,
52
+ # Authentication configuration for the webhook request.
53
+ authentication: nil,
54
+ # Custom headers to include in the webhook request.
55
+ headers: nil,
56
+ # The HTTP method to use for the webhook request. Defaults to POST if not
57
+ # specified.
58
+ method_: nil,
59
+ # Specifies what profile information is included in the request payload. Defaults
60
+ # to 'limited' if not specified.
61
+ profile: nil
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {
68
+ url: String,
69
+ authentication: T.nilable(Trycourier::WebhookAuthentication),
70
+ headers: T.nilable(T::Hash[Symbol, String]),
71
+ method_: T.nilable(Trycourier::WebhookMethod::OrSymbol),
72
+ profile: T.nilable(Trycourier::WebhookProfileType::OrSymbol)
73
+ }
74
+ )
75
+ end
76
+ def to_hash
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,22 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ module WebhookProfileType
6
+ extend Trycourier::Internal::Type::Enum
7
+
8
+ TaggedSymbol =
9
+ T.type_alias { T.all(Symbol, Trycourier::WebhookProfileType) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ LIMITED = T.let(:limited, Trycourier::WebhookProfileType::TaggedSymbol)
13
+ EXPANDED = T.let(:expanded, Trycourier::WebhookProfileType::TaggedSymbol)
14
+
15
+ sig do
16
+ override.returns(T::Array[Trycourier::WebhookProfileType::TaggedSymbol])
17
+ end
18
+ def self.values
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class WebhookRecipient < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::WebhookRecipient, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Trycourier::WebhookProfile) }
12
+ attr_reader :webhook
13
+
14
+ sig { params(webhook: Trycourier::WebhookProfile::OrHash).void }
15
+ attr_writer :webhook
16
+
17
+ # Send via webhook
18
+ sig do
19
+ params(webhook: Trycourier::WebhookProfile::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(webhook:)
24
+ end
25
+
26
+ sig { override.returns({ webhook: Trycourier::WebhookProfile }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end