finch-api 0.1.0.pre.alpha.1 → 0.1.0.pre.alpha.3

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 (417) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -20
  3. data/lib/finch-api/base_client.rb +52 -59
  4. data/lib/finch-api/base_model.rb +453 -415
  5. data/lib/finch-api/base_page.rb +34 -15
  6. data/lib/finch-api/client.rb +3 -7
  7. data/lib/finch-api/errors.rb +12 -17
  8. data/lib/finch-api/extern.rb +1 -4
  9. data/lib/finch-api/individuals_page.rb +28 -34
  10. data/lib/finch-api/models/account_update_event.rb +6 -31
  11. data/lib/finch-api/models/company_event.rb +3 -11
  12. data/lib/finch-api/models/connect/session_new_params.rb +9 -52
  13. data/lib/finch-api/models/connect/session_reauthenticate_params.rb +3 -22
  14. data/lib/finch-api/models/connection_status_type.rb +3 -21
  15. data/lib/finch-api/models/create_access_token_response.rb +6 -30
  16. data/lib/finch-api/models/directory_event.rb +3 -15
  17. data/lib/finch-api/models/employment_event.rb +3 -15
  18. data/lib/finch-api/models/hris/benefit_contribution.rb +3 -14
  19. data/lib/finch-api/models/hris/benefit_features_and_operations.rb +9 -39
  20. data/lib/finch-api/models/hris/benefit_frequency.rb +3 -15
  21. data/lib/finch-api/models/hris/benefit_type.rb +3 -22
  22. data/lib/finch-api/models/hris/benefits/enrolled_individual.rb +3 -18
  23. data/lib/finch-api/models/hris/benefits/individual_benefit.rb +3 -14
  24. data/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rb +9 -40
  25. data/lib/finch-api/models/hris/company.rb +9 -52
  26. data/lib/finch-api/models/hris/document_list_params.rb +3 -13
  27. data/lib/finch-api/models/hris/document_response.rb +3 -14
  28. data/lib/finch-api/models/hris/document_retreive_response.rb +7 -23
  29. data/lib/finch-api/models/hris/employment_data.rb +9 -58
  30. data/lib/finch-api/models/hris/individual.rb +12 -66
  31. data/lib/finch-api/models/hris/pay_statement.rb +12 -70
  32. data/lib/finch-api/models/hris/payment.rb +3 -21
  33. data/lib/finch-api/models/hris/supported_benefit.rb +9 -39
  34. data/lib/finch-api/models/hris/w42005.rb +12 -49
  35. data/lib/finch-api/models/hris/w42020.rb +8 -29
  36. data/lib/finch-api/models/income.rb +3 -22
  37. data/lib/finch-api/models/individual_event.rb +3 -15
  38. data/lib/finch-api/models/introspection.rb +9 -50
  39. data/lib/finch-api/models/job_completion_event.rb +3 -21
  40. data/lib/finch-api/models/jobs/automated_async_job.rb +6 -35
  41. data/lib/finch-api/models/jobs/automated_create_params.rb +3 -12
  42. data/lib/finch-api/models/jobs/automated_list_response.rb +100 -0
  43. data/lib/finch-api/models/jobs/manual_async_job.rb +3 -17
  44. data/lib/finch-api/models/operation_support.rb +3 -18
  45. data/lib/finch-api/models/pay_statement_event.rb +3 -15
  46. data/lib/finch-api/models/payment_event.rb +3 -15
  47. data/lib/finch-api/models/payroll/pay_group_list_response.rb +3 -21
  48. data/lib/finch-api/models/payroll/pay_group_retrieve_response.rb +3 -21
  49. data/lib/finch-api/models/provider.rb +3 -20
  50. data/lib/finch-api/models/sandbox/company_update_params.rb +9 -52
  51. data/lib/finch-api/models/sandbox/company_update_response.rb +9 -52
  52. data/lib/finch-api/models/sandbox/connection_create_params.rb +3 -17
  53. data/lib/finch-api/models/sandbox/connection_create_response.rb +3 -17
  54. data/lib/finch-api/models/sandbox/connections/account_create_params.rb +3 -17
  55. data/lib/finch-api/models/sandbox/connections/account_create_response.rb +3 -17
  56. data/lib/finch-api/models/sandbox/connections/account_update_response.rb +3 -17
  57. data/lib/finch-api/models/sandbox/directory_create_params.rb +24 -131
  58. data/lib/finch-api/models/sandbox/employment_update_params.rb +9 -58
  59. data/lib/finch-api/models/sandbox/employment_update_response.rb +9 -58
  60. data/lib/finch-api/models/sandbox/individual_update_params.rb +15 -73
  61. data/lib/finch-api/models/sandbox/individual_update_response.rb +15 -73
  62. data/lib/finch-api/models/sandbox/job_create_params.rb +3 -12
  63. data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rb +2 -1
  64. data/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rb +6 -28
  65. data/lib/finch-api/models/sandbox/payment_create_params.rb +12 -70
  66. data/lib/finch-api/models/webhook_event.rb +10 -27
  67. data/lib/finch-api/page.rb +28 -34
  68. data/lib/finch-api/pooled_net_requester.rb +51 -46
  69. data/lib/finch-api/request_options.rb +5 -12
  70. data/lib/finch-api/resources/access_tokens.rb +0 -2
  71. data/lib/finch-api/resources/account.rb +0 -3
  72. data/lib/finch-api/resources/connect/sessions.rb +0 -3
  73. data/lib/finch-api/resources/connect.rb +0 -1
  74. data/lib/finch-api/resources/hris/benefits/individuals.rb +2 -6
  75. data/lib/finch-api/resources/hris/benefits.rb +0 -6
  76. data/lib/finch-api/resources/hris/company.rb +0 -2
  77. data/lib/finch-api/resources/hris/directory.rb +1 -24
  78. data/lib/finch-api/resources/hris/documents.rb +4 -7
  79. data/lib/finch-api/resources/hris/employments.rb +0 -2
  80. data/lib/finch-api/resources/hris/individuals.rb +0 -2
  81. data/lib/finch-api/resources/hris/pay_statements.rb +0 -2
  82. data/lib/finch-api/resources/hris/payments.rb +0 -2
  83. data/lib/finch-api/resources/hris.rb +0 -1
  84. data/lib/finch-api/resources/jobs/automated.rb +2 -7
  85. data/lib/finch-api/resources/jobs/manual.rb +0 -2
  86. data/lib/finch-api/resources/jobs.rb +0 -1
  87. data/lib/finch-api/resources/payroll/pay_groups.rb +0 -3
  88. data/lib/finch-api/resources/payroll.rb +0 -1
  89. data/lib/finch-api/resources/providers.rb +0 -2
  90. data/lib/finch-api/resources/request_forwarding.rb +0 -2
  91. data/lib/finch-api/resources/sandbox/company.rb +0 -2
  92. data/lib/finch-api/resources/sandbox/connections/accounts.rb +0 -3
  93. data/lib/finch-api/resources/sandbox/connections.rb +0 -2
  94. data/lib/finch-api/resources/sandbox/directory.rb +0 -2
  95. data/lib/finch-api/resources/sandbox/employment.rb +0 -2
  96. data/lib/finch-api/resources/sandbox/individual.rb +0 -2
  97. data/lib/finch-api/resources/sandbox/jobs/configuration.rb +0 -3
  98. data/lib/finch-api/resources/sandbox/jobs.rb +0 -2
  99. data/lib/finch-api/resources/sandbox/payment.rb +0 -2
  100. data/lib/finch-api/resources/sandbox.rb +0 -1
  101. data/lib/finch-api/resources/webhooks.rb +0 -1
  102. data/lib/finch-api/responses_page.rb +24 -31
  103. data/lib/finch-api/single_page.rb +23 -31
  104. data/lib/finch-api/util.rb +216 -124
  105. data/lib/finch-api/version.rb +1 -1
  106. data/lib/finch-api.rb +17 -0
  107. data/manifest.yaml +1 -0
  108. data/rbi/lib/finch-api/base_client.rbi +89 -66
  109. data/rbi/lib/finch-api/base_model.rbi +403 -236
  110. data/rbi/lib/finch-api/base_page.rbi +3 -6
  111. data/rbi/lib/finch-api/client.rbi +23 -28
  112. data/rbi/lib/finch-api/errors.rbi +20 -22
  113. data/rbi/lib/finch-api/extern.rbi +1 -1
  114. data/rbi/lib/finch-api/individuals_page.rbi +5 -23
  115. data/rbi/lib/finch-api/models/access_token_create_params.rbi +13 -24
  116. data/rbi/lib/finch-api/models/account_disconnect_params.rbi +9 -2
  117. data/rbi/lib/finch-api/models/account_introspect_params.rbi +9 -2
  118. data/rbi/lib/finch-api/models/account_update_event.rbi +871 -983
  119. data/rbi/lib/finch-api/models/base_webhook_event.rbi +13 -19
  120. data/rbi/lib/finch-api/models/company_event.rbi +28 -20
  121. data/rbi/lib/finch-api/models/connect/session_new_params.rbi +90 -104
  122. data/rbi/lib/finch-api/models/connect/session_new_response.rbi +6 -14
  123. data/rbi/lib/finch-api/models/connect/session_reauthenticate_params.rbi +37 -47
  124. data/rbi/lib/finch-api/models/connect/session_reauthenticate_response.rbi +6 -14
  125. data/rbi/lib/finch-api/models/connection_status_type.rbi +13 -9
  126. data/rbi/lib/finch-api/models/create_access_token_response.rbi +61 -78
  127. data/rbi/lib/finch-api/models/directory_event.rbi +42 -27
  128. data/rbi/lib/finch-api/models/disconnect_response.rbi +4 -8
  129. data/rbi/lib/finch-api/models/employment_event.rbi +42 -27
  130. data/rbi/lib/finch-api/models/hris/benefit_contribution.rbi +29 -21
  131. data/rbi/lib/finch-api/models/hris/benefit_create_params.rbi +18 -26
  132. data/rbi/lib/finch-api/models/hris/benefit_features_and_operations.rbi +199 -86
  133. data/rbi/lib/finch-api/models/hris/benefit_frequency.rbi +9 -6
  134. data/rbi/lib/finch-api/models/hris/benefit_list_params.rbi +9 -2
  135. data/rbi/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rbi +9 -2
  136. data/rbi/lib/finch-api/models/hris/benefit_retrieve_params.rbi +9 -2
  137. data/rbi/lib/finch-api/models/hris/benefit_type.rbi +26 -22
  138. data/rbi/lib/finch-api/models/hris/benefit_update_params.rbi +7 -11
  139. data/rbi/lib/finch-api/models/hris/benefits/enrolled_individual.rbi +43 -49
  140. data/rbi/lib/finch-api/models/hris/benefits/individual_benefit.rbi +74 -63
  141. data/rbi/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rbi +249 -104
  142. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbi +9 -2
  143. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbi +4 -14
  144. data/rbi/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +11 -8
  145. data/rbi/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rbi +7 -8
  146. data/rbi/lib/finch-api/models/hris/benefits/unenrolled_individual.rbi +23 -39
  147. data/rbi/lib/finch-api/models/hris/benefits_support.rbi +88 -86
  148. data/rbi/lib/finch-api/models/hris/benfit_contribution.rbi +1 -1
  149. data/rbi/lib/finch-api/models/hris/company.rbi +119 -171
  150. data/rbi/lib/finch-api/models/hris/company_benefit.rbi +13 -32
  151. data/rbi/lib/finch-api/models/hris/company_retrieve_params.rbi +9 -2
  152. data/rbi/lib/finch-api/models/hris/create_company_benefits_response.rbi +3 -8
  153. data/rbi/lib/finch-api/models/hris/directory_list_individuals_params.rbi +11 -13
  154. data/rbi/lib/finch-api/models/hris/directory_list_params.rbi +11 -13
  155. data/rbi/lib/finch-api/models/hris/document_list_params.rbi +32 -31
  156. data/rbi/lib/finch-api/models/hris/document_list_response.rbi +10 -17
  157. data/rbi/lib/finch-api/models/hris/document_response.rbi +40 -43
  158. data/rbi/lib/finch-api/models/hris/document_retreive_params.rbi +9 -2
  159. data/rbi/lib/finch-api/models/hris/document_retreive_response.rbi +6 -4
  160. data/rbi/lib/finch-api/models/hris/employment_data.rbi +163 -205
  161. data/rbi/lib/finch-api/models/hris/employment_data_response.rbi +18 -17
  162. data/rbi/lib/finch-api/models/hris/employment_retrieve_many_params.rbi +12 -21
  163. data/rbi/lib/finch-api/models/hris/individual.rbi +126 -151
  164. data/rbi/lib/finch-api/models/hris/individual_in_directory.rbi +42 -68
  165. data/rbi/lib/finch-api/models/hris/individual_response.rbi +18 -17
  166. data/rbi/lib/finch-api/models/hris/individual_retrieve_many_params.rbi +27 -31
  167. data/rbi/lib/finch-api/models/hris/pay_statement.rbi +290 -341
  168. data/rbi/lib/finch-api/models/hris/pay_statement_response.rbi +18 -20
  169. data/rbi/lib/finch-api/models/hris/pay_statement_response_body.rbi +13 -16
  170. data/rbi/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rbi +18 -31
  171. data/rbi/lib/finch-api/models/hris/payment.rbi +63 -103
  172. data/rbi/lib/finch-api/models/hris/payment_list_params.rbi +9 -15
  173. data/rbi/lib/finch-api/models/hris/support_per_benefit_type.rbi +10 -14
  174. data/rbi/lib/finch-api/models/hris/supported_benefit.rbi +83 -79
  175. data/rbi/lib/finch-api/models/hris/update_company_benefit_response.rbi +3 -8
  176. data/rbi/lib/finch-api/models/hris/w42005.rbi +86 -70
  177. data/rbi/lib/finch-api/models/hris/w42020.rbi +84 -86
  178. data/rbi/lib/finch-api/models/income.rbi +34 -41
  179. data/rbi/lib/finch-api/models/individual_event.rbi +42 -27
  180. data/rbi/lib/finch-api/models/introspection.rbi +138 -178
  181. data/rbi/lib/finch-api/models/job_completion_event.rbi +48 -37
  182. data/rbi/lib/finch-api/models/jobs/automated_async_job.rbi +66 -94
  183. data/rbi/lib/finch-api/models/jobs/automated_create_params.rbi +26 -33
  184. data/rbi/lib/finch-api/models/jobs/automated_create_response.rbi +11 -31
  185. data/rbi/lib/finch-api/models/jobs/automated_list_params.rbi +11 -13
  186. data/rbi/lib/finch-api/models/jobs/automated_list_response.rbi +126 -0
  187. data/rbi/lib/finch-api/models/jobs/automated_retrieve_params.rbi +9 -2
  188. data/rbi/lib/finch-api/models/jobs/manual_async_job.rbi +32 -27
  189. data/rbi/lib/finch-api/models/jobs/manual_retrieve_params.rbi +9 -2
  190. data/rbi/lib/finch-api/models/location.rbi +16 -59
  191. data/rbi/lib/finch-api/models/money.rbi +7 -13
  192. data/rbi/lib/finch-api/models/operation_support.rbi +18 -7
  193. data/rbi/lib/finch-api/models/operation_support_matrix.rbi +65 -27
  194. data/rbi/lib/finch-api/models/paging.rbi +10 -12
  195. data/rbi/lib/finch-api/models/pay_statement_event.rbi +46 -32
  196. data/rbi/lib/finch-api/models/payment_event.rbi +39 -34
  197. data/rbi/lib/finch-api/models/payroll/pay_group_list_params.rbi +9 -13
  198. data/rbi/lib/finch-api/models/payroll/pay_group_list_response.rbi +55 -30
  199. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_params.rbi +9 -2
  200. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_response.rbi +45 -46
  201. data/rbi/lib/finch-api/models/provider.rbi +873 -964
  202. data/rbi/lib/finch-api/models/provider_list_params.rbi +9 -2
  203. data/rbi/lib/finch-api/models/request_forwarding_forward_params.rbi +20 -33
  204. data/rbi/lib/finch-api/models/request_forwarding_forward_response.rbi +40 -59
  205. data/rbi/lib/finch-api/models/sandbox/company_update_params.rbi +144 -166
  206. data/rbi/lib/finch-api/models/sandbox/company_update_response.rbi +145 -174
  207. data/rbi/lib/finch-api/models/sandbox/connection_create_params.rbi +43 -39
  208. data/rbi/lib/finch-api/models/sandbox/connection_create_response.rbi +38 -59
  209. data/rbi/lib/finch-api/models/sandbox/connections/account_create_params.rbi +62 -39
  210. data/rbi/lib/finch-api/models/sandbox/connections/account_create_response.rbi +54 -62
  211. data/rbi/lib/finch-api/models/sandbox/connections/account_update_params.rbi +17 -11
  212. data/rbi/lib/finch-api/models/sandbox/connections/account_update_response.rbi +55 -54
  213. data/rbi/lib/finch-api/models/sandbox/directory_create_params.rbi +377 -332
  214. data/rbi/lib/finch-api/models/sandbox/directory_create_response.rbi +1 -1
  215. data/rbi/lib/finch-api/models/sandbox/employment_update_params.rbi +190 -194
  216. data/rbi/lib/finch-api/models/sandbox/employment_update_response.rbi +195 -198
  217. data/rbi/lib/finch-api/models/sandbox/individual_update_params.rbi +148 -145
  218. data/rbi/lib/finch-api/models/sandbox/individual_update_response.rbi +160 -151
  219. data/rbi/lib/finch-api/models/sandbox/job_create_params.rbi +22 -19
  220. data/rbi/lib/finch-api/models/sandbox/job_create_response.rbi +11 -31
  221. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbi +9 -2
  222. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbi +2 -1
  223. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_update_params.rbi +9 -2
  224. data/rbi/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbi +56 -26
  225. data/rbi/lib/finch-api/models/sandbox/payment_create_params.rbi +409 -393
  226. data/rbi/lib/finch-api/models/sandbox/payment_create_response.rbi +6 -14
  227. data/rbi/lib/finch-api/models/webhook_event.rbi +4 -4
  228. data/rbi/lib/finch-api/page.rbi +5 -23
  229. data/rbi/lib/finch-api/pooled_net_requester.rbi +39 -16
  230. data/rbi/lib/finch-api/request_options.rbi +33 -54
  231. data/rbi/lib/finch-api/resources/access_tokens.rbi +4 -3
  232. data/rbi/lib/finch-api/resources/account.rbi +6 -4
  233. data/rbi/lib/finch-api/resources/connect/sessions.rbi +17 -8
  234. data/rbi/lib/finch-api/resources/connect.rbi +3 -4
  235. data/rbi/lib/finch-api/resources/hris/benefits/individuals.rbi +33 -10
  236. data/rbi/lib/finch-api/resources/hris/benefits.rbi +32 -13
  237. data/rbi/lib/finch-api/resources/hris/company.rbi +4 -3
  238. data/rbi/lib/finch-api/resources/hris/directory.rbi +11 -15
  239. data/rbi/lib/finch-api/resources/hris/documents.rbi +27 -7
  240. data/rbi/lib/finch-api/resources/hris/employments.rbi +10 -5
  241. data/rbi/lib/finch-api/resources/hris/individuals.rbi +6 -5
  242. data/rbi/lib/finch-api/resources/hris/pay_statements.rbi +13 -5
  243. data/rbi/lib/finch-api/resources/hris/payments.rbi +13 -4
  244. data/rbi/lib/finch-api/resources/hris.rbi +10 -18
  245. data/rbi/lib/finch-api/resources/jobs/automated.rbi +39 -10
  246. data/rbi/lib/finch-api/resources/jobs/manual.rbi +5 -3
  247. data/rbi/lib/finch-api/resources/jobs.rbi +4 -6
  248. data/rbi/lib/finch-api/resources/payroll/pay_groups.rbi +6 -4
  249. data/rbi/lib/finch-api/resources/payroll.rbi +3 -4
  250. data/rbi/lib/finch-api/resources/providers.rbi +4 -3
  251. data/rbi/lib/finch-api/resources/request_forwarding.rbi +27 -4
  252. data/rbi/lib/finch-api/resources/sandbox/company.rbi +19 -7
  253. data/rbi/lib/finch-api/resources/sandbox/connections/accounts.rbi +19 -7
  254. data/rbi/lib/finch-api/resources/sandbox/connections.rbi +10 -6
  255. data/rbi/lib/finch-api/resources/sandbox/directory.rbi +12 -6
  256. data/rbi/lib/finch-api/resources/sandbox/employment.rbi +30 -11
  257. data/rbi/lib/finch-api/resources/sandbox/individual.rbi +26 -8
  258. data/rbi/lib/finch-api/resources/sandbox/jobs/configuration.rbi +9 -7
  259. data/rbi/lib/finch-api/resources/sandbox/jobs.rbi +11 -7
  260. data/rbi/lib/finch-api/resources/sandbox/payment.rbi +5 -4
  261. data/rbi/lib/finch-api/resources/sandbox.rbi +9 -16
  262. data/rbi/lib/finch-api/resources/webhooks.rbi +2 -2
  263. data/rbi/lib/finch-api/responses_page.rbi +4 -17
  264. data/rbi/lib/finch-api/single_page.rbi +4 -12
  265. data/rbi/lib/finch-api/util.rbi +228 -115
  266. data/rbi/lib/finch-api/version.rbi +1 -1
  267. data/sig/finch-api/base_client.rbs +20 -15
  268. data/sig/finch-api/base_model.rbs +36 -18
  269. data/sig/finch-api/base_page.rbs +1 -1
  270. data/sig/finch-api/client.rbs +8 -8
  271. data/sig/finch-api/errors.rbs +21 -21
  272. data/sig/finch-api/individuals_page.rbs +2 -7
  273. data/sig/finch-api/models/access_token_create_params.rbs +7 -12
  274. data/sig/finch-api/models/account_disconnect_params.rbs +1 -6
  275. data/sig/finch-api/models/account_introspect_params.rbs +1 -6
  276. data/sig/finch-api/models/account_update_event.rbs +204 -361
  277. data/sig/finch-api/models/base_webhook_event.rbs +5 -5
  278. data/sig/finch-api/models/company_event.rbs +13 -11
  279. data/sig/finch-api/models/connect/session_new_params.rbs +28 -32
  280. data/sig/finch-api/models/connect/session_new_response.rbs +1 -6
  281. data/sig/finch-api/models/connect/session_reauthenticate_params.rbs +11 -14
  282. data/sig/finch-api/models/connect/session_reauthenticate_response.rbs +1 -6
  283. data/sig/finch-api/models/connection_status_type.rbs +4 -2
  284. data/sig/finch-api/models/create_access_token_response.rbs +20 -21
  285. data/sig/finch-api/models/directory_event.rbs +13 -19
  286. data/sig/finch-api/models/disconnect_response.rbs +1 -5
  287. data/sig/finch-api/models/employment_event.rbs +13 -19
  288. data/sig/finch-api/models/hris/benefit_contribution.rbs +8 -11
  289. data/sig/finch-api/models/hris/benefit_create_params.rbs +6 -11
  290. data/sig/finch-api/models/hris/benefit_features_and_operations.rbs +25 -29
  291. data/sig/finch-api/models/hris/benefit_frequency.rbs +4 -2
  292. data/sig/finch-api/models/hris/benefit_list_params.rbs +1 -6
  293. data/sig/finch-api/models/hris/benefit_list_supported_benefits_params.rbs +1 -6
  294. data/sig/finch-api/models/hris/benefit_retrieve_params.rbs +1 -6
  295. data/sig/finch-api/models/hris/benefit_type.rbs +4 -2
  296. data/sig/finch-api/models/hris/benefit_update_params.rbs +4 -6
  297. data/sig/finch-api/models/hris/benefits/enrolled_individual.rbs +14 -18
  298. data/sig/finch-api/models/hris/benefits/individual_benefit.rbs +16 -25
  299. data/sig/finch-api/models/hris/benefits/individual_enroll_many_params.rbs +35 -54
  300. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbs +1 -6
  301. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbs +4 -6
  302. data/sig/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbs +4 -9
  303. data/sig/finch-api/models/hris/benefits/individual_unenroll_many_params.rbs +4 -9
  304. data/sig/finch-api/models/hris/benefits/unenrolled_individual.rbs +10 -16
  305. data/sig/finch-api/models/hris/benefits_support.rbs +14 -18
  306. data/sig/finch-api/models/hris/benfit_contribution.rbs +0 -1
  307. data/sig/finch-api/models/hris/company.rbs +39 -57
  308. data/sig/finch-api/models/hris/company_benefit.rbs +6 -10
  309. data/sig/finch-api/models/hris/company_retrieve_params.rbs +1 -6
  310. data/sig/finch-api/models/hris/create_company_benefits_response.rbs +1 -6
  311. data/sig/finch-api/models/hris/directory_list_individuals_params.rbs +5 -10
  312. data/sig/finch-api/models/hris/directory_list_params.rbs +5 -10
  313. data/sig/finch-api/models/hris/document_list_params.rbs +11 -14
  314. data/sig/finch-api/models/hris/document_list_response.rbs +4 -9
  315. data/sig/finch-api/models/hris/document_response.rbs +11 -14
  316. data/sig/finch-api/models/hris/document_retreive_params.rbs +1 -6
  317. data/sig/finch-api/models/hris/document_retreive_response.rbs +4 -2
  318. data/sig/finch-api/models/hris/employment_data.rbs +41 -59
  319. data/sig/finch-api/models/hris/employment_data_response.rbs +5 -10
  320. data/sig/finch-api/models/hris/employment_retrieve_many_params.rbs +5 -15
  321. data/sig/finch-api/models/hris/individual.rbs +39 -45
  322. data/sig/finch-api/models/hris/individual_in_directory.rbs +11 -26
  323. data/sig/finch-api/models/hris/individual_response.rbs +5 -10
  324. data/sig/finch-api/models/hris/individual_retrieve_many_params.rbs +7 -22
  325. data/sig/finch-api/models/hris/pay_statement.rbs +75 -131
  326. data/sig/finch-api/models/hris/pay_statement_response.rbs +5 -10
  327. data/sig/finch-api/models/hris/pay_statement_response_body.rbs +4 -9
  328. data/sig/finch-api/models/hris/pay_statement_retrieve_many_params.rbs +9 -15
  329. data/sig/finch-api/models/hris/payment.rbs +19 -26
  330. data/sig/finch-api/models/hris/payment_list_params.rbs +5 -10
  331. data/sig/finch-api/models/hris/support_per_benefit_type.rbs +4 -9
  332. data/sig/finch-api/models/hris/supported_benefit.rbs +22 -21
  333. data/sig/finch-api/models/hris/update_company_benefit_response.rbs +1 -6
  334. data/sig/finch-api/models/hris/w42005.rbs +26 -30
  335. data/sig/finch-api/models/hris/w42020.rbs +23 -25
  336. data/sig/finch-api/models/income.rbs +10 -10
  337. data/sig/finch-api/models/individual_event.rbs +13 -19
  338. data/sig/finch-api/models/introspection.rbs +43 -54
  339. data/sig/finch-api/models/job_completion_event.rbs +13 -20
  340. data/sig/finch-api/models/jobs/automated_async_job.rbs +20 -26
  341. data/sig/finch-api/models/jobs/automated_create_params.rbs +10 -18
  342. data/sig/finch-api/models/jobs/automated_create_response.rbs +6 -11
  343. data/sig/finch-api/models/jobs/automated_list_params.rbs +5 -10
  344. data/sig/finch-api/models/jobs/automated_list_response.rbs +82 -0
  345. data/sig/finch-api/models/jobs/automated_retrieve_params.rbs +1 -6
  346. data/sig/finch-api/models/jobs/manual_async_job.rbs +9 -11
  347. data/sig/finch-api/models/jobs/manual_retrieve_params.rbs +1 -6
  348. data/sig/finch-api/models/location.rbs +10 -12
  349. data/sig/finch-api/models/money.rbs +1 -3
  350. data/sig/finch-api/models/operation_support.rbs +4 -2
  351. data/sig/finch-api/models/operation_support_matrix.rbs +6 -10
  352. data/sig/finch-api/models/paging.rbs +1 -3
  353. data/sig/finch-api/models/pay_statement_event.rbs +13 -20
  354. data/sig/finch-api/models/payment_event.rbs +13 -17
  355. data/sig/finch-api/models/payroll/pay_group_list_params.rbs +5 -10
  356. data/sig/finch-api/models/payroll/pay_group_list_response.rbs +9 -12
  357. data/sig/finch-api/models/payroll/pay_group_retrieve_params.rbs +1 -6
  358. data/sig/finch-api/models/payroll/pay_group_retrieve_response.rbs +10 -13
  359. data/sig/finch-api/models/provider.rbs +200 -347
  360. data/sig/finch-api/models/provider_list_params.rbs +1 -5
  361. data/sig/finch-api/models/request_forwarding_forward_params.rbs +8 -13
  362. data/sig/finch-api/models/request_forwarding_forward_response.rbs +13 -23
  363. data/sig/finch-api/models/sandbox/company_update_params.rbs +39 -58
  364. data/sig/finch-api/models/sandbox/company_update_response.rbs +38 -57
  365. data/sig/finch-api/models/sandbox/connection_create_params.rbs +11 -14
  366. data/sig/finch-api/models/sandbox/connection_create_response.rbs +14 -17
  367. data/sig/finch-api/models/sandbox/connections/account_create_params.rbs +11 -14
  368. data/sig/finch-api/models/sandbox/connections/account_create_response.rbs +13 -16
  369. data/sig/finch-api/models/sandbox/connections/account_update_params.rbs +4 -9
  370. data/sig/finch-api/models/sandbox/connections/account_update_response.rbs +12 -15
  371. data/sig/finch-api/models/sandbox/directory_create_params.rbs +78 -106
  372. data/sig/finch-api/models/sandbox/employment_update_params.rbs +40 -59
  373. data/sig/finch-api/models/sandbox/employment_update_response.rbs +40 -59
  374. data/sig/finch-api/models/sandbox/individual_update_params.rbs +41 -50
  375. data/sig/finch-api/models/sandbox/individual_update_response.rbs +41 -50
  376. data/sig/finch-api/models/sandbox/job_create_params.rbs +8 -11
  377. data/sig/finch-api/models/sandbox/job_create_response.rbs +6 -11
  378. data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbs +1 -6
  379. data/sig/finch-api/models/sandbox/jobs/configuration_update_params.rbs +1 -6
  380. data/sig/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbs +12 -13
  381. data/sig/finch-api/models/sandbox/payment_create_params.rbs +81 -143
  382. data/sig/finch-api/models/sandbox/payment_create_response.rbs +1 -6
  383. data/sig/finch-api/models/webhook_event.rbs +5 -3
  384. data/sig/finch-api/page.rbs +2 -7
  385. data/sig/finch-api/pooled_net_requester.rbs +13 -4
  386. data/sig/finch-api/request_options.rbs +6 -2
  387. data/sig/finch-api/resources/access_tokens.rbs +7 -11
  388. data/sig/finch-api/resources/account.rbs +6 -16
  389. data/sig/finch-api/resources/connect/sessions.rbs +19 -29
  390. data/sig/finch-api/resources/hris/benefits/individuals.rbs +19 -43
  391. data/sig/finch-api/resources/hris/benefits.rbs +21 -48
  392. data/sig/finch-api/resources/hris/company.rbs +3 -8
  393. data/sig/finch-api/resources/hris/directory.rbs +6 -20
  394. data/sig/finch-api/resources/hris/documents.rbs +11 -22
  395. data/sig/finch-api/resources/hris/employments.rbs +4 -9
  396. data/sig/finch-api/resources/hris/individuals.rbs +5 -10
  397. data/sig/finch-api/resources/hris/pay_statements.rbs +4 -9
  398. data/sig/finch-api/resources/hris/payments.rbs +5 -10
  399. data/sig/finch-api/resources/jobs/automated.rbs +14 -30
  400. data/sig/finch-api/resources/jobs/manual.rbs +4 -10
  401. data/sig/finch-api/resources/payroll/pay_groups.rbs +9 -20
  402. data/sig/finch-api/resources/providers.rbs +3 -7
  403. data/sig/finch-api/resources/request_forwarding.rbs +8 -13
  404. data/sig/finch-api/resources/sandbox/company.rbs +11 -16
  405. data/sig/finch-api/resources/sandbox/connections/accounts.rbs +11 -21
  406. data/sig/finch-api/resources/sandbox/connections.rbs +7 -12
  407. data/sig/finch-api/resources/sandbox/directory.rbs +4 -9
  408. data/sig/finch-api/resources/sandbox/employment.rbs +22 -28
  409. data/sig/finch-api/resources/sandbox/individual.rbs +16 -22
  410. data/sig/finch-api/resources/sandbox/jobs/configuration.rbs +8 -18
  411. data/sig/finch-api/resources/sandbox/jobs.rbs +4 -9
  412. data/sig/finch-api/resources/sandbox/payment.rbs +6 -11
  413. data/sig/finch-api/responses_page.rbs +2 -7
  414. data/sig/finch-api/single_page.rbs +2 -7
  415. data/sig/finch-api/util.rbs +37 -12
  416. data/sig/finch-api/version.rbs +1 -1
  417. metadata +7 -4
@@ -1,19 +1,21 @@
1
1
  # typed: strong
2
2
 
3
3
  module FinchAPI
4
+ # @api private
4
5
  module Converter
5
- abstract!
6
-
7
6
  Input = T.type_alias { T.any(FinchAPI::Converter, T::Class[T.anything]) }
8
7
 
8
+ # @api private
9
9
  sig { overridable.params(value: T.anything).returns(T.anything) }
10
10
  def coerce(value)
11
11
  end
12
12
 
13
+ # @api private
13
14
  sig { overridable.params(value: T.anything).returns(T.anything) }
14
15
  def dump(value)
15
16
  end
16
17
 
18
+ # @api private
17
19
  sig do
18
20
  overridable
19
21
  .params(value: T.anything)
@@ -22,213 +24,298 @@ module FinchAPI
22
24
  def try_strict_coerce(value)
23
25
  end
24
26
 
25
- sig do
26
- params(
27
- spec: T.any(
28
- {
29
- const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
30
- enum: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
31
- union: T.nilable(T.proc.returns(FinchAPI::Converter::Input))
32
- },
33
- T.proc.returns(FinchAPI::Converter::Input),
34
- FinchAPI::Converter::Input
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
+ )
35
40
  )
36
- )
37
- .returns(T.proc.returns(T.anything).void)
38
- end
39
- def self.type_info(spec)
40
- end
41
-
42
- sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
43
- def self.coerce(target, value)
44
- end
45
-
46
- sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
47
- def self.dump(target, value)
48
- end
49
-
50
- sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
51
- def self.try_strict_coerce(target, value)
41
+ .returns(T.proc.returns(T.anything).void)
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
+ sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
55
+ def self.coerce(target, value)
56
+ end
57
+
58
+ # @api private
59
+ sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
60
+ def self.dump(target, value)
61
+ end
62
+
63
+ # @api private
64
+ #
65
+ # The underlying algorithm for computing maximal compatibility is subject to
66
+ # future improvements.
67
+ #
68
+ # Similar to `#.coerce`, used to determine the best union variant to decode into.
69
+ #
70
+ # 1. determine if strict-ish coercion is possible
71
+ # 2. return either result of successful coercion or if loose coercion is possible
72
+ # 3. return a score for recursively tallied count for fields that can be coerced
73
+ sig { params(target: FinchAPI::Converter::Input, value: T.anything).returns(T.anything) }
74
+ def self.try_strict_coerce(target, value)
75
+ end
52
76
  end
53
77
  end
54
78
 
79
+ # @api private
80
+ #
81
+ # When we don't know what to expect for the value.
55
82
  class Unknown
56
- abstract!
57
-
58
83
  extend FinchAPI::Converter
59
84
 
60
- sig { params(other: T.anything).returns(T::Boolean) }
85
+ abstract!
86
+ final!
87
+
88
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
61
89
  def self.===(other)
62
90
  end
63
91
 
64
- sig { params(other: T.anything).returns(T::Boolean) }
92
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
65
93
  def self.==(other)
66
94
  end
67
95
 
68
- sig { override.params(value: T.anything).returns(T.anything) }
69
- def self.coerce(value)
70
- end
96
+ class << self
97
+ # @api private
98
+ sig(:final) { override.params(value: T.anything).returns(T.anything) }
99
+ def coerce(value)
100
+ end
71
101
 
72
- sig { override.params(value: T.anything).returns(T.anything) }
73
- def self.dump(value)
74
- end
102
+ # @api private
103
+ sig(:final) { override.params(value: T.anything).returns(T.anything) }
104
+ def dump(value)
105
+ end
75
106
 
76
- sig do
77
- override
78
- .params(value: T.anything)
79
- .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
80
- end
81
- def self.try_strict_coerce(value)
107
+ # @api private
108
+ sig(:final) do
109
+ override
110
+ .params(value: T.anything)
111
+ .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
112
+ end
113
+ def try_strict_coerce(value)
114
+ end
82
115
  end
83
116
  end
84
117
 
118
+ # @api private
119
+ #
120
+ # Ruby has no Boolean class; this is something for models to refer to.
85
121
  class BooleanModel
86
- abstract!
87
-
88
122
  extend FinchAPI::Converter
89
123
 
90
- sig { params(other: T.anything).returns(T::Boolean) }
124
+ abstract!
125
+ final!
126
+
127
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
91
128
  def self.===(other)
92
129
  end
93
130
 
94
- sig { params(other: T.anything).returns(T::Boolean) }
131
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
95
132
  def self.==(other)
96
133
  end
97
134
 
98
- sig { override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything)) }
99
- def self.coerce(value)
100
- end
101
-
102
- sig { override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything)) }
103
- def self.dump(value)
104
- end
105
-
106
- sig do
107
- override
108
- .params(value: T.anything)
109
- .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
110
- end
111
- def self.try_strict_coerce(value)
135
+ class << self
136
+ # @api private
137
+ sig(:final) do
138
+ override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything))
139
+ end
140
+ def coerce(value)
141
+ end
142
+
143
+ # @api private
144
+ sig(:final) do
145
+ override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything))
146
+ end
147
+ def dump(value)
148
+ end
149
+
150
+ # @api private
151
+ sig(:final) do
152
+ override
153
+ .params(value: T.anything)
154
+ .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
155
+ end
156
+ def try_strict_coerce(value)
157
+ end
112
158
  end
113
159
  end
114
160
 
115
- class Enum
116
- abstract!
117
-
118
- extend FinchAPI::Converter
161
+ # @api private
162
+ #
163
+ # A value from among a specified list of options. OpenAPI enum values map to Ruby
164
+ # values in the SDK as follows:
165
+ #
166
+ # 1. boolean => true | false
167
+ # 2. integer => Integer
168
+ # 3. float => Float
169
+ # 4. string => Symbol
170
+ #
171
+ # We can therefore convert string values to Symbols, but can't convert other
172
+ # values safely.
173
+ module Enum
174
+ include FinchAPI::Converter
119
175
 
176
+ # All of the valid Symbol values for this enum.
120
177
  sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) }
121
- def self.values
178
+ def values
122
179
  end
123
180
 
181
+ # @api private
182
+ #
183
+ # Guard against thread safety issues by instantiating `@values`.
124
184
  sig { void }
125
- private_class_method def self.finalize!
185
+ private def finalize!
126
186
  end
127
187
 
128
188
  sig { params(other: T.anything).returns(T::Boolean) }
129
- def self.===(other)
189
+ def ===(other)
130
190
  end
131
191
 
132
192
  sig { params(other: T.anything).returns(T::Boolean) }
133
- def self.==(other)
193
+ def ==(other)
134
194
  end
135
195
 
196
+ # @api private
136
197
  sig { override.params(value: T.any(String, Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
137
- def self.coerce(value)
198
+ def coerce(value)
138
199
  end
139
200
 
201
+ # @api private
140
202
  sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
141
- def self.dump(value)
203
+ def dump(value)
142
204
  end
143
205
 
206
+ # @api private
144
207
  sig do
145
208
  override
146
209
  .params(value: T.anything)
147
210
  .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
148
211
  end
149
- def self.try_strict_coerce(value)
212
+ def try_strict_coerce(value)
150
213
  end
151
214
  end
152
215
 
153
- class Union
154
- abstract!
216
+ # @api private
217
+ module Union
218
+ include FinchAPI::Converter
155
219
 
156
- extend FinchAPI::Converter
220
+ # @api private
221
+ #
222
+ # All of the specified variant info for this union.
223
+ sig { returns(T::Array[[T.nilable(Symbol), T.proc.returns(FinchAPI::Converter::Input)]]) }
224
+ private def known_variants
225
+ end
157
226
 
158
- sig { returns(T::Array[[T.nilable(Symbol), Proc]]) }
159
- private_class_method def self.known_variants
227
+ # @api private
228
+ sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) }
229
+ protected def derefed_variants
160
230
  end
161
231
 
162
- sig { overridable.returns(T::Array[[T.nilable(Symbol), T.anything]]) }
163
- private_class_method def self.variants
232
+ # All of the specified variants for this union.
233
+ sig { overridable.returns(T::Array[T.anything]) }
234
+ def variants
164
235
  end
165
236
 
237
+ # @api private
166
238
  sig { params(property: Symbol).void }
167
- private_class_method def self.discriminator(property)
239
+ private def discriminator(property)
168
240
  end
169
241
 
242
+ # @api private
170
243
  sig do
171
244
  params(
172
- key: T.any(
173
- Symbol,
174
- T::Hash[Symbol, T.anything],
175
- T.proc.returns(FinchAPI::Converter::Input),
176
- FinchAPI::Converter::Input
177
- ),
178
- spec: T.any(
179
- T::Hash[Symbol, T.anything],
180
- T.proc.returns(FinchAPI::Converter::Input),
181
- FinchAPI::Converter::Input
182
- )
245
+ key: T.any(Symbol, FinchAPI::Util::AnyHash, T.proc.returns(T.anything), T.anything),
246
+ spec: T.any(FinchAPI::Util::AnyHash, T.proc.returns(T.anything), T.anything)
183
247
  )
184
248
  .void
185
249
  end
186
- private_class_method def self.variant(key, spec = nil)
250
+ private def variant(key, spec = nil)
187
251
  end
188
252
 
189
- sig { params(value: T.anything).returns(T.nilable(FinchAPI::Converter::Input)) }
190
- private_class_method def self.resolve_variant(value)
253
+ # @api private
254
+ sig { params(value: T.anything).returns(T.nilable(T.anything)) }
255
+ private def resolve_variant(value)
191
256
  end
192
257
 
193
258
  sig { params(other: T.anything).returns(T::Boolean) }
194
- def self.===(other)
259
+ def ===(other)
195
260
  end
196
261
 
197
262
  sig { params(other: T.anything).returns(T::Boolean) }
198
- def self.==(other)
263
+ def ==(other)
199
264
  end
200
265
 
266
+ # @api private
201
267
  sig { override.params(value: T.anything).returns(T.anything) }
202
- def self.coerce(value)
268
+ def coerce(value)
203
269
  end
204
270
 
271
+ # @api private
205
272
  sig { override.params(value: T.anything).returns(T.anything) }
206
- def self.dump(value)
273
+ def dump(value)
207
274
  end
208
275
 
276
+ # @api private
209
277
  sig do
210
278
  override
211
279
  .params(value: T.anything)
212
280
  .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
213
281
  end
214
- def self.try_strict_coerce(value)
282
+ def try_strict_coerce(value)
215
283
  end
216
284
  end
217
285
 
286
+ # @api private
287
+ #
288
+ # Array of items of a given type.
218
289
  class ArrayOf
290
+ include FinchAPI::Converter
291
+
219
292
  abstract!
293
+ final!
220
294
 
221
- include FinchAPI::Converter
295
+ sig(:final) do
296
+ params(
297
+ type_info: T.any(
298
+ FinchAPI::Util::AnyHash,
299
+ T.proc.returns(FinchAPI::Converter::Input),
300
+ FinchAPI::Converter::Input
301
+ ),
302
+ spec: FinchAPI::Util::AnyHash
303
+ )
304
+ .returns(T.attached_class)
305
+ end
306
+ def self.[](type_info, spec = {})
307
+ end
222
308
 
223
- sig { params(other: T.anything).returns(T::Boolean) }
309
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
224
310
  def ===(other)
225
311
  end
226
312
 
227
- sig { params(other: T.anything).returns(T::Boolean) }
313
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
228
314
  def ==(other)
229
315
  end
230
316
 
231
- sig do
317
+ # @api private
318
+ sig(:final) do
232
319
  override
233
320
  .params(value: T.any(T::Enumerable[T.anything], T.anything))
234
321
  .returns(T.any(T::Array[T.anything], T.anything))
@@ -236,7 +323,8 @@ module FinchAPI
236
323
  def coerce(value)
237
324
  end
238
325
 
239
- sig do
326
+ # @api private
327
+ sig(:final) do
240
328
  override
241
329
  .params(value: T.any(T::Enumerable[T.anything], T.anything))
242
330
  .returns(T.any(T::Array[T.anything], T.anything))
@@ -244,7 +332,8 @@ module FinchAPI
244
332
  def dump(value)
245
333
  end
246
334
 
247
- sig do
335
+ # @api private
336
+ sig(:final) do
248
337
  override
249
338
  .params(value: T.anything)
250
339
  .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
@@ -252,18 +341,20 @@ module FinchAPI
252
341
  def try_strict_coerce(value)
253
342
  end
254
343
 
255
- sig { returns(FinchAPI::Converter::Input) }
344
+ # @api private
345
+ sig(:final) { returns(T.anything) }
256
346
  protected def item_type
257
347
  end
258
348
 
259
- sig do
349
+ # @api private
350
+ sig(:final) do
260
351
  params(
261
352
  type_info: T.any(
262
- T::Hash[Symbol, T.anything],
353
+ FinchAPI::Util::AnyHash,
263
354
  T.proc.returns(FinchAPI::Converter::Input),
264
355
  FinchAPI::Converter::Input
265
356
  ),
266
- spec: T::Hash[Symbol, T.anything]
357
+ spec: FinchAPI::Util::AnyHash
267
358
  )
268
359
  .void
269
360
  end
@@ -271,36 +362,57 @@ module FinchAPI
271
362
  end
272
363
  end
273
364
 
365
+ # @api private
366
+ #
367
+ # Hash of items of a given type.
274
368
  class HashOf
369
+ include FinchAPI::Converter
370
+
275
371
  abstract!
372
+ final!
276
373
 
277
- include FinchAPI::Converter
374
+ sig(:final) do
375
+ params(
376
+ type_info: T.any(
377
+ FinchAPI::Util::AnyHash,
378
+ T.proc.returns(FinchAPI::Converter::Input),
379
+ FinchAPI::Converter::Input
380
+ ),
381
+ spec: FinchAPI::Util::AnyHash
382
+ )
383
+ .returns(T.attached_class)
384
+ end
385
+ def self.[](type_info, spec = {})
386
+ end
278
387
 
279
- sig { params(other: T.anything).returns(T::Boolean) }
388
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
280
389
  def ===(other)
281
390
  end
282
391
 
283
- sig { params(other: T.anything).returns(T::Boolean) }
392
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
284
393
  def ==(other)
285
394
  end
286
395
 
287
- sig do
396
+ # @api private
397
+ sig(:final) do
288
398
  override
289
399
  .params(value: T.any(T::Hash[T.anything, T.anything], T.anything))
290
- .returns(T.any(T::Hash[Symbol, T.anything], T.anything))
400
+ .returns(T.any(FinchAPI::Util::AnyHash, T.anything))
291
401
  end
292
402
  def coerce(value)
293
403
  end
294
404
 
295
- sig do
405
+ # @api private
406
+ sig(:final) do
296
407
  override
297
408
  .params(value: T.any(T::Hash[T.anything, T.anything], T.anything))
298
- .returns(T.any(T::Hash[Symbol, T.anything], T.anything))
409
+ .returns(T.any(FinchAPI::Util::AnyHash, T.anything))
299
410
  end
300
411
  def dump(value)
301
412
  end
302
413
 
303
- sig do
414
+ # @api private
415
+ sig(:final) do
304
416
  override
305
417
  .params(value: T.anything)
306
418
  .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
@@ -308,18 +420,20 @@ module FinchAPI
308
420
  def try_strict_coerce(value)
309
421
  end
310
422
 
311
- sig { returns(FinchAPI::Converter::Input) }
423
+ # @api private
424
+ sig(:final) { returns(T.anything) }
312
425
  protected def item_type
313
426
  end
314
427
 
315
- sig do
428
+ # @api private
429
+ sig(:final) do
316
430
  params(
317
431
  type_info: T.any(
318
- T::Hash[Symbol, T.anything],
432
+ FinchAPI::Util::AnyHash,
319
433
  T.proc.returns(FinchAPI::Converter::Input),
320
434
  FinchAPI::Converter::Input
321
435
  ),
322
- spec: T::Hash[Symbol, T.anything]
436
+ spec: FinchAPI::Util::AnyHash
323
437
  )
324
438
  .void
325
439
  end
@@ -328,141 +442,194 @@ module FinchAPI
328
442
  end
329
443
 
330
444
  class BaseModel
331
- abstract!
332
-
333
445
  extend FinchAPI::Converter
334
446
 
335
- KnownFieldShape = T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean} }
336
-
337
- sig do
338
- returns(
339
- T::Hash[Symbol,
340
- T.all(
341
- FinchAPI::BaseModel::KnownFieldShape,
342
- {type_fn: T.proc.returns(FinchAPI::Converter::Input)}
343
- )]
344
- )
345
- end
346
- def self.known_fields
347
- end
348
-
349
- sig do
350
- returns(
351
- T::Hash[Symbol,
352
- T.all(FinchAPI::BaseModel::KnownFieldShape, {type: FinchAPI::Converter::Input})]
353
- )
354
- end
355
- def self.fields
356
- end
357
-
358
- sig { returns(T::Hash[Symbol, T.proc.returns(T::Class[T.anything])]) }
359
- def self.defaults
360
- end
361
-
362
- sig do
363
- params(
364
- name_sym: Symbol,
365
- required: T::Boolean,
366
- type_info: T.any(
367
- {
368
- const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
369
- enum: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
370
- union: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
371
- api_name: Symbol,
372
- nil?: T::Boolean
373
- },
374
- T.proc.returns(FinchAPI::Converter::Input),
375
- FinchAPI::Converter::Input
376
- ),
377
- spec: T::Hash[Symbol, T.anything]
378
- )
379
- .void
380
- end
381
- private_class_method def self.add_field(name_sym, required:, type_info:, spec:)
382
- end
383
-
384
- sig do
385
- params(
386
- name_sym: Symbol,
387
- type_info: T.any(
388
- T::Hash[Symbol, T.anything],
389
- T.proc.returns(FinchAPI::Converter::Input),
390
- FinchAPI::Converter::Input
391
- ),
392
- spec: T::Hash[Symbol, T.anything]
393
- )
394
- .void
395
- end
396
- def self.required(name_sym, type_info, spec = {})
397
- end
398
-
399
- sig do
400
- params(
401
- name_sym: Symbol,
402
- type_info: T.any(
403
- T::Hash[Symbol, T.anything],
404
- T.proc.returns(FinchAPI::Converter::Input),
405
- FinchAPI::Converter::Input
406
- ),
407
- spec: T::Hash[Symbol, T.anything]
408
- )
409
- .void
410
- end
411
- def self.optional(name_sym, type_info, spec = {})
412
- end
447
+ abstract!
413
448
 
414
- sig { params(blk: T.proc.void).void }
415
- private_class_method def self.request_only(&blk)
416
- end
449
+ KnownFieldShape = T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean} }
417
450
 
418
- sig { params(blk: T.proc.void).void }
419
- private_class_method def self.response_only(&blk)
451
+ class << self
452
+ # @api private
453
+ #
454
+ # Assumes superclass fields are totally defined before fields are accessed /
455
+ # defined on subclasses.
456
+ sig do
457
+ returns(
458
+ T::Hash[Symbol,
459
+ T.all(
460
+ FinchAPI::BaseModel::KnownFieldShape,
461
+ {type_fn: T.proc.returns(FinchAPI::Converter::Input)}
462
+ )]
463
+ )
464
+ end
465
+ def known_fields
466
+ end
467
+
468
+ # @api private
469
+ sig { returns(T::Hash[Symbol, Symbol]) }
470
+ def reverse_map
471
+ end
472
+
473
+ # @api private
474
+ sig do
475
+ returns(
476
+ T::Hash[Symbol,
477
+ T.all(FinchAPI::BaseModel::KnownFieldShape, {type: FinchAPI::Converter::Input})]
478
+ )
479
+ end
480
+ def fields
481
+ end
482
+
483
+ # @api private
484
+ sig { returns(T::Hash[Symbol, T.proc.returns(T::Class[T.anything])]) }
485
+ def defaults
486
+ end
487
+
488
+ # @api private
489
+ sig do
490
+ params(
491
+ name_sym: Symbol,
492
+ required: T::Boolean,
493
+ type_info: T.any(
494
+ {
495
+ const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
496
+ enum: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
497
+ union: T.nilable(T.proc.returns(FinchAPI::Converter::Input)),
498
+ api_name: Symbol,
499
+ nil?: T::Boolean
500
+ },
501
+ T.proc.returns(FinchAPI::Converter::Input),
502
+ FinchAPI::Converter::Input
503
+ ),
504
+ spec: FinchAPI::Util::AnyHash
505
+ )
506
+ .void
507
+ end
508
+ private def add_field(name_sym, required:, type_info:, spec:)
509
+ end
510
+
511
+ # @api private
512
+ sig do
513
+ params(
514
+ name_sym: Symbol,
515
+ type_info: T.any(
516
+ FinchAPI::Util::AnyHash,
517
+ T.proc.returns(FinchAPI::Converter::Input),
518
+ FinchAPI::Converter::Input
519
+ ),
520
+ spec: FinchAPI::Util::AnyHash
521
+ )
522
+ .void
523
+ end
524
+ def required(name_sym, type_info, spec = {})
525
+ end
526
+
527
+ # @api private
528
+ sig do
529
+ params(
530
+ name_sym: Symbol,
531
+ type_info: T.any(
532
+ FinchAPI::Util::AnyHash,
533
+ T.proc.returns(FinchAPI::Converter::Input),
534
+ FinchAPI::Converter::Input
535
+ ),
536
+ spec: FinchAPI::Util::AnyHash
537
+ )
538
+ .void
539
+ end
540
+ def optional(name_sym, type_info, spec = {})
541
+ end
542
+
543
+ # @api private
544
+ #
545
+ # `request_only` attributes not excluded from `.#coerce` when receiving responses
546
+ # even if well behaved servers should not send them
547
+ sig { params(blk: T.proc.void).void }
548
+ private def request_only(&blk)
549
+ end
550
+
551
+ # @api private
552
+ #
553
+ # `response_only` attributes are omitted from `.#dump` when making requests
554
+ sig { params(blk: T.proc.void).void }
555
+ private def response_only(&blk)
556
+ end
420
557
  end
421
558
 
422
559
  sig { params(other: T.anything).returns(T::Boolean) }
423
560
  def ==(other)
424
561
  end
425
562
 
426
- sig do
427
- override
428
- .params(value: T.any(FinchAPI::BaseModel, T::Hash[T.anything, T.anything], T.anything))
429
- .returns(T.any(T.attached_class, T.anything))
430
- end
431
- def self.coerce(value)
432
- end
433
-
434
- sig do
435
- override
436
- .params(value: T.any(T.attached_class, T.anything))
437
- .returns(T.any(T::Hash[T.anything, T.anything], T.anything))
438
- end
439
- def self.dump(value)
440
- end
441
-
442
- sig do
443
- override
444
- .params(value: T.anything)
445
- .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
446
- end
447
- def self.try_strict_coerce(value)
448
- end
449
-
563
+ class << self
564
+ # @api private
565
+ sig do
566
+ override
567
+ .params(value: T.any(FinchAPI::BaseModel, T::Hash[T.anything, T.anything], T.anything))
568
+ .returns(T.any(T.attached_class, T.anything))
569
+ end
570
+ def coerce(value)
571
+ end
572
+
573
+ # @api private
574
+ sig do
575
+ override
576
+ .params(value: T.any(T.attached_class, T.anything))
577
+ .returns(T.any(T::Hash[T.anything, T.anything], T.anything))
578
+ end
579
+ def dump(value)
580
+ end
581
+
582
+ # @api private
583
+ sig do
584
+ override
585
+ .params(value: T.anything)
586
+ .returns(T.any([T::Boolean, T.anything, NilClass], [T::Boolean, T::Boolean, Integer]))
587
+ end
588
+ def try_strict_coerce(value)
589
+ end
590
+ end
591
+
592
+ # Returns the raw value associated with the given key, if found. Otherwise, nil is
593
+ # returned.
594
+ #
595
+ # It is valid to lookup keys that are not in the API spec, for example to access
596
+ # undocumented features. This method does not parse response data into
597
+ # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
450
598
  sig { params(key: Symbol).returns(T.nilable(T.anything)) }
451
599
  def [](key)
452
600
  end
453
601
 
454
- sig { overridable.returns(T::Hash[Symbol, T.anything]) }
602
+ # Returns a Hash of the data underlying this object. O(1)
603
+ #
604
+ # Keys are Symbols and values are the raw values from the response. The return
605
+ # value indicates which values were ever set on the object. i.e. there will be a
606
+ # key in this hash if they ever were, even if the set value was nil.
607
+ #
608
+ # This method is not recursive. The returned value is shared by the object, so it
609
+ # should not be mutated.
610
+ sig { overridable.returns(FinchAPI::Util::AnyHash) }
455
611
  def to_h
456
612
  end
457
613
 
458
- alias_method :to_hash, :to_h
614
+ # Returns a Hash of the data underlying this object. O(1)
615
+ #
616
+ # Keys are Symbols and values are the raw values from the response. The return
617
+ # value indicates which values were ever set on the object. i.e. there will be a
618
+ # key in this hash if they ever were, even if the set value was nil.
619
+ #
620
+ # This method is not recursive. The returned value is shared by the object, so it
621
+ # should not be mutated.
622
+ sig { overridable.returns(FinchAPI::Util::AnyHash) }
623
+ def to_hash
624
+ end
459
625
 
460
- sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.anything]) }
626
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(FinchAPI::Util::AnyHash) }
461
627
  def deconstruct_keys(keys)
462
628
  end
463
629
 
464
- sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).void }
465
- def initialize(data = {})
630
+ # Create a new instance of a model.
631
+ sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(T.attached_class) }
632
+ def self.new(data = {})
466
633
  end
467
634
 
468
635
  sig { returns(String) }