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.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -8
  3. data/lib/finch-api/client.rb +1 -1
  4. data/lib/finch-api/individuals_page.rb +4 -4
  5. data/lib/finch-api/models/access_token_create_params.rb +1 -1
  6. data/lib/finch-api/models/account_disconnect_params.rb +1 -1
  7. data/lib/finch-api/models/account_introspect_params.rb +1 -1
  8. data/lib/finch-api/models/connect/session_new_params.rb +1 -1
  9. data/lib/finch-api/models/connect/session_reauthenticate_params.rb +1 -1
  10. data/lib/finch-api/models/hris/benefit_create_params.rb +1 -1
  11. data/lib/finch-api/models/hris/benefit_list_params.rb +1 -1
  12. data/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rb +1 -1
  13. data/lib/finch-api/models/hris/benefit_retrieve_params.rb +1 -1
  14. data/lib/finch-api/models/hris/benefit_update_params.rb +1 -1
  15. data/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rb +1 -1
  16. data/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rb +1 -1
  17. data/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rb +1 -1
  18. data/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rb +1 -1
  19. data/lib/finch-api/models/hris/company_retrieve_params.rb +1 -1
  20. data/lib/finch-api/models/hris/directory_list_individuals_params.rb +1 -1
  21. data/lib/finch-api/models/hris/directory_list_params.rb +1 -1
  22. data/lib/finch-api/models/hris/document_list_params.rb +1 -1
  23. data/lib/finch-api/models/hris/document_retreive_params.rb +1 -1
  24. data/lib/finch-api/models/hris/employment_retrieve_many_params.rb +1 -1
  25. data/lib/finch-api/models/hris/individual_retrieve_many_params.rb +1 -1
  26. data/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rb +1 -1
  27. data/lib/finch-api/models/hris/payment_list_params.rb +1 -1
  28. data/lib/finch-api/models/jobs/automated_create_params.rb +1 -1
  29. data/lib/finch-api/models/jobs/automated_list_params.rb +1 -1
  30. data/lib/finch-api/models/jobs/automated_retrieve_params.rb +1 -1
  31. data/lib/finch-api/models/jobs/manual_retrieve_params.rb +1 -1
  32. data/lib/finch-api/models/payroll/pay_group_list_params.rb +1 -1
  33. data/lib/finch-api/models/payroll/pay_group_retrieve_params.rb +1 -1
  34. data/lib/finch-api/models/provider_list_params.rb +1 -1
  35. data/lib/finch-api/models/request_forwarding_forward_params.rb +1 -1
  36. data/lib/finch-api/models/sandbox/company_update_params.rb +1 -1
  37. data/lib/finch-api/models/sandbox/connection_create_params.rb +1 -1
  38. data/lib/finch-api/models/sandbox/connections/account_create_params.rb +1 -1
  39. data/lib/finch-api/models/sandbox/connections/account_update_params.rb +1 -1
  40. data/lib/finch-api/models/sandbox/directory_create_params.rb +1 -1
  41. data/lib/finch-api/models/sandbox/employment_update_params.rb +1 -1
  42. data/lib/finch-api/models/sandbox/individual_update_params.rb +1 -1
  43. data/lib/finch-api/models/sandbox/job_create_params.rb +1 -1
  44. data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rb +1 -1
  45. data/lib/finch-api/models/sandbox/jobs/configuration_update_params.rb +1 -1
  46. data/lib/finch-api/models/sandbox/payment_create_params.rb +1 -1
  47. data/lib/finch-api/page.rb +4 -4
  48. data/lib/finch-api/request_options.rb +0 -33
  49. data/lib/finch-api/responses_page.rb +3 -3
  50. data/lib/finch-api/single_page.rb +3 -3
  51. data/lib/finch-api/transport/base_client.rb +459 -0
  52. data/lib/finch-api/transport/pooled_net_requester.rb +182 -0
  53. data/lib/finch-api/type/array_of.rb +110 -0
  54. data/lib/finch-api/type/base_model.rb +355 -0
  55. data/lib/finch-api/type/base_page.rb +61 -0
  56. data/lib/finch-api/type/boolean_model.rb +52 -0
  57. data/lib/finch-api/type/converter.rb +211 -0
  58. data/lib/finch-api/type/enum.rb +105 -0
  59. data/lib/finch-api/type/hash_of.rb +136 -0
  60. data/lib/finch-api/type/request_parameters.rb +38 -0
  61. data/lib/finch-api/type/union.rb +204 -0
  62. data/lib/finch-api/type/unknown.rb +56 -0
  63. data/lib/finch-api/type.rb +23 -0
  64. data/lib/finch-api/version.rb +1 -1
  65. data/lib/finch-api.rb +13 -4
  66. data/rbi/lib/finch-api/client.rbi +1 -1
  67. data/rbi/lib/finch-api/individuals_page.rbi +1 -1
  68. data/rbi/lib/finch-api/models/access_token_create_params.rbi +1 -1
  69. data/rbi/lib/finch-api/models/account_disconnect_params.rbi +1 -1
  70. data/rbi/lib/finch-api/models/account_introspect_params.rbi +1 -1
  71. data/rbi/lib/finch-api/models/connect/session_new_params.rbi +1 -1
  72. data/rbi/lib/finch-api/models/connect/session_reauthenticate_params.rbi +1 -1
  73. data/rbi/lib/finch-api/models/hris/benefit_create_params.rbi +1 -1
  74. data/rbi/lib/finch-api/models/hris/benefit_list_params.rbi +1 -1
  75. data/rbi/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rbi +1 -1
  76. data/rbi/lib/finch-api/models/hris/benefit_retrieve_params.rbi +1 -1
  77. data/rbi/lib/finch-api/models/hris/benefit_update_params.rbi +1 -1
  78. data/rbi/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rbi +1 -1
  79. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbi +1 -1
  80. data/rbi/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +1 -1
  81. data/rbi/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rbi +1 -1
  82. data/rbi/lib/finch-api/models/hris/company_retrieve_params.rbi +1 -1
  83. data/rbi/lib/finch-api/models/hris/directory_list_individuals_params.rbi +1 -1
  84. data/rbi/lib/finch-api/models/hris/directory_list_params.rbi +1 -1
  85. data/rbi/lib/finch-api/models/hris/document_list_params.rbi +1 -1
  86. data/rbi/lib/finch-api/models/hris/document_retreive_params.rbi +1 -1
  87. data/rbi/lib/finch-api/models/hris/employment_retrieve_many_params.rbi +1 -1
  88. data/rbi/lib/finch-api/models/hris/individual_retrieve_many_params.rbi +1 -1
  89. data/rbi/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rbi +1 -1
  90. data/rbi/lib/finch-api/models/hris/payment_list_params.rbi +1 -1
  91. data/rbi/lib/finch-api/models/jobs/automated_create_params.rbi +1 -1
  92. data/rbi/lib/finch-api/models/jobs/automated_list_params.rbi +1 -1
  93. data/rbi/lib/finch-api/models/jobs/automated_retrieve_params.rbi +1 -1
  94. data/rbi/lib/finch-api/models/jobs/manual_retrieve_params.rbi +1 -1
  95. data/rbi/lib/finch-api/models/payroll/pay_group_list_params.rbi +1 -1
  96. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_params.rbi +1 -1
  97. data/rbi/lib/finch-api/models/provider_list_params.rbi +1 -1
  98. data/rbi/lib/finch-api/models/request_forwarding_forward_params.rbi +1 -1
  99. data/rbi/lib/finch-api/models/sandbox/company_update_params.rbi +1 -1
  100. data/rbi/lib/finch-api/models/sandbox/connection_create_params.rbi +1 -1
  101. data/rbi/lib/finch-api/models/sandbox/connections/account_create_params.rbi +1 -1
  102. data/rbi/lib/finch-api/models/sandbox/connections/account_update_params.rbi +1 -1
  103. data/rbi/lib/finch-api/models/sandbox/directory_create_params.rbi +1 -1
  104. data/rbi/lib/finch-api/models/sandbox/directory_create_response.rbi +1 -1
  105. data/rbi/lib/finch-api/models/sandbox/employment_update_params.rbi +1 -1
  106. data/rbi/lib/finch-api/models/sandbox/individual_update_params.rbi +1 -1
  107. data/rbi/lib/finch-api/models/sandbox/job_create_params.rbi +1 -1
  108. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbi +1 -1
  109. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbi +4 -1
  110. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_update_params.rbi +1 -1
  111. data/rbi/lib/finch-api/models/sandbox/payment_create_params.rbi +1 -1
  112. data/rbi/lib/finch-api/page.rbi +1 -1
  113. data/rbi/lib/finch-api/request_options.rbi +0 -15
  114. data/rbi/lib/finch-api/responses_page.rbi +1 -1
  115. data/rbi/lib/finch-api/single_page.rbi +1 -1
  116. data/rbi/lib/finch-api/transport/base_client.rbi +204 -0
  117. data/rbi/lib/finch-api/transport/pooled_net_requester.rbi +64 -0
  118. data/rbi/lib/finch-api/type/array_of.rbi +82 -0
  119. data/rbi/lib/finch-api/type/base_model.rbi +191 -0
  120. data/rbi/lib/finch-api/type/base_page.rbi +38 -0
  121. data/rbi/lib/finch-api/type/boolean_model.rbi +41 -0
  122. data/rbi/lib/finch-api/type/converter.rbi +101 -0
  123. data/rbi/lib/finch-api/type/enum.rbi +58 -0
  124. data/rbi/lib/finch-api/type/hash_of.rbi +86 -0
  125. data/rbi/lib/finch-api/type/request_parameters.rbi +20 -0
  126. data/rbi/lib/finch-api/type/union.rbi +66 -0
  127. data/rbi/lib/finch-api/type/unknown.rbi +37 -0
  128. data/rbi/lib/finch-api/type.rbi +23 -0
  129. data/rbi/lib/finch-api/version.rbi +1 -1
  130. data/sig/finch-api/client.rbs +1 -1
  131. data/sig/finch-api/individuals_page.rbs +1 -1
  132. data/sig/finch-api/models/access_token_create_params.rbs +1 -1
  133. data/sig/finch-api/models/account_disconnect_params.rbs +1 -1
  134. data/sig/finch-api/models/account_introspect_params.rbs +1 -1
  135. data/sig/finch-api/models/connect/session_new_params.rbs +1 -1
  136. data/sig/finch-api/models/connect/session_reauthenticate_params.rbs +1 -1
  137. data/sig/finch-api/models/hris/benefit_create_params.rbs +1 -1
  138. data/sig/finch-api/models/hris/benefit_list_params.rbs +1 -1
  139. data/sig/finch-api/models/hris/benefit_list_supported_benefits_params.rbs +1 -1
  140. data/sig/finch-api/models/hris/benefit_retrieve_params.rbs +1 -1
  141. data/sig/finch-api/models/hris/benefit_update_params.rbs +1 -1
  142. data/sig/finch-api/models/hris/benefits/individual_enroll_many_params.rbs +1 -1
  143. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbs +1 -1
  144. data/sig/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbs +1 -1
  145. data/sig/finch-api/models/hris/benefits/individual_unenroll_many_params.rbs +1 -1
  146. data/sig/finch-api/models/hris/company_retrieve_params.rbs +1 -1
  147. data/sig/finch-api/models/hris/directory_list_individuals_params.rbs +1 -1
  148. data/sig/finch-api/models/hris/directory_list_params.rbs +1 -1
  149. data/sig/finch-api/models/hris/document_list_params.rbs +1 -1
  150. data/sig/finch-api/models/hris/document_retreive_params.rbs +1 -1
  151. data/sig/finch-api/models/hris/employment_retrieve_many_params.rbs +1 -1
  152. data/sig/finch-api/models/hris/individual_retrieve_many_params.rbs +1 -1
  153. data/sig/finch-api/models/hris/pay_statement_retrieve_many_params.rbs +1 -1
  154. data/sig/finch-api/models/hris/payment_list_params.rbs +1 -1
  155. data/sig/finch-api/models/jobs/automated_create_params.rbs +1 -1
  156. data/sig/finch-api/models/jobs/automated_list_params.rbs +1 -1
  157. data/sig/finch-api/models/jobs/automated_retrieve_params.rbs +1 -1
  158. data/sig/finch-api/models/jobs/manual_retrieve_params.rbs +1 -1
  159. data/sig/finch-api/models/payroll/pay_group_list_params.rbs +1 -1
  160. data/sig/finch-api/models/payroll/pay_group_retrieve_params.rbs +1 -1
  161. data/sig/finch-api/models/provider_list_params.rbs +1 -1
  162. data/sig/finch-api/models/request_forwarding_forward_params.rbs +1 -1
  163. data/sig/finch-api/models/sandbox/company_update_params.rbs +1 -1
  164. data/sig/finch-api/models/sandbox/connection_create_params.rbs +1 -1
  165. data/sig/finch-api/models/sandbox/connections/account_create_params.rbs +1 -1
  166. data/sig/finch-api/models/sandbox/connections/account_update_params.rbs +1 -1
  167. data/sig/finch-api/models/sandbox/directory_create_params.rbs +1 -1
  168. data/sig/finch-api/models/sandbox/employment_update_params.rbs +1 -1
  169. data/sig/finch-api/models/sandbox/individual_update_params.rbs +1 -1
  170. data/sig/finch-api/models/sandbox/job_create_params.rbs +1 -1
  171. data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbs +1 -1
  172. data/sig/finch-api/models/sandbox/jobs/configuration_update_params.rbs +1 -1
  173. data/sig/finch-api/models/sandbox/payment_create_params.rbs +1 -1
  174. data/sig/finch-api/page.rbs +1 -1
  175. data/sig/finch-api/request_options.rbs +0 -10
  176. data/sig/finch-api/responses_page.rbs +1 -1
  177. data/sig/finch-api/single_page.rbs +1 -1
  178. data/sig/finch-api/transport/base_client.rbs +110 -0
  179. data/sig/finch-api/transport/pooled_net_requester.rbs +39 -0
  180. data/sig/finch-api/type/array_of.rbs +36 -0
  181. data/sig/finch-api/type/base_model.rbs +73 -0
  182. data/sig/finch-api/type/base_page.rbs +22 -0
  183. data/sig/finch-api/type/boolean_model.rbs +18 -0
  184. data/sig/finch-api/type/converter.rbs +36 -0
  185. data/sig/finch-api/type/enum.rbs +22 -0
  186. data/sig/finch-api/type/hash_of.rbs +36 -0
  187. data/sig/finch-api/type/request_parameters.rbs +13 -0
  188. data/sig/finch-api/type/union.rbs +37 -0
  189. data/sig/finch-api/type/unknown.rbs +18 -0
  190. data/sig/finch-api/type.rbs +22 -0
  191. data/sig/finch-api/version.rbs +1 -1
  192. metadata +40 -13
  193. data/lib/finch-api/base_client.rb +0 -457
  194. data/lib/finch-api/base_model.rb +0 -1174
  195. data/lib/finch-api/base_page.rb +0 -59
  196. data/lib/finch-api/pooled_net_requester.rb +0 -180
  197. data/rbi/lib/finch-api/base_client.rbi +0 -196
  198. data/rbi/lib/finch-api/base_model.rbi +0 -609
  199. data/rbi/lib/finch-api/base_page.rbi +0 -36
  200. data/rbi/lib/finch-api/pooled_net_requester.rbi +0 -59
  201. data/sig/finch-api/base_client.rbs +0 -106
  202. data/sig/finch-api/base_model.rbs +0 -248
  203. data/sig/finch-api/base_page.rbs +0 -20
  204. 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