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,50 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Transactional
|
6
|
+
# Send a transactional message to your user.
|
7
|
+
sig do
|
8
|
+
params(
|
9
|
+
template_id: String,
|
10
|
+
to: String,
|
11
|
+
callback_url: String,
|
12
|
+
correlation_id: String,
|
13
|
+
expires_at: String,
|
14
|
+
from: String,
|
15
|
+
locale: String,
|
16
|
+
variables: T::Hash[Symbol, String],
|
17
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
18
|
+
).returns(PreludeSDK::Models::TransactionalSendResponse)
|
19
|
+
end
|
20
|
+
def send_(
|
21
|
+
# The template identifier.
|
22
|
+
template_id:,
|
23
|
+
# The recipient's phone number.
|
24
|
+
to:,
|
25
|
+
# The callback URL.
|
26
|
+
callback_url: nil,
|
27
|
+
# A unique, user-defined identifier that will be included in webhook events.
|
28
|
+
correlation_id: nil,
|
29
|
+
# The message expiration date.
|
30
|
+
expires_at: nil,
|
31
|
+
# The Sender ID.
|
32
|
+
from: nil,
|
33
|
+
# A BCP-47 formatted locale string with the language the text message will be sent
|
34
|
+
# to. If there's no locale set, the language will be determined by the country
|
35
|
+
# code of the phone number. If the language specified doesn't exist, the default
|
36
|
+
# set on the template will be used.
|
37
|
+
locale: nil,
|
38
|
+
# The variables to be replaced in the template.
|
39
|
+
variables: nil,
|
40
|
+
request_options: {}
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
# @api private
|
45
|
+
sig { params(client: PreludeSDK::Client).returns(T.attached_class) }
|
46
|
+
def self.new(client:)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Verification
|
6
|
+
# Create a new verification for a specific phone number. If another non-expired
|
7
|
+
# verification exists (the request is performed within the verification window),
|
8
|
+
# this endpoint will perform a retry instead.
|
9
|
+
sig do
|
10
|
+
params(
|
11
|
+
target: PreludeSDK::VerificationCreateParams::Target::OrHash,
|
12
|
+
dispatch_id: String,
|
13
|
+
metadata: PreludeSDK::VerificationCreateParams::Metadata::OrHash,
|
14
|
+
options: PreludeSDK::VerificationCreateParams::Options::OrHash,
|
15
|
+
signals: PreludeSDK::VerificationCreateParams::Signals::OrHash,
|
16
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
17
|
+
).returns(PreludeSDK::Models::VerificationCreateResponse)
|
18
|
+
end
|
19
|
+
def create(
|
20
|
+
# The verification target. Either a phone number or an email address. To use the
|
21
|
+
# email verification feature contact us to discuss your use case.
|
22
|
+
target:,
|
23
|
+
# The identifier of the dispatch that came from the front-end SDK.
|
24
|
+
dispatch_id: nil,
|
25
|
+
# The metadata for this verification. This object will be returned with every
|
26
|
+
# response or webhook sent that refers to this verification.
|
27
|
+
metadata: nil,
|
28
|
+
# Verification options
|
29
|
+
options: nil,
|
30
|
+
# The signals used for anti-fraud. For more details, refer to
|
31
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
32
|
+
signals: nil,
|
33
|
+
request_options: {}
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Check the validity of a verification code.
|
38
|
+
sig do
|
39
|
+
params(
|
40
|
+
code: String,
|
41
|
+
target: PreludeSDK::VerificationCheckParams::Target::OrHash,
|
42
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
43
|
+
).returns(PreludeSDK::Models::VerificationCheckResponse)
|
44
|
+
end
|
45
|
+
def check(
|
46
|
+
# The OTP code to validate.
|
47
|
+
code:,
|
48
|
+
# The verification target. Either a phone number or an email address. To use the
|
49
|
+
# email verification feature contact us to discuss your use case.
|
50
|
+
target:,
|
51
|
+
request_options: {}
|
52
|
+
)
|
53
|
+
end
|
54
|
+
|
55
|
+
# @api private
|
56
|
+
sig { params(client: PreludeSDK::Client).returns(T.attached_class) }
|
57
|
+
def self.new(client:)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module PreludeSDK
|
4
|
+
module Resources
|
5
|
+
class Watch
|
6
|
+
# Predict the outcome of a verification based on Prelude’s anti-fraud system.
|
7
|
+
sig do
|
8
|
+
params(
|
9
|
+
target: PreludeSDK::WatchPredictParams::Target::OrHash,
|
10
|
+
dispatch_id: String,
|
11
|
+
metadata: PreludeSDK::WatchPredictParams::Metadata::OrHash,
|
12
|
+
signals: PreludeSDK::WatchPredictParams::Signals::OrHash,
|
13
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
14
|
+
).returns(PreludeSDK::Models::WatchPredictResponse)
|
15
|
+
end
|
16
|
+
def predict(
|
17
|
+
# The prediction target. Only supports phone numbers for now.
|
18
|
+
target:,
|
19
|
+
# The identifier of the dispatch that came from the front-end SDK.
|
20
|
+
dispatch_id: nil,
|
21
|
+
# The metadata for this prediction.
|
22
|
+
metadata: nil,
|
23
|
+
# The signals used for anti-fraud. For more details, refer to
|
24
|
+
# [Signals](/verify/v2/documentation/prevent-fraud#signals).
|
25
|
+
signals: nil,
|
26
|
+
request_options: {}
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Send real-time event data from end-user interactions within your application.
|
31
|
+
# Events will be analyzed for proactive fraud prevention and risk scoring.
|
32
|
+
sig do
|
33
|
+
params(
|
34
|
+
events: T::Array[PreludeSDK::WatchSendEventsParams::Event::OrHash],
|
35
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
36
|
+
).returns(PreludeSDK::Models::WatchSendEventsResponse)
|
37
|
+
end
|
38
|
+
def send_events(
|
39
|
+
# A list of events to dispatch.
|
40
|
+
events:,
|
41
|
+
request_options: {}
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Send feedback regarding your end-users verification funnel. Events will be
|
46
|
+
# analyzed for proactive fraud prevention and risk scoring.
|
47
|
+
sig do
|
48
|
+
params(
|
49
|
+
feedbacks:
|
50
|
+
T::Array[PreludeSDK::WatchSendFeedbacksParams::Feedback::OrHash],
|
51
|
+
request_options: PreludeSDK::RequestOptions::OrHash
|
52
|
+
).returns(PreludeSDK::Models::WatchSendFeedbacksResponse)
|
53
|
+
end
|
54
|
+
def send_feedbacks(
|
55
|
+
# A list of feedbacks to send.
|
56
|
+
feedbacks:,
|
57
|
+
request_options: {}
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
# @api private
|
62
|
+
sig { params(client: PreludeSDK::Client).returns(T.attached_class) }
|
63
|
+
def self.new(client:)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
class Client < PreludeSDK::Internal::Transport::BaseClient
|
3
|
+
DEFAULT_MAX_RETRIES: 2
|
4
|
+
|
5
|
+
DEFAULT_TIMEOUT_IN_SECONDS: Float
|
6
|
+
|
7
|
+
DEFAULT_INITIAL_RETRY_DELAY: Float
|
8
|
+
|
9
|
+
DEFAULT_MAX_RETRY_DELAY: Float
|
10
|
+
|
11
|
+
attr_reader api_token: String
|
12
|
+
|
13
|
+
attr_reader lookup: PreludeSDK::Resources::Lookup
|
14
|
+
|
15
|
+
attr_reader transactional: PreludeSDK::Resources::Transactional
|
16
|
+
|
17
|
+
attr_reader verification: PreludeSDK::Resources::Verification
|
18
|
+
|
19
|
+
attr_reader watch: PreludeSDK::Resources::Watch
|
20
|
+
|
21
|
+
private def auth_headers: -> ::Hash[String, String]
|
22
|
+
|
23
|
+
def initialize: (
|
24
|
+
?api_token: String?,
|
25
|
+
?base_url: String?,
|
26
|
+
?max_retries: Integer,
|
27
|
+
?timeout: Float,
|
28
|
+
?initial_retry_delay: Float,
|
29
|
+
?max_retry_delay: Float
|
30
|
+
) -> void
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
module Errors
|
3
|
+
class Error < StandardError
|
4
|
+
attr_accessor cause: StandardError?
|
5
|
+
end
|
6
|
+
|
7
|
+
class ConversionError < PreludeSDK::Errors::Error
|
8
|
+
def cause: -> StandardError?
|
9
|
+
|
10
|
+
def initialize: (
|
11
|
+
on: Class,
|
12
|
+
method: Symbol,
|
13
|
+
target: top,
|
14
|
+
value: top,
|
15
|
+
?cause: StandardError?
|
16
|
+
) -> void
|
17
|
+
end
|
18
|
+
|
19
|
+
class APIError < PreludeSDK::Errors::Error
|
20
|
+
attr_accessor url: URI::Generic
|
21
|
+
|
22
|
+
attr_accessor status: Integer?
|
23
|
+
|
24
|
+
attr_accessor body: top?
|
25
|
+
|
26
|
+
def initialize: (
|
27
|
+
url: URI::Generic,
|
28
|
+
?status: Integer?,
|
29
|
+
?body: Object?,
|
30
|
+
?request: nil,
|
31
|
+
?response: nil,
|
32
|
+
?message: String?
|
33
|
+
) -> void
|
34
|
+
end
|
35
|
+
|
36
|
+
class APIConnectionError < PreludeSDK::Errors::APIError
|
37
|
+
def initialize: (
|
38
|
+
url: URI::Generic,
|
39
|
+
?status: nil,
|
40
|
+
?body: nil,
|
41
|
+
?request: nil,
|
42
|
+
?response: nil,
|
43
|
+
?message: String?
|
44
|
+
) -> void
|
45
|
+
end
|
46
|
+
|
47
|
+
class APITimeoutError < PreludeSDK::Errors::APIConnectionError
|
48
|
+
def initialize: (
|
49
|
+
url: URI::Generic,
|
50
|
+
?status: nil,
|
51
|
+
?body: nil,
|
52
|
+
?request: nil,
|
53
|
+
?response: nil,
|
54
|
+
?message: String?
|
55
|
+
) -> void
|
56
|
+
end
|
57
|
+
|
58
|
+
class APIStatusError < PreludeSDK::Errors::APIError
|
59
|
+
def self.for: (
|
60
|
+
url: URI::Generic,
|
61
|
+
status: Integer,
|
62
|
+
body: Object?,
|
63
|
+
request: nil,
|
64
|
+
response: nil,
|
65
|
+
?message: String?
|
66
|
+
) -> instance
|
67
|
+
|
68
|
+
def initialize: (
|
69
|
+
url: URI::Generic,
|
70
|
+
status: Integer,
|
71
|
+
body: Object?,
|
72
|
+
request: nil,
|
73
|
+
response: nil,
|
74
|
+
?message: String?
|
75
|
+
) -> void
|
76
|
+
end
|
77
|
+
|
78
|
+
class BadRequestError < PreludeSDK::Errors::APIStatusError
|
79
|
+
HTTP_STATUS: 400
|
80
|
+
end
|
81
|
+
|
82
|
+
class AuthenticationError < PreludeSDK::Errors::APIStatusError
|
83
|
+
HTTP_STATUS: 401
|
84
|
+
end
|
85
|
+
|
86
|
+
class PermissionDeniedError < PreludeSDK::Errors::APIStatusError
|
87
|
+
HTTP_STATUS: 403
|
88
|
+
end
|
89
|
+
|
90
|
+
class NotFoundError < PreludeSDK::Errors::APIStatusError
|
91
|
+
HTTP_STATUS: 404
|
92
|
+
end
|
93
|
+
|
94
|
+
class ConflictError < PreludeSDK::Errors::APIStatusError
|
95
|
+
HTTP_STATUS: 409
|
96
|
+
end
|
97
|
+
|
98
|
+
class UnprocessableEntityError < PreludeSDK::Errors::APIStatusError
|
99
|
+
HTTP_STATUS: 422
|
100
|
+
end
|
101
|
+
|
102
|
+
class RateLimitError < PreludeSDK::Errors::APIStatusError
|
103
|
+
HTTP_STATUS: 429
|
104
|
+
end
|
105
|
+
|
106
|
+
class InternalServerError < PreludeSDK::Errors::APIStatusError
|
107
|
+
HTTP_STATUS: Range[Integer]
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
class FilePart
|
3
|
+
attr_reader content: Pathname | StringIO | IO | String
|
4
|
+
|
5
|
+
attr_reader content_type: String?
|
6
|
+
|
7
|
+
attr_reader filename: String?
|
8
|
+
|
9
|
+
private def read: -> String
|
10
|
+
|
11
|
+
def to_json: (*top a) -> String
|
12
|
+
|
13
|
+
def to_yaml: (*top a) -> String
|
14
|
+
|
15
|
+
def initialize: (
|
16
|
+
Pathname | StringIO | IO | String content,
|
17
|
+
?filename: String?,
|
18
|
+
?content_type: String?
|
19
|
+
) -> void
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,131 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
module Internal
|
3
|
+
module Transport
|
4
|
+
class BaseClient
|
5
|
+
extend PreludeSDK::Internal::Util::SorbetRuntimeSupport
|
6
|
+
|
7
|
+
type request_components =
|
8
|
+
{
|
9
|
+
method: Symbol,
|
10
|
+
path: String | ::Array[String],
|
11
|
+
query: ::Hash[String, (::Array[String] | String)?]?,
|
12
|
+
headers: ::Hash[String, (String
|
13
|
+
| Integer
|
14
|
+
| ::Array[(String | Integer)?])?]?,
|
15
|
+
body: top?,
|
16
|
+
unwrap: (Symbol
|
17
|
+
| Integer
|
18
|
+
| ::Array[(Symbol | Integer)]
|
19
|
+
| (^(top arg0) -> top))?,
|
20
|
+
page: Class?,
|
21
|
+
stream: Class?,
|
22
|
+
model: PreludeSDK::Internal::Type::Converter::input?,
|
23
|
+
options: PreludeSDK::request_opts?
|
24
|
+
}
|
25
|
+
type request_input =
|
26
|
+
{
|
27
|
+
method: Symbol,
|
28
|
+
url: URI::Generic,
|
29
|
+
headers: ::Hash[String, String],
|
30
|
+
body: top,
|
31
|
+
max_retries: Integer,
|
32
|
+
timeout: Float
|
33
|
+
}
|
34
|
+
|
35
|
+
MAX_REDIRECTS: 20
|
36
|
+
|
37
|
+
PLATFORM_HEADERS: ::Hash[String, String]
|
38
|
+
|
39
|
+
def self.validate!: (
|
40
|
+
PreludeSDK::Internal::Transport::BaseClient::request_components req
|
41
|
+
) -> void
|
42
|
+
|
43
|
+
def self.should_retry?: (
|
44
|
+
Integer status,
|
45
|
+
headers: ::Hash[String, String]
|
46
|
+
) -> bool
|
47
|
+
|
48
|
+
def self.follow_redirect: (
|
49
|
+
PreludeSDK::Internal::Transport::BaseClient::request_input request,
|
50
|
+
status: Integer,
|
51
|
+
response_headers: ::Hash[String, String]
|
52
|
+
) -> PreludeSDK::Internal::Transport::BaseClient::request_input
|
53
|
+
|
54
|
+
def self.reap_connection!: (
|
55
|
+
Integer | PreludeSDK::Errors::APIConnectionError status,
|
56
|
+
stream: Enumerable[String]?
|
57
|
+
) -> void
|
58
|
+
|
59
|
+
attr_reader base_url: URI::Generic
|
60
|
+
|
61
|
+
attr_reader timeout: Float
|
62
|
+
|
63
|
+
attr_reader max_retries: Integer
|
64
|
+
|
65
|
+
attr_reader initial_retry_delay: Float
|
66
|
+
|
67
|
+
attr_reader max_retry_delay: Float
|
68
|
+
|
69
|
+
attr_reader headers: ::Hash[String, String]
|
70
|
+
|
71
|
+
attr_reader idempotency_header: String?
|
72
|
+
|
73
|
+
# @api private
|
74
|
+
attr_reader requester: PreludeSDK::Internal::Transport::PooledNetRequester
|
75
|
+
|
76
|
+
def initialize: (
|
77
|
+
base_url: String,
|
78
|
+
?timeout: Float,
|
79
|
+
?max_retries: Integer,
|
80
|
+
?initial_retry_delay: Float,
|
81
|
+
?max_retry_delay: Float,
|
82
|
+
?headers: ::Hash[String, (String
|
83
|
+
| Integer
|
84
|
+
| ::Array[(String | Integer)?])?],
|
85
|
+
?idempotency_header: String?
|
86
|
+
) -> void
|
87
|
+
|
88
|
+
private def auth_headers: -> ::Hash[String, String]
|
89
|
+
|
90
|
+
private def generate_idempotency_key: -> String
|
91
|
+
|
92
|
+
private def build_request: (
|
93
|
+
PreludeSDK::Internal::Transport::BaseClient::request_components req,
|
94
|
+
PreludeSDK::request_options opts
|
95
|
+
) -> PreludeSDK::Internal::Transport::BaseClient::request_input
|
96
|
+
|
97
|
+
private def retry_delay: (
|
98
|
+
::Hash[String, String] headers,
|
99
|
+
retry_count: Integer
|
100
|
+
) -> Float
|
101
|
+
|
102
|
+
private def send_request: (
|
103
|
+
PreludeSDK::Internal::Transport::BaseClient::request_input request,
|
104
|
+
redirect_count: Integer,
|
105
|
+
retry_count: Integer,
|
106
|
+
send_retry_header: bool
|
107
|
+
) -> [Integer, top, Enumerable[String]]
|
108
|
+
|
109
|
+
def request: (
|
110
|
+
Symbol method,
|
111
|
+
String | ::Array[String] path,
|
112
|
+
?query: ::Hash[String, (::Array[String] | String)?]?,
|
113
|
+
?headers: ::Hash[String, (String
|
114
|
+
| Integer
|
115
|
+
| ::Array[(String | Integer)?])?]?,
|
116
|
+
?body: top?,
|
117
|
+
?unwrap: (Symbol
|
118
|
+
| Integer
|
119
|
+
| ::Array[(Symbol | Integer)]
|
120
|
+
| (^(top arg0) -> top))?,
|
121
|
+
?page: Class?,
|
122
|
+
?stream: Class?,
|
123
|
+
?model: PreludeSDK::Internal::Type::Converter::input?,
|
124
|
+
?options: PreludeSDK::request_opts?
|
125
|
+
) -> top
|
126
|
+
|
127
|
+
def inspect: -> String
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
module Internal
|
3
|
+
module Transport
|
4
|
+
class PooledNetRequester
|
5
|
+
extend PreludeSDK::Internal::Util::SorbetRuntimeSupport
|
6
|
+
|
7
|
+
type request =
|
8
|
+
{
|
9
|
+
method: Symbol,
|
10
|
+
url: URI::Generic,
|
11
|
+
headers: ::Hash[String, String],
|
12
|
+
body: top,
|
13
|
+
deadline: Float
|
14
|
+
}
|
15
|
+
|
16
|
+
KEEP_ALIVE_TIMEOUT: 30
|
17
|
+
|
18
|
+
DEFAULT_MAX_CONNECTIONS: Integer
|
19
|
+
|
20
|
+
def self.connect: (URI::Generic url) -> top
|
21
|
+
|
22
|
+
def self.calibrate_socket_timeout: (top conn, Float deadline) -> void
|
23
|
+
|
24
|
+
def self.build_request: (
|
25
|
+
PreludeSDK::Internal::Transport::PooledNetRequester::request request
|
26
|
+
) {
|
27
|
+
(String arg0) -> void
|
28
|
+
} -> [top, (^-> void)]
|
29
|
+
|
30
|
+
private def with_pool: (
|
31
|
+
URI::Generic url,
|
32
|
+
deadline: Float
|
33
|
+
) {
|
34
|
+
(top arg0) -> void
|
35
|
+
} -> void
|
36
|
+
|
37
|
+
def execute: (
|
38
|
+
PreludeSDK::Internal::Transport::PooledNetRequester::request request
|
39
|
+
) -> [Integer, top, Enumerable[String]]
|
40
|
+
|
41
|
+
def initialize: (?size: Integer) -> void
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
module Internal
|
3
|
+
module Type
|
4
|
+
class ArrayOf[Elem]
|
5
|
+
include PreludeSDK::Internal::Type::Converter
|
6
|
+
include PreludeSDK::Internal::Util::SorbetRuntimeSupport
|
7
|
+
|
8
|
+
def self.[]: (
|
9
|
+
::Hash[Symbol, top]
|
10
|
+
| ^-> PreludeSDK::Internal::Type::Converter::input
|
11
|
+
| PreludeSDK::Internal::Type::Converter::input type_info,
|
12
|
+
?::Hash[Symbol, top] spec
|
13
|
+
) -> instance
|
14
|
+
|
15
|
+
def ===: (top other) -> bool
|
16
|
+
|
17
|
+
def ==: (top other) -> bool
|
18
|
+
|
19
|
+
def hash: -> Integer
|
20
|
+
|
21
|
+
def coerce: (
|
22
|
+
::Array[top] | top value,
|
23
|
+
state: PreludeSDK::Internal::Type::Converter::coerce_state
|
24
|
+
) -> (::Array[top] | top)
|
25
|
+
|
26
|
+
def dump: (
|
27
|
+
::Array[top] | top value,
|
28
|
+
state: PreludeSDK::Internal::Type::Converter::dump_state
|
29
|
+
) -> (::Array[top] | top)
|
30
|
+
|
31
|
+
def to_sorbet_type: -> top
|
32
|
+
|
33
|
+
def item_type: -> Elem
|
34
|
+
|
35
|
+
def nilable?: -> bool
|
36
|
+
|
37
|
+
def initialize: (
|
38
|
+
::Hash[Symbol, top]
|
39
|
+
| ^-> PreludeSDK::Internal::Type::Converter::input
|
40
|
+
| PreludeSDK::Internal::Type::Converter::input type_info,
|
41
|
+
?::Hash[Symbol, top] spec
|
42
|
+
) -> void
|
43
|
+
|
44
|
+
def inspect: (?depth: Integer) -> String
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
module Internal
|
3
|
+
module Type
|
4
|
+
class BaseModel
|
5
|
+
extend PreludeSDK::Internal::Type::Converter
|
6
|
+
extend PreludeSDK::Internal::Util::SorbetRuntimeSupport
|
7
|
+
|
8
|
+
type known_field =
|
9
|
+
{ mode: (:coerce | :dump)?, required: bool, nilable: bool }
|
10
|
+
|
11
|
+
def self.inherited: (self child) -> void
|
12
|
+
|
13
|
+
def self.known_fields: -> ::Hash[Symbol, (PreludeSDK::Internal::Type::BaseModel::known_field
|
14
|
+
& { type_fn: (^-> PreludeSDK::Internal::Type::Converter::input) })]
|
15
|
+
|
16
|
+
def self.fields: -> ::Hash[Symbol, (PreludeSDK::Internal::Type::BaseModel::known_field
|
17
|
+
& { type: PreludeSDK::Internal::Type::Converter::input })]
|
18
|
+
|
19
|
+
private def self.add_field: (
|
20
|
+
Symbol name_sym,
|
21
|
+
required: bool,
|
22
|
+
type_info: {
|
23
|
+
const: (nil | bool | Integer | Float | Symbol)?,
|
24
|
+
enum: ^-> PreludeSDK::Internal::Type::Converter::input?,
|
25
|
+
union: ^-> PreludeSDK::Internal::Type::Converter::input?,
|
26
|
+
api_name: Symbol
|
27
|
+
}
|
28
|
+
| ^-> PreludeSDK::Internal::Type::Converter::input
|
29
|
+
| PreludeSDK::Internal::Type::Converter::input,
|
30
|
+
spec: ::Hash[Symbol, top]
|
31
|
+
) -> void
|
32
|
+
|
33
|
+
def self.required: (
|
34
|
+
Symbol name_sym,
|
35
|
+
::Hash[Symbol, top]
|
36
|
+
| ^-> PreludeSDK::Internal::Type::Converter::input
|
37
|
+
| PreludeSDK::Internal::Type::Converter::input type_info,
|
38
|
+
?::Hash[Symbol, top] spec
|
39
|
+
) -> void
|
40
|
+
|
41
|
+
def self.optional: (
|
42
|
+
Symbol name_sym,
|
43
|
+
::Hash[Symbol, top]
|
44
|
+
| ^-> PreludeSDK::Internal::Type::Converter::input
|
45
|
+
| PreludeSDK::Internal::Type::Converter::input type_info,
|
46
|
+
?::Hash[Symbol, top] spec
|
47
|
+
) -> void
|
48
|
+
|
49
|
+
private def self.request_only: { -> void } -> void
|
50
|
+
|
51
|
+
private def self.response_only: { -> void } -> void
|
52
|
+
|
53
|
+
def self.==: (top other) -> bool
|
54
|
+
|
55
|
+
def self.hash: -> Integer
|
56
|
+
|
57
|
+
def ==: (top other) -> bool
|
58
|
+
|
59
|
+
def hash: -> Integer
|
60
|
+
|
61
|
+
def self.coerce: (
|
62
|
+
PreludeSDK::Internal::Type::BaseModel | ::Hash[top, top] | top value,
|
63
|
+
state: PreludeSDK::Internal::Type::Converter::coerce_state
|
64
|
+
) -> (instance | top)
|
65
|
+
|
66
|
+
def self.dump: (
|
67
|
+
instance | top value,
|
68
|
+
state: PreludeSDK::Internal::Type::Converter::dump_state
|
69
|
+
) -> (::Hash[top, top] | top)
|
70
|
+
|
71
|
+
def self.to_sorbet_type: -> top
|
72
|
+
|
73
|
+
def self.recursively_to_h: (
|
74
|
+
PreludeSDK::Internal::Type::BaseModel model,
|
75
|
+
convert: bool
|
76
|
+
) -> ::Hash[Symbol, top]
|
77
|
+
|
78
|
+
def []: (Symbol key) -> top?
|
79
|
+
|
80
|
+
def to_h: -> ::Hash[Symbol, top]
|
81
|
+
|
82
|
+
alias to_hash to_h
|
83
|
+
|
84
|
+
def deep_to_h: -> ::Hash[Symbol, top]
|
85
|
+
|
86
|
+
def deconstruct_keys: (::Array[Symbol]? keys) -> ::Hash[Symbol, top]
|
87
|
+
|
88
|
+
def to_json: (*top a) -> String
|
89
|
+
|
90
|
+
def to_yaml: (*top a) -> String
|
91
|
+
|
92
|
+
def initialize: (?::Hash[Symbol, top] | instance data) -> void
|
93
|
+
|
94
|
+
def self.inspect: (?depth: Integer) -> String
|
95
|
+
|
96
|
+
def to_s: -> String
|
97
|
+
|
98
|
+
def inspect: -> String
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module PreludeSDK
|
2
|
+
module Internal
|
3
|
+
module Type
|
4
|
+
module BasePage[Elem]
|
5
|
+
def next_page?: -> bool
|
6
|
+
|
7
|
+
def next_page: -> instance
|
8
|
+
|
9
|
+
def auto_paging_each: { (Elem arg0) -> void } -> void
|
10
|
+
|
11
|
+
def to_enum: -> Enumerable[Elem]
|
12
|
+
|
13
|
+
alias enum_for to_enum
|
14
|
+
|
15
|
+
def initialize: (
|
16
|
+
client: PreludeSDK::Internal::Transport::BaseClient,
|
17
|
+
req: PreludeSDK::Internal::Transport::BaseClient::request_components,
|
18
|
+
headers: ::Hash[String, String],
|
19
|
+
page_data: top
|
20
|
+
) -> void
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|