finch-api 0.1.0.pre.alpha.4 → 0.1.0.pre.alpha.5
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/README.md +2 -8
- data/lib/finch-api/client.rb +1 -1
- data/lib/finch-api/individuals_page.rb +4 -4
- data/lib/finch-api/models/access_token_create_params.rb +1 -1
- data/lib/finch-api/models/account_disconnect_params.rb +1 -1
- data/lib/finch-api/models/account_introspect_params.rb +1 -1
- data/lib/finch-api/models/connect/session_new_params.rb +1 -1
- data/lib/finch-api/models/connect/session_reauthenticate_params.rb +1 -1
- data/lib/finch-api/models/hris/benefit_create_params.rb +1 -1
- data/lib/finch-api/models/hris/benefit_list_params.rb +1 -1
- data/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rb +1 -1
- data/lib/finch-api/models/hris/benefit_retrieve_params.rb +1 -1
- data/lib/finch-api/models/hris/benefit_update_params.rb +1 -1
- data/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rb +1 -1
- data/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rb +1 -1
- data/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rb +1 -1
- data/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rb +1 -1
- data/lib/finch-api/models/hris/company_retrieve_params.rb +1 -1
- data/lib/finch-api/models/hris/directory_list_individuals_params.rb +1 -1
- data/lib/finch-api/models/hris/directory_list_params.rb +1 -1
- data/lib/finch-api/models/hris/document_list_params.rb +1 -1
- data/lib/finch-api/models/hris/document_retreive_params.rb +1 -1
- data/lib/finch-api/models/hris/employment_retrieve_many_params.rb +1 -1
- data/lib/finch-api/models/hris/individual_retrieve_many_params.rb +1 -1
- data/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rb +1 -1
- data/lib/finch-api/models/hris/payment_list_params.rb +1 -1
- data/lib/finch-api/models/jobs/automated_create_params.rb +1 -1
- data/lib/finch-api/models/jobs/automated_list_params.rb +1 -1
- data/lib/finch-api/models/jobs/automated_retrieve_params.rb +1 -1
- data/lib/finch-api/models/jobs/manual_retrieve_params.rb +1 -1
- data/lib/finch-api/models/payroll/pay_group_list_params.rb +1 -1
- data/lib/finch-api/models/payroll/pay_group_retrieve_params.rb +1 -1
- data/lib/finch-api/models/provider_list_params.rb +1 -1
- data/lib/finch-api/models/request_forwarding_forward_params.rb +1 -1
- data/lib/finch-api/models/sandbox/company_update_params.rb +1 -1
- data/lib/finch-api/models/sandbox/connection_create_params.rb +1 -1
- data/lib/finch-api/models/sandbox/connections/account_create_params.rb +1 -1
- data/lib/finch-api/models/sandbox/connections/account_update_params.rb +1 -1
- data/lib/finch-api/models/sandbox/directory_create_params.rb +1 -1
- data/lib/finch-api/models/sandbox/employment_update_params.rb +1 -1
- data/lib/finch-api/models/sandbox/individual_update_params.rb +1 -1
- data/lib/finch-api/models/sandbox/job_create_params.rb +1 -1
- data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rb +1 -1
- data/lib/finch-api/models/sandbox/jobs/configuration_update_params.rb +1 -1
- data/lib/finch-api/models/sandbox/payment_create_params.rb +1 -1
- data/lib/finch-api/page.rb +4 -4
- data/lib/finch-api/request_options.rb +0 -33
- data/lib/finch-api/responses_page.rb +3 -3
- data/lib/finch-api/single_page.rb +3 -3
- data/lib/finch-api/transport/base_client.rb +459 -0
- data/lib/finch-api/transport/pooled_net_requester.rb +182 -0
- data/lib/finch-api/type/array_of.rb +110 -0
- data/lib/finch-api/type/base_model.rb +355 -0
- data/lib/finch-api/type/base_page.rb +61 -0
- data/lib/finch-api/type/boolean_model.rb +52 -0
- data/lib/finch-api/type/converter.rb +211 -0
- data/lib/finch-api/type/enum.rb +105 -0
- data/lib/finch-api/type/hash_of.rb +136 -0
- data/lib/finch-api/type/request_parameters.rb +38 -0
- data/lib/finch-api/type/union.rb +204 -0
- data/lib/finch-api/type/unknown.rb +56 -0
- data/lib/finch-api/type.rb +23 -0
- data/lib/finch-api/version.rb +1 -1
- data/lib/finch-api.rb +13 -4
- data/rbi/lib/finch-api/client.rbi +1 -1
- data/rbi/lib/finch-api/individuals_page.rbi +1 -1
- data/rbi/lib/finch-api/models/access_token_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/account_disconnect_params.rbi +1 -1
- data/rbi/lib/finch-api/models/account_introspect_params.rbi +1 -1
- data/rbi/lib/finch-api/models/connect/session_new_params.rbi +1 -1
- data/rbi/lib/finch-api/models/connect/session_reauthenticate_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefit_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefit_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefit_retrieve_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefit_update_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/company_retrieve_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/directory_list_individuals_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/directory_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/document_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/document_retreive_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/employment_retrieve_many_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/individual_retrieve_many_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rbi +1 -1
- data/rbi/lib/finch-api/models/hris/payment_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/jobs/automated_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/jobs/automated_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/jobs/automated_retrieve_params.rbi +1 -1
- data/rbi/lib/finch-api/models/jobs/manual_retrieve_params.rbi +1 -1
- data/rbi/lib/finch-api/models/payroll/pay_group_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_params.rbi +1 -1
- data/rbi/lib/finch-api/models/provider_list_params.rbi +1 -1
- data/rbi/lib/finch-api/models/request_forwarding_forward_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/company_update_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/connection_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/connections/account_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/connections/account_update_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/directory_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/directory_create_response.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/employment_update_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/individual_update_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/job_create_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbi +4 -1
- data/rbi/lib/finch-api/models/sandbox/jobs/configuration_update_params.rbi +1 -1
- data/rbi/lib/finch-api/models/sandbox/payment_create_params.rbi +1 -1
- data/rbi/lib/finch-api/page.rbi +1 -1
- data/rbi/lib/finch-api/request_options.rbi +0 -15
- data/rbi/lib/finch-api/responses_page.rbi +1 -1
- data/rbi/lib/finch-api/single_page.rbi +1 -1
- data/rbi/lib/finch-api/transport/base_client.rbi +204 -0
- data/rbi/lib/finch-api/transport/pooled_net_requester.rbi +64 -0
- data/rbi/lib/finch-api/type/array_of.rbi +82 -0
- data/rbi/lib/finch-api/type/base_model.rbi +191 -0
- data/rbi/lib/finch-api/type/base_page.rbi +38 -0
- data/rbi/lib/finch-api/type/boolean_model.rbi +41 -0
- data/rbi/lib/finch-api/type/converter.rbi +101 -0
- data/rbi/lib/finch-api/type/enum.rbi +58 -0
- data/rbi/lib/finch-api/type/hash_of.rbi +86 -0
- data/rbi/lib/finch-api/type/request_parameters.rbi +20 -0
- data/rbi/lib/finch-api/type/union.rbi +66 -0
- data/rbi/lib/finch-api/type/unknown.rbi +37 -0
- data/rbi/lib/finch-api/type.rbi +23 -0
- data/rbi/lib/finch-api/version.rbi +1 -1
- data/sig/finch-api/client.rbs +1 -1
- data/sig/finch-api/individuals_page.rbs +1 -1
- data/sig/finch-api/models/access_token_create_params.rbs +1 -1
- data/sig/finch-api/models/account_disconnect_params.rbs +1 -1
- data/sig/finch-api/models/account_introspect_params.rbs +1 -1
- data/sig/finch-api/models/connect/session_new_params.rbs +1 -1
- data/sig/finch-api/models/connect/session_reauthenticate_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefit_create_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefit_list_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefit_list_supported_benefits_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefit_retrieve_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefit_update_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefits/individual_enroll_many_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbs +1 -1
- data/sig/finch-api/models/hris/benefits/individual_unenroll_many_params.rbs +1 -1
- data/sig/finch-api/models/hris/company_retrieve_params.rbs +1 -1
- data/sig/finch-api/models/hris/directory_list_individuals_params.rbs +1 -1
- data/sig/finch-api/models/hris/directory_list_params.rbs +1 -1
- data/sig/finch-api/models/hris/document_list_params.rbs +1 -1
- data/sig/finch-api/models/hris/document_retreive_params.rbs +1 -1
- data/sig/finch-api/models/hris/employment_retrieve_many_params.rbs +1 -1
- data/sig/finch-api/models/hris/individual_retrieve_many_params.rbs +1 -1
- data/sig/finch-api/models/hris/pay_statement_retrieve_many_params.rbs +1 -1
- data/sig/finch-api/models/hris/payment_list_params.rbs +1 -1
- data/sig/finch-api/models/jobs/automated_create_params.rbs +1 -1
- data/sig/finch-api/models/jobs/automated_list_params.rbs +1 -1
- data/sig/finch-api/models/jobs/automated_retrieve_params.rbs +1 -1
- data/sig/finch-api/models/jobs/manual_retrieve_params.rbs +1 -1
- data/sig/finch-api/models/payroll/pay_group_list_params.rbs +1 -1
- data/sig/finch-api/models/payroll/pay_group_retrieve_params.rbs +1 -1
- data/sig/finch-api/models/provider_list_params.rbs +1 -1
- data/sig/finch-api/models/request_forwarding_forward_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/company_update_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/connection_create_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/connections/account_create_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/connections/account_update_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/directory_create_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/employment_update_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/individual_update_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/job_create_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/jobs/configuration_update_params.rbs +1 -1
- data/sig/finch-api/models/sandbox/payment_create_params.rbs +1 -1
- data/sig/finch-api/page.rbs +1 -1
- data/sig/finch-api/request_options.rbs +0 -10
- data/sig/finch-api/responses_page.rbs +1 -1
- data/sig/finch-api/single_page.rbs +1 -1
- data/sig/finch-api/transport/base_client.rbs +110 -0
- data/sig/finch-api/transport/pooled_net_requester.rbs +39 -0
- data/sig/finch-api/type/array_of.rbs +36 -0
- data/sig/finch-api/type/base_model.rbs +73 -0
- data/sig/finch-api/type/base_page.rbs +22 -0
- data/sig/finch-api/type/boolean_model.rbs +18 -0
- data/sig/finch-api/type/converter.rbs +36 -0
- data/sig/finch-api/type/enum.rbs +22 -0
- data/sig/finch-api/type/hash_of.rbs +36 -0
- data/sig/finch-api/type/request_parameters.rbs +13 -0
- data/sig/finch-api/type/union.rbs +37 -0
- data/sig/finch-api/type/unknown.rbs +18 -0
- data/sig/finch-api/type.rbs +22 -0
- data/sig/finch-api/version.rbs +1 -1
- metadata +40 -13
- data/lib/finch-api/base_client.rb +0 -457
- data/lib/finch-api/base_model.rb +0 -1174
- data/lib/finch-api/base_page.rb +0 -59
- data/lib/finch-api/pooled_net_requester.rb +0 -180
- data/rbi/lib/finch-api/base_client.rbi +0 -196
- data/rbi/lib/finch-api/base_model.rbi +0 -609
- data/rbi/lib/finch-api/base_page.rbi +0 -36
- data/rbi/lib/finch-api/pooled_net_requester.rbi +0 -59
- data/sig/finch-api/base_client.rbs +0 -106
- data/sig/finch-api/base_model.rbs +0 -248
- data/sig/finch-api/base_page.rbs +0 -20
- data/sig/finch-api/pooled_net_requester.rbs +0 -37
@@ -1,609 +0,0 @@
|
|
1
|
-
# typed: strong
|
2
|
-
|
3
|
-
module FinchAPI
|
4
|
-
# @api private
|
5
|
-
module Converter
|
6
|
-
Input = T.type_alias { T.any(FinchAPI::Converter, T::Class[T.anything]) }
|
7
|
-
|
8
|
-
State =
|
9
|
-
T.type_alias do
|
10
|
-
{
|
11
|
-
strictness: T.any(T::Boolean, Symbol),
|
12
|
-
exactness: {yes: Integer, no: Integer, maybe: Integer},
|
13
|
-
branched: Integer
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
|
-
# @api private
|
18
|
-
sig { overridable.params(value: T.anything, state: FinchAPI::Converter::State).returns(T.anything) }
|
19
|
-
def coerce(value, state:)
|
20
|
-
end
|
21
|
-
|
22
|
-
# @api private
|
23
|
-
sig { overridable.params(value: T.anything).returns(T.anything) }
|
24
|
-
def dump(value)
|
25
|
-
end
|
26
|
-
|
27
|
-
class << self
|
28
|
-
# @api private
|
29
|
-
sig do
|
30
|
-
params(
|
31
|
-
spec: T.any(
|
32
|
-
{
|
33
|
-
const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
|
34
|
-
enum: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
|
35
|
-
union: T.nilable(T.proc.returns(FinchAPI::Converter::Input))
|
36
|
-
},
|
37
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
38
|
-
FinchAPI::Converter::Input
|
39
|
-
)
|
40
|
-
)
|
41
|
-
.returns(T.proc.returns(T.anything))
|
42
|
-
end
|
43
|
-
def self.type_info(spec)
|
44
|
-
end
|
45
|
-
|
46
|
-
# @api private
|
47
|
-
#
|
48
|
-
# Based on `target`, transform `value` into `target`, to the extent possible:
|
49
|
-
#
|
50
|
-
# 1. if the given `value` conforms to `target` already, return the given `value`
|
51
|
-
# 2. if it's possible and safe to convert the given `value` to `target`, then the
|
52
|
-
# converted value
|
53
|
-
# 3. otherwise, the given `value` unaltered
|
54
|
-
#
|
55
|
-
# The coercion process is subject to improvement between minor release versions.
|
56
|
-
# See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
|
57
|
-
sig do
|
58
|
-
params(target: FinchAPI::Converter::Input, value: T.anything, state: FinchAPI::Converter::State)
|
59
|
-
.returns(T.anything)
|
60
|
-
end
|
61
|
-
def self.coerce(
|
62
|
-
target,
|
63
|
-
value,
|
64
|
-
# The `strictness` is one of `true`, `false`, or `:strong`. This informs the
|
65
|
-
# coercion strategy when we have to decide between multiple possible conversion
|
66
|
-
# targets:
|
67
|
-
#
|
68
|
-
# - `true`: the conversion must be exact, with minimum coercion.
|
69
|
-
# - `false`: the conversion can be approximate, with some coercion.
|
70
|
-
# - `:strong`: the conversion must be exact, with no coercion, and raise an error
|
71
|
-
# if not possible.
|
72
|
-
#
|
73
|
-
# The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
|
74
|
-
# any given conversion attempt, the exactness will be updated based on how closely
|
75
|
-
# the value recursively matches the target type:
|
76
|
-
#
|
77
|
-
# - `yes`: the value can be converted to the target type with minimum coercion.
|
78
|
-
# - `maybe`: the value can be converted to the target type with some reasonable
|
79
|
-
# coercion.
|
80
|
-
# - `no`: the value cannot be converted to the target type.
|
81
|
-
#
|
82
|
-
# See implementation below for more details.
|
83
|
-
state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
|
84
|
-
)
|
85
|
-
end
|
86
|
-
|
87
|
-
# @api private
|
88
|
-
sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
|
89
|
-
def self.dump(target, value)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
# @api private
|
95
|
-
#
|
96
|
-
# When we don't know what to expect for the value.
|
97
|
-
class Unknown
|
98
|
-
extend FinchAPI::Converter
|
99
|
-
|
100
|
-
abstract!
|
101
|
-
final!
|
102
|
-
|
103
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
104
|
-
def self.===(other)
|
105
|
-
end
|
106
|
-
|
107
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
108
|
-
def self.==(other)
|
109
|
-
end
|
110
|
-
|
111
|
-
class << self
|
112
|
-
# @api private
|
113
|
-
sig(:final) do
|
114
|
-
override.params(value: T.anything, state: FinchAPI::Converter::State).returns(T.anything)
|
115
|
-
end
|
116
|
-
def coerce(value, state:)
|
117
|
-
end
|
118
|
-
|
119
|
-
# @api private
|
120
|
-
sig(:final) { override.params(value: T.anything).returns(T.anything) }
|
121
|
-
def dump(value)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
# @api private
|
127
|
-
#
|
128
|
-
# Ruby has no Boolean class; this is something for models to refer to.
|
129
|
-
class BooleanModel
|
130
|
-
extend FinchAPI::Converter
|
131
|
-
|
132
|
-
abstract!
|
133
|
-
final!
|
134
|
-
|
135
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
136
|
-
def self.===(other)
|
137
|
-
end
|
138
|
-
|
139
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
140
|
-
def self.==(other)
|
141
|
-
end
|
142
|
-
|
143
|
-
class << self
|
144
|
-
# @api private
|
145
|
-
sig(:final) do
|
146
|
-
override
|
147
|
-
.params(value: T.any(T::Boolean, T.anything), state: FinchAPI::Converter::State)
|
148
|
-
.returns(T.any(T::Boolean, T.anything))
|
149
|
-
end
|
150
|
-
def coerce(value, state:)
|
151
|
-
end
|
152
|
-
|
153
|
-
# @api private
|
154
|
-
sig(:final) do
|
155
|
-
override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything))
|
156
|
-
end
|
157
|
-
def dump(value)
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
# @api private
|
163
|
-
#
|
164
|
-
# A value from among a specified list of options. OpenAPI enum values map to Ruby
|
165
|
-
# values in the SDK as follows:
|
166
|
-
#
|
167
|
-
# 1. boolean => true | false
|
168
|
-
# 2. integer => Integer
|
169
|
-
# 3. float => Float
|
170
|
-
# 4. string => Symbol
|
171
|
-
#
|
172
|
-
# We can therefore convert string values to Symbols, but can't convert other
|
173
|
-
# values safely.
|
174
|
-
module Enum
|
175
|
-
include FinchAPI::Converter
|
176
|
-
|
177
|
-
# All of the valid Symbol values for this enum.
|
178
|
-
sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) }
|
179
|
-
def values
|
180
|
-
end
|
181
|
-
|
182
|
-
# @api private
|
183
|
-
#
|
184
|
-
# Guard against thread safety issues by instantiating `@values`.
|
185
|
-
sig { void }
|
186
|
-
private def finalize!
|
187
|
-
end
|
188
|
-
|
189
|
-
sig { params(other: T.anything).returns(T::Boolean) }
|
190
|
-
def ===(other)
|
191
|
-
end
|
192
|
-
|
193
|
-
sig { params(other: T.anything).returns(T::Boolean) }
|
194
|
-
def ==(other)
|
195
|
-
end
|
196
|
-
|
197
|
-
# @api private
|
198
|
-
#
|
199
|
-
# Unlike with primitives, `Enum` additionally validates that the value is a member
|
200
|
-
# of the enum.
|
201
|
-
sig do
|
202
|
-
override
|
203
|
-
.params(value: T.any(String, Symbol, T.anything), state: FinchAPI::Converter::State)
|
204
|
-
.returns(T.any(Symbol, T.anything))
|
205
|
-
end
|
206
|
-
def coerce(value, state:)
|
207
|
-
end
|
208
|
-
|
209
|
-
# @api private
|
210
|
-
sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
|
211
|
-
def dump(value)
|
212
|
-
end
|
213
|
-
end
|
214
|
-
|
215
|
-
# @api private
|
216
|
-
module Union
|
217
|
-
include FinchAPI::Converter
|
218
|
-
|
219
|
-
# @api private
|
220
|
-
#
|
221
|
-
# All of the specified variant info for this union.
|
222
|
-
sig { returns(T::Array[[T.nilable(Symbol), T.proc.returns(FinchAPI::Converter::Input)]]) }
|
223
|
-
private def known_variants
|
224
|
-
end
|
225
|
-
|
226
|
-
# @api private
|
227
|
-
sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) }
|
228
|
-
protected def derefed_variants
|
229
|
-
end
|
230
|
-
|
231
|
-
# All of the specified variants for this union.
|
232
|
-
sig { overridable.returns(T::Array[T.anything]) }
|
233
|
-
def variants
|
234
|
-
end
|
235
|
-
|
236
|
-
# @api private
|
237
|
-
sig { params(property: Symbol).void }
|
238
|
-
private def discriminator(property)
|
239
|
-
end
|
240
|
-
|
241
|
-
# @api private
|
242
|
-
sig do
|
243
|
-
params(
|
244
|
-
key: T.any(Symbol, FinchAPI::Util::AnyHash, T.proc.returns(T.anything), T.anything),
|
245
|
-
spec: T.any(FinchAPI::Util::AnyHash, T.proc.returns(T.anything), T.anything)
|
246
|
-
)
|
247
|
-
.void
|
248
|
-
end
|
249
|
-
private def variant(key, spec = nil)
|
250
|
-
end
|
251
|
-
|
252
|
-
# @api private
|
253
|
-
sig { params(value: T.anything).returns(T.nilable(T.anything)) }
|
254
|
-
private def resolve_variant(value)
|
255
|
-
end
|
256
|
-
|
257
|
-
sig { params(other: T.anything).returns(T::Boolean) }
|
258
|
-
def ===(other)
|
259
|
-
end
|
260
|
-
|
261
|
-
sig { params(other: T.anything).returns(T::Boolean) }
|
262
|
-
def ==(other)
|
263
|
-
end
|
264
|
-
|
265
|
-
# @api private
|
266
|
-
sig { override.params(value: T.anything, state: FinchAPI::Converter::State).returns(T.anything) }
|
267
|
-
def coerce(value, state:)
|
268
|
-
end
|
269
|
-
|
270
|
-
# @api private
|
271
|
-
sig { override.params(value: T.anything).returns(T.anything) }
|
272
|
-
def dump(value)
|
273
|
-
end
|
274
|
-
end
|
275
|
-
|
276
|
-
# @api private
|
277
|
-
#
|
278
|
-
# Array of items of a given type.
|
279
|
-
class ArrayOf
|
280
|
-
include FinchAPI::Converter
|
281
|
-
|
282
|
-
abstract!
|
283
|
-
final!
|
284
|
-
|
285
|
-
sig(:final) do
|
286
|
-
params(
|
287
|
-
type_info: T.any(
|
288
|
-
FinchAPI::Util::AnyHash,
|
289
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
290
|
-
FinchAPI::Converter::Input
|
291
|
-
),
|
292
|
-
spec: FinchAPI::Util::AnyHash
|
293
|
-
)
|
294
|
-
.returns(T.attached_class)
|
295
|
-
end
|
296
|
-
def self.[](type_info, spec = {})
|
297
|
-
end
|
298
|
-
|
299
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
300
|
-
def ===(other)
|
301
|
-
end
|
302
|
-
|
303
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
304
|
-
def ==(other)
|
305
|
-
end
|
306
|
-
|
307
|
-
# @api private
|
308
|
-
sig(:final) do
|
309
|
-
override
|
310
|
-
.params(value: T.any(T::Enumerable[T.anything], T.anything), state: FinchAPI::Converter::State)
|
311
|
-
.returns(T.any(T::Array[T.anything], T.anything))
|
312
|
-
end
|
313
|
-
def coerce(value, state:)
|
314
|
-
end
|
315
|
-
|
316
|
-
# @api private
|
317
|
-
sig(:final) do
|
318
|
-
override
|
319
|
-
.params(value: T.any(T::Enumerable[T.anything], T.anything))
|
320
|
-
.returns(T.any(T::Array[T.anything], T.anything))
|
321
|
-
end
|
322
|
-
def dump(value)
|
323
|
-
end
|
324
|
-
|
325
|
-
# @api private
|
326
|
-
sig(:final) { returns(T.anything) }
|
327
|
-
protected def item_type
|
328
|
-
end
|
329
|
-
|
330
|
-
# @api private
|
331
|
-
sig(:final) { returns(T::Boolean) }
|
332
|
-
protected def nilable?
|
333
|
-
end
|
334
|
-
|
335
|
-
# @api private
|
336
|
-
sig(:final) do
|
337
|
-
params(
|
338
|
-
type_info: T.any(
|
339
|
-
FinchAPI::Util::AnyHash,
|
340
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
341
|
-
FinchAPI::Converter::Input
|
342
|
-
),
|
343
|
-
spec: FinchAPI::Util::AnyHash
|
344
|
-
)
|
345
|
-
.void
|
346
|
-
end
|
347
|
-
def initialize(type_info, spec = {})
|
348
|
-
end
|
349
|
-
end
|
350
|
-
|
351
|
-
# @api private
|
352
|
-
#
|
353
|
-
# Hash of items of a given type.
|
354
|
-
class HashOf
|
355
|
-
include FinchAPI::Converter
|
356
|
-
|
357
|
-
abstract!
|
358
|
-
final!
|
359
|
-
|
360
|
-
sig(:final) do
|
361
|
-
params(
|
362
|
-
type_info: T.any(
|
363
|
-
FinchAPI::Util::AnyHash,
|
364
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
365
|
-
FinchAPI::Converter::Input
|
366
|
-
),
|
367
|
-
spec: FinchAPI::Util::AnyHash
|
368
|
-
)
|
369
|
-
.returns(T.attached_class)
|
370
|
-
end
|
371
|
-
def self.[](type_info, spec = {})
|
372
|
-
end
|
373
|
-
|
374
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
375
|
-
def ===(other)
|
376
|
-
end
|
377
|
-
|
378
|
-
sig(:final) { params(other: T.anything).returns(T::Boolean) }
|
379
|
-
def ==(other)
|
380
|
-
end
|
381
|
-
|
382
|
-
# @api private
|
383
|
-
sig(:final) do
|
384
|
-
override
|
385
|
-
.params(value: T.any(T::Hash[T.anything, T.anything], T.anything), state: FinchAPI::Converter::State)
|
386
|
-
.returns(T.any(FinchAPI::Util::AnyHash, T.anything))
|
387
|
-
end
|
388
|
-
def coerce(value, state:)
|
389
|
-
end
|
390
|
-
|
391
|
-
# @api private
|
392
|
-
sig(:final) do
|
393
|
-
override
|
394
|
-
.params(value: T.any(T::Hash[T.anything, T.anything], T.anything))
|
395
|
-
.returns(T.any(FinchAPI::Util::AnyHash, T.anything))
|
396
|
-
end
|
397
|
-
def dump(value)
|
398
|
-
end
|
399
|
-
|
400
|
-
# @api private
|
401
|
-
sig(:final) { returns(T.anything) }
|
402
|
-
protected def item_type
|
403
|
-
end
|
404
|
-
|
405
|
-
# @api private
|
406
|
-
sig(:final) { returns(T::Boolean) }
|
407
|
-
protected def nilable?
|
408
|
-
end
|
409
|
-
|
410
|
-
# @api private
|
411
|
-
sig(:final) do
|
412
|
-
params(
|
413
|
-
type_info: T.any(
|
414
|
-
FinchAPI::Util::AnyHash,
|
415
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
416
|
-
FinchAPI::Converter::Input
|
417
|
-
),
|
418
|
-
spec: FinchAPI::Util::AnyHash
|
419
|
-
)
|
420
|
-
.void
|
421
|
-
end
|
422
|
-
def initialize(type_info, spec = {})
|
423
|
-
end
|
424
|
-
end
|
425
|
-
|
426
|
-
class BaseModel
|
427
|
-
extend FinchAPI::Converter
|
428
|
-
|
429
|
-
abstract!
|
430
|
-
|
431
|
-
KnownFieldShape = T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} }
|
432
|
-
|
433
|
-
class << self
|
434
|
-
# @api private
|
435
|
-
#
|
436
|
-
# Assumes superclass fields are totally defined before fields are accessed /
|
437
|
-
# defined on subclasses.
|
438
|
-
sig do
|
439
|
-
returns(
|
440
|
-
T::Hash[Symbol,
|
441
|
-
T.all(
|
442
|
-
FinchAPI::BaseModel::KnownFieldShape,
|
443
|
-
{type_fn: T.proc.returns(FinchAPI::Converter::Input)}
|
444
|
-
)]
|
445
|
-
)
|
446
|
-
end
|
447
|
-
def known_fields
|
448
|
-
end
|
449
|
-
|
450
|
-
# @api private
|
451
|
-
sig do
|
452
|
-
returns(
|
453
|
-
T::Hash[Symbol,
|
454
|
-
T.all(FinchAPI::BaseModel::KnownFieldShape, {type: FinchAPI::Converter::Input})]
|
455
|
-
)
|
456
|
-
end
|
457
|
-
def fields
|
458
|
-
end
|
459
|
-
|
460
|
-
# @api private
|
461
|
-
sig do
|
462
|
-
params(
|
463
|
-
name_sym: Symbol,
|
464
|
-
required: T::Boolean,
|
465
|
-
type_info: T.any(
|
466
|
-
{
|
467
|
-
const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
|
468
|
-
enum: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
|
469
|
-
union: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
|
470
|
-
api_name: Symbol,
|
471
|
-
nil?: T::Boolean
|
472
|
-
},
|
473
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
474
|
-
FinchAPI::Converter::Input
|
475
|
-
),
|
476
|
-
spec: FinchAPI::Util::AnyHash
|
477
|
-
)
|
478
|
-
.void
|
479
|
-
end
|
480
|
-
private def add_field(name_sym, required:, type_info:, spec:)
|
481
|
-
end
|
482
|
-
|
483
|
-
# @api private
|
484
|
-
sig do
|
485
|
-
params(
|
486
|
-
name_sym: Symbol,
|
487
|
-
type_info: T.any(
|
488
|
-
FinchAPI::Util::AnyHash,
|
489
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
490
|
-
FinchAPI::Converter::Input
|
491
|
-
),
|
492
|
-
spec: FinchAPI::Util::AnyHash
|
493
|
-
)
|
494
|
-
.void
|
495
|
-
end
|
496
|
-
def required(name_sym, type_info, spec = {})
|
497
|
-
end
|
498
|
-
|
499
|
-
# @api private
|
500
|
-
sig do
|
501
|
-
params(
|
502
|
-
name_sym: Symbol,
|
503
|
-
type_info: T.any(
|
504
|
-
FinchAPI::Util::AnyHash,
|
505
|
-
T.proc.returns(FinchAPI::Converter::Input),
|
506
|
-
FinchAPI::Converter::Input
|
507
|
-
),
|
508
|
-
spec: FinchAPI::Util::AnyHash
|
509
|
-
)
|
510
|
-
.void
|
511
|
-
end
|
512
|
-
def optional(name_sym, type_info, spec = {})
|
513
|
-
end
|
514
|
-
|
515
|
-
# @api private
|
516
|
-
#
|
517
|
-
# `request_only` attributes not excluded from `.#coerce` when receiving responses
|
518
|
-
# even if well behaved servers should not send them
|
519
|
-
sig { params(blk: T.proc.void).void }
|
520
|
-
private def request_only(&blk)
|
521
|
-
end
|
522
|
-
|
523
|
-
# @api private
|
524
|
-
#
|
525
|
-
# `response_only` attributes are omitted from `.#dump` when making requests
|
526
|
-
sig { params(blk: T.proc.void).void }
|
527
|
-
private def response_only(&blk)
|
528
|
-
end
|
529
|
-
|
530
|
-
sig { params(other: T.anything).returns(T::Boolean) }
|
531
|
-
def ==(other)
|
532
|
-
end
|
533
|
-
end
|
534
|
-
|
535
|
-
sig { params(other: T.anything).returns(T::Boolean) }
|
536
|
-
def ==(other)
|
537
|
-
end
|
538
|
-
|
539
|
-
class << self
|
540
|
-
# @api private
|
541
|
-
sig do
|
542
|
-
override
|
543
|
-
.params(
|
544
|
-
value: T.any(FinchAPI::BaseModel, T::Hash[T.anything, T.anything], T.anything),
|
545
|
-
state: FinchAPI::Converter::State
|
546
|
-
)
|
547
|
-
.returns(T.any(T.attached_class, T.anything))
|
548
|
-
end
|
549
|
-
def coerce(value, state:)
|
550
|
-
end
|
551
|
-
|
552
|
-
# @api private
|
553
|
-
sig do
|
554
|
-
override
|
555
|
-
.params(value: T.any(T.attached_class, T.anything))
|
556
|
-
.returns(T.any(T::Hash[T.anything, T.anything], T.anything))
|
557
|
-
end
|
558
|
-
def dump(value)
|
559
|
-
end
|
560
|
-
end
|
561
|
-
|
562
|
-
# Returns the raw value associated with the given key, if found. Otherwise, nil is
|
563
|
-
# returned.
|
564
|
-
#
|
565
|
-
# It is valid to lookup keys that are not in the API spec, for example to access
|
566
|
-
# undocumented features. This method does not parse response data into
|
567
|
-
# higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
|
568
|
-
sig { params(key: Symbol).returns(T.nilable(T.anything)) }
|
569
|
-
def [](key)
|
570
|
-
end
|
571
|
-
|
572
|
-
# Returns a Hash of the data underlying this object. O(1)
|
573
|
-
#
|
574
|
-
# Keys are Symbols and values are the raw values from the response. The return
|
575
|
-
# value indicates which values were ever set on the object. i.e. there will be a
|
576
|
-
# key in this hash if they ever were, even if the set value was nil.
|
577
|
-
#
|
578
|
-
# This method is not recursive. The returned value is shared by the object, so it
|
579
|
-
# should not be mutated.
|
580
|
-
sig { overridable.returns(FinchAPI::Util::AnyHash) }
|
581
|
-
def to_h
|
582
|
-
end
|
583
|
-
|
584
|
-
# Returns a Hash of the data underlying this object. O(1)
|
585
|
-
#
|
586
|
-
# Keys are Symbols and values are the raw values from the response. The return
|
587
|
-
# value indicates which values were ever set on the object. i.e. there will be a
|
588
|
-
# key in this hash if they ever were, even if the set value was nil.
|
589
|
-
#
|
590
|
-
# This method is not recursive. The returned value is shared by the object, so it
|
591
|
-
# should not be mutated.
|
592
|
-
sig { overridable.returns(FinchAPI::Util::AnyHash) }
|
593
|
-
def to_hash
|
594
|
-
end
|
595
|
-
|
596
|
-
sig { params(keys: T.nilable(T::Array[Symbol])).returns(FinchAPI::Util::AnyHash) }
|
597
|
-
def deconstruct_keys(keys)
|
598
|
-
end
|
599
|
-
|
600
|
-
# Create a new instance of a model.
|
601
|
-
sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(T.attached_class) }
|
602
|
-
def self.new(data = {})
|
603
|
-
end
|
604
|
-
|
605
|
-
sig { returns(String) }
|
606
|
-
def inspect
|
607
|
-
end
|
608
|
-
end
|
609
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# typed: strong
|
2
|
-
|
3
|
-
module FinchAPI
|
4
|
-
module BasePage
|
5
|
-
Elem = type_member(:out)
|
6
|
-
|
7
|
-
sig { overridable.returns(T::Boolean) }
|
8
|
-
def next_page?
|
9
|
-
end
|
10
|
-
|
11
|
-
sig { overridable.returns(T.self_type) }
|
12
|
-
def next_page
|
13
|
-
end
|
14
|
-
|
15
|
-
sig { overridable.params(blk: T.proc.params(arg0: Elem).void).void }
|
16
|
-
def auto_paging_each(&blk)
|
17
|
-
end
|
18
|
-
|
19
|
-
sig { returns(T::Enumerable[Elem]) }
|
20
|
-
def to_enum
|
21
|
-
end
|
22
|
-
|
23
|
-
# @api private
|
24
|
-
sig do
|
25
|
-
params(
|
26
|
-
client: FinchAPI::BaseClient,
|
27
|
-
req: FinchAPI::BaseClient::RequestComponentsShape,
|
28
|
-
headers: T.any(T::Hash[String, String], Net::HTTPHeader),
|
29
|
-
page_data: T.anything
|
30
|
-
)
|
31
|
-
.void
|
32
|
-
end
|
33
|
-
def initialize(client:, req:, headers:, page_data:)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# typed: strong
|
2
|
-
|
3
|
-
module FinchAPI
|
4
|
-
# @api private
|
5
|
-
class PooledNetRequester
|
6
|
-
RequestShape =
|
7
|
-
T.type_alias do
|
8
|
-
{
|
9
|
-
method: Symbol,
|
10
|
-
url: URI::Generic,
|
11
|
-
headers: T::Hash[String, String],
|
12
|
-
body: T.anything,
|
13
|
-
deadline: Float
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
|
-
# from the golang stdlib
|
18
|
-
# https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
|
19
|
-
KEEP_ALIVE_TIMEOUT = 30
|
20
|
-
|
21
|
-
class << self
|
22
|
-
# @api private
|
23
|
-
sig { params(url: URI::Generic).returns(Net::HTTP) }
|
24
|
-
def connect(url)
|
25
|
-
end
|
26
|
-
|
27
|
-
# @api private
|
28
|
-
sig { params(conn: Net::HTTP, deadline: Float).void }
|
29
|
-
def calibrate_socket_timeout(conn, deadline)
|
30
|
-
end
|
31
|
-
|
32
|
-
# @api private
|
33
|
-
sig do
|
34
|
-
params(request: FinchAPI::PooledNetRequester::RequestShape, blk: T.proc.params(arg0: String).void)
|
35
|
-
.returns(Net::HTTPGenericRequest)
|
36
|
-
end
|
37
|
-
def build_request(request, &blk)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
# @api private
|
42
|
-
sig { params(url: URI::Generic, deadline: Float, blk: T.proc.params(arg0: Net::HTTP).void).void }
|
43
|
-
private def with_pool(url, deadline:, &blk)
|
44
|
-
end
|
45
|
-
|
46
|
-
# @api private
|
47
|
-
sig do
|
48
|
-
params(request: FinchAPI::PooledNetRequester::RequestShape)
|
49
|
-
.returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
|
50
|
-
end
|
51
|
-
def execute(request)
|
52
|
-
end
|
53
|
-
|
54
|
-
# @api private
|
55
|
-
sig { params(size: Integer).returns(T.attached_class) }
|
56
|
-
def self.new(size: Etc.nprocessors)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|