prelude-sdk 0.8.0 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8731fe84115bb4e974b30b47e338de7edb1f104b7cf647c48fa5d02e0b18ae8d
4
- data.tar.gz: ef60164897791a51d47662deac42eafc71b8a1036b0bd8cb9440564f01149c39
3
+ metadata.gz: 352849d968441a94ad1e67d3dbbcca51b693b630ffad11504def50f3ec52a2ea
4
+ data.tar.gz: 2e3a7617adbcb0fc5e7f8ae43e81d1f59e909153968f884e501c1bc50af28f17
5
5
  SHA512:
6
- metadata.gz: 6a1bd302938e69cddf9fc148cf5f8cee8b1562afa6ce41e0290764c0b9cce9565fe5d7303648f13911a8ae32a7166cd67dd0bff7b55e901f91fc9d7e62266fbe
7
- data.tar.gz: 02e63639aa44241d657fb07bdcd1877bb2de1c8290459dd07afd1c4320fd5e7a357b8836b4c04b375ba25b6874091bac694837075eb2d600590785221fb307f8
6
+ metadata.gz: 24926ad8c0b8f63d0e0237192f80fe82632c553eec22cbb570fd7a4a6e97d17a80ef25b9f4c6da84c227167ed4c0f46bdde8f72508874d054f2704cf47876e0b
7
+ data.tar.gz: dbd672b9d8bdacd81ee544bdec6d07657a3be690b909557c9808c42ad1895e0e05dd3c76c29ed8c98e3675aef8e98f77982c8880198b55d3812192eea1f0db83
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.0 (2026-09-22)
4
+
5
+ Full Changelog: [v0.8.0...v0.9.0](https://github.com/prelude-so/ruby-sdk/compare/v0.8.0...v0.9.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([f86194b](https://github.com/prelude-so/ruby-sdk/commit/f86194b0bea9b4034842e7d6e08089a9c90da2e9))
10
+
3
11
  ## 0.8.0 (2026-09-18)
4
12
 
5
13
  Full Changelog: [v0.7.0...v0.8.0](https://github.com/prelude-so/ruby-sdk/compare/v0.7.0...v0.8.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "prelude-sdk", "~> 0.8.0"
20
+ gem "prelude-sdk", "~> 0.9.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -75,8 +75,8 @@ module PreludeSDK
75
75
  # - `invalid_line` - The phone number is not a valid line type.
76
76
  # - `invalid_number` - The phone number is not a valid number.
77
77
  # - `rate_limited` - The verification was refused by a rate limit.
78
- # - `expired_signals` - The SDK signals were collected too long before the
79
- # request.
78
+ # - `expired_signals` - The SDK signals were collected too long before the request
79
+ # to still attest to it.
80
80
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
81
81
  # it.
82
82
  #
@@ -209,8 +209,8 @@ module PreludeSDK
209
209
  # - `invalid_line` - The phone number is not a valid line type.
210
210
  # - `invalid_number` - The phone number is not a valid number.
211
211
  # - `rate_limited` - The verification was refused by a rate limit.
212
- # - `expired_signals` - The SDK signals were collected too long before the
213
- # request.
212
+ # - `expired_signals` - The SDK signals were collected too long before the request
213
+ # to still attest to it.
214
214
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
215
215
  # it.
216
216
  #
@@ -43,8 +43,8 @@ module PreludeSDK
43
43
  # - `invalid_line` - The phone number is not a valid line type.
44
44
  # - `invalid_number` - The phone number is not a valid number.
45
45
  # - `rate_limited` - The verification was refused by a rate limit.
46
- # - `expired_signals` - The SDK signals were collected too long before the
47
- # request.
46
+ # - `expired_signals` - The SDK signals were collected too long before the request
47
+ # to still attest to it.
48
48
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
49
49
  # it.
50
50
  #
@@ -58,31 +58,44 @@ module PreludeSDK
58
58
  optional :app_version, String
59
59
 
60
60
  # @!attribute block_reasons
61
- # Why the anti-fraud system blocked the verification. Empty unless it did.
62
- #
63
- # - `behavioral_pattern` - The phone number past behavior during verification
64
- # flows exhibits suspicious patterns.
65
- # - `device_attribute` - The end-user device reported attributes associated with
66
- # fraud or emulation.
67
- # - `fraud_database` - The phone number appears in a fraud database.
68
- # - `location_discrepancy` - The phone number region and the observed location
69
- # disagree.
61
+ # Why the anti-fraud system blocked the verification. Empty unless it did. These
62
+ # are the same labels the Verify and Watch APIs serve as `risk_factors`.
63
+ #
64
+ # - `automation_signature` - The request appears to come from an automated client
65
+ # rather than a person.
66
+ # - `carrier_not_permitted` - The destination carrier is one this account does not
67
+ # accept traffic for.
68
+ # - `client_fingerprint_mismatch` - The client does not appear to be the platform
69
+ # it identifies itself as.
70
+ # - `custom_policy` - A rule configured for your account matched this request.
71
+ # - `device_emulator` - The request appears to come from an emulator rather than a
72
+ # physical device.
73
+ # - `device_not_permitted` - The device platform is one your account blocks.
74
+ # - `device_reuse` - One device is driving verifications for an unusual number of
75
+ # phone numbers.
76
+ # - `expired_signals` - The SDK signals were collected too long before the request
77
+ # to still attest to it.
78
+ # - `fraud_database` - The phone number is flagged in one or more of the fraud
79
+ # databases Prelude consults.
80
+ # - `invalid_signature` - The SDK signature did not verify, so the request cannot
81
+ # be attributed to the device it claims to come from.
82
+ # - `ip_concentration` - The request shares its origin with an unusual volume of
83
+ # other verifications.
84
+ # - `ip_reputation` - The originating IP address is not trusted.
85
+ # - `location_mismatch` - The network location and the phone number's country are
86
+ # inconsistent.
70
87
  # - `missing_signals` - The verification expected Prelude SDK signals and none
71
88
  # arrived.
72
- # - `network_fingerprint` - The network fingerprint matches known fraudulent
73
- # traffic.
74
- # - `poor_conversion_history` - The phone number rarely completes the
75
- # verifications it starts.
76
- # - `prefix_concentration` - The phone number is part of a range known to be
77
- # associated with suspicious activity patterns.
78
- # - `repeated_number` - The phone number was used far more often than normal
79
- # traffic would explain.
80
- # - `suspected_request_tampering` - The SDK signals were altered or expired
81
- # between collection and use.
82
- # - `suspicious_ip_address` - The originating IP address is associated with
83
- # suspicious activity.
84
- # - `temporary_phone_number` - The phone number is known to be a temporary or
85
- # disposable number.
89
+ # - `number_range_abuse` - The phone number belongs to a range currently
90
+ # associated with abuse.
91
+ # - `poor_conversion_history` - Traffic resembling this request rarely completes a
92
+ # verification.
93
+ # - `proxy_network` - The request did not arrive over the subscriber's own access
94
+ # network.
95
+ # - `repeated_attempts` - The phone number exceeded the allowed number of
96
+ # verification attempts in a short period.
97
+ # - `temporary_phone_number` - The phone number belongs to a disposable or
98
+ # short-lived numbering service.
86
99
  #
87
100
  # @return [Array<Symbol, PreludeSDK::Models::Verification::Phone::HistoryRetrieveResponse::BlockReason>, nil]
88
101
  optional :block_reasons,
@@ -198,7 +211,7 @@ module PreludeSDK
198
211
  #
199
212
  # @param app_version [String] Version of your application, when known.
200
213
  #
201
- # @param block_reasons [Array<Symbol, PreludeSDK::Models::Verification::Phone::HistoryRetrieveResponse::BlockReason>] Why the anti-fraud system blocked the verification. Empty unless it did.
214
+ # @param block_reasons [Array<Symbol, PreludeSDK::Models::Verification::Phone::HistoryRetrieveResponse::BlockReason>] Why the anti-fraud system blocked the verification. Empty unless it did. These a
202
215
  #
203
216
  # @param carrier [PreludeSDK::Models::Verification::Phone::PhoneVerificationCarrier] The end user's mobile network.
204
217
  #
@@ -242,8 +255,8 @@ module PreludeSDK
242
255
  # - `invalid_line` - The phone number is not a valid line type.
243
256
  # - `invalid_number` - The phone number is not a valid number.
244
257
  # - `rate_limited` - The verification was refused by a rate limit.
245
- # - `expired_signals` - The SDK signals were collected too long before the
246
- # request.
258
+ # - `expired_signals` - The SDK signals were collected too long before the request
259
+ # to still attest to it.
247
260
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
248
261
  # it.
249
262
  #
@@ -271,17 +284,24 @@ module PreludeSDK
271
284
  module BlockReason
272
285
  extend PreludeSDK::Internal::Type::Enum
273
286
 
274
- BEHAVIORAL_PATTERN = :behavioral_pattern
275
- DEVICE_ATTRIBUTE = :device_attribute
287
+ AUTOMATION_SIGNATURE = :automation_signature
288
+ CARRIER_NOT_PERMITTED = :carrier_not_permitted
289
+ CLIENT_FINGERPRINT_MISMATCH = :client_fingerprint_mismatch
290
+ CUSTOM_POLICY = :custom_policy
291
+ DEVICE_EMULATOR = :device_emulator
292
+ DEVICE_NOT_PERMITTED = :device_not_permitted
293
+ DEVICE_REUSE = :device_reuse
294
+ EXPIRED_SIGNALS = :expired_signals
276
295
  FRAUD_DATABASE = :fraud_database
277
- LOCATION_DISCREPANCY = :location_discrepancy
296
+ INVALID_SIGNATURE = :invalid_signature
297
+ IP_CONCENTRATION = :ip_concentration
298
+ IP_REPUTATION = :ip_reputation
299
+ LOCATION_MISMATCH = :location_mismatch
278
300
  MISSING_SIGNALS = :missing_signals
279
- NETWORK_FINGERPRINT = :network_fingerprint
301
+ NUMBER_RANGE_ABUSE = :number_range_abuse
280
302
  POOR_CONVERSION_HISTORY = :poor_conversion_history
281
- PREFIX_CONCENTRATION = :prefix_concentration
282
- REPEATED_NUMBER = :repeated_number
283
- SUSPECTED_REQUEST_TAMPERING = :suspected_request_tampering
284
- SUSPICIOUS_IP_ADDRESS = :suspicious_ip_address
303
+ PROXY_NETWORK = :proxy_network
304
+ REPEATED_ATTEMPTS = :repeated_attempts
285
305
  TEMPORARY_PHONE_NUMBER = :temporary_phone_number
286
306
 
287
307
  # @!method self.values
@@ -58,9 +58,10 @@ module PreludeSDK
58
58
  # landline).
59
59
  # - `invalid_phone_number` - The phone number is not a valid phone number (e.g.
60
60
  # unallocated range).
61
- # - `invalid_signature` - The signature of the SDK signals is invalid.
62
- # - `repeated_attempts` - The phone number has made too many verification
63
- # attempts.
61
+ # - `invalid_signature` - The SDK signature did not verify, so the request cannot
62
+ # be attributed to the device it claims to come from.
63
+ # - `repeated_attempts` - The phone number exceeded the allowed number of
64
+ # verification attempts in a short period.
64
65
  # - `suspicious` - The verification attempt was deemed suspicious by the
65
66
  # anti-fraud system.
66
67
  #
@@ -77,26 +78,41 @@ module PreludeSDK
77
78
  # present when status is "blocked" or "shadow_blocked" and the anti-fraud system
78
79
  # detected specific risk signals.
79
80
  #
80
- # - `behavioral_pattern` - The phone number past behavior during verification
81
- # flows exhibits suspicious patterns.
82
- # - `device_attribute` - The device exhibits characteristics associated with
83
- # suspicious activity patterns.
84
- # - `fraud_database` - The phone number has been flagged as suspicious in one or
85
- # more of our fraud databases.
86
- # - `location_discrepancy` - The phone number prefix and IP address discrepancy
87
- # indicates potential fraud.
88
- # - `network_fingerprint` - The network connection exhibits characteristics
89
- # associated with suspicious activity patterns.
90
- # - `poor_conversion_history` - The phone number has a history of poorly
91
- # converting to a verified phone number.
92
- # - `prefix_concentration` - The phone number is part of a range known to be
93
- # associated with suspicious activity patterns.
94
- # - `suspected_request_tampering` - The SDK signature is invalid and the request
95
- # is considered to be tampered with.
96
- # - `suspicious_ip_address` - The IP address is deemed to be associated with
97
- # suspicious activity patterns.
98
- # - `temporary_phone_number` - The phone number is known to be a temporary or
99
- # disposable number.
81
+ # - `automation_signature` - The request appears to come from an automated client
82
+ # rather than a person.
83
+ # - `carrier_not_permitted` - The destination carrier is one this account does not
84
+ # accept traffic for.
85
+ # - `client_fingerprint_mismatch` - The client does not appear to be the platform
86
+ # it identifies itself as.
87
+ # - `custom_policy` - A rule configured for your account matched this request.
88
+ # - `device_emulator` - The request appears to come from an emulator rather than a
89
+ # physical device.
90
+ # - `device_not_permitted` - The device platform is one your account blocks.
91
+ # - `device_reuse` - One device is driving verifications for an unusual number of
92
+ # phone numbers.
93
+ # - `expired_signals` - The SDK signals were collected too long before the request
94
+ # to still attest to it.
95
+ # - `fraud_database` - The phone number is flagged in one or more of the fraud
96
+ # databases Prelude consults.
97
+ # - `invalid_signature` - The SDK signature did not verify, so the request cannot
98
+ # be attributed to the device it claims to come from.
99
+ # - `ip_concentration` - The request shares its origin with an unusual volume of
100
+ # other verifications.
101
+ # - `ip_reputation` - The originating IP address is not trusted.
102
+ # - `location_mismatch` - The network location and the phone number's country are
103
+ # inconsistent.
104
+ # - `missing_signals` - The verification expected Prelude SDK signals and none
105
+ # arrived.
106
+ # - `number_range_abuse` - The phone number belongs to a range currently
107
+ # associated with abuse.
108
+ # - `poor_conversion_history` - Traffic resembling this request rarely completes a
109
+ # verification.
110
+ # - `proxy_network` - The request did not arrive over the subscriber's own access
111
+ # network.
112
+ # - `repeated_attempts` - The phone number exceeded the allowed number of
113
+ # verification attempts in a short period.
114
+ # - `temporary_phone_number` - The phone number belongs to a disposable or
115
+ # short-lived numbering service.
100
116
  #
101
117
  # @return [Array<Symbol, PreludeSDK::Models::VerificationCreateResponse::RiskFactor>, nil]
102
118
  optional :risk_factors,
@@ -215,9 +231,10 @@ module PreludeSDK
215
231
  # landline).
216
232
  # - `invalid_phone_number` - The phone number is not a valid phone number (e.g.
217
233
  # unallocated range).
218
- # - `invalid_signature` - The signature of the SDK signals is invalid.
219
- # - `repeated_attempts` - The phone number has made too many verification
220
- # attempts.
234
+ # - `invalid_signature` - The SDK signature did not verify, so the request cannot
235
+ # be attributed to the device it claims to come from.
236
+ # - `repeated_attempts` - The phone number exceeded the allowed number of
237
+ # verification attempts in a short period.
221
238
  # - `suspicious` - The verification attempt was deemed suspicious by the
222
239
  # anti-fraud system.
223
240
  #
@@ -240,15 +257,24 @@ module PreludeSDK
240
257
  module RiskFactor
241
258
  extend PreludeSDK::Internal::Type::Enum
242
259
 
243
- BEHAVIORAL_PATTERN = :behavioral_pattern
244
- DEVICE_ATTRIBUTE = :device_attribute
260
+ AUTOMATION_SIGNATURE = :automation_signature
261
+ CARRIER_NOT_PERMITTED = :carrier_not_permitted
262
+ CLIENT_FINGERPRINT_MISMATCH = :client_fingerprint_mismatch
263
+ CUSTOM_POLICY = :custom_policy
264
+ DEVICE_EMULATOR = :device_emulator
265
+ DEVICE_NOT_PERMITTED = :device_not_permitted
266
+ DEVICE_REUSE = :device_reuse
267
+ EXPIRED_SIGNALS = :expired_signals
245
268
  FRAUD_DATABASE = :fraud_database
246
- LOCATION_DISCREPANCY = :location_discrepancy
247
- NETWORK_FINGERPRINT = :network_fingerprint
269
+ INVALID_SIGNATURE = :invalid_signature
270
+ IP_CONCENTRATION = :ip_concentration
271
+ IP_REPUTATION = :ip_reputation
272
+ LOCATION_MISMATCH = :location_mismatch
273
+ MISSING_SIGNALS = :missing_signals
274
+ NUMBER_RANGE_ABUSE = :number_range_abuse
248
275
  POOR_CONVERSION_HISTORY = :poor_conversion_history
249
- PREFIX_CONCENTRATION = :prefix_concentration
250
- SUSPECTED_REQUEST_TAMPERING = :suspected_request_tampering
251
- SUSPICIOUS_IP_ADDRESS = :suspicious_ip_address
276
+ PROXY_NETWORK = :proxy_network
277
+ REPEATED_ATTEMPTS = :repeated_attempts
252
278
  TEMPORARY_PHONE_NUMBER = :temporary_phone_number
253
279
 
254
280
  # @!method self.values
@@ -88,7 +88,9 @@ module PreludeSDK
88
88
  # @!attribute rules
89
89
  # One result per rule in the recipe, in membership order. Every rule runs — a
90
90
  # score is only meaningful when complete, so there is no short-circuit on the
91
- # first trigger.
91
+ # first trigger. The exception is a recipe whose verdict a preempting rule has
92
+ # already determined, where a rule that could no longer change it may report
93
+ # `SKIPPED` instead.
92
94
  #
93
95
  # @return [Array<PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule>]
94
96
  required :rules,
@@ -149,6 +151,10 @@ module PreludeSDK
149
151
  # - `NOT_EVALUATED` - The rule could not run, because something it reads never
150
152
  # arrived. This is not a quieter `NOT_TRIGGERED`: it contributed nothing either
151
153
  # way, and it is why `partial_evidence` is set on the recipe.
154
+ # - `SKIPPED` - The rule was not run, because another rule had already determined
155
+ # the recipe's verdict — see `determined_by`. Nothing was missing and nothing
156
+ # failed, so `partial_evidence` is not set: `determined_by` is what accounts for
157
+ # the recipe's score resting on fewer rules.
152
158
  #
153
159
  # @return [Symbol, PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome]
154
160
  required :outcome, enum: -> { PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Outcome }
@@ -161,6 +167,17 @@ module PreludeSDK
161
167
  # @return [String]
162
168
  required :rule_id, String
163
169
 
170
+ # @!attribute type
171
+ # Who authored the rule, which is what says how much of the rest of this result
172
+ # you get.
173
+ #
174
+ # - `MANAGED` - Prelude-owned, shared with customers: `name` and `version_id` are
175
+ # omitted, and `blocked_by` reports only `missing_data`.
176
+ # - `CUSTOM` - Yours: every field is returned.
177
+ #
178
+ # @return [Symbol, PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Type]
179
+ required :type, enum: -> { PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Type }
180
+
164
181
  # @!attribute weight
165
182
  # What this rule contributes to the recipe's score when it triggers.
166
183
  #
@@ -193,7 +210,15 @@ module PreludeSDK
193
210
  # @return [Boolean, nil]
194
211
  optional :unavailable, PreludeSDK::Internal::Type::Boolean
195
212
 
196
- # @!method initialize(outcome:, rule_id:, weight:, blocked_by: nil, name: nil, unavailable: nil)
213
+ # @!attribute version_id
214
+ # The version of the rule that scored — the one this recipe is pinned to, or the
215
+ # version current at evaluation time when it is not pinned. Present for a rule you
216
+ # authored, and omitted for a Prelude-managed one.
217
+ #
218
+ # @return [String, nil]
219
+ optional :version_id, String
220
+
221
+ # @!method initialize(outcome:, rule_id:, type:, weight:, blocked_by: nil, name: nil, unavailable: nil, version_id: nil)
197
222
  # Some parameter documentations has been truncated, see
198
223
  # {PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule} for more details.
199
224
  #
@@ -201,6 +226,8 @@ module PreludeSDK
201
226
  #
202
227
  # @param rule_id [String] The rule that produced this result. Present whatever the rule's visibility, so a
203
228
  #
229
+ # @param type [Symbol, PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule::Type] Who authored the rule, which is what says how much of the rest of this result yo
230
+ #
204
231
  # @param weight [Integer] What this rule contributes to the recipe's score when it triggers.
205
232
  #
206
233
  # @param blocked_by [String] Why the rule could not run, set only when `outcome` is `NOT_EVALUATED`.
@@ -208,6 +235,8 @@ module PreludeSDK
208
235
  # @param name [String] The rule's name, present for a rule you authored and omitted for a Prelude-manag
209
236
  #
210
237
  # @param unavailable [Boolean] The rule could not run for a reason on our side rather than anything about your
238
+ #
239
+ # @param version_id [String] The version of the rule that scored — the one this recipe is pinned to, or the v
211
240
 
212
241
  # What the rule concluded.
213
242
  #
@@ -216,6 +245,10 @@ module PreludeSDK
216
245
  # - `NOT_EVALUATED` - The rule could not run, because something it reads never
217
246
  # arrived. This is not a quieter `NOT_TRIGGERED`: it contributed nothing either
218
247
  # way, and it is why `partial_evidence` is set on the recipe.
248
+ # - `SKIPPED` - The rule was not run, because another rule had already determined
249
+ # the recipe's verdict — see `determined_by`. Nothing was missing and nothing
250
+ # failed, so `partial_evidence` is not set: `determined_by` is what accounts for
251
+ # the recipe's score resting on fewer rules.
219
252
  #
220
253
  # @see PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule#outcome
221
254
  module Outcome
@@ -224,6 +257,25 @@ module PreludeSDK
224
257
  TRIGGERED = :TRIGGERED
225
258
  NOT_TRIGGERED = :NOT_TRIGGERED
226
259
  NOT_EVALUATED = :NOT_EVALUATED
260
+ SKIPPED = :SKIPPED
261
+
262
+ # @!method self.values
263
+ # @return [Array<Symbol>]
264
+ end
265
+
266
+ # Who authored the rule, which is what says how much of the rest of this result
267
+ # you get.
268
+ #
269
+ # - `MANAGED` - Prelude-owned, shared with customers: `name` and `version_id` are
270
+ # omitted, and `blocked_by` reports only `missing_data`.
271
+ # - `CUSTOM` - Yours: every field is returned.
272
+ #
273
+ # @see PreludeSDK::Models::WatchEvaluateResponse::Recipe::Rule#type
274
+ module Type
275
+ extend PreludeSDK::Internal::Type::Enum
276
+
277
+ MANAGED = :MANAGED
278
+ CUSTOM = :CUSTOM
227
279
 
228
280
  # @!method self.values
229
281
  # @return [Array<Symbol>]
@@ -28,29 +28,43 @@ module PreludeSDK
28
28
  # when prediction is "suspicious" and the anti-fraud system detected specific risk
29
29
  # signals.
30
30
  #
31
- # - `account_risk_profile` - The target matches a risk profile derived from the
32
- # outcomes reported on your own account, rather than from a signal shared across
33
- # accounts.
34
- # - `behavioral_pattern` - The phone number past behavior during verification
35
- # flows exhibits suspicious patterns.
36
- # - `device_attribute` - The device exhibits characteristics associated with
37
- # suspicious activity patterns.
38
- # - `fraud_database` - The phone number has been flagged as suspicious in one or
39
- # more of our fraud databases.
40
- # - `location_discrepancy` - The phone number prefix and IP address discrepancy
41
- # indicates potential fraud.
42
- # - `network_fingerprint` - The network connection exhibits characteristics
43
- # associated with suspicious activity patterns.
44
- # - `poor_conversion_history` - The phone number has a history of poorly
45
- # converting to a verified phone number.
46
- # - `prefix_concentration` - The phone number is part of a range known to be
47
- # associated with suspicious activity patterns.
48
- # - `suspected_request_tampering` - The SDK signature is invalid and the request
49
- # is considered to be tampered with.
50
- # - `suspicious_ip_address` - The IP address is deemed to be associated with
51
- # suspicious activity patterns.
52
- # - `temporary_phone_number` - The phone number is known to be a temporary or
53
- # disposable number.
31
+ # - `account_risk_profile` - The request matches a risk profile derived from the
32
+ # outcomes reported on your own account.
33
+ # - `automation_signature` - The request appears to come from an automated client
34
+ # rather than a person.
35
+ # - `carrier_not_permitted` - The destination carrier is one this account does not
36
+ # accept traffic for.
37
+ # - `client_fingerprint_mismatch` - The client does not appear to be the platform
38
+ # it identifies itself as.
39
+ # - `custom_policy` - A rule configured for your account matched this request.
40
+ # - `device_emulator` - The request appears to come from an emulator rather than a
41
+ # physical device.
42
+ # - `device_not_permitted` - The device platform is one your account blocks.
43
+ # - `device_reuse` - One device is driving verifications for an unusual number of
44
+ # phone numbers.
45
+ # - `expired_signals` - The SDK signals were collected too long before the request
46
+ # to still attest to it.
47
+ # - `fraud_database` - The phone number is flagged in one or more of the fraud
48
+ # databases Prelude consults.
49
+ # - `invalid_signature` - The SDK signature did not verify, so the request cannot
50
+ # be attributed to the device it claims to come from.
51
+ # - `ip_concentration` - The request shares its origin with an unusual volume of
52
+ # other verifications.
53
+ # - `ip_reputation` - The originating IP address is not trusted.
54
+ # - `location_mismatch` - The network location and the phone number's country are
55
+ # inconsistent.
56
+ # - `missing_signals` - The verification expected Prelude SDK signals and none
57
+ # arrived.
58
+ # - `number_range_abuse` - The phone number belongs to a range currently
59
+ # associated with abuse.
60
+ # - `poor_conversion_history` - Traffic resembling this request rarely completes a
61
+ # verification.
62
+ # - `proxy_network` - The request did not arrive over the subscriber's own access
63
+ # network.
64
+ # - `repeated_attempts` - The phone number exceeded the allowed number of
65
+ # verification attempts in a short period.
66
+ # - `temporary_phone_number` - The phone number belongs to a disposable or
67
+ # short-lived numbering service.
54
68
  #
55
69
  # @return [Array<Symbol, PreludeSDK::Models::WatchPredictResponse::RiskFactor>, nil]
56
70
  optional :risk_factors,
@@ -85,15 +99,24 @@ module PreludeSDK
85
99
  extend PreludeSDK::Internal::Type::Enum
86
100
 
87
101
  ACCOUNT_RISK_PROFILE = :account_risk_profile
88
- BEHAVIORAL_PATTERN = :behavioral_pattern
89
- DEVICE_ATTRIBUTE = :device_attribute
102
+ AUTOMATION_SIGNATURE = :automation_signature
103
+ CARRIER_NOT_PERMITTED = :carrier_not_permitted
104
+ CLIENT_FINGERPRINT_MISMATCH = :client_fingerprint_mismatch
105
+ CUSTOM_POLICY = :custom_policy
106
+ DEVICE_EMULATOR = :device_emulator
107
+ DEVICE_NOT_PERMITTED = :device_not_permitted
108
+ DEVICE_REUSE = :device_reuse
109
+ EXPIRED_SIGNALS = :expired_signals
90
110
  FRAUD_DATABASE = :fraud_database
91
- LOCATION_DISCREPANCY = :location_discrepancy
92
- NETWORK_FINGERPRINT = :network_fingerprint
111
+ INVALID_SIGNATURE = :invalid_signature
112
+ IP_CONCENTRATION = :ip_concentration
113
+ IP_REPUTATION = :ip_reputation
114
+ LOCATION_MISMATCH = :location_mismatch
115
+ MISSING_SIGNALS = :missing_signals
116
+ NUMBER_RANGE_ABUSE = :number_range_abuse
93
117
  POOR_CONVERSION_HISTORY = :poor_conversion_history
94
- PREFIX_CONCENTRATION = :prefix_concentration
95
- SUSPECTED_REQUEST_TAMPERING = :suspected_request_tampering
96
- SUSPICIOUS_IP_ADDRESS = :suspicious_ip_address
118
+ PROXY_NETWORK = :proxy_network
119
+ REPEATED_ATTEMPTS = :repeated_attempts
97
120
  TEMPORARY_PHONE_NUMBER = :temporary_phone_number
98
121
 
99
122
  # @!method self.values
@@ -7,9 +7,9 @@ module PreludeSDK
7
7
  # Some parameter documentations has been truncated, see
8
8
  # {PreludeSDK::Models::WatchEvaluateParams} for more details.
9
9
  #
10
- # **Beta.** The request and response shapes may still change, and flows and
11
- # recipes are configured by Prelude on your behalf for now. Talk to us before you
12
- # build against it.
10
+ # **Beta.** The request and response shapes may still change. Talk to us before
11
+ # you build against it. Flows, recipes and rules are authored through the Watch
12
+ # Management API, or configured by Prelude on your behalf.
13
13
  #
14
14
  # Score a target against the rules configured for one moment in your product —
15
15
  # signup, checkout, password reset. The flow selects which recipes run; each
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PreludeSDK
4
- VERSION = "0.8.0"
4
+ VERSION = "0.9.0"
5
5
  end
@@ -112,8 +112,8 @@ module PreludeSDK
112
112
  # - `invalid_line` - The phone number is not a valid line type.
113
113
  # - `invalid_number` - The phone number is not a valid number.
114
114
  # - `rate_limited` - The verification was refused by a rate limit.
115
- # - `expired_signals` - The SDK signals were collected too long before the
116
- # request.
115
+ # - `expired_signals` - The SDK signals were collected too long before the request
116
+ # to still attest to it.
117
117
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
118
118
  # it.
119
119
  sig do
@@ -264,8 +264,8 @@ module PreludeSDK
264
264
  # - `invalid_line` - The phone number is not a valid line type.
265
265
  # - `invalid_number` - The phone number is not a valid number.
266
266
  # - `rate_limited` - The verification was refused by a rate limit.
267
- # - `expired_signals` - The SDK signals were collected too long before the
268
- # request.
267
+ # - `expired_signals` - The SDK signals were collected too long before the request
268
+ # to still attest to it.
269
269
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
270
270
  # it.
271
271
  status:,
@@ -440,8 +440,8 @@ module PreludeSDK
440
440
  # - `invalid_line` - The phone number is not a valid line type.
441
441
  # - `invalid_number` - The phone number is not a valid number.
442
442
  # - `rate_limited` - The verification was refused by a rate limit.
443
- # - `expired_signals` - The SDK signals were collected too long before the
444
- # request.
443
+ # - `expired_signals` - The SDK signals were collected too long before the request
444
+ # to still attest to it.
445
445
  # - `shadowed` - The anti-fraud system flagged the verification without blocking
446
446
  # it.
447
447
  module Status