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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +352 -0
- data/README.md +217 -0
- data/SECURITY.md +27 -0
- data/lib/prelude_sdk/client.rb +87 -0
- data/lib/prelude_sdk/errors.rb +214 -0
- data/lib/prelude_sdk/file_part.rb +55 -0
- data/lib/prelude_sdk/internal/transport/base_client.rb +555 -0
- data/lib/prelude_sdk/internal/transport/pooled_net_requester.rb +209 -0
- data/lib/prelude_sdk/internal/type/array_of.rb +167 -0
- data/lib/prelude_sdk/internal/type/base_model.rb +536 -0
- data/lib/prelude_sdk/internal/type/base_page.rb +55 -0
- data/lib/prelude_sdk/internal/type/boolean.rb +77 -0
- data/lib/prelude_sdk/internal/type/converter.rb +300 -0
- data/lib/prelude_sdk/internal/type/enum.rb +131 -0
- data/lib/prelude_sdk/internal/type/file_input.rb +108 -0
- data/lib/prelude_sdk/internal/type/hash_of.rb +187 -0
- data/lib/prelude_sdk/internal/type/request_parameters.rb +42 -0
- data/lib/prelude_sdk/internal/type/union.rb +235 -0
- data/lib/prelude_sdk/internal/type/unknown.rb +81 -0
- data/lib/prelude_sdk/internal/util.rb +914 -0
- data/lib/prelude_sdk/internal.rb +20 -0
- data/lib/prelude_sdk/models/lookup_lookup_params.rb +37 -0
- data/lib/prelude_sdk/models/lookup_lookup_response.rb +236 -0
- data/lib/prelude_sdk/models/transactional_send_params.rb +84 -0
- data/lib/prelude_sdk/models/transactional_send_response.rb +81 -0
- data/lib/prelude_sdk/models/verification_check_params.rb +69 -0
- data/lib/prelude_sdk/models/verification_check_response.rb +67 -0
- data/lib/prelude_sdk/models/verification_create_params.rb +388 -0
- data/lib/prelude_sdk/models/verification_create_response.rb +148 -0
- data/lib/prelude_sdk/models/watch_predict_params.rb +191 -0
- data/lib/prelude_sdk/models/watch_predict_response.rb +50 -0
- data/lib/prelude_sdk/models/watch_send_events_params.rb +100 -0
- data/lib/prelude_sdk/models/watch_send_events_response.rb +41 -0
- data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +229 -0
- data/lib/prelude_sdk/models/watch_send_feedbacks_response.rb +41 -0
- data/lib/prelude_sdk/models.rb +55 -0
- data/lib/prelude_sdk/request_options.rb +77 -0
- data/lib/prelude_sdk/resources/lookup.rb +42 -0
- data/lib/prelude_sdk/resources/transactional.rb +53 -0
- data/lib/prelude_sdk/resources/verification.rb +76 -0
- data/lib/prelude_sdk/resources/watch.rb +91 -0
- data/lib/prelude_sdk/version.rb +5 -0
- data/lib/prelude_sdk.rb +71 -0
- data/manifest.yaml +15 -0
- data/rbi/prelude_sdk/client.rbi +59 -0
- data/rbi/prelude_sdk/errors.rbi +178 -0
- data/rbi/prelude_sdk/file_part.rbi +37 -0
- data/rbi/prelude_sdk/internal/transport/base_client.rbi +296 -0
- data/rbi/prelude_sdk/internal/transport/pooled_net_requester.rbi +80 -0
- data/rbi/prelude_sdk/internal/type/array_of.rbi +104 -0
- data/rbi/prelude_sdk/internal/type/base_model.rbi +304 -0
- data/rbi/prelude_sdk/internal/type/base_page.rbi +42 -0
- data/rbi/prelude_sdk/internal/type/boolean.rbi +58 -0
- data/rbi/prelude_sdk/internal/type/converter.rbi +162 -0
- data/rbi/prelude_sdk/internal/type/enum.rbi +82 -0
- data/rbi/prelude_sdk/internal/type/file_input.rbi +59 -0
- data/rbi/prelude_sdk/internal/type/hash_of.rbi +104 -0
- data/rbi/prelude_sdk/internal/type/request_parameters.rbi +29 -0
- data/rbi/prelude_sdk/internal/type/union.rbi +121 -0
- data/rbi/prelude_sdk/internal/type/unknown.rbi +58 -0
- data/rbi/prelude_sdk/internal/util.rbi +487 -0
- data/rbi/prelude_sdk/internal.rbi +18 -0
- data/rbi/prelude_sdk/models/lookup_lookup_params.rbi +78 -0
- data/rbi/prelude_sdk/models/lookup_lookup_response.rbi +520 -0
- data/rbi/prelude_sdk/models/transactional_send_params.rbi +126 -0
- data/rbi/prelude_sdk/models/transactional_send_response.rbi +113 -0
- data/rbi/prelude_sdk/models/verification_check_params.rbi +140 -0
- data/rbi/prelude_sdk/models/verification_check_response.rbi +149 -0
- data/rbi/prelude_sdk/models/verification_create_params.rbi +805 -0
- data/rbi/prelude_sdk/models/verification_create_response.rbi +336 -0
- data/rbi/prelude_sdk/models/watch_predict_params.rbi +382 -0
- data/rbi/prelude_sdk/models/watch_predict_response.rbi +96 -0
- data/rbi/prelude_sdk/models/watch_send_events_params.rbi +245 -0
- data/rbi/prelude_sdk/models/watch_send_events_response.rbi +82 -0
- data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +500 -0
- data/rbi/prelude_sdk/models/watch_send_feedbacks_response.rbi +86 -0
- data/rbi/prelude_sdk/models.rbi +17 -0
- data/rbi/prelude_sdk/request_options.rbi +59 -0
- data/rbi/prelude_sdk/resources/lookup.rbi +33 -0
- data/rbi/prelude_sdk/resources/transactional.rbi +50 -0
- data/rbi/prelude_sdk/resources/verification.rbi +61 -0
- data/rbi/prelude_sdk/resources/watch.rbi +67 -0
- data/rbi/prelude_sdk/version.rbi +5 -0
- data/sig/prelude_sdk/client.rbs +32 -0
- data/sig/prelude_sdk/errors.rbs +110 -0
- data/sig/prelude_sdk/file_part.rbs +21 -0
- data/sig/prelude_sdk/internal/transport/base_client.rbs +131 -0
- data/sig/prelude_sdk/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/prelude_sdk/internal/type/array_of.rbs +48 -0
- data/sig/prelude_sdk/internal/type/base_model.rbs +102 -0
- data/sig/prelude_sdk/internal/type/base_page.rbs +24 -0
- data/sig/prelude_sdk/internal/type/boolean.rbs +26 -0
- data/sig/prelude_sdk/internal/type/converter.rbs +62 -0
- data/sig/prelude_sdk/internal/type/enum.rbs +32 -0
- data/sig/prelude_sdk/internal/type/file_input.rbs +25 -0
- data/sig/prelude_sdk/internal/type/hash_of.rbs +48 -0
- data/sig/prelude_sdk/internal/type/request_parameters.rbs +19 -0
- data/sig/prelude_sdk/internal/type/union.rbs +52 -0
- data/sig/prelude_sdk/internal/type/unknown.rbs +26 -0
- data/sig/prelude_sdk/internal/util.rbs +185 -0
- data/sig/prelude_sdk/internal.rbs +9 -0
- data/sig/prelude_sdk/models/lookup_lookup_params.rbs +38 -0
- data/sig/prelude_sdk/models/lookup_lookup_response.rbs +179 -0
- data/sig/prelude_sdk/models/transactional_send_params.rbs +73 -0
- data/sig/prelude_sdk/models/transactional_send_response.rbs +66 -0
- data/sig/prelude_sdk/models/verification_check_params.rbs +61 -0
- data/sig/prelude_sdk/models/verification_check_response.rbs +67 -0
- data/sig/prelude_sdk/models/verification_create_params.rbs +345 -0
- data/sig/prelude_sdk/models/verification_create_response.rbs +136 -0
- data/sig/prelude_sdk/models/watch_predict_params.rbs +180 -0
- data/sig/prelude_sdk/models/watch_predict_response.rbs +41 -0
- data/sig/prelude_sdk/models/watch_send_events_params.rbs +98 -0
- data/sig/prelude_sdk/models/watch_send_events_response.rbs +35 -0
- data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +211 -0
- data/sig/prelude_sdk/models/watch_send_feedbacks_response.rbs +35 -0
- data/sig/prelude_sdk/models.rbs +15 -0
- data/sig/prelude_sdk/request_options.rbs +36 -0
- data/sig/prelude_sdk/resources/lookup.rbs +13 -0
- data/sig/prelude_sdk/resources/transactional.rbs +19 -0
- data/sig/prelude_sdk/resources/verification.rbs +22 -0
- data/sig/prelude_sdk/resources/watch.rbs +25 -0
- data/sig/prelude_sdk/version.rbs +3 -0
- metadata +182 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
[PreludeSDK::Internal::Type::BaseModel, *PreludeSDK::Internal::Type::BaseModel.subclasses].each do |cls|
|
5
|
+
cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, PreludeSDK::Internal::AnyHash) } }
|
6
|
+
end
|
7
|
+
|
8
|
+
PreludeSDK::Internal::Util.walk_namespaces(PreludeSDK::Models).each do |mod|
|
9
|
+
case mod
|
10
|
+
in PreludeSDK::Internal::Type::Enum | PreludeSDK::Internal::Type::Union
|
11
|
+
mod.constants.each do |name|
|
12
|
+
case mod.const_get(name)
|
13
|
+
in true | false
|
14
|
+
mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
|
15
|
+
mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
|
16
|
+
in Integer
|
17
|
+
mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
|
18
|
+
mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
|
19
|
+
in Float
|
20
|
+
mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
|
21
|
+
mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
|
22
|
+
in Symbol
|
23
|
+
mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
|
24
|
+
mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
|
25
|
+
else
|
26
|
+
end
|
27
|
+
end
|
28
|
+
else
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
PreludeSDK::Internal::Util.walk_namespaces(PreludeSDK::Models)
|
33
|
+
.lazy
|
34
|
+
.grep(PreludeSDK::Internal::Type::Union)
|
35
|
+
.each do |mod|
|
36
|
+
const = :Variants
|
37
|
+
next if mod.sorbet_constant_defined?(const)
|
38
|
+
|
39
|
+
mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
|
40
|
+
end
|
41
|
+
|
42
|
+
LookupLookupParams = PreludeSDK::Models::LookupLookupParams
|
43
|
+
|
44
|
+
TransactionalSendParams = PreludeSDK::Models::TransactionalSendParams
|
45
|
+
|
46
|
+
VerificationCheckParams = PreludeSDK::Models::VerificationCheckParams
|
47
|
+
|
48
|
+
VerificationCreateParams = PreludeSDK::Models::VerificationCreateParams
|
49
|
+
|
50
|
+
WatchPredictParams = PreludeSDK::Models::WatchPredictParams
|
51
|
+
|
52
|
+
WatchSendEventsParams = PreludeSDK::Models::WatchSendEventsParams
|
53
|
+
|
54
|
+
WatchSendFeedbacksParams = PreludeSDK::Models::WatchSendFeedbacksParams
|
55
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
5
|
+
# or override those provided at the client level.
|
6
|
+
#
|
7
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
8
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
9
|
+
class RequestOptions < PreludeSDK::Internal::Type::BaseModel
|
10
|
+
# @api private
|
11
|
+
#
|
12
|
+
# @param opts [PreludeSDK::RequestOptions, Hash{Symbol=>Object}]
|
13
|
+
#
|
14
|
+
# @raise [ArgumentError]
|
15
|
+
def self.validate!(opts)
|
16
|
+
case opts
|
17
|
+
in PreludeSDK::RequestOptions | Hash
|
18
|
+
opts.to_h.each_key do |k|
|
19
|
+
unless fields.include?(k)
|
20
|
+
raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
else
|
24
|
+
raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# @!attribute idempotency_key
|
29
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
30
|
+
# sent for write requests.
|
31
|
+
#
|
32
|
+
# @return [String, nil]
|
33
|
+
optional :idempotency_key, String
|
34
|
+
|
35
|
+
# @!attribute extra_query
|
36
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
37
|
+
# `query` given at the client level.
|
38
|
+
#
|
39
|
+
# @return [Hash{String=>Array<String>, String, nil}, nil]
|
40
|
+
optional :extra_query, PreludeSDK::Internal::Type::HashOf[PreludeSDK::Internal::Type::ArrayOf[String]]
|
41
|
+
|
42
|
+
# @!attribute extra_headers
|
43
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
44
|
+
# `extra_headers` given at the client level.
|
45
|
+
#
|
46
|
+
# @return [Hash{String=>String, nil}, nil]
|
47
|
+
optional :extra_headers, PreludeSDK::Internal::Type::HashOf[String, nil?: true]
|
48
|
+
|
49
|
+
# @!attribute extra_body
|
50
|
+
# Extra data to send with the request. These are deep merged into any data
|
51
|
+
# generated as part of the normal request.
|
52
|
+
#
|
53
|
+
# @return [Object, nil]
|
54
|
+
optional :extra_body, PreludeSDK::Internal::Type::HashOf[PreludeSDK::Internal::Type::Unknown]
|
55
|
+
|
56
|
+
# @!attribute max_retries
|
57
|
+
# Maximum number of retries to attempt after a failed initial request.
|
58
|
+
#
|
59
|
+
# @return [Integer, nil]
|
60
|
+
optional :max_retries, Integer
|
61
|
+
|
62
|
+
# @!attribute timeout
|
63
|
+
# Request timeout in seconds.
|
64
|
+
#
|
65
|
+
# @return [Float, nil]
|
66
|
+
optional :timeout, Float
|
67
|
+
|
68
|
+
# @!method initialize(values = {})
|
69
|
+
# Returns a new instance of RequestOptions.
|
70
|
+
#
|
71
|
+
# @param values [Hash{Symbol=>Object}]
|
72
|
+
|
73
|
+
define_sorbet_constant!(:OrHash) do
|
74
|
+
T.type_alias { T.any(PreludeSDK::RequestOptions, PreludeSDK::Internal::AnyHash) }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Lookup
|
6
|
+
# Some parameter documentations has been truncated, see
|
7
|
+
# {PreludeSDK::Models::LookupLookupParams} for more details.
|
8
|
+
#
|
9
|
+
# Retrieve detailed information about a phone number including carrier data, line
|
10
|
+
# type, and portability status.
|
11
|
+
#
|
12
|
+
# @overload lookup(phone_number, type: nil, request_options: {})
|
13
|
+
#
|
14
|
+
# @param phone_number [String] An E.164 formatted phone number to look up.
|
15
|
+
#
|
16
|
+
# @param type [Array<Symbol, PreludeSDK::Models::LookupLookupParams::Type>] Optional features. Possible values are:
|
17
|
+
#
|
18
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
19
|
+
#
|
20
|
+
# @return [PreludeSDK::Models::LookupLookupResponse]
|
21
|
+
#
|
22
|
+
# @see PreludeSDK::Models::LookupLookupParams
|
23
|
+
def lookup(phone_number, params = {})
|
24
|
+
parsed, options = PreludeSDK::LookupLookupParams.dump_request(params)
|
25
|
+
@client.request(
|
26
|
+
method: :get,
|
27
|
+
path: ["v2/lookup/%1$s", phone_number],
|
28
|
+
query: parsed,
|
29
|
+
model: PreludeSDK::Models::LookupLookupResponse,
|
30
|
+
options: options
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
# @api private
|
35
|
+
#
|
36
|
+
# @param client [PreludeSDK::Client]
|
37
|
+
def initialize(client:)
|
38
|
+
@client = client
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Transactional
|
6
|
+
# Some parameter documentations has been truncated, see
|
7
|
+
# {PreludeSDK::Models::TransactionalSendParams} for more details.
|
8
|
+
#
|
9
|
+
# Send a transactional message to your user.
|
10
|
+
#
|
11
|
+
# @overload send_(template_id:, to:, callback_url: nil, correlation_id: nil, expires_at: nil, from: nil, locale: nil, variables: nil, request_options: {})
|
12
|
+
#
|
13
|
+
# @param template_id [String] The template identifier.
|
14
|
+
#
|
15
|
+
# @param to [String] The recipient's phone number.
|
16
|
+
#
|
17
|
+
# @param callback_url [String] The callback URL.
|
18
|
+
#
|
19
|
+
# @param correlation_id [String] A unique, user-defined identifier that will be included in webhook events.
|
20
|
+
#
|
21
|
+
# @param expires_at [String] The message expiration date.
|
22
|
+
#
|
23
|
+
# @param from [String] The Sender ID.
|
24
|
+
#
|
25
|
+
# @param locale [String] A BCP-47 formatted locale string with the language the text message will be sent
|
26
|
+
#
|
27
|
+
# @param variables [Hash{Symbol=>String}] The variables to be replaced in the template.
|
28
|
+
#
|
29
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
30
|
+
#
|
31
|
+
# @return [PreludeSDK::Models::TransactionalSendResponse]
|
32
|
+
#
|
33
|
+
# @see PreludeSDK::Models::TransactionalSendParams
|
34
|
+
def send_(params)
|
35
|
+
parsed, options = PreludeSDK::TransactionalSendParams.dump_request(params)
|
36
|
+
@client.request(
|
37
|
+
method: :post,
|
38
|
+
path: "v2/transactional",
|
39
|
+
body: parsed,
|
40
|
+
model: PreludeSDK::Models::TransactionalSendResponse,
|
41
|
+
options: options
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
# @api private
|
46
|
+
#
|
47
|
+
# @param client [PreludeSDK::Client]
|
48
|
+
def initialize(client:)
|
49
|
+
@client = client
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Verification
|
6
|
+
# Some parameter documentations has been truncated, see
|
7
|
+
# {PreludeSDK::Models::VerificationCreateParams} for more details.
|
8
|
+
#
|
9
|
+
# Create a new verification for a specific phone number. If another non-expired
|
10
|
+
# verification exists (the request is performed within the verification window),
|
11
|
+
# this endpoint will perform a retry instead.
|
12
|
+
#
|
13
|
+
# @overload create(target:, dispatch_id: nil, metadata: nil, options: nil, signals: nil, request_options: {})
|
14
|
+
#
|
15
|
+
# @param target [PreludeSDK::Models::VerificationCreateParams::Target] The verification target. Either a phone number or an email address. To use the e
|
16
|
+
#
|
17
|
+
# @param dispatch_id [String] The identifier of the dispatch that came from the front-end SDK.
|
18
|
+
#
|
19
|
+
# @param metadata [PreludeSDK::Models::VerificationCreateParams::Metadata] The metadata for this verification. This object will be returned with every resp
|
20
|
+
#
|
21
|
+
# @param options [PreludeSDK::Models::VerificationCreateParams::Options] Verification options
|
22
|
+
#
|
23
|
+
# @param signals [PreludeSDK::Models::VerificationCreateParams::Signals] The signals used for anti-fraud. For more details, refer to [Signals](/verify/v2
|
24
|
+
#
|
25
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
26
|
+
#
|
27
|
+
# @return [PreludeSDK::Models::VerificationCreateResponse]
|
28
|
+
#
|
29
|
+
# @see PreludeSDK::Models::VerificationCreateParams
|
30
|
+
def create(params)
|
31
|
+
parsed, options = PreludeSDK::VerificationCreateParams.dump_request(params)
|
32
|
+
@client.request(
|
33
|
+
method: :post,
|
34
|
+
path: "v2/verification",
|
35
|
+
body: parsed,
|
36
|
+
model: PreludeSDK::Models::VerificationCreateResponse,
|
37
|
+
options: options
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Some parameter documentations has been truncated, see
|
42
|
+
# {PreludeSDK::Models::VerificationCheckParams} for more details.
|
43
|
+
#
|
44
|
+
# Check the validity of a verification code.
|
45
|
+
#
|
46
|
+
# @overload check(code:, target:, request_options: {})
|
47
|
+
#
|
48
|
+
# @param code [String] The OTP code to validate.
|
49
|
+
#
|
50
|
+
# @param target [PreludeSDK::Models::VerificationCheckParams::Target] The verification target. Either a phone number or an email address. To use the e
|
51
|
+
#
|
52
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
53
|
+
#
|
54
|
+
# @return [PreludeSDK::Models::VerificationCheckResponse]
|
55
|
+
#
|
56
|
+
# @see PreludeSDK::Models::VerificationCheckParams
|
57
|
+
def check(params)
|
58
|
+
parsed, options = PreludeSDK::VerificationCheckParams.dump_request(params)
|
59
|
+
@client.request(
|
60
|
+
method: :post,
|
61
|
+
path: "v2/verification/check",
|
62
|
+
body: parsed,
|
63
|
+
model: PreludeSDK::Models::VerificationCheckResponse,
|
64
|
+
options: options
|
65
|
+
)
|
66
|
+
end
|
67
|
+
|
68
|
+
# @api private
|
69
|
+
#
|
70
|
+
# @param client [PreludeSDK::Client]
|
71
|
+
def initialize(client:)
|
72
|
+
@client = client
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Watch
|
6
|
+
# Some parameter documentations has been truncated, see
|
7
|
+
# {PreludeSDK::Models::WatchPredictParams} for more details.
|
8
|
+
#
|
9
|
+
# Predict the outcome of a verification based on Prelude’s anti-fraud system.
|
10
|
+
#
|
11
|
+
# @overload predict(target:, dispatch_id: nil, metadata: nil, signals: nil, request_options: {})
|
12
|
+
#
|
13
|
+
# @param target [PreludeSDK::Models::WatchPredictParams::Target] The prediction target. Only supports phone numbers for now.
|
14
|
+
#
|
15
|
+
# @param dispatch_id [String] The identifier of the dispatch that came from the front-end SDK.
|
16
|
+
#
|
17
|
+
# @param metadata [PreludeSDK::Models::WatchPredictParams::Metadata] The metadata for this prediction.
|
18
|
+
#
|
19
|
+
# @param signals [PreludeSDK::Models::WatchPredictParams::Signals] The signals used for anti-fraud. For more details, refer to [Signals](/verify/v2
|
20
|
+
#
|
21
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
22
|
+
#
|
23
|
+
# @return [PreludeSDK::Models::WatchPredictResponse]
|
24
|
+
#
|
25
|
+
# @see PreludeSDK::Models::WatchPredictParams
|
26
|
+
def predict(params)
|
27
|
+
parsed, options = PreludeSDK::WatchPredictParams.dump_request(params)
|
28
|
+
@client.request(
|
29
|
+
method: :post,
|
30
|
+
path: "v2/watch/predict",
|
31
|
+
body: parsed,
|
32
|
+
model: PreludeSDK::Models::WatchPredictResponse,
|
33
|
+
options: options
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Send real-time event data from end-user interactions within your application.
|
38
|
+
# Events will be analyzed for proactive fraud prevention and risk scoring.
|
39
|
+
#
|
40
|
+
# @overload send_events(events:, request_options: {})
|
41
|
+
#
|
42
|
+
# @param events [Array<PreludeSDK::Models::WatchSendEventsParams::Event>] A list of events to dispatch.
|
43
|
+
#
|
44
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
45
|
+
#
|
46
|
+
# @return [PreludeSDK::Models::WatchSendEventsResponse]
|
47
|
+
#
|
48
|
+
# @see PreludeSDK::Models::WatchSendEventsParams
|
49
|
+
def send_events(params)
|
50
|
+
parsed, options = PreludeSDK::WatchSendEventsParams.dump_request(params)
|
51
|
+
@client.request(
|
52
|
+
method: :post,
|
53
|
+
path: "v2/watch/event",
|
54
|
+
body: parsed,
|
55
|
+
model: PreludeSDK::Models::WatchSendEventsResponse,
|
56
|
+
options: options
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Send feedback regarding your end-users verification funnel. Events will be
|
61
|
+
# analyzed for proactive fraud prevention and risk scoring.
|
62
|
+
#
|
63
|
+
# @overload send_feedbacks(feedbacks:, request_options: {})
|
64
|
+
#
|
65
|
+
# @param feedbacks [Array<PreludeSDK::Models::WatchSendFeedbacksParams::Feedback>] A list of feedbacks to send.
|
66
|
+
#
|
67
|
+
# @param request_options [PreludeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
|
68
|
+
#
|
69
|
+
# @return [PreludeSDK::Models::WatchSendFeedbacksResponse]
|
70
|
+
#
|
71
|
+
# @see PreludeSDK::Models::WatchSendFeedbacksParams
|
72
|
+
def send_feedbacks(params)
|
73
|
+
parsed, options = PreludeSDK::WatchSendFeedbacksParams.dump_request(params)
|
74
|
+
@client.request(
|
75
|
+
method: :post,
|
76
|
+
path: "v2/watch/feedback",
|
77
|
+
body: parsed,
|
78
|
+
model: PreludeSDK::Models::WatchSendFeedbacksResponse,
|
79
|
+
options: options
|
80
|
+
)
|
81
|
+
end
|
82
|
+
|
83
|
+
# @api private
|
84
|
+
#
|
85
|
+
# @param client [PreludeSDK::Client]
|
86
|
+
def initialize(client:)
|
87
|
+
@client = client
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/lib/prelude_sdk.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Standard libraries.
|
4
|
+
# rubocop:disable Lint/RedundantRequireStatement
|
5
|
+
require "English"
|
6
|
+
require "cgi"
|
7
|
+
require "date"
|
8
|
+
require "erb"
|
9
|
+
require "etc"
|
10
|
+
require "json"
|
11
|
+
require "net/http"
|
12
|
+
require "pathname"
|
13
|
+
require "rbconfig"
|
14
|
+
require "securerandom"
|
15
|
+
require "set"
|
16
|
+
require "stringio"
|
17
|
+
require "time"
|
18
|
+
require "uri"
|
19
|
+
# rubocop:enable Lint/RedundantRequireStatement
|
20
|
+
|
21
|
+
# We already ship the preferred sorbet manifests in the package itself.
|
22
|
+
# `tapioca` currently does not offer us a way to opt out of unnecessary compilation.
|
23
|
+
if Object.const_defined?(:Tapioca) &&
|
24
|
+
caller.chain([$PROGRAM_NAME]).chain(ARGV).any?(/tapioca/) &&
|
25
|
+
ARGV.none?(/dsl/)
|
26
|
+
return
|
27
|
+
end
|
28
|
+
|
29
|
+
# Gems.
|
30
|
+
require "connection_pool"
|
31
|
+
|
32
|
+
# Package files.
|
33
|
+
require_relative "prelude_sdk/version"
|
34
|
+
require_relative "prelude_sdk/internal/util"
|
35
|
+
require_relative "prelude_sdk/internal/type/converter"
|
36
|
+
require_relative "prelude_sdk/internal/type/unknown"
|
37
|
+
require_relative "prelude_sdk/internal/type/boolean"
|
38
|
+
require_relative "prelude_sdk/internal/type/file_input"
|
39
|
+
require_relative "prelude_sdk/internal/type/enum"
|
40
|
+
require_relative "prelude_sdk/internal/type/union"
|
41
|
+
require_relative "prelude_sdk/internal/type/array_of"
|
42
|
+
require_relative "prelude_sdk/internal/type/hash_of"
|
43
|
+
require_relative "prelude_sdk/internal/type/base_model"
|
44
|
+
require_relative "prelude_sdk/internal/type/base_page"
|
45
|
+
require_relative "prelude_sdk/internal/type/request_parameters"
|
46
|
+
require_relative "prelude_sdk/internal"
|
47
|
+
require_relative "prelude_sdk/request_options"
|
48
|
+
require_relative "prelude_sdk/file_part"
|
49
|
+
require_relative "prelude_sdk/errors"
|
50
|
+
require_relative "prelude_sdk/internal/transport/base_client"
|
51
|
+
require_relative "prelude_sdk/internal/transport/pooled_net_requester"
|
52
|
+
require_relative "prelude_sdk/client"
|
53
|
+
require_relative "prelude_sdk/models/lookup_lookup_params"
|
54
|
+
require_relative "prelude_sdk/models/lookup_lookup_response"
|
55
|
+
require_relative "prelude_sdk/models/transactional_send_params"
|
56
|
+
require_relative "prelude_sdk/models/transactional_send_response"
|
57
|
+
require_relative "prelude_sdk/models/verification_check_params"
|
58
|
+
require_relative "prelude_sdk/models/verification_check_response"
|
59
|
+
require_relative "prelude_sdk/models/verification_create_params"
|
60
|
+
require_relative "prelude_sdk/models/verification_create_response"
|
61
|
+
require_relative "prelude_sdk/models/watch_predict_params"
|
62
|
+
require_relative "prelude_sdk/models/watch_predict_response"
|
63
|
+
require_relative "prelude_sdk/models/watch_send_events_params"
|
64
|
+
require_relative "prelude_sdk/models/watch_send_events_response"
|
65
|
+
require_relative "prelude_sdk/models/watch_send_feedbacks_params"
|
66
|
+
require_relative "prelude_sdk/models/watch_send_feedbacks_response"
|
67
|
+
require_relative "prelude_sdk/models"
|
68
|
+
require_relative "prelude_sdk/resources/lookup"
|
69
|
+
require_relative "prelude_sdk/resources/transactional"
|
70
|
+
require_relative "prelude_sdk/resources/verification"
|
71
|
+
require_relative "prelude_sdk/resources/watch"
|
data/manifest.yaml
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
class Client < PreludeSDK::Internal::Transport::BaseClient
|
5
|
+
DEFAULT_MAX_RETRIES = 2
|
6
|
+
|
7
|
+
DEFAULT_TIMEOUT_IN_SECONDS = T.let(60.0, Float)
|
8
|
+
|
9
|
+
DEFAULT_INITIAL_RETRY_DELAY = T.let(0.5, Float)
|
10
|
+
|
11
|
+
DEFAULT_MAX_RETRY_DELAY = T.let(8.0, Float)
|
12
|
+
|
13
|
+
# Bearer token for authorizing API requests.
|
14
|
+
sig { returns(String) }
|
15
|
+
attr_reader :api_token
|
16
|
+
|
17
|
+
sig { returns(PreludeSDK::Resources::Lookup) }
|
18
|
+
attr_reader :lookup
|
19
|
+
|
20
|
+
sig { returns(PreludeSDK::Resources::Transactional) }
|
21
|
+
attr_reader :transactional
|
22
|
+
|
23
|
+
sig { returns(PreludeSDK::Resources::Verification) }
|
24
|
+
attr_reader :verification
|
25
|
+
|
26
|
+
sig { returns(PreludeSDK::Resources::Watch) }
|
27
|
+
attr_reader :watch
|
28
|
+
|
29
|
+
# @api private
|
30
|
+
sig { override.returns(T::Hash[String, String]) }
|
31
|
+
private def auth_headers
|
32
|
+
end
|
33
|
+
|
34
|
+
# Creates and returns a new client for interacting with the API.
|
35
|
+
sig do
|
36
|
+
params(
|
37
|
+
api_token: T.nilable(String),
|
38
|
+
base_url: T.nilable(String),
|
39
|
+
max_retries: Integer,
|
40
|
+
timeout: Float,
|
41
|
+
initial_retry_delay: Float,
|
42
|
+
max_retry_delay: Float
|
43
|
+
).returns(T.attached_class)
|
44
|
+
end
|
45
|
+
def self.new(
|
46
|
+
# Bearer token for authorizing API requests. Defaults to `ENV["API_TOKEN"]`
|
47
|
+
api_token: ENV["API_TOKEN"],
|
48
|
+
# Override the default base URL for the API, e.g.,
|
49
|
+
# `"https://api.example.com/v2/"`. Defaults to `ENV["PRELUDE_BASE_URL"]`
|
50
|
+
base_url: ENV["PRELUDE_BASE_URL"],
|
51
|
+
# Max number of retries to attempt after a failed retryable request.
|
52
|
+
max_retries: PreludeSDK::Client::DEFAULT_MAX_RETRIES,
|
53
|
+
timeout: PreludeSDK::Client::DEFAULT_TIMEOUT_IN_SECONDS,
|
54
|
+
initial_retry_delay: PreludeSDK::Client::DEFAULT_INITIAL_RETRY_DELAY,
|
55
|
+
max_retry_delay: PreludeSDK::Client::DEFAULT_MAX_RETRY_DELAY
|
56
|
+
)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|