prelude-sdk 0.1.0.pre.alpha.2

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 (125) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +352 -0
  4. data/README.md +217 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/prelude_sdk/client.rb +87 -0
  7. data/lib/prelude_sdk/errors.rb +214 -0
  8. data/lib/prelude_sdk/file_part.rb +55 -0
  9. data/lib/prelude_sdk/internal/transport/base_client.rb +555 -0
  10. data/lib/prelude_sdk/internal/transport/pooled_net_requester.rb +209 -0
  11. data/lib/prelude_sdk/internal/type/array_of.rb +167 -0
  12. data/lib/prelude_sdk/internal/type/base_model.rb +536 -0
  13. data/lib/prelude_sdk/internal/type/base_page.rb +55 -0
  14. data/lib/prelude_sdk/internal/type/boolean.rb +77 -0
  15. data/lib/prelude_sdk/internal/type/converter.rb +300 -0
  16. data/lib/prelude_sdk/internal/type/enum.rb +131 -0
  17. data/lib/prelude_sdk/internal/type/file_input.rb +108 -0
  18. data/lib/prelude_sdk/internal/type/hash_of.rb +187 -0
  19. data/lib/prelude_sdk/internal/type/request_parameters.rb +42 -0
  20. data/lib/prelude_sdk/internal/type/union.rb +235 -0
  21. data/lib/prelude_sdk/internal/type/unknown.rb +81 -0
  22. data/lib/prelude_sdk/internal/util.rb +914 -0
  23. data/lib/prelude_sdk/internal.rb +20 -0
  24. data/lib/prelude_sdk/models/lookup_lookup_params.rb +37 -0
  25. data/lib/prelude_sdk/models/lookup_lookup_response.rb +236 -0
  26. data/lib/prelude_sdk/models/transactional_send_params.rb +84 -0
  27. data/lib/prelude_sdk/models/transactional_send_response.rb +81 -0
  28. data/lib/prelude_sdk/models/verification_check_params.rb +69 -0
  29. data/lib/prelude_sdk/models/verification_check_response.rb +67 -0
  30. data/lib/prelude_sdk/models/verification_create_params.rb +388 -0
  31. data/lib/prelude_sdk/models/verification_create_response.rb +148 -0
  32. data/lib/prelude_sdk/models/watch_predict_params.rb +191 -0
  33. data/lib/prelude_sdk/models/watch_predict_response.rb +50 -0
  34. data/lib/prelude_sdk/models/watch_send_events_params.rb +100 -0
  35. data/lib/prelude_sdk/models/watch_send_events_response.rb +41 -0
  36. data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +229 -0
  37. data/lib/prelude_sdk/models/watch_send_feedbacks_response.rb +41 -0
  38. data/lib/prelude_sdk/models.rb +55 -0
  39. data/lib/prelude_sdk/request_options.rb +77 -0
  40. data/lib/prelude_sdk/resources/lookup.rb +42 -0
  41. data/lib/prelude_sdk/resources/transactional.rb +53 -0
  42. data/lib/prelude_sdk/resources/verification.rb +76 -0
  43. data/lib/prelude_sdk/resources/watch.rb +91 -0
  44. data/lib/prelude_sdk/version.rb +5 -0
  45. data/lib/prelude_sdk.rb +71 -0
  46. data/manifest.yaml +15 -0
  47. data/rbi/prelude_sdk/client.rbi +59 -0
  48. data/rbi/prelude_sdk/errors.rbi +178 -0
  49. data/rbi/prelude_sdk/file_part.rbi +37 -0
  50. data/rbi/prelude_sdk/internal/transport/base_client.rbi +296 -0
  51. data/rbi/prelude_sdk/internal/transport/pooled_net_requester.rbi +80 -0
  52. data/rbi/prelude_sdk/internal/type/array_of.rbi +104 -0
  53. data/rbi/prelude_sdk/internal/type/base_model.rbi +304 -0
  54. data/rbi/prelude_sdk/internal/type/base_page.rbi +42 -0
  55. data/rbi/prelude_sdk/internal/type/boolean.rbi +58 -0
  56. data/rbi/prelude_sdk/internal/type/converter.rbi +162 -0
  57. data/rbi/prelude_sdk/internal/type/enum.rbi +82 -0
  58. data/rbi/prelude_sdk/internal/type/file_input.rbi +59 -0
  59. data/rbi/prelude_sdk/internal/type/hash_of.rbi +104 -0
  60. data/rbi/prelude_sdk/internal/type/request_parameters.rbi +29 -0
  61. data/rbi/prelude_sdk/internal/type/union.rbi +121 -0
  62. data/rbi/prelude_sdk/internal/type/unknown.rbi +58 -0
  63. data/rbi/prelude_sdk/internal/util.rbi +487 -0
  64. data/rbi/prelude_sdk/internal.rbi +18 -0
  65. data/rbi/prelude_sdk/models/lookup_lookup_params.rbi +78 -0
  66. data/rbi/prelude_sdk/models/lookup_lookup_response.rbi +520 -0
  67. data/rbi/prelude_sdk/models/transactional_send_params.rbi +126 -0
  68. data/rbi/prelude_sdk/models/transactional_send_response.rbi +113 -0
  69. data/rbi/prelude_sdk/models/verification_check_params.rbi +140 -0
  70. data/rbi/prelude_sdk/models/verification_check_response.rbi +149 -0
  71. data/rbi/prelude_sdk/models/verification_create_params.rbi +805 -0
  72. data/rbi/prelude_sdk/models/verification_create_response.rbi +336 -0
  73. data/rbi/prelude_sdk/models/watch_predict_params.rbi +382 -0
  74. data/rbi/prelude_sdk/models/watch_predict_response.rbi +96 -0
  75. data/rbi/prelude_sdk/models/watch_send_events_params.rbi +245 -0
  76. data/rbi/prelude_sdk/models/watch_send_events_response.rbi +82 -0
  77. data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +500 -0
  78. data/rbi/prelude_sdk/models/watch_send_feedbacks_response.rbi +86 -0
  79. data/rbi/prelude_sdk/models.rbi +17 -0
  80. data/rbi/prelude_sdk/request_options.rbi +59 -0
  81. data/rbi/prelude_sdk/resources/lookup.rbi +33 -0
  82. data/rbi/prelude_sdk/resources/transactional.rbi +50 -0
  83. data/rbi/prelude_sdk/resources/verification.rbi +61 -0
  84. data/rbi/prelude_sdk/resources/watch.rbi +67 -0
  85. data/rbi/prelude_sdk/version.rbi +5 -0
  86. data/sig/prelude_sdk/client.rbs +32 -0
  87. data/sig/prelude_sdk/errors.rbs +110 -0
  88. data/sig/prelude_sdk/file_part.rbs +21 -0
  89. data/sig/prelude_sdk/internal/transport/base_client.rbs +131 -0
  90. data/sig/prelude_sdk/internal/transport/pooled_net_requester.rbs +45 -0
  91. data/sig/prelude_sdk/internal/type/array_of.rbs +48 -0
  92. data/sig/prelude_sdk/internal/type/base_model.rbs +102 -0
  93. data/sig/prelude_sdk/internal/type/base_page.rbs +24 -0
  94. data/sig/prelude_sdk/internal/type/boolean.rbs +26 -0
  95. data/sig/prelude_sdk/internal/type/converter.rbs +62 -0
  96. data/sig/prelude_sdk/internal/type/enum.rbs +32 -0
  97. data/sig/prelude_sdk/internal/type/file_input.rbs +25 -0
  98. data/sig/prelude_sdk/internal/type/hash_of.rbs +48 -0
  99. data/sig/prelude_sdk/internal/type/request_parameters.rbs +19 -0
  100. data/sig/prelude_sdk/internal/type/union.rbs +52 -0
  101. data/sig/prelude_sdk/internal/type/unknown.rbs +26 -0
  102. data/sig/prelude_sdk/internal/util.rbs +185 -0
  103. data/sig/prelude_sdk/internal.rbs +9 -0
  104. data/sig/prelude_sdk/models/lookup_lookup_params.rbs +38 -0
  105. data/sig/prelude_sdk/models/lookup_lookup_response.rbs +179 -0
  106. data/sig/prelude_sdk/models/transactional_send_params.rbs +73 -0
  107. data/sig/prelude_sdk/models/transactional_send_response.rbs +66 -0
  108. data/sig/prelude_sdk/models/verification_check_params.rbs +61 -0
  109. data/sig/prelude_sdk/models/verification_check_response.rbs +67 -0
  110. data/sig/prelude_sdk/models/verification_create_params.rbs +345 -0
  111. data/sig/prelude_sdk/models/verification_create_response.rbs +136 -0
  112. data/sig/prelude_sdk/models/watch_predict_params.rbs +180 -0
  113. data/sig/prelude_sdk/models/watch_predict_response.rbs +41 -0
  114. data/sig/prelude_sdk/models/watch_send_events_params.rbs +98 -0
  115. data/sig/prelude_sdk/models/watch_send_events_response.rbs +35 -0
  116. data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +211 -0
  117. data/sig/prelude_sdk/models/watch_send_feedbacks_response.rbs +35 -0
  118. data/sig/prelude_sdk/models.rbs +15 -0
  119. data/sig/prelude_sdk/request_options.rbs +36 -0
  120. data/sig/prelude_sdk/resources/lookup.rbs +13 -0
  121. data/sig/prelude_sdk/resources/transactional.rbs +19 -0
  122. data/sig/prelude_sdk/resources/verification.rbs +22 -0
  123. data/sig/prelude_sdk/resources/watch.rbs +25 -0
  124. data/sig/prelude_sdk/version.rbs +3 -0
  125. metadata +182 -0
@@ -0,0 +1,336 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class VerificationCreateResponse < PreludeSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PreludeSDK::Models::VerificationCreateResponse,
10
+ PreludeSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The verification identifier.
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # The method used for verifying this phone number.
19
+ sig do
20
+ returns(
21
+ PreludeSDK::Models::VerificationCreateResponse::Method::TaggedSymbol
22
+ )
23
+ end
24
+ attr_accessor :method_
25
+
26
+ # The status of the verification.
27
+ sig do
28
+ returns(
29
+ PreludeSDK::Models::VerificationCreateResponse::Status::TaggedSymbol
30
+ )
31
+ end
32
+ attr_accessor :status
33
+
34
+ # The ordered sequence of channels to be used for verification
35
+ sig { returns(T.nilable(T::Array[String])) }
36
+ attr_reader :channels
37
+
38
+ sig { params(channels: T::Array[String]).void }
39
+ attr_writer :channels
40
+
41
+ # The metadata for this verification.
42
+ sig do
43
+ returns(
44
+ T.nilable(PreludeSDK::Models::VerificationCreateResponse::Metadata)
45
+ )
46
+ end
47
+ attr_reader :metadata
48
+
49
+ sig do
50
+ params(
51
+ metadata:
52
+ PreludeSDK::Models::VerificationCreateResponse::Metadata::OrHash
53
+ ).void
54
+ end
55
+ attr_writer :metadata
56
+
57
+ # The reason why the verification was blocked. Only present when status is
58
+ # "blocked".
59
+ sig do
60
+ returns(
61
+ T.nilable(
62
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
63
+ )
64
+ )
65
+ end
66
+ attr_reader :reason
67
+
68
+ sig do
69
+ params(
70
+ reason:
71
+ PreludeSDK::Models::VerificationCreateResponse::Reason::OrSymbol
72
+ ).void
73
+ end
74
+ attr_writer :reason
75
+
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :request_id
78
+
79
+ sig { params(request_id: String).void }
80
+ attr_writer :request_id
81
+
82
+ # The silent verification specific properties.
83
+ sig do
84
+ returns(
85
+ T.nilable(PreludeSDK::Models::VerificationCreateResponse::Silent)
86
+ )
87
+ end
88
+ attr_reader :silent
89
+
90
+ sig do
91
+ params(
92
+ silent: PreludeSDK::Models::VerificationCreateResponse::Silent::OrHash
93
+ ).void
94
+ end
95
+ attr_writer :silent
96
+
97
+ sig do
98
+ params(
99
+ id: String,
100
+ method_:
101
+ PreludeSDK::Models::VerificationCreateResponse::Method::OrSymbol,
102
+ status:
103
+ PreludeSDK::Models::VerificationCreateResponse::Status::OrSymbol,
104
+ channels: T::Array[String],
105
+ metadata:
106
+ PreludeSDK::Models::VerificationCreateResponse::Metadata::OrHash,
107
+ reason:
108
+ PreludeSDK::Models::VerificationCreateResponse::Reason::OrSymbol,
109
+ request_id: String,
110
+ silent: PreludeSDK::Models::VerificationCreateResponse::Silent::OrHash
111
+ ).returns(T.attached_class)
112
+ end
113
+ def self.new(
114
+ # The verification identifier.
115
+ id:,
116
+ # The method used for verifying this phone number.
117
+ method_:,
118
+ # The status of the verification.
119
+ status:,
120
+ # The ordered sequence of channels to be used for verification
121
+ channels: nil,
122
+ # The metadata for this verification.
123
+ metadata: nil,
124
+ # The reason why the verification was blocked. Only present when status is
125
+ # "blocked".
126
+ reason: nil,
127
+ request_id: nil,
128
+ # The silent verification specific properties.
129
+ silent: nil
130
+ )
131
+ end
132
+
133
+ sig do
134
+ override.returns(
135
+ {
136
+ id: String,
137
+ method_:
138
+ PreludeSDK::Models::VerificationCreateResponse::Method::TaggedSymbol,
139
+ status:
140
+ PreludeSDK::Models::VerificationCreateResponse::Status::TaggedSymbol,
141
+ channels: T::Array[String],
142
+ metadata: PreludeSDK::Models::VerificationCreateResponse::Metadata,
143
+ reason:
144
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol,
145
+ request_id: String,
146
+ silent: PreludeSDK::Models::VerificationCreateResponse::Silent
147
+ }
148
+ )
149
+ end
150
+ def to_hash
151
+ end
152
+
153
+ # The method used for verifying this phone number.
154
+ module Method
155
+ extend PreludeSDK::Internal::Type::Enum
156
+
157
+ TaggedSymbol =
158
+ T.type_alias do
159
+ T.all(
160
+ Symbol,
161
+ PreludeSDK::Models::VerificationCreateResponse::Method
162
+ )
163
+ end
164
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
165
+
166
+ MESSAGE =
167
+ T.let(
168
+ :message,
169
+ PreludeSDK::Models::VerificationCreateResponse::Method::TaggedSymbol
170
+ )
171
+ SILENT =
172
+ T.let(
173
+ :silent,
174
+ PreludeSDK::Models::VerificationCreateResponse::Method::TaggedSymbol
175
+ )
176
+ VOICE =
177
+ T.let(
178
+ :voice,
179
+ PreludeSDK::Models::VerificationCreateResponse::Method::TaggedSymbol
180
+ )
181
+
182
+ sig do
183
+ override.returns(
184
+ T::Array[
185
+ PreludeSDK::Models::VerificationCreateResponse::Method::TaggedSymbol
186
+ ]
187
+ )
188
+ end
189
+ def self.values
190
+ end
191
+ end
192
+
193
+ # The status of the verification.
194
+ module Status
195
+ extend PreludeSDK::Internal::Type::Enum
196
+
197
+ TaggedSymbol =
198
+ T.type_alias do
199
+ T.all(
200
+ Symbol,
201
+ PreludeSDK::Models::VerificationCreateResponse::Status
202
+ )
203
+ end
204
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
205
+
206
+ SUCCESS =
207
+ T.let(
208
+ :success,
209
+ PreludeSDK::Models::VerificationCreateResponse::Status::TaggedSymbol
210
+ )
211
+ RETRY =
212
+ T.let(
213
+ :retry,
214
+ PreludeSDK::Models::VerificationCreateResponse::Status::TaggedSymbol
215
+ )
216
+ BLOCKED =
217
+ T.let(
218
+ :blocked,
219
+ PreludeSDK::Models::VerificationCreateResponse::Status::TaggedSymbol
220
+ )
221
+
222
+ sig do
223
+ override.returns(
224
+ T::Array[
225
+ PreludeSDK::Models::VerificationCreateResponse::Status::TaggedSymbol
226
+ ]
227
+ )
228
+ end
229
+ def self.values
230
+ end
231
+ end
232
+
233
+ class Metadata < PreludeSDK::Internal::Type::BaseModel
234
+ OrHash =
235
+ T.type_alias do
236
+ T.any(
237
+ PreludeSDK::Models::VerificationCreateResponse::Metadata,
238
+ PreludeSDK::Internal::AnyHash
239
+ )
240
+ end
241
+
242
+ sig { returns(T.nilable(String)) }
243
+ attr_reader :correlation_id
244
+
245
+ sig { params(correlation_id: String).void }
246
+ attr_writer :correlation_id
247
+
248
+ # The metadata for this verification.
249
+ sig { params(correlation_id: String).returns(T.attached_class) }
250
+ def self.new(correlation_id: nil)
251
+ end
252
+
253
+ sig { override.returns({ correlation_id: String }) }
254
+ def to_hash
255
+ end
256
+ end
257
+
258
+ # The reason why the verification was blocked. Only present when status is
259
+ # "blocked".
260
+ module Reason
261
+ extend PreludeSDK::Internal::Type::Enum
262
+
263
+ TaggedSymbol =
264
+ T.type_alias do
265
+ T.all(
266
+ Symbol,
267
+ PreludeSDK::Models::VerificationCreateResponse::Reason
268
+ )
269
+ end
270
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
271
+
272
+ SUSPICIOUS =
273
+ T.let(
274
+ :suspicious,
275
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
276
+ )
277
+ REPEATED_ATTEMPTS =
278
+ T.let(
279
+ :repeated_attempts,
280
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
281
+ )
282
+ INVALID_PHONE_LINE =
283
+ T.let(
284
+ :invalid_phone_line,
285
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
286
+ )
287
+ INVALID_PHONE_NUMBER =
288
+ T.let(
289
+ :invalid_phone_number,
290
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
291
+ )
292
+ IN_BLOCK_LIST =
293
+ T.let(
294
+ :in_block_list,
295
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
296
+ )
297
+
298
+ sig do
299
+ override.returns(
300
+ T::Array[
301
+ PreludeSDK::Models::VerificationCreateResponse::Reason::TaggedSymbol
302
+ ]
303
+ )
304
+ end
305
+ def self.values
306
+ end
307
+ end
308
+
309
+ class Silent < PreludeSDK::Internal::Type::BaseModel
310
+ OrHash =
311
+ T.type_alias do
312
+ T.any(
313
+ PreludeSDK::Models::VerificationCreateResponse::Silent,
314
+ PreludeSDK::Internal::AnyHash
315
+ )
316
+ end
317
+
318
+ # The URL to start the silent verification towards.
319
+ sig { returns(String) }
320
+ attr_accessor :request_url
321
+
322
+ # The silent verification specific properties.
323
+ sig { params(request_url: String).returns(T.attached_class) }
324
+ def self.new(
325
+ # The URL to start the silent verification towards.
326
+ request_url:
327
+ )
328
+ end
329
+
330
+ sig { override.returns({ request_url: String }) }
331
+ def to_hash
332
+ end
333
+ end
334
+ end
335
+ end
336
+ end
@@ -0,0 +1,382 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Models
5
+ class WatchPredictParams < PreludeSDK::Internal::Type::BaseModel
6
+ extend PreludeSDK::Internal::Type::RequestParameters::Converter
7
+ include PreludeSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(PreludeSDK::WatchPredictParams, PreludeSDK::Internal::AnyHash)
12
+ end
13
+
14
+ # The prediction target. Only supports phone numbers for now.
15
+ sig { returns(PreludeSDK::WatchPredictParams::Target) }
16
+ attr_reader :target
17
+
18
+ sig do
19
+ params(target: PreludeSDK::WatchPredictParams::Target::OrHash).void
20
+ end
21
+ attr_writer :target
22
+
23
+ # The identifier of the dispatch that came from the front-end SDK.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :dispatch_id
26
+
27
+ sig { params(dispatch_id: String).void }
28
+ attr_writer :dispatch_id
29
+
30
+ # The metadata for this prediction.
31
+ sig { returns(T.nilable(PreludeSDK::WatchPredictParams::Metadata)) }
32
+ attr_reader :metadata
33
+
34
+ sig do
35
+ params(metadata: PreludeSDK::WatchPredictParams::Metadata::OrHash).void
36
+ end
37
+ attr_writer :metadata
38
+
39
+ # The signals used for anti-fraud. For more details, refer to
40
+ # [Signals](/verify/v2/documentation/prevent-fraud#signals).
41
+ sig { returns(T.nilable(PreludeSDK::WatchPredictParams::Signals)) }
42
+ attr_reader :signals
43
+
44
+ sig do
45
+ params(signals: PreludeSDK::WatchPredictParams::Signals::OrHash).void
46
+ end
47
+ attr_writer :signals
48
+
49
+ sig do
50
+ params(
51
+ target: PreludeSDK::WatchPredictParams::Target::OrHash,
52
+ dispatch_id: String,
53
+ metadata: PreludeSDK::WatchPredictParams::Metadata::OrHash,
54
+ signals: PreludeSDK::WatchPredictParams::Signals::OrHash,
55
+ request_options: PreludeSDK::RequestOptions::OrHash
56
+ ).returns(T.attached_class)
57
+ end
58
+ def self.new(
59
+ # The prediction target. Only supports phone numbers for now.
60
+ target:,
61
+ # The identifier of the dispatch that came from the front-end SDK.
62
+ dispatch_id: nil,
63
+ # The metadata for this prediction.
64
+ metadata: nil,
65
+ # The signals used for anti-fraud. For more details, refer to
66
+ # [Signals](/verify/v2/documentation/prevent-fraud#signals).
67
+ signals: nil,
68
+ request_options: {}
69
+ )
70
+ end
71
+
72
+ sig do
73
+ override.returns(
74
+ {
75
+ target: PreludeSDK::WatchPredictParams::Target,
76
+ dispatch_id: String,
77
+ metadata: PreludeSDK::WatchPredictParams::Metadata,
78
+ signals: PreludeSDK::WatchPredictParams::Signals,
79
+ request_options: PreludeSDK::RequestOptions
80
+ }
81
+ )
82
+ end
83
+ def to_hash
84
+ end
85
+
86
+ class Target < PreludeSDK::Internal::Type::BaseModel
87
+ OrHash =
88
+ T.type_alias do
89
+ T.any(
90
+ PreludeSDK::WatchPredictParams::Target,
91
+ PreludeSDK::Internal::AnyHash
92
+ )
93
+ end
94
+
95
+ # The type of the target. Either "phone_number" or "email_address".
96
+ sig { returns(PreludeSDK::WatchPredictParams::Target::Type::OrSymbol) }
97
+ attr_accessor :type
98
+
99
+ # An E.164 formatted phone number or an email address.
100
+ sig { returns(String) }
101
+ attr_accessor :value
102
+
103
+ # The prediction target. Only supports phone numbers for now.
104
+ sig do
105
+ params(
106
+ type: PreludeSDK::WatchPredictParams::Target::Type::OrSymbol,
107
+ value: String
108
+ ).returns(T.attached_class)
109
+ end
110
+ def self.new(
111
+ # The type of the target. Either "phone_number" or "email_address".
112
+ type:,
113
+ # An E.164 formatted phone number or an email address.
114
+ value:
115
+ )
116
+ end
117
+
118
+ sig do
119
+ override.returns(
120
+ {
121
+ type: PreludeSDK::WatchPredictParams::Target::Type::OrSymbol,
122
+ value: String
123
+ }
124
+ )
125
+ end
126
+ def to_hash
127
+ end
128
+
129
+ # The type of the target. Either "phone_number" or "email_address".
130
+ module Type
131
+ extend PreludeSDK::Internal::Type::Enum
132
+
133
+ TaggedSymbol =
134
+ T.type_alias do
135
+ T.all(Symbol, PreludeSDK::WatchPredictParams::Target::Type)
136
+ end
137
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
138
+
139
+ PHONE_NUMBER =
140
+ T.let(
141
+ :phone_number,
142
+ PreludeSDK::WatchPredictParams::Target::Type::TaggedSymbol
143
+ )
144
+ EMAIL_ADDRESS =
145
+ T.let(
146
+ :email_address,
147
+ PreludeSDK::WatchPredictParams::Target::Type::TaggedSymbol
148
+ )
149
+
150
+ sig do
151
+ override.returns(
152
+ T::Array[
153
+ PreludeSDK::WatchPredictParams::Target::Type::TaggedSymbol
154
+ ]
155
+ )
156
+ end
157
+ def self.values
158
+ end
159
+ end
160
+ end
161
+
162
+ class Metadata < PreludeSDK::Internal::Type::BaseModel
163
+ OrHash =
164
+ T.type_alias do
165
+ T.any(
166
+ PreludeSDK::WatchPredictParams::Metadata,
167
+ PreludeSDK::Internal::AnyHash
168
+ )
169
+ end
170
+
171
+ # A user-defined identifier to correlate this prediction with.
172
+ sig { returns(T.nilable(String)) }
173
+ attr_reader :correlation_id
174
+
175
+ sig { params(correlation_id: String).void }
176
+ attr_writer :correlation_id
177
+
178
+ # The metadata for this prediction.
179
+ sig { params(correlation_id: String).returns(T.attached_class) }
180
+ def self.new(
181
+ # A user-defined identifier to correlate this prediction with.
182
+ correlation_id: nil
183
+ )
184
+ end
185
+
186
+ sig { override.returns({ correlation_id: String }) }
187
+ def to_hash
188
+ end
189
+ end
190
+
191
+ class Signals < PreludeSDK::Internal::Type::BaseModel
192
+ OrHash =
193
+ T.type_alias do
194
+ T.any(
195
+ PreludeSDK::WatchPredictParams::Signals,
196
+ PreludeSDK::Internal::AnyHash
197
+ )
198
+ end
199
+
200
+ # The version of your application.
201
+ sig { returns(T.nilable(String)) }
202
+ attr_reader :app_version
203
+
204
+ sig { params(app_version: String).void }
205
+ attr_writer :app_version
206
+
207
+ # The unique identifier for the user's device. For Android, this corresponds to
208
+ # the `ANDROID_ID` and for iOS, this corresponds to the `identifierForVendor`.
209
+ sig { returns(T.nilable(String)) }
210
+ attr_reader :device_id
211
+
212
+ sig { params(device_id: String).void }
213
+ attr_writer :device_id
214
+
215
+ # The model of the user's device.
216
+ sig { returns(T.nilable(String)) }
217
+ attr_reader :device_model
218
+
219
+ sig { params(device_model: String).void }
220
+ attr_writer :device_model
221
+
222
+ # The type of the user's device.
223
+ sig do
224
+ returns(
225
+ T.nilable(
226
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol
227
+ )
228
+ )
229
+ end
230
+ attr_reader :device_platform
231
+
232
+ sig do
233
+ params(
234
+ device_platform:
235
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol
236
+ ).void
237
+ end
238
+ attr_writer :device_platform
239
+
240
+ # The IP address of the user's device.
241
+ sig { returns(T.nilable(String)) }
242
+ attr_reader :ip
243
+
244
+ sig { params(ip: String).void }
245
+ attr_writer :ip
246
+
247
+ # This signal should provide a higher level of trust, indicating that the user is
248
+ # genuine. Contact us to discuss your use case. For more details, refer to
249
+ # [Signals](/verify/v2/documentation/prevent-fraud#signals).
250
+ sig { returns(T.nilable(T::Boolean)) }
251
+ attr_reader :is_trusted_user
252
+
253
+ sig { params(is_trusted_user: T::Boolean).void }
254
+ attr_writer :is_trusted_user
255
+
256
+ # The version of the user's device operating system.
257
+ sig { returns(T.nilable(String)) }
258
+ attr_reader :os_version
259
+
260
+ sig { params(os_version: String).void }
261
+ attr_writer :os_version
262
+
263
+ # The user agent of the user's device. If the individual fields (os_version,
264
+ # device_platform, device_model) are provided, we will prioritize those values
265
+ # instead of parsing them from the user agent string.
266
+ sig { returns(T.nilable(String)) }
267
+ attr_reader :user_agent
268
+
269
+ sig { params(user_agent: String).void }
270
+ attr_writer :user_agent
271
+
272
+ # The signals used for anti-fraud. For more details, refer to
273
+ # [Signals](/verify/v2/documentation/prevent-fraud#signals).
274
+ sig do
275
+ params(
276
+ app_version: String,
277
+ device_id: String,
278
+ device_model: String,
279
+ device_platform:
280
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol,
281
+ ip: String,
282
+ is_trusted_user: T::Boolean,
283
+ os_version: String,
284
+ user_agent: String
285
+ ).returns(T.attached_class)
286
+ end
287
+ def self.new(
288
+ # The version of your application.
289
+ app_version: nil,
290
+ # The unique identifier for the user's device. For Android, this corresponds to
291
+ # the `ANDROID_ID` and for iOS, this corresponds to the `identifierForVendor`.
292
+ device_id: nil,
293
+ # The model of the user's device.
294
+ device_model: nil,
295
+ # The type of the user's device.
296
+ device_platform: nil,
297
+ # The IP address of the user's device.
298
+ ip: nil,
299
+ # This signal should provide a higher level of trust, indicating that the user is
300
+ # genuine. Contact us to discuss your use case. For more details, refer to
301
+ # [Signals](/verify/v2/documentation/prevent-fraud#signals).
302
+ is_trusted_user: nil,
303
+ # The version of the user's device operating system.
304
+ os_version: nil,
305
+ # The user agent of the user's device. If the individual fields (os_version,
306
+ # device_platform, device_model) are provided, we will prioritize those values
307
+ # instead of parsing them from the user agent string.
308
+ user_agent: nil
309
+ )
310
+ end
311
+
312
+ sig do
313
+ override.returns(
314
+ {
315
+ app_version: String,
316
+ device_id: String,
317
+ device_model: String,
318
+ device_platform:
319
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::OrSymbol,
320
+ ip: String,
321
+ is_trusted_user: T::Boolean,
322
+ os_version: String,
323
+ user_agent: String
324
+ }
325
+ )
326
+ end
327
+ def to_hash
328
+ end
329
+
330
+ # The type of the user's device.
331
+ module DevicePlatform
332
+ extend PreludeSDK::Internal::Type::Enum
333
+
334
+ TaggedSymbol =
335
+ T.type_alias do
336
+ T.all(
337
+ Symbol,
338
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform
339
+ )
340
+ end
341
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
342
+
343
+ ANDROID =
344
+ T.let(
345
+ :android,
346
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::TaggedSymbol
347
+ )
348
+ IOS =
349
+ T.let(
350
+ :ios,
351
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::TaggedSymbol
352
+ )
353
+ IPADOS =
354
+ T.let(
355
+ :ipados,
356
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::TaggedSymbol
357
+ )
358
+ TVOS =
359
+ T.let(
360
+ :tvos,
361
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::TaggedSymbol
362
+ )
363
+ WEB =
364
+ T.let(
365
+ :web,
366
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::TaggedSymbol
367
+ )
368
+
369
+ sig do
370
+ override.returns(
371
+ T::Array[
372
+ PreludeSDK::WatchPredictParams::Signals::DevicePlatform::TaggedSymbol
373
+ ]
374
+ )
375
+ end
376
+ def self.values
377
+ end
378
+ end
379
+ end
380
+ end
381
+ end
382
+ end