prelude-sdk 0.7.0 → 0.8.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 +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +3 -5
- data/lib/prelude_sdk/client.rb +4 -0
- data/lib/prelude_sdk/internal/type/base_model.rb +5 -5
- data/lib/prelude_sdk/models/intel/kyc_match_params.rb +96 -0
- data/lib/prelude_sdk/models/intel/kyc_match_response.rb +305 -0
- data/lib/prelude_sdk/models/notify_reply_params.rb +60 -0
- data/lib/prelude_sdk/models/notify_reply_response.rb +65 -0
- data/lib/prelude_sdk/models/signals.rb +125 -0
- data/lib/prelude_sdk/models/target.rb +39 -0
- data/lib/prelude_sdk/models/verification/phone/history_list_params.rb +177 -0
- data/lib/prelude_sdk/models/verification/phone/history_list_response.rb +286 -0
- data/lib/prelude_sdk/models/verification/phone/history_retrieve_params.rb +24 -0
- data/lib/prelude_sdk/models/verification/phone/history_retrieve_response.rb +890 -0
- data/lib/prelude_sdk/models/verification/phone/phone_verification_carrier.rb +29 -0
- data/lib/prelude_sdk/models/verification/phone/phone_verification_money.rb +35 -0
- data/lib/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rb +29 -0
- data/lib/prelude_sdk/models/verification_check_params.rb +3 -38
- data/lib/prelude_sdk/models/verification_create_params.rb +6 -161
- data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rb +37 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rb +27 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rb +22 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rb +19 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rb +16 -0
- data/lib/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rb +47 -0
- data/lib/prelude_sdk/models/watch_evaluate_params.rb +68 -0
- data/lib/prelude_sdk/models/watch_evaluate_response.rb +266 -0
- data/lib/prelude_sdk/models/watch_predict_params.rb +6 -160
- data/lib/prelude_sdk/models/watch_send_events_params.rb +3 -38
- data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +3 -38
- data/lib/prelude_sdk/models.rb +14 -0
- data/lib/prelude_sdk/resources/intel/kyc.rb +62 -0
- data/lib/prelude_sdk/resources/intel.rb +20 -0
- data/lib/prelude_sdk/resources/notify.rb +35 -0
- data/lib/prelude_sdk/resources/verification/phone/history.rb +104 -0
- data/lib/prelude_sdk/resources/verification/phone.rb +21 -0
- data/lib/prelude_sdk/resources/verification.rb +7 -3
- data/lib/prelude_sdk/resources/verification_management/sandbox.rb +99 -0
- data/lib/prelude_sdk/resources/verification_management.rb +5 -0
- data/lib/prelude_sdk/resources/watch.rb +45 -2
- data/lib/prelude_sdk/version.rb +1 -1
- data/lib/prelude_sdk.rb +26 -0
- data/rbi/prelude_sdk/client.rbi +3 -0
- data/rbi/prelude_sdk/models/intel/kyc_match_params.rbi +147 -0
- data/rbi/prelude_sdk/models/intel/kyc_match_response.rbi +736 -0
- data/rbi/prelude_sdk/models/notify_reply_params.rbi +87 -0
- data/rbi/prelude_sdk/models/notify_reply_response.rbi +94 -0
- data/rbi/prelude_sdk/models/signals.rbi +200 -0
- data/rbi/prelude_sdk/models/target.rbi +61 -0
- data/rbi/prelude_sdk/models/verification/phone/history_list_params.rbi +436 -0
- data/rbi/prelude_sdk/models/verification/phone/history_list_response.rbi +661 -0
- data/rbi/prelude_sdk/models/verification/phone/history_retrieve_params.rbi +42 -0
- data/rbi/prelude_sdk/models/verification/phone/history_retrieve_response.rbi +2229 -0
- data/rbi/prelude_sdk/models/verification/phone/phone_verification_carrier.rbi +39 -0
- data/rbi/prelude_sdk/models/verification/phone/phone_verification_money.rbi +46 -0
- data/rbi/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbi +68 -0
- data/rbi/prelude_sdk/models/verification_check_params.rbi +4 -85
- data/rbi/prelude_sdk/models/verification_create_params.rbi +8 -328
- data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbi +58 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbi +42 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbi +43 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbi +32 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbi +34 -0
- data/rbi/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbi +101 -0
- data/rbi/prelude_sdk/models/watch_evaluate_params.rbi +109 -0
- data/rbi/prelude_sdk/models/watch_evaluate_response.rbi +496 -0
- data/rbi/prelude_sdk/models/watch_predict_params.rbi +8 -320
- data/rbi/prelude_sdk/models/watch_send_events_params.rbi +4 -93
- data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +4 -95
- data/rbi/prelude_sdk/models.rbi +14 -0
- data/rbi/prelude_sdk/resources/intel/kyc.rbi +61 -0
- data/rbi/prelude_sdk/resources/intel.rbi +17 -0
- data/rbi/prelude_sdk/resources/notify.rbi +31 -0
- data/rbi/prelude_sdk/resources/verification/phone/history.rbi +112 -0
- data/rbi/prelude_sdk/resources/verification/phone.rbi +18 -0
- data/rbi/prelude_sdk/resources/verification.rbi +6 -3
- data/rbi/prelude_sdk/resources/verification_management/sandbox.rbi +76 -0
- data/rbi/prelude_sdk/resources/verification_management.rbi +4 -0
- data/rbi/prelude_sdk/resources/watch.rbi +49 -2
- data/sig/prelude_sdk/client.rbs +2 -0
- data/sig/prelude_sdk/models/intel/kyc_match_params.rbs +91 -0
- data/sig/prelude_sdk/models/intel/kyc_match_response.rbs +276 -0
- data/sig/prelude_sdk/models/notify_reply_params.rbs +50 -0
- data/sig/prelude_sdk/models/notify_reply_response.rbs +54 -0
- data/sig/prelude_sdk/models/signals.rbs +101 -0
- data/sig/prelude_sdk/models/target.rbs +29 -0
- data/sig/prelude_sdk/models/verification/phone/history_list_params.rbs +187 -0
- data/sig/prelude_sdk/models/verification/phone/history_list_response.rbs +241 -0
- data/sig/prelude_sdk/models/verification/phone/history_retrieve_params.rbs +27 -0
- data/sig/prelude_sdk/models/verification/phone/history_retrieve_response.rbs +873 -0
- data/sig/prelude_sdk/models/verification/phone/phone_verification_carrier.rbs +23 -0
- data/sig/prelude_sdk/models/verification/phone/phone_verification_money.rbs +21 -0
- data/sig/prelude_sdk/models/verification/phone/phone_verification_psd2_transaction.rbs +37 -0
- data/sig/prelude_sdk/models/verification_check_params.rbs +4 -37
- data/sig/prelude_sdk/models/verification_create_params.rbs +9 -142
- data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_params.rbs +30 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_add_phone_number_response.rbs +18 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_params.rbs +26 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_delete_phone_number_response.rbs +15 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_params.rbs +17 -0
- data/sig/prelude_sdk/models/verification_management/sandbox_list_phone_numbers_response.rbs +45 -0
- data/sig/prelude_sdk/models/watch_evaluate_params.rbs +52 -0
- data/sig/prelude_sdk/models/watch_evaluate_response.rbs +178 -0
- data/sig/prelude_sdk/models/watch_predict_params.rbs +9 -142
- data/sig/prelude_sdk/models/watch_send_events_params.rbs +4 -37
- data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +4 -37
- data/sig/prelude_sdk/models.rbs +14 -0
- data/sig/prelude_sdk/resources/intel/kyc.rbs +23 -0
- data/sig/prelude_sdk/resources/intel.rbs +9 -0
- data/sig/prelude_sdk/resources/notify.rbs +9 -0
- data/sig/prelude_sdk/resources/verification/phone/history.rbs +32 -0
- data/sig/prelude_sdk/resources/verification/phone.rbs +11 -0
- data/sig/prelude_sdk/resources/verification.rbs +5 -3
- data/sig/prelude_sdk/resources/verification_management/sandbox.rbs +24 -0
- data/sig/prelude_sdk/resources/verification_management.rbs +2 -0
- data/sig/prelude_sdk/resources/watch.rbs +11 -2
- metadata +79 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module PreludeSDK
|
|
4
|
+
module Models
|
|
5
|
+
class NotifyReplyParams < 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::NotifyReplyParams, PreludeSDK::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The inbound message ID (prefixed with `im_`) to reply to. This ID is provided in
|
|
15
|
+
# the `inbound.message.received` webhook event.
|
|
16
|
+
sig { returns(String) }
|
|
17
|
+
attr_accessor :reply_to
|
|
18
|
+
|
|
19
|
+
# The reply message body sent as a free-form WhatsApp text.
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :text
|
|
22
|
+
|
|
23
|
+
# The recipient's phone number in E.164 format. Must match the phone number that
|
|
24
|
+
# sent the original inbound message.
|
|
25
|
+
sig { returns(String) }
|
|
26
|
+
attr_accessor :to
|
|
27
|
+
|
|
28
|
+
# The URL where webhooks will be sent for delivery events of this reply.
|
|
29
|
+
sig { returns(T.nilable(String)) }
|
|
30
|
+
attr_reader :callback_url
|
|
31
|
+
|
|
32
|
+
sig { params(callback_url: String).void }
|
|
33
|
+
attr_writer :callback_url
|
|
34
|
+
|
|
35
|
+
# A user-defined identifier to correlate this reply with your internal systems. It
|
|
36
|
+
# is returned in the response and any webhook events that refer to this message.
|
|
37
|
+
sig { returns(T.nilable(String)) }
|
|
38
|
+
attr_reader :correlation_id
|
|
39
|
+
|
|
40
|
+
sig { params(correlation_id: String).void }
|
|
41
|
+
attr_writer :correlation_id
|
|
42
|
+
|
|
43
|
+
sig do
|
|
44
|
+
params(
|
|
45
|
+
reply_to: String,
|
|
46
|
+
text: String,
|
|
47
|
+
to: String,
|
|
48
|
+
callback_url: String,
|
|
49
|
+
correlation_id: String,
|
|
50
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
|
51
|
+
).returns(T.attached_class)
|
|
52
|
+
end
|
|
53
|
+
def self.new(
|
|
54
|
+
# The inbound message ID (prefixed with `im_`) to reply to. This ID is provided in
|
|
55
|
+
# the `inbound.message.received` webhook event.
|
|
56
|
+
reply_to:,
|
|
57
|
+
# The reply message body sent as a free-form WhatsApp text.
|
|
58
|
+
text:,
|
|
59
|
+
# The recipient's phone number in E.164 format. Must match the phone number that
|
|
60
|
+
# sent the original inbound message.
|
|
61
|
+
to:,
|
|
62
|
+
# The URL where webhooks will be sent for delivery events of this reply.
|
|
63
|
+
callback_url: nil,
|
|
64
|
+
# A user-defined identifier to correlate this reply with your internal systems. It
|
|
65
|
+
# is returned in the response and any webhook events that refer to this message.
|
|
66
|
+
correlation_id: nil,
|
|
67
|
+
request_options: {}
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
sig do
|
|
72
|
+
override.returns(
|
|
73
|
+
{
|
|
74
|
+
reply_to: String,
|
|
75
|
+
text: String,
|
|
76
|
+
to: String,
|
|
77
|
+
callback_url: String,
|
|
78
|
+
correlation_id: String,
|
|
79
|
+
request_options: PreludeSDK::RequestOptions
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
def to_hash
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module PreludeSDK
|
|
4
|
+
module Models
|
|
5
|
+
class NotifyReplyResponse < PreludeSDK::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
PreludeSDK::Models::NotifyReplyResponse,
|
|
10
|
+
PreludeSDK::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# The reply message identifier.
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
18
|
+
# The reply creation date in RFC3339 format.
|
|
19
|
+
sig { returns(Time) }
|
|
20
|
+
attr_accessor :created_at
|
|
21
|
+
|
|
22
|
+
# The inbound message ID this reply was sent in response to.
|
|
23
|
+
sig { returns(String) }
|
|
24
|
+
attr_accessor :reply_to
|
|
25
|
+
|
|
26
|
+
# The reply message body that was sent.
|
|
27
|
+
sig { returns(String) }
|
|
28
|
+
attr_accessor :text
|
|
29
|
+
|
|
30
|
+
# The recipient's phone number in E.164 format.
|
|
31
|
+
sig { returns(String) }
|
|
32
|
+
attr_accessor :to
|
|
33
|
+
|
|
34
|
+
# The callback URL where webhooks will be sent.
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_reader :callback_url
|
|
37
|
+
|
|
38
|
+
sig { params(callback_url: String).void }
|
|
39
|
+
attr_writer :callback_url
|
|
40
|
+
|
|
41
|
+
# The user-defined correlation identifier echoed back from the request.
|
|
42
|
+
sig { returns(T.nilable(String)) }
|
|
43
|
+
attr_reader :correlation_id
|
|
44
|
+
|
|
45
|
+
sig { params(correlation_id: String).void }
|
|
46
|
+
attr_writer :correlation_id
|
|
47
|
+
|
|
48
|
+
sig do
|
|
49
|
+
params(
|
|
50
|
+
id: String,
|
|
51
|
+
created_at: Time,
|
|
52
|
+
reply_to: String,
|
|
53
|
+
text: String,
|
|
54
|
+
to: String,
|
|
55
|
+
callback_url: String,
|
|
56
|
+
correlation_id: String
|
|
57
|
+
).returns(T.attached_class)
|
|
58
|
+
end
|
|
59
|
+
def self.new(
|
|
60
|
+
# The reply message identifier.
|
|
61
|
+
id:,
|
|
62
|
+
# The reply creation date in RFC3339 format.
|
|
63
|
+
created_at:,
|
|
64
|
+
# The inbound message ID this reply was sent in response to.
|
|
65
|
+
reply_to:,
|
|
66
|
+
# The reply message body that was sent.
|
|
67
|
+
text:,
|
|
68
|
+
# The recipient's phone number in E.164 format.
|
|
69
|
+
to:,
|
|
70
|
+
# The callback URL where webhooks will be sent.
|
|
71
|
+
callback_url: nil,
|
|
72
|
+
# The user-defined correlation identifier echoed back from the request.
|
|
73
|
+
correlation_id: nil
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
sig do
|
|
78
|
+
override.returns(
|
|
79
|
+
{
|
|
80
|
+
id: String,
|
|
81
|
+
created_at: Time,
|
|
82
|
+
reply_to: String,
|
|
83
|
+
text: String,
|
|
84
|
+
to: String,
|
|
85
|
+
callback_url: String,
|
|
86
|
+
correlation_id: String
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
def to_hash
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module PreludeSDK
|
|
4
|
+
module Models
|
|
5
|
+
class Signals < PreludeSDK::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(PreludeSDK::Signals, PreludeSDK::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The version of your application.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :app_version
|
|
14
|
+
|
|
15
|
+
sig { params(app_version: String).void }
|
|
16
|
+
attr_writer :app_version
|
|
17
|
+
|
|
18
|
+
# A unique ID for the user's device. You should ensure that each user device has a
|
|
19
|
+
# unique `device_id` value. Ideally, for Android, this corresponds to the
|
|
20
|
+
# `ANDROID_ID` and for iOS, this corresponds to the `identifierForVendor`.
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_reader :device_id
|
|
23
|
+
|
|
24
|
+
sig { params(device_id: String).void }
|
|
25
|
+
attr_writer :device_id
|
|
26
|
+
|
|
27
|
+
# The model of the user's device.
|
|
28
|
+
sig { returns(T.nilable(String)) }
|
|
29
|
+
attr_reader :device_model
|
|
30
|
+
|
|
31
|
+
sig { params(device_model: String).void }
|
|
32
|
+
attr_writer :device_model
|
|
33
|
+
|
|
34
|
+
# The type of the user's device.
|
|
35
|
+
sig { returns(T.nilable(PreludeSDK::Signals::DevicePlatform::OrSymbol)) }
|
|
36
|
+
attr_reader :device_platform
|
|
37
|
+
|
|
38
|
+
sig do
|
|
39
|
+
params(
|
|
40
|
+
device_platform: PreludeSDK::Signals::DevicePlatform::OrSymbol
|
|
41
|
+
).void
|
|
42
|
+
end
|
|
43
|
+
attr_writer :device_platform
|
|
44
|
+
|
|
45
|
+
# Whether the end-user already exists in your system, for example an existing
|
|
46
|
+
# account signing in again rather than a first-time signup. Unlike
|
|
47
|
+
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
|
|
48
|
+
# account as one additional anti-fraud signal. For more details, refer to
|
|
49
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
|
50
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
51
|
+
attr_reader :existing_user
|
|
52
|
+
|
|
53
|
+
sig { params(existing_user: T::Boolean).void }
|
|
54
|
+
attr_writer :existing_user
|
|
55
|
+
|
|
56
|
+
# The public IP v4 or v6 address of the end-user's device. You should collect this
|
|
57
|
+
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
|
|
58
|
+
# `Forwarded`, `True-Client-IP`, `CF-Connecting-IP` or an equivalent header to get
|
|
59
|
+
# the actual public IP of the end-user's device.
|
|
60
|
+
sig { returns(T.nilable(String)) }
|
|
61
|
+
attr_reader :ip
|
|
62
|
+
|
|
63
|
+
sig { params(ip: String).void }
|
|
64
|
+
attr_writer :ip
|
|
65
|
+
|
|
66
|
+
# This signal should indicate a higher level of trust, explicitly stating that the
|
|
67
|
+
# user is genuine. Contact us to discuss your use case. For more details, refer to
|
|
68
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
|
69
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
70
|
+
attr_reader :is_trusted_user
|
|
71
|
+
|
|
72
|
+
sig { params(is_trusted_user: T::Boolean).void }
|
|
73
|
+
attr_writer :is_trusted_user
|
|
74
|
+
|
|
75
|
+
# The JA4 fingerprint observed for the end-user's connection. Prelude will infer
|
|
76
|
+
# it automatically when you use our Frontend SDKs (which use Prelude's edge
|
|
77
|
+
# network), but you can also forward the value if you terminate TLS yourself.
|
|
78
|
+
sig { returns(T.nilable(String)) }
|
|
79
|
+
attr_reader :ja4_fingerprint
|
|
80
|
+
|
|
81
|
+
sig { params(ja4_fingerprint: String).void }
|
|
82
|
+
attr_writer :ja4_fingerprint
|
|
83
|
+
|
|
84
|
+
# The version of the user's device operating system.
|
|
85
|
+
sig { returns(T.nilable(String)) }
|
|
86
|
+
attr_reader :os_version
|
|
87
|
+
|
|
88
|
+
sig { params(os_version: String).void }
|
|
89
|
+
attr_writer :os_version
|
|
90
|
+
|
|
91
|
+
# The user agent of the user's device. If the individual fields (os_version,
|
|
92
|
+
# device_platform, device_model) are provided, we will prioritize those values
|
|
93
|
+
# instead of parsing them from the user agent string.
|
|
94
|
+
sig { returns(T.nilable(String)) }
|
|
95
|
+
attr_reader :user_agent
|
|
96
|
+
|
|
97
|
+
sig { params(user_agent: String).void }
|
|
98
|
+
attr_writer :user_agent
|
|
99
|
+
|
|
100
|
+
# The signals used for anti-fraud. For more details, refer to
|
|
101
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
|
102
|
+
sig do
|
|
103
|
+
params(
|
|
104
|
+
app_version: String,
|
|
105
|
+
device_id: String,
|
|
106
|
+
device_model: String,
|
|
107
|
+
device_platform: PreludeSDK::Signals::DevicePlatform::OrSymbol,
|
|
108
|
+
existing_user: T::Boolean,
|
|
109
|
+
ip: String,
|
|
110
|
+
is_trusted_user: T::Boolean,
|
|
111
|
+
ja4_fingerprint: String,
|
|
112
|
+
os_version: String,
|
|
113
|
+
user_agent: String
|
|
114
|
+
).returns(T.attached_class)
|
|
115
|
+
end
|
|
116
|
+
def self.new(
|
|
117
|
+
# The version of your application.
|
|
118
|
+
app_version: nil,
|
|
119
|
+
# A unique ID for the user's device. You should ensure that each user device has a
|
|
120
|
+
# unique `device_id` value. Ideally, for Android, this corresponds to the
|
|
121
|
+
# `ANDROID_ID` and for iOS, this corresponds to the `identifierForVendor`.
|
|
122
|
+
device_id: nil,
|
|
123
|
+
# The model of the user's device.
|
|
124
|
+
device_model: nil,
|
|
125
|
+
# The type of the user's device.
|
|
126
|
+
device_platform: nil,
|
|
127
|
+
# Whether the end-user already exists in your system, for example an existing
|
|
128
|
+
# account signing in again rather than a first-time signup. Unlike
|
|
129
|
+
# `is_trusted_user`, this signal does not bypass fraud checks; it is taken into
|
|
130
|
+
# account as one additional anti-fraud signal. For more details, refer to
|
|
131
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
|
132
|
+
existing_user: nil,
|
|
133
|
+
# The public IP v4 or v6 address of the end-user's device. You should collect this
|
|
134
|
+
# from your backend. If your backend is behind a proxy, use the `X-Forwarded-For`,
|
|
135
|
+
# `Forwarded`, `True-Client-IP`, `CF-Connecting-IP` or an equivalent header to get
|
|
136
|
+
# the actual public IP of the end-user's device.
|
|
137
|
+
ip: nil,
|
|
138
|
+
# This signal should indicate a higher level of trust, explicitly stating that the
|
|
139
|
+
# user is genuine. Contact us to discuss your use case. For more details, refer to
|
|
140
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
|
141
|
+
is_trusted_user: nil,
|
|
142
|
+
# The JA4 fingerprint observed for the end-user's connection. Prelude will infer
|
|
143
|
+
# it automatically when you use our Frontend SDKs (which use Prelude's edge
|
|
144
|
+
# network), but you can also forward the value if you terminate TLS yourself.
|
|
145
|
+
ja4_fingerprint: nil,
|
|
146
|
+
# The version of the user's device operating system.
|
|
147
|
+
os_version: nil,
|
|
148
|
+
# The user agent of the user's device. If the individual fields (os_version,
|
|
149
|
+
# device_platform, device_model) are provided, we will prioritize those values
|
|
150
|
+
# instead of parsing them from the user agent string.
|
|
151
|
+
user_agent: nil
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
sig do
|
|
156
|
+
override.returns(
|
|
157
|
+
{
|
|
158
|
+
app_version: String,
|
|
159
|
+
device_id: String,
|
|
160
|
+
device_model: String,
|
|
161
|
+
device_platform: PreludeSDK::Signals::DevicePlatform::OrSymbol,
|
|
162
|
+
existing_user: T::Boolean,
|
|
163
|
+
ip: String,
|
|
164
|
+
is_trusted_user: T::Boolean,
|
|
165
|
+
ja4_fingerprint: String,
|
|
166
|
+
os_version: String,
|
|
167
|
+
user_agent: String
|
|
168
|
+
}
|
|
169
|
+
)
|
|
170
|
+
end
|
|
171
|
+
def to_hash
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# The type of the user's device.
|
|
175
|
+
module DevicePlatform
|
|
176
|
+
extend PreludeSDK::Internal::Type::Enum
|
|
177
|
+
|
|
178
|
+
TaggedSymbol =
|
|
179
|
+
T.type_alias { T.all(Symbol, PreludeSDK::Signals::DevicePlatform) }
|
|
180
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
181
|
+
|
|
182
|
+
ANDROID =
|
|
183
|
+
T.let(:android, PreludeSDK::Signals::DevicePlatform::TaggedSymbol)
|
|
184
|
+
IOS = T.let(:ios, PreludeSDK::Signals::DevicePlatform::TaggedSymbol)
|
|
185
|
+
IPADOS =
|
|
186
|
+
T.let(:ipados, PreludeSDK::Signals::DevicePlatform::TaggedSymbol)
|
|
187
|
+
TVOS = T.let(:tvos, PreludeSDK::Signals::DevicePlatform::TaggedSymbol)
|
|
188
|
+
WEB = T.let(:web, PreludeSDK::Signals::DevicePlatform::TaggedSymbol)
|
|
189
|
+
|
|
190
|
+
sig do
|
|
191
|
+
override.returns(
|
|
192
|
+
T::Array[PreludeSDK::Signals::DevicePlatform::TaggedSymbol]
|
|
193
|
+
)
|
|
194
|
+
end
|
|
195
|
+
def self.values
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module PreludeSDK
|
|
4
|
+
module Models
|
|
5
|
+
class Target < PreludeSDK::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(PreludeSDK::Target, PreludeSDK::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The type of the target. Either "phone_number" or "email_address".
|
|
12
|
+
sig { returns(PreludeSDK::Target::Type::OrSymbol) }
|
|
13
|
+
attr_accessor :type
|
|
14
|
+
|
|
15
|
+
# An E.164 formatted phone number or an email address.
|
|
16
|
+
sig { returns(String) }
|
|
17
|
+
attr_accessor :value
|
|
18
|
+
|
|
19
|
+
# The operation target. Either a phone number or an email address.
|
|
20
|
+
sig do
|
|
21
|
+
params(type: PreludeSDK::Target::Type::OrSymbol, value: String).returns(
|
|
22
|
+
T.attached_class
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
def self.new(
|
|
26
|
+
# The type of the target. Either "phone_number" or "email_address".
|
|
27
|
+
type:,
|
|
28
|
+
# An E.164 formatted phone number or an email address.
|
|
29
|
+
value:
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
sig do
|
|
34
|
+
override.returns(
|
|
35
|
+
{ type: PreludeSDK::Target::Type::OrSymbol, value: String }
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
def to_hash
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# The type of the target. Either "phone_number" or "email_address".
|
|
42
|
+
module Type
|
|
43
|
+
extend PreludeSDK::Internal::Type::Enum
|
|
44
|
+
|
|
45
|
+
TaggedSymbol = T.type_alias { T.all(Symbol, PreludeSDK::Target::Type) }
|
|
46
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
47
|
+
|
|
48
|
+
PHONE_NUMBER =
|
|
49
|
+
T.let(:phone_number, PreludeSDK::Target::Type::TaggedSymbol)
|
|
50
|
+
EMAIL_ADDRESS =
|
|
51
|
+
T.let(:email_address, PreludeSDK::Target::Type::TaggedSymbol)
|
|
52
|
+
|
|
53
|
+
sig do
|
|
54
|
+
override.returns(T::Array[PreludeSDK::Target::Type::TaggedSymbol])
|
|
55
|
+
end
|
|
56
|
+
def self.values
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|