finch-api 0.1.0.pre.alpha.1

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 (479) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +124 -0
  3. data/lib/finch-api/base_client.rb +464 -0
  4. data/lib/finch-api/base_model.rb +1188 -0
  5. data/lib/finch-api/base_page.rb +40 -0
  6. data/lib/finch-api/client.rb +145 -0
  7. data/lib/finch-api/errors.rb +188 -0
  8. data/lib/finch-api/extern.rb +10 -0
  9. data/lib/finch-api/individuals_page.rb +98 -0
  10. data/lib/finch-api/models/access_token_create_params.rb +54 -0
  11. data/lib/finch-api/models/account_disconnect_params.rb +18 -0
  12. data/lib/finch-api/models/account_introspect_params.rb +18 -0
  13. data/lib/finch-api/models/account_update_event.rb +1978 -0
  14. data/lib/finch-api/models/base_webhook_event.rb +41 -0
  15. data/lib/finch-api/models/company_event.rb +49 -0
  16. data/lib/finch-api/models/connect/session_new_params.rb +203 -0
  17. data/lib/finch-api/models/connect/session_new_response.rb +29 -0
  18. data/lib/finch-api/models/connect/session_reauthenticate_params.rb +90 -0
  19. data/lib/finch-api/models/connect/session_reauthenticate_response.rb +29 -0
  20. data/lib/finch-api/models/connection_status_type.rb +40 -0
  21. data/lib/finch-api/models/create_access_token_response.rb +163 -0
  22. data/lib/finch-api/models/directory_event.rb +78 -0
  23. data/lib/finch-api/models/disconnect_response.rb +20 -0
  24. data/lib/finch-api/models/employment_event.rb +78 -0
  25. data/lib/finch-api/models/hris/benefit_contribution.rb +54 -0
  26. data/lib/finch-api/models/hris/benefit_create_params.rb +46 -0
  27. data/lib/finch-api/models/hris/benefit_features_and_operations.rb +199 -0
  28. data/lib/finch-api/models/hris/benefit_frequency.rb +33 -0
  29. data/lib/finch-api/models/hris/benefit_list_params.rb +20 -0
  30. data/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rb +20 -0
  31. data/lib/finch-api/models/hris/benefit_retrieve_params.rb +20 -0
  32. data/lib/finch-api/models/hris/benefit_type.rb +57 -0
  33. data/lib/finch-api/models/hris/benefit_update_params.rb +31 -0
  34. data/lib/finch-api/models/hris/benefits/enrolled_individual.rb +108 -0
  35. data/lib/finch-api/models/hris/benefits/individual_benefit.rb +127 -0
  36. data/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rb +268 -0
  37. data/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rb +22 -0
  38. data/lib/finch-api/models/hris/benefits/individual_enrolled_ids_response.rb +29 -0
  39. data/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rb +34 -0
  40. data/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rb +33 -0
  41. data/lib/finch-api/models/hris/benefits/unenrolled_individual.rb +77 -0
  42. data/lib/finch-api/models/hris/benefits_support.rb +106 -0
  43. data/lib/finch-api/models/hris/benfit_contribution.rb +9 -0
  44. data/lib/finch-api/models/hris/company.rb +290 -0
  45. data/lib/finch-api/models/hris/company_benefit.rb +40 -0
  46. data/lib/finch-api/models/hris/company_retrieve_params.rb +20 -0
  47. data/lib/finch-api/models/hris/create_company_benefits_response.rb +21 -0
  48. data/lib/finch-api/models/hris/directory_list_individuals_params.rb +42 -0
  49. data/lib/finch-api/models/hris/directory_list_params.rb +42 -0
  50. data/lib/finch-api/models/hris/document_list_params.rb +89 -0
  51. data/lib/finch-api/models/hris/document_list_response.rb +27 -0
  52. data/lib/finch-api/models/hris/document_response.rb +89 -0
  53. data/lib/finch-api/models/hris/document_retreive_params.rb +20 -0
  54. data/lib/finch-api/models/hris/document_retreive_response.rb +41 -0
  55. data/lib/finch-api/models/hris/employment_data.rb +380 -0
  56. data/lib/finch-api/models/hris/employment_data_response.rb +45 -0
  57. data/lib/finch-api/models/hris/employment_retrieve_many_params.rb +45 -0
  58. data/lib/finch-api/models/hris/individual.rb +290 -0
  59. data/lib/finch-api/models/hris/individual_in_directory.rb +117 -0
  60. data/lib/finch-api/models/hris/individual_response.rb +45 -0
  61. data/lib/finch-api/models/hris/individual_retrieve_many_params.rb +73 -0
  62. data/lib/finch-api/models/hris/pay_statement.rb +587 -0
  63. data/lib/finch-api/models/hris/pay_statement_response.rb +45 -0
  64. data/lib/finch-api/models/hris/pay_statement_response_body.rb +36 -0
  65. data/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rb +65 -0
  66. data/lib/finch-api/models/hris/payment.rb +174 -0
  67. data/lib/finch-api/models/hris/payment_list_params.rb +36 -0
  68. data/lib/finch-api/models/hris/support_per_benefit_type.rb +35 -0
  69. data/lib/finch-api/models/hris/supported_benefit.rb +166 -0
  70. data/lib/finch-api/models/hris/update_company_benefit_response.rb +21 -0
  71. data/lib/finch-api/models/hris/w42005.rb +188 -0
  72. data/lib/finch-api/models/hris/w42020.rb +180 -0
  73. data/lib/finch-api/models/income.rb +87 -0
  74. data/lib/finch-api/models/individual_event.rb +78 -0
  75. data/lib/finch-api/models/introspection.rb +342 -0
  76. data/lib/finch-api/models/job_completion_event.rb +90 -0
  77. data/lib/finch-api/models/jobs/automated_async_job.rb +162 -0
  78. data/lib/finch-api/models/jobs/automated_create_params.rb +70 -0
  79. data/lib/finch-api/models/jobs/automated_create_response.rb +43 -0
  80. data/lib/finch-api/models/jobs/automated_list_params.rb +42 -0
  81. data/lib/finch-api/models/jobs/automated_retrieve_params.rb +20 -0
  82. data/lib/finch-api/models/jobs/manual_async_job.rb +63 -0
  83. data/lib/finch-api/models/jobs/manual_retrieve_params.rb +20 -0
  84. data/lib/finch-api/models/location.rb +79 -0
  85. data/lib/finch-api/models/money.rb +30 -0
  86. data/lib/finch-api/models/operation_support.rb +42 -0
  87. data/lib/finch-api/models/operation_support_matrix.rb +81 -0
  88. data/lib/finch-api/models/paging.rb +35 -0
  89. data/lib/finch-api/models/pay_statement_event.rb +89 -0
  90. data/lib/finch-api/models/payment_event.rb +81 -0
  91. data/lib/finch-api/models/payroll/pay_group_list_params.rb +40 -0
  92. data/lib/finch-api/models/payroll/pay_group_list_response.rb +87 -0
  93. data/lib/finch-api/models/payroll/pay_group_retrieve_params.rb +20 -0
  94. data/lib/finch-api/models/payroll/pay_group_retrieve_response.rb +81 -0
  95. data/lib/finch-api/models/provider.rb +2039 -0
  96. data/lib/finch-api/models/provider_list_params.rb +18 -0
  97. data/lib/finch-api/models/request_forwarding_forward_params.rb +60 -0
  98. data/lib/finch-api/models/request_forwarding_forward_response.rb +97 -0
  99. data/lib/finch-api/models/sandbox/company_update_params.rb +294 -0
  100. data/lib/finch-api/models/sandbox/company_update_response.rb +276 -0
  101. data/lib/finch-api/models/sandbox/connection_create_params.rb +90 -0
  102. data/lib/finch-api/models/sandbox/connection_create_response.rb +113 -0
  103. data/lib/finch-api/models/sandbox/connections/account_create_params.rb +87 -0
  104. data/lib/finch-api/models/sandbox/connections/account_create_response.rb +93 -0
  105. data/lib/finch-api/models/sandbox/connections/account_update_params.rb +32 -0
  106. data/lib/finch-api/models/sandbox/connections/account_update_response.rb +91 -0
  107. data/lib/finch-api/models/sandbox/directory_create_params.rb +642 -0
  108. data/lib/finch-api/models/sandbox/directory_create_response.rb +9 -0
  109. data/lib/finch-api/models/sandbox/employment_update_params.rb +372 -0
  110. data/lib/finch-api/models/sandbox/employment_update_response.rb +378 -0
  111. data/lib/finch-api/models/sandbox/individual_update_params.rb +292 -0
  112. data/lib/finch-api/models/sandbox/individual_update_response.rb +300 -0
  113. data/lib/finch-api/models/sandbox/job_create_params.rb +49 -0
  114. data/lib/finch-api/models/sandbox/job_create_response.rb +43 -0
  115. data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rb +22 -0
  116. data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rb +11 -0
  117. data/lib/finch-api/models/sandbox/jobs/configuration_update_params.rb +22 -0
  118. data/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rb +79 -0
  119. data/lib/finch-api/models/sandbox/payment_create_params.rb +646 -0
  120. data/lib/finch-api/models/sandbox/payment_create_response.rb +29 -0
  121. data/lib/finch-api/models/webhook_event.rb +48 -0
  122. data/lib/finch-api/page.rb +98 -0
  123. data/lib/finch-api/pooled_net_requester.rb +175 -0
  124. data/lib/finch-api/request_options.rb +115 -0
  125. data/lib/finch-api/resources/access_tokens.rb +40 -0
  126. data/lib/finch-api/resources/account.rb +47 -0
  127. data/lib/finch-api/resources/connect/sessions.rb +81 -0
  128. data/lib/finch-api/resources/connect.rb +17 -0
  129. data/lib/finch-api/resources/hris/benefits/individuals.rb +112 -0
  130. data/lib/finch-api/resources/hris/benefits.rb +125 -0
  131. data/lib/finch-api/resources/hris/company.rb +32 -0
  132. data/lib/finch-api/resources/hris/directory.rb +65 -0
  133. data/lib/finch-api/resources/hris/documents.rb +65 -0
  134. data/lib/finch-api/resources/hris/employments.rb +37 -0
  135. data/lib/finch-api/resources/hris/individuals.rb +39 -0
  136. data/lib/finch-api/resources/hris/pay_statements.rb +40 -0
  137. data/lib/finch-api/resources/hris/payments.rb +41 -0
  138. data/lib/finch-api/resources/hris.rb +45 -0
  139. data/lib/finch-api/resources/jobs/automated.rb +96 -0
  140. data/lib/finch-api/resources/jobs/manual.rb +35 -0
  141. data/lib/finch-api/resources/jobs.rb +21 -0
  142. data/lib/finch-api/resources/payroll/pay_groups.rb +58 -0
  143. data/lib/finch-api/resources/payroll.rb +17 -0
  144. data/lib/finch-api/resources/providers.rb +31 -0
  145. data/lib/finch-api/resources/request_forwarding.rb +52 -0
  146. data/lib/finch-api/resources/sandbox/company.rb +50 -0
  147. data/lib/finch-api/resources/sandbox/connections/accounts.rb +67 -0
  148. data/lib/finch-api/resources/sandbox/connections.rb +48 -0
  149. data/lib/finch-api/resources/sandbox/directory.rb +37 -0
  150. data/lib/finch-api/resources/sandbox/employment.rb +76 -0
  151. data/lib/finch-api/resources/sandbox/individual.rb +65 -0
  152. data/lib/finch-api/resources/sandbox/jobs/configuration.rb +57 -0
  153. data/lib/finch-api/resources/sandbox/jobs.rb +40 -0
  154. data/lib/finch-api/resources/sandbox/payment.rb +40 -0
  155. data/lib/finch-api/resources/sandbox.rb +41 -0
  156. data/lib/finch-api/resources/webhooks.rb +13 -0
  157. data/lib/finch-api/responses_page.rb +84 -0
  158. data/lib/finch-api/single_page.rb +82 -0
  159. data/lib/finch-api/util.rb +636 -0
  160. data/lib/finch-api/version.rb +5 -0
  161. data/lib/finch-api.rb +178 -0
  162. data/manifest.yaml +13 -0
  163. data/rbi/lib/finch-api/base_client.rbi +173 -0
  164. data/rbi/lib/finch-api/base_model.rbi +476 -0
  165. data/rbi/lib/finch-api/base_page.rbi +39 -0
  166. data/rbi/lib/finch-api/client.rbi +102 -0
  167. data/rbi/lib/finch-api/errors.rbi +146 -0
  168. data/rbi/lib/finch-api/extern.rbi +7 -0
  169. data/rbi/lib/finch-api/individuals_page.rbi +37 -0
  170. data/rbi/lib/finch-api/models/access_token_create_params.rbi +70 -0
  171. data/rbi/lib/finch-api/models/account_disconnect_params.rbi +18 -0
  172. data/rbi/lib/finch-api/models/account_introspect_params.rbi +18 -0
  173. data/rbi/lib/finch-api/models/account_update_event.rbi +2479 -0
  174. data/rbi/lib/finch-api/models/base_webhook_event.rbi +39 -0
  175. data/rbi/lib/finch-api/models/company_event.rbi +43 -0
  176. data/rbi/lib/finch-api/models/connect/session_new_params.rbi +203 -0
  177. data/rbi/lib/finch-api/models/connect/session_new_response.rbi +33 -0
  178. data/rbi/lib/finch-api/models/connect/session_reauthenticate_params.rbi +95 -0
  179. data/rbi/lib/finch-api/models/connect/session_reauthenticate_response.rbi +33 -0
  180. data/rbi/lib/finch-api/models/connection_status_type.rbi +20 -0
  181. data/rbi/lib/finch-api/models/create_access_token_response.rbi +159 -0
  182. data/rbi/lib/finch-api/models/directory_event.rbi +61 -0
  183. data/rbi/lib/finch-api/models/disconnect_response.rbi +23 -0
  184. data/rbi/lib/finch-api/models/employment_event.rbi +61 -0
  185. data/rbi/lib/finch-api/models/hris/benefit_contribution.rbi +44 -0
  186. data/rbi/lib/finch-api/models/hris/benefit_create_params.rbi +62 -0
  187. data/rbi/lib/finch-api/models/hris/benefit_features_and_operations.rbi +190 -0
  188. data/rbi/lib/finch-api/models/hris/benefit_frequency.rbi +19 -0
  189. data/rbi/lib/finch-api/models/hris/benefit_list_params.rbi +20 -0
  190. data/rbi/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rbi +20 -0
  191. data/rbi/lib/finch-api/models/hris/benefit_retrieve_params.rbi +20 -0
  192. data/rbi/lib/finch-api/models/hris/benefit_type.rbi +35 -0
  193. data/rbi/lib/finch-api/models/hris/benefit_update_params.rbi +37 -0
  194. data/rbi/lib/finch-api/models/hris/benefits/enrolled_individual.rbi +115 -0
  195. data/rbi/lib/finch-api/models/hris/benefits/individual_benefit.rbi +153 -0
  196. data/rbi/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rbi +281 -0
  197. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbi +22 -0
  198. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbi +35 -0
  199. data/rbi/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +36 -0
  200. data/rbi/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rbi +38 -0
  201. data/rbi/lib/finch-api/models/hris/benefits/unenrolled_individual.rbi +102 -0
  202. data/rbi/lib/finch-api/models/hris/benefits_support.rbi +196 -0
  203. data/rbi/lib/finch-api/models/hris/benfit_contribution.rbi +9 -0
  204. data/rbi/lib/finch-api/models/hris/company.rbi +338 -0
  205. data/rbi/lib/finch-api/models/hris/company_benefit.rbi +67 -0
  206. data/rbi/lib/finch-api/models/hris/company_retrieve_params.rbi +20 -0
  207. data/rbi/lib/finch-api/models/hris/create_company_benefits_response.rbi +25 -0
  208. data/rbi/lib/finch-api/models/hris/directory_list_individuals_params.rbi +43 -0
  209. data/rbi/lib/finch-api/models/hris/directory_list_params.rbi +43 -0
  210. data/rbi/lib/finch-api/models/hris/document_list_params.rbi +83 -0
  211. data/rbi/lib/finch-api/models/hris/document_list_response.rbi +42 -0
  212. data/rbi/lib/finch-api/models/hris/document_response.rbi +86 -0
  213. data/rbi/lib/finch-api/models/hris/document_retreive_params.rbi +20 -0
  214. data/rbi/lib/finch-api/models/hris/document_retreive_response.rbi +15 -0
  215. data/rbi/lib/finch-api/models/hris/employment_data.rbi +393 -0
  216. data/rbi/lib/finch-api/models/hris/employment_data_response.rbi +41 -0
  217. data/rbi/lib/finch-api/models/hris/employment_retrieve_many_params.rbi +63 -0
  218. data/rbi/lib/finch-api/models/hris/individual.rbi +281 -0
  219. data/rbi/lib/finch-api/models/hris/individual_in_directory.rbi +147 -0
  220. data/rbi/lib/finch-api/models/hris/individual_response.rbi +41 -0
  221. data/rbi/lib/finch-api/models/hris/individual_retrieve_many_params.rbi +94 -0
  222. data/rbi/lib/finch-api/models/hris/pay_statement.rbi +691 -0
  223. data/rbi/lib/finch-api/models/hris/pay_statement_response.rbi +47 -0
  224. data/rbi/lib/finch-api/models/hris/pay_statement_response_body.rbi +44 -0
  225. data/rbi/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rbi +79 -0
  226. data/rbi/lib/finch-api/models/hris/payment.rbi +207 -0
  227. data/rbi/lib/finch-api/models/hris/payment_list_params.rbi +45 -0
  228. data/rbi/lib/finch-api/models/hris/support_per_benefit_type.rbi +47 -0
  229. data/rbi/lib/finch-api/models/hris/supported_benefit.rbi +155 -0
  230. data/rbi/lib/finch-api/models/hris/update_company_benefit_response.rbi +25 -0
  231. data/rbi/lib/finch-api/models/hris/w42005.rbi +150 -0
  232. data/rbi/lib/finch-api/models/hris/w42020.rbi +177 -0
  233. data/rbi/lib/finch-api/models/income.rbi +83 -0
  234. data/rbi/lib/finch-api/models/individual_event.rbi +61 -0
  235. data/rbi/lib/finch-api/models/introspection.rbi +350 -0
  236. data/rbi/lib/finch-api/models/job_completion_event.rbi +72 -0
  237. data/rbi/lib/finch-api/models/jobs/automated_async_job.rbi +174 -0
  238. data/rbi/lib/finch-api/models/jobs/automated_create_params.rbi +83 -0
  239. data/rbi/lib/finch-api/models/jobs/automated_create_response.rbi +64 -0
  240. data/rbi/lib/finch-api/models/jobs/automated_list_params.rbi +43 -0
  241. data/rbi/lib/finch-api/models/jobs/automated_retrieve_params.rbi +20 -0
  242. data/rbi/lib/finch-api/models/jobs/manual_async_job.rbi +54 -0
  243. data/rbi/lib/finch-api/models/jobs/manual_retrieve_params.rbi +20 -0
  244. data/rbi/lib/finch-api/models/location.rbi +114 -0
  245. data/rbi/lib/finch-api/models/money.rbi +31 -0
  246. data/rbi/lib/finch-api/models/operation_support.rbi +18 -0
  247. data/rbi/lib/finch-api/models/operation_support_matrix.rbi +47 -0
  248. data/rbi/lib/finch-api/models/paging.rbi +31 -0
  249. data/rbi/lib/finch-api/models/pay_statement_event.rbi +69 -0
  250. data/rbi/lib/finch-api/models/payment_event.rbi +69 -0
  251. data/rbi/lib/finch-api/models/payroll/pay_group_list_params.rbi +52 -0
  252. data/rbi/lib/finch-api/models/payroll/pay_group_list_response.rbi +59 -0
  253. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_params.rbi +20 -0
  254. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_response.rbi +82 -0
  255. data/rbi/lib/finch-api/models/provider.rbi +2369 -0
  256. data/rbi/lib/finch-api/models/provider_list_params.rbi +18 -0
  257. data/rbi/lib/finch-api/models/request_forwarding_forward_params.rbi +80 -0
  258. data/rbi/lib/finch-api/models/request_forwarding_forward_response.rbi +138 -0
  259. data/rbi/lib/finch-api/models/sandbox/company_update_params.rbi +336 -0
  260. data/rbi/lib/finch-api/models/sandbox/company_update_response.rbi +330 -0
  261. data/rbi/lib/finch-api/models/sandbox/connection_create_params.rbi +91 -0
  262. data/rbi/lib/finch-api/models/sandbox/connection_create_response.rbi +129 -0
  263. data/rbi/lib/finch-api/models/sandbox/connections/account_create_params.rbi +93 -0
  264. data/rbi/lib/finch-api/models/sandbox/connections/account_create_response.rbi +120 -0
  265. data/rbi/lib/finch-api/models/sandbox/connections/account_update_params.rbi +36 -0
  266. data/rbi/lib/finch-api/models/sandbox/connections/account_update_response.rbi +109 -0
  267. data/rbi/lib/finch-api/models/sandbox/directory_create_params.rbi +629 -0
  268. data/rbi/lib/finch-api/models/sandbox/directory_create_response.rbi +9 -0
  269. data/rbi/lib/finch-api/models/sandbox/employment_update_params.rbi +377 -0
  270. data/rbi/lib/finch-api/models/sandbox/employment_update_response.rbi +382 -0
  271. data/rbi/lib/finch-api/models/sandbox/individual_update_params.rbi +276 -0
  272. data/rbi/lib/finch-api/models/sandbox/individual_update_response.rbi +283 -0
  273. data/rbi/lib/finch-api/models/sandbox/job_create_params.rbi +46 -0
  274. data/rbi/lib/finch-api/models/sandbox/job_create_response.rbi +64 -0
  275. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbi +22 -0
  276. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbi +11 -0
  277. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_update_params.rbi +22 -0
  278. data/rbi/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbi +58 -0
  279. data/rbi/lib/finch-api/models/sandbox/payment_create_params.rbi +876 -0
  280. data/rbi/lib/finch-api/models/sandbox/payment_create_response.rbi +33 -0
  281. data/rbi/lib/finch-api/models/webhook_event.rbi +18 -0
  282. data/rbi/lib/finch-api/page.rbi +37 -0
  283. data/rbi/lib/finch-api/pooled_net_requester.rbi +36 -0
  284. data/rbi/lib/finch-api/request_options.rbi +84 -0
  285. data/rbi/lib/finch-api/resources/access_tokens.rbi +24 -0
  286. data/rbi/lib/finch-api/resources/account.rbi +25 -0
  287. data/rbi/lib/finch-api/resources/connect/sessions.rbi +61 -0
  288. data/rbi/lib/finch-api/resources/connect.rbi +15 -0
  289. data/rbi/lib/finch-api/resources/hris/benefits/individuals.rbi +58 -0
  290. data/rbi/lib/finch-api/resources/hris/benefits.rbi +64 -0
  291. data/rbi/lib/finch-api/resources/hris/company.rbi +20 -0
  292. data/rbi/lib/finch-api/resources/hris/directory.rbi +35 -0
  293. data/rbi/lib/finch-api/resources/hris/documents.rbi +36 -0
  294. data/rbi/lib/finch-api/resources/hris/employments.rbi +23 -0
  295. data/rbi/lib/finch-api/resources/hris/individuals.rbi +24 -0
  296. data/rbi/lib/finch-api/resources/hris/pay_statements.rbi +23 -0
  297. data/rbi/lib/finch-api/resources/hris/payments.rbi +24 -0
  298. data/rbi/lib/finch-api/resources/hris.rbi +43 -0
  299. data/rbi/lib/finch-api/resources/jobs/automated.rbi +45 -0
  300. data/rbi/lib/finch-api/resources/jobs/manual.rbi +23 -0
  301. data/rbi/lib/finch-api/resources/jobs.rbi +19 -0
  302. data/rbi/lib/finch-api/resources/payroll/pay_groups.rbi +34 -0
  303. data/rbi/lib/finch-api/resources/payroll.rbi +15 -0
  304. data/rbi/lib/finch-api/resources/providers.rbi +18 -0
  305. data/rbi/lib/finch-api/resources/request_forwarding.rbi +25 -0
  306. data/rbi/lib/finch-api/resources/sandbox/company.rbi +40 -0
  307. data/rbi/lib/finch-api/resources/sandbox/connections/accounts.rbi +38 -0
  308. data/rbi/lib/finch-api/resources/sandbox/connections.rbi +36 -0
  309. data/rbi/lib/finch-api/resources/sandbox/directory.rbi +23 -0
  310. data/rbi/lib/finch-api/resources/sandbox/employment.rbi +62 -0
  311. data/rbi/lib/finch-api/resources/sandbox/individual.rbi +50 -0
  312. data/rbi/lib/finch-api/resources/sandbox/jobs/configuration.rbi +33 -0
  313. data/rbi/lib/finch-api/resources/sandbox/jobs.rbi +27 -0
  314. data/rbi/lib/finch-api/resources/sandbox/payment.rbi +25 -0
  315. data/rbi/lib/finch-api/resources/sandbox.rbi +39 -0
  316. data/rbi/lib/finch-api/resources/webhooks.rbi +11 -0
  317. data/rbi/lib/finch-api/responses_page.rbi +29 -0
  318. data/rbi/lib/finch-api/single_page.rbi +33 -0
  319. data/rbi/lib/finch-api/util.rbi +167 -0
  320. data/rbi/lib/finch-api/version.rbi +5 -0
  321. data/sig/finch-api/base_client.rbs +101 -0
  322. data/sig/finch-api/base_model.rbs +242 -0
  323. data/sig/finch-api/base_page.rbs +20 -0
  324. data/sig/finch-api/client.rbs +54 -0
  325. data/sig/finch-api/errors.rbs +99 -0
  326. data/sig/finch-api/extern.rbs +4 -0
  327. data/sig/finch-api/individuals_page.rbs +16 -0
  328. data/sig/finch-api/models/access_token_create_params.rbs +46 -0
  329. data/sig/finch-api/models/account_disconnect_params.rbs +19 -0
  330. data/sig/finch-api/models/account_introspect_params.rbs +19 -0
  331. data/sig/finch-api/models/account_update_event.rbs +1448 -0
  332. data/sig/finch-api/models/base_webhook_event.rbs +24 -0
  333. data/sig/finch-api/models/company_event.rbs +36 -0
  334. data/sig/finch-api/models/connect/session_new_params.rbs +129 -0
  335. data/sig/finch-api/models/connect/session_new_response.rbs +22 -0
  336. data/sig/finch-api/models/connect/session_reauthenticate_params.rbs +65 -0
  337. data/sig/finch-api/models/connect/session_reauthenticate_response.rbs +23 -0
  338. data/sig/finch-api/models/connection_status_type.rbs +22 -0
  339. data/sig/finch-api/models/create_access_token_response.rbs +80 -0
  340. data/sig/finch-api/models/directory_event.rbs +61 -0
  341. data/sig/finch-api/models/disconnect_response.rbs +17 -0
  342. data/sig/finch-api/models/employment_event.rbs +61 -0
  343. data/sig/finch-api/models/hris/benefit_contribution.rbs +38 -0
  344. data/sig/finch-api/models/hris/benefit_create_params.rbs +40 -0
  345. data/sig/finch-api/models/hris/benefit_features_and_operations.rbs +112 -0
  346. data/sig/finch-api/models/hris/benefit_frequency.rbs +15 -0
  347. data/sig/finch-api/models/hris/benefit_list_params.rbs +21 -0
  348. data/sig/finch-api/models/hris/benefit_list_supported_benefits_params.rbs +22 -0
  349. data/sig/finch-api/models/hris/benefit_retrieve_params.rbs +21 -0
  350. data/sig/finch-api/models/hris/benefit_type.rbs +50 -0
  351. data/sig/finch-api/models/hris/benefit_update_params.rbs +26 -0
  352. data/sig/finch-api/models/hris/benefits/enrolled_individual.rbs +75 -0
  353. data/sig/finch-api/models/hris/benefits/individual_benefit.rbs +91 -0
  354. data/sig/finch-api/models/hris/benefits/individual_enroll_many_params.rbs +203 -0
  355. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbs +24 -0
  356. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbs +25 -0
  357. data/sig/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbs +31 -0
  358. data/sig/finch-api/models/hris/benefits/individual_unenroll_many_params.rbs +31 -0
  359. data/sig/finch-api/models/hris/benefits/unenrolled_individual.rbs +62 -0
  360. data/sig/finch-api/models/hris/benefits_support.rbs +68 -0
  361. data/sig/finch-api/models/hris/benfit_contribution.rbs +8 -0
  362. data/sig/finch-api/models/hris/company.rbs +195 -0
  363. data/sig/finch-api/models/hris/company_benefit.rbs +36 -0
  364. data/sig/finch-api/models/hris/company_retrieve_params.rbs +21 -0
  365. data/sig/finch-api/models/hris/create_company_benefits_response.rbs +20 -0
  366. data/sig/finch-api/models/hris/directory_list_individuals_params.rbs +34 -0
  367. data/sig/finch-api/models/hris/directory_list_params.rbs +34 -0
  368. data/sig/finch-api/models/hris/document_list_params.rbs +61 -0
  369. data/sig/finch-api/models/hris/document_list_response.rbs +29 -0
  370. data/sig/finch-api/models/hris/document_response.rbs +58 -0
  371. data/sig/finch-api/models/hris/document_retreive_params.rbs +21 -0
  372. data/sig/finch-api/models/hris/document_retreive_response.rbs +12 -0
  373. data/sig/finch-api/models/hris/employment_data.rbs +228 -0
  374. data/sig/finch-api/models/hris/employment_data_response.rbs +41 -0
  375. data/sig/finch-api/models/hris/employment_retrieve_many_params.rbs +45 -0
  376. data/sig/finch-api/models/hris/individual.rbs +176 -0
  377. data/sig/finch-api/models/hris/individual_in_directory.rbs +83 -0
  378. data/sig/finch-api/models/hris/individual_response.rbs +41 -0
  379. data/sig/finch-api/models/hris/individual_retrieve_many_params.rbs +72 -0
  380. data/sig/finch-api/models/hris/pay_statement.rbs +445 -0
  381. data/sig/finch-api/models/hris/pay_statement_response.rbs +41 -0
  382. data/sig/finch-api/models/hris/pay_statement_response_body.rbs +35 -0
  383. data/sig/finch-api/models/hris/pay_statement_retrieve_many_params.rbs +53 -0
  384. data/sig/finch-api/models/hris/payment.rbs +112 -0
  385. data/sig/finch-api/models/hris/payment_list_params.rbs +30 -0
  386. data/sig/finch-api/models/hris/support_per_benefit_type.rbs +37 -0
  387. data/sig/finch-api/models/hris/supported_benefit.rbs +84 -0
  388. data/sig/finch-api/models/hris/update_company_benefit_response.rbs +20 -0
  389. data/sig/finch-api/models/hris/w42005.rbs +111 -0
  390. data/sig/finch-api/models/hris/w42020.rbs +108 -0
  391. data/sig/finch-api/models/income.rbs +57 -0
  392. data/sig/finch-api/models/individual_event.rbs +61 -0
  393. data/sig/finch-api/models/introspection.rbs +204 -0
  394. data/sig/finch-api/models/job_completion_event.rbs +70 -0
  395. data/sig/finch-api/models/jobs/automated_async_job.rbs +102 -0
  396. data/sig/finch-api/models/jobs/automated_create_params.rbs +57 -0
  397. data/sig/finch-api/models/jobs/automated_create_response.rbs +37 -0
  398. data/sig/finch-api/models/jobs/automated_list_params.rbs +34 -0
  399. data/sig/finch-api/models/jobs/automated_retrieve_params.rbs +21 -0
  400. data/sig/finch-api/models/jobs/manual_async_job.rbs +43 -0
  401. data/sig/finch-api/models/jobs/manual_retrieve_params.rbs +21 -0
  402. data/sig/finch-api/models/location.rbs +48 -0
  403. data/sig/finch-api/models/money.rbs +19 -0
  404. data/sig/finch-api/models/operation_support.rbs +18 -0
  405. data/sig/finch-api/models/operation_support_matrix.rbs +50 -0
  406. data/sig/finch-api/models/paging.rbs +21 -0
  407. data/sig/finch-api/models/pay_statement_event.rbs +68 -0
  408. data/sig/finch-api/models/payment_event.rbs +59 -0
  409. data/sig/finch-api/models/payroll/pay_group_list_params.rbs +35 -0
  410. data/sig/finch-api/models/payroll/pay_group_list_response.rbs +66 -0
  411. data/sig/finch-api/models/payroll/pay_group_retrieve_params.rbs +21 -0
  412. data/sig/finch-api/models/payroll/pay_group_retrieve_response.rbs +62 -0
  413. data/sig/finch-api/models/provider.rbs +1455 -0
  414. data/sig/finch-api/models/provider_list_params.rbs +18 -0
  415. data/sig/finch-api/models/request_forwarding_forward_params.rbs +44 -0
  416. data/sig/finch-api/models/request_forwarding_forward_response.rbs +71 -0
  417. data/sig/finch-api/models/sandbox/company_update_params.rbs +197 -0
  418. data/sig/finch-api/models/sandbox/company_update_response.rbs +192 -0
  419. data/sig/finch-api/models/sandbox/connection_create_params.rbs +61 -0
  420. data/sig/finch-api/models/sandbox/connection_create_response.rbs +66 -0
  421. data/sig/finch-api/models/sandbox/connections/account_create_params.rbs +62 -0
  422. data/sig/finch-api/models/sandbox/connections/account_create_response.rbs +63 -0
  423. data/sig/finch-api/models/sandbox/connections/account_update_params.rbs +34 -0
  424. data/sig/finch-api/models/sandbox/connections/account_update_response.rbs +61 -0
  425. data/sig/finch-api/models/sandbox/directory_create_params.rbs +392 -0
  426. data/sig/finch-api/models/sandbox/directory_create_response.rbs +9 -0
  427. data/sig/finch-api/models/sandbox/employment_update_params.rbs +228 -0
  428. data/sig/finch-api/models/sandbox/employment_update_response.rbs +229 -0
  429. data/sig/finch-api/models/sandbox/individual_update_params.rbs +178 -0
  430. data/sig/finch-api/models/sandbox/individual_update_response.rbs +179 -0
  431. data/sig/finch-api/models/sandbox/job_create_params.rbs +36 -0
  432. data/sig/finch-api/models/sandbox/job_create_response.rbs +37 -0
  433. data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbs +23 -0
  434. data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbs +12 -0
  435. data/sig/finch-api/models/sandbox/jobs/configuration_update_params.rbs +23 -0
  436. data/sig/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbs +51 -0
  437. data/sig/finch-api/models/sandbox/payment_create_params.rbs +487 -0
  438. data/sig/finch-api/models/sandbox/payment_create_response.rbs +22 -0
  439. data/sig/finch-api/models/webhook_event.rbs +17 -0
  440. data/sig/finch-api/page.rbs +16 -0
  441. data/sig/finch-api/pooled_net_requester.rbs +28 -0
  442. data/sig/finch-api/request_options.rbs +40 -0
  443. data/sig/finch-api/resources/access_tokens.rbs +19 -0
  444. data/sig/finch-api/resources/account.rbs +25 -0
  445. data/sig/finch-api/resources/connect/sessions.rbs +40 -0
  446. data/sig/finch-api/resources/connect.rbs +9 -0
  447. data/sig/finch-api/resources/hris/benefits/individuals.rbs +58 -0
  448. data/sig/finch-api/resources/hris/benefits.rbs +64 -0
  449. data/sig/finch-api/resources/hris/company.rbs +18 -0
  450. data/sig/finch-api/resources/hris/directory.rbs +31 -0
  451. data/sig/finch-api/resources/hris/documents.rbs +33 -0
  452. data/sig/finch-api/resources/hris/employments.rbs +19 -0
  453. data/sig/finch-api/resources/hris/individuals.rbs +20 -0
  454. data/sig/finch-api/resources/hris/pay_statements.rbs +19 -0
  455. data/sig/finch-api/resources/hris/payments.rbs +20 -0
  456. data/sig/finch-api/resources/hris.rbs +23 -0
  457. data/sig/finch-api/resources/jobs/automated.rbs +42 -0
  458. data/sig/finch-api/resources/jobs/manual.rbs +20 -0
  459. data/sig/finch-api/resources/jobs.rbs +11 -0
  460. data/sig/finch-api/resources/payroll/pay_groups.rbs +31 -0
  461. data/sig/finch-api/resources/payroll.rbs +9 -0
  462. data/sig/finch-api/resources/providers.rbs +15 -0
  463. data/sig/finch-api/resources/request_forwarding.rbs +21 -0
  464. data/sig/finch-api/resources/sandbox/company.rbs +26 -0
  465. data/sig/finch-api/resources/sandbox/connections/accounts.rbs +34 -0
  466. data/sig/finch-api/resources/sandbox/connections.rbs +24 -0
  467. data/sig/finch-api/resources/sandbox/directory.rbs +19 -0
  468. data/sig/finch-api/resources/sandbox/employment.rbs +38 -0
  469. data/sig/finch-api/resources/sandbox/individual.rbs +32 -0
  470. data/sig/finch-api/resources/sandbox/jobs/configuration.rbs +31 -0
  471. data/sig/finch-api/resources/sandbox/jobs.rbs +21 -0
  472. data/sig/finch-api/resources/sandbox/payment.rbs +21 -0
  473. data/sig/finch-api/resources/sandbox.rbs +21 -0
  474. data/sig/finch-api/resources/webhooks.rbs +7 -0
  475. data/sig/finch-api/responses_page.rbs +14 -0
  476. data/sig/finch-api/single_page.rbs +18 -0
  477. data/sig/finch-api/util.rbs +109 -0
  478. data/sig/finch-api/version.rbs +3 -0
  479. metadata +536 -0
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ module Models
5
+ # @abstract
6
+ #
7
+ # @example
8
+ # ```ruby
9
+ # case webhook_event
10
+ # in FinchAPI::Models::AccountUpdateEvent
11
+ # # ...
12
+ # in FinchAPI::Models::JobCompletionEvent
13
+ # # ...
14
+ # in FinchAPI::Models::CompanyEvent
15
+ # # ...
16
+ # in FinchAPI::Models::DirectoryEvent
17
+ # # ...
18
+ # in FinchAPI::Models::EmploymentEvent
19
+ # # ...
20
+ # in FinchAPI::Models::IndividualEvent
21
+ # # ...
22
+ # in FinchAPI::Models::PaymentEvent
23
+ # # ...
24
+ # in FinchAPI::Models::PayStatementEvent
25
+ # # ...
26
+ # end
27
+ # ```
28
+ class WebhookEvent < FinchAPI::Union
29
+ discriminator :event_type
30
+
31
+ variant -> { FinchAPI::Models::AccountUpdateEvent }
32
+
33
+ variant -> { FinchAPI::Models::JobCompletionEvent }
34
+
35
+ variant -> { FinchAPI::Models::CompanyEvent }
36
+
37
+ variant -> { FinchAPI::Models::DirectoryEvent }
38
+
39
+ variant -> { FinchAPI::Models::EmploymentEvent }
40
+
41
+ variant -> { FinchAPI::Models::IndividualEvent }
42
+
43
+ variant -> { FinchAPI::Models::PaymentEvent }
44
+
45
+ variant -> { FinchAPI::Models::PayStatementEvent }
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ # @example
5
+ # ```ruby
6
+ # if page.has_next?
7
+ # page = page.next_page
8
+ # end
9
+ # ```
10
+ #
11
+ # @example
12
+ # ```ruby
13
+ # page.auto_paging_each do |item|
14
+ # # item ...
15
+ # end
16
+ # ```
17
+ #
18
+ # @example
19
+ # ```ruby
20
+ # items = page.to_enum.take(2)
21
+ #
22
+ # items => Array
23
+ # ```
24
+ class Page
25
+ include FinchAPI::BasePage
26
+
27
+ # @return [Array<Object>]
28
+ attr_accessor :data
29
+
30
+ # @return [FinchAPI::Models::Paging]
31
+ attr_accessor :paging
32
+
33
+ # rubocop:disable Lint/UnusedMethodArgument
34
+ # @private
35
+ #
36
+ # @param client [FinchAPI::BaseClient]
37
+ # @param req [Hash{Symbol=>Object}]
38
+ # @param headers [Hash{String=>String}, Net::HTTPHeader]
39
+ # @param unwrapped [Hash{Symbol=>Object}]
40
+ #
41
+ def initialize(client:, req:, headers:, unwrapped:)
42
+ @client = client
43
+ @req = req
44
+ model = req.fetch(:model)
45
+
46
+ case unwrapped
47
+ in {data: Array | nil => data}
48
+ @data = data&.map { model.coerce(_1) }
49
+ else
50
+ end
51
+
52
+ case unwrapped
53
+ in {paging: Hash | nil => paging}
54
+ @paging = FinchAPI::Models::Paging.coerce(paging)
55
+ else
56
+ end
57
+ end
58
+ # rubocop:enable Lint/UnusedMethodArgument
59
+
60
+ # @return [Boolean]
61
+ #
62
+ def next_page?
63
+ paging&.offset.to_i + data.size < paging&.count.to_i
64
+ end
65
+
66
+ # @raise [FinchAPI::HTTP::Error]
67
+ # @return [FinchAPI::Page]
68
+ #
69
+ def next_page
70
+ unless next_page?
71
+ raise RuntimeError.new("No more pages available; please check #next_page? before calling #next_page")
72
+ end
73
+
74
+ req = FinchAPI::Util.deep_merge(@req, {query: {offset: paging&.offset.to_i + data.size}})
75
+ @client.request(req)
76
+ end
77
+
78
+ # @param blk [Proc]
79
+ #
80
+ def auto_paging_each(&blk)
81
+ unless block_given?
82
+ raise ArgumentError.new("A block must be given to #auto_paging_each")
83
+ end
84
+ page = self
85
+ loop do
86
+ page.data&.each { blk.call(_1) }
87
+ break unless page.next_page?
88
+ page = page.next_page
89
+ end
90
+ end
91
+
92
+ # @return [String]
93
+ #
94
+ def inspect
95
+ "#<#{self.class}:0x#{object_id.to_s(16)} data=#{data.inspect} paging=#{paging.inspect}>"
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ # @private
5
+ #
6
+ class PooledNetRequester
7
+ class << self
8
+ # @private
9
+ #
10
+ # @param url [URI::Generic]
11
+ #
12
+ # @return [Net::HTTP]
13
+ #
14
+ def connect(url)
15
+ port =
16
+ case [url.port, url.scheme]
17
+ in [Integer, _]
18
+ url.port
19
+ in [nil, "http" | "ws"]
20
+ Net::HTTP.http_default_port
21
+ in [nil, "https" | "wss"]
22
+ Net::HTTP.https_default_port
23
+ end
24
+
25
+ Net::HTTP.new(url.host, port).tap do
26
+ _1.use_ssl = %w[https wss].include?(url.scheme)
27
+ _1.max_retries = 0
28
+ end
29
+ end
30
+
31
+ # @private
32
+ #
33
+ # @param conn [Net::HTTP]
34
+ # @param deadline [Float]
35
+ #
36
+ def calibrate_socket_timeout(conn, deadline)
37
+ timeout = deadline - FinchAPI::Util.monotonic_secs
38
+ conn.open_timeout = conn.read_timeout = conn.write_timeout = conn.continue_timeout = timeout
39
+ end
40
+
41
+ # @private
42
+ #
43
+ # @param request [Hash{Symbol=>Object}] .
44
+ #
45
+ # @option request [Symbol] :method
46
+ #
47
+ # @option request [URI::Generic] :url
48
+ #
49
+ # @option request [Hash{String=>String}] :headers
50
+ #
51
+ # @return [Net::HTTPGenericRequest]
52
+ #
53
+ def build_request(request)
54
+ method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
55
+ req = Net::HTTPGenericRequest.new(
56
+ method.to_s.upcase,
57
+ !body.nil?,
58
+ method != :head,
59
+ url.to_s
60
+ )
61
+
62
+ headers.each { req[_1] = _2 }
63
+
64
+ case body
65
+ in nil
66
+ in String
67
+ req.body = body
68
+ in StringIO
69
+ req.body = body.string
70
+ in IO
71
+ body.rewind
72
+ req.body_stream = body
73
+ end
74
+
75
+ req
76
+ end
77
+ end
78
+
79
+ # @private
80
+ #
81
+ # @param url [URI::Generic]
82
+ # @param blk [Proc]
83
+ #
84
+ private def with_pool(url, &blk)
85
+ origin = FinchAPI::Util.uri_origin(url)
86
+ th = Thread.current
87
+ key = :"#{object_id}-#{self.class.name}-connection_in_use_for_#{origin}"
88
+
89
+ if th[key]
90
+ tap do
91
+ conn = self.class.connect(url)
92
+ return blk.call(conn)
93
+ ensure
94
+ conn.finish if conn&.started?
95
+ end
96
+ end
97
+
98
+ pool =
99
+ @mutex.synchronize do
100
+ @pools[origin] ||= ConnectionPool.new(size: Etc.nprocessors) do
101
+ self.class.connect(url)
102
+ end
103
+ end
104
+
105
+ pool.with do |conn|
106
+ th[key] = true
107
+ blk.call(conn)
108
+ ensure
109
+ th[key] = nil
110
+ end
111
+ end
112
+
113
+ # @private
114
+ #
115
+ # @param request [Hash{Symbol=>Object}] .
116
+ #
117
+ # @option request [Symbol] :method
118
+ #
119
+ # @option request [URI::Generic] :url
120
+ #
121
+ # @option request [Hash{String=>String}] :headers
122
+ #
123
+ # @option request [Object] :body
124
+ #
125
+ # @option request [Float] :deadline
126
+ #
127
+ # @return [Array(Net::HTTPResponse, Enumerable)]
128
+ #
129
+ def execute(request)
130
+ url, deadline = request.fetch_values(:url, :deadline)
131
+ req = self.class.build_request(request)
132
+
133
+ eof = false
134
+ finished = false
135
+ enum = Enumerator.new do |y|
136
+ with_pool(url) do |conn|
137
+ next if finished
138
+
139
+ self.class.calibrate_socket_timeout(conn, deadline)
140
+ conn.start unless conn.started?
141
+
142
+ self.class.calibrate_socket_timeout(conn, deadline)
143
+ conn.request(req) do |rsp|
144
+ y << [conn, rsp]
145
+ break if finished
146
+
147
+ rsp.read_body do |bytes|
148
+ y << bytes
149
+ break if finished
150
+
151
+ self.class.calibrate_socket_timeout(conn, deadline)
152
+ end
153
+ eof = true
154
+ end
155
+ end
156
+ end
157
+
158
+ conn, response = enum.next
159
+ body = FinchAPI::Util.fused_enum(enum) do
160
+ finished = true
161
+ tap do
162
+ enum.next
163
+ rescue StopIteration
164
+ end
165
+ conn.finish if !eof && conn&.started?
166
+ end
167
+ [response, (response.body = body)]
168
+ end
169
+
170
+ def initialize
171
+ @mutex = Mutex.new
172
+ @pools = {}
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ # @private
5
+ #
6
+ # @abstract
7
+ #
8
+ module RequestParameters
9
+ # @!parse
10
+ # # Options to specify HTTP behaviour for this request.
11
+ # # @return [FinchAPI::RequestOptions, Hash{Symbol=>Object}]
12
+ # attr_accessor :request_options
13
+
14
+ # @param mod [Module]
15
+ #
16
+ def self.included(mod)
17
+ return unless mod <= FinchAPI::BaseModel
18
+
19
+ mod.extend(FinchAPI::RequestParameters::Converter)
20
+ mod.optional(:request_options, FinchAPI::RequestOptions)
21
+ end
22
+
23
+ # @private
24
+ #
25
+ module Converter
26
+ # @private
27
+ #
28
+ # @param params [Object]
29
+ #
30
+ # @return [Array(Object, Hash{Symbol=>Object})]
31
+ #
32
+ def dump_request(params)
33
+ case (dumped = dump(params))
34
+ in Hash
35
+ [dumped.except(:request_options), dumped[:request_options]]
36
+ else
37
+ [dumped, nil]
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ # Specify HTTP behaviour to use for a specific request. These options supplement
44
+ # or override those provided at the client level.
45
+ #
46
+ # When making a request, you can pass an actual {RequestOptions} instance, or
47
+ # simply pass a Hash with symbol keys matching the attributes on this class.
48
+ class RequestOptions < FinchAPI::BaseModel
49
+ # @private
50
+ #
51
+ # @param opts [FinchAPI::RequestOptions, Hash{Symbol=>Object}]
52
+ #
53
+ # @raise [ArgumentError]
54
+ #
55
+ def self.validate!(opts)
56
+ case opts
57
+ in FinchAPI::RequestOptions | Hash
58
+ opts.to_h.each_key do |k|
59
+ unless fields.include?(k)
60
+ raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
61
+ end
62
+ end
63
+ else
64
+ raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
65
+ end
66
+ end
67
+
68
+ # @!attribute idempotency_key
69
+ # Idempotency key to send with request and all associated retries. Will only be
70
+ # sent for write requests.
71
+ #
72
+ # @return [String, nil]
73
+ optional :idempotency_key, String
74
+
75
+ # @!attribute extra_query
76
+ # Extra query params to send with the request. These are `.merge`’d into any
77
+ # `query` given at the client level.
78
+ #
79
+ # @return [Hash{String=>Array<String>, String, nil}, nil]
80
+ optional :extra_query, FinchAPI::HashOf[FinchAPI::ArrayOf[String]]
81
+
82
+ # @!attribute extra_headers
83
+ # Extra headers to send with the request. These are `.merged`’d into any
84
+ # `extra_headers` given at the client level.
85
+ #
86
+ # @return [Hash{String=>String, nil}, nil]
87
+ optional :extra_headers, FinchAPI::HashOf[String, nil?: true]
88
+
89
+ # @!attribute extra_body
90
+ # Extra data to send with the request. These are deep merged into any data
91
+ # generated as part of the normal request.
92
+ #
93
+ # @return [Hash{Symbol=>Object}, nil]
94
+ optional :extra_body, FinchAPI::HashOf[FinchAPI::Unknown]
95
+
96
+ # @!attribute max_retries
97
+ # Maximum number of retries to attempt after a failed initial request.
98
+ #
99
+ # @return [Integer, nil]
100
+ optional :max_retries, Integer
101
+
102
+ # @!attribute timeout
103
+ # Request timeout in seconds.
104
+ #
105
+ # @return [Float, nil]
106
+ optional :timeout, Float
107
+
108
+ # @!parse
109
+ # # Returns a new instance of RequestOptions.
110
+ # #
111
+ # # @param values [Hash{Symbol=>Object}]
112
+ # #
113
+ # def initialize(values = {}) = super
114
+ end
115
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ module Resources
5
+ class AccessTokens
6
+ # Exchange the authorization code for an access token
7
+ #
8
+ # @param params [FinchAPI::Models::AccessTokenCreateParams, Hash{Symbol=>Object}] .
9
+ #
10
+ # @option params [String] :code
11
+ #
12
+ # @option params [String] :client_id
13
+ #
14
+ # @option params [String] :client_secret
15
+ #
16
+ # @option params [String] :redirect_uri
17
+ #
18
+ # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
19
+ #
20
+ # @return [FinchAPI::Models::CreateAccessTokenResponse]
21
+ #
22
+ def create(params)
23
+ parsed, options = FinchAPI::Models::AccessTokenCreateParams.dump_request(params)
24
+ @client.request(
25
+ method: :post,
26
+ path: "auth/token",
27
+ body: parsed,
28
+ model: FinchAPI::Models::CreateAccessTokenResponse,
29
+ options: options
30
+ )
31
+ end
32
+
33
+ # @param client [FinchAPI::Client]
34
+ #
35
+ def initialize(client:)
36
+ @client = client
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ module Resources
5
+ class Account
6
+ # Disconnect one or more `access_token`s from your application.
7
+ #
8
+ # @param params [FinchAPI::Models::AccountDisconnectParams, Hash{Symbol=>Object}] .
9
+ #
10
+ # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
11
+ #
12
+ # @return [FinchAPI::Models::DisconnectResponse]
13
+ #
14
+ def disconnect(params = {})
15
+ @client.request(
16
+ method: :post,
17
+ path: "disconnect",
18
+ model: FinchAPI::Models::DisconnectResponse,
19
+ options: params[:request_options]
20
+ )
21
+ end
22
+
23
+ # Read account information associated with an `access_token`
24
+ #
25
+ # @param params [FinchAPI::Models::AccountIntrospectParams, Hash{Symbol=>Object}] .
26
+ #
27
+ # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
28
+ #
29
+ # @return [FinchAPI::Models::Introspection]
30
+ #
31
+ def introspect(params = {})
32
+ @client.request(
33
+ method: :get,
34
+ path: "introspect",
35
+ model: FinchAPI::Models::Introspection,
36
+ options: params[:request_options]
37
+ )
38
+ end
39
+
40
+ # @param client [FinchAPI::Client]
41
+ #
42
+ def initialize(client:)
43
+ @client = client
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ module Resources
5
+ class Connect
6
+ class Sessions
7
+ # Create a new connect session for an employer
8
+ #
9
+ # @param params [FinchAPI::Models::Connect::SessionNewParams, Hash{Symbol=>Object}] .
10
+ #
11
+ # @option params [String] :customer_id
12
+ #
13
+ # @option params [String] :customer_name
14
+ #
15
+ # @option params [Array<Symbol, FinchAPI::Models::Connect::SessionNewParams::Product>] :products
16
+ #
17
+ # @option params [String, nil] :customer_email
18
+ #
19
+ # @option params [FinchAPI::Models::Connect::SessionNewParams::Integration, nil] :integration
20
+ #
21
+ # @option params [Boolean, nil] :manual
22
+ #
23
+ # @option params [Float, nil] :minutes_to_expire The number of minutes until the session expires (defaults to 43,200, which is 30
24
+ # days)
25
+ #
26
+ # @option params [String, nil] :redirect_uri
27
+ #
28
+ # @option params [Symbol, FinchAPI::Models::Connect::SessionNewParams::Sandbox, nil] :sandbox
29
+ #
30
+ # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
31
+ #
32
+ # @return [FinchAPI::Models::Connect::SessionNewResponse]
33
+ #
34
+ def new(params)
35
+ parsed, options = FinchAPI::Models::Connect::SessionNewParams.dump_request(params)
36
+ @client.request(
37
+ method: :post,
38
+ path: "connect/sessions",
39
+ body: parsed,
40
+ model: FinchAPI::Models::Connect::SessionNewResponse,
41
+ options: options
42
+ )
43
+ end
44
+
45
+ # Create a new Connect session for reauthenticating an existing connection
46
+ #
47
+ # @param params [FinchAPI::Models::Connect::SessionReauthenticateParams, Hash{Symbol=>Object}] .
48
+ #
49
+ # @option params [String] :connection_id The ID of the existing connection to reauthenticate
50
+ #
51
+ # @option params [Integer, nil] :minutes_to_expire The number of minutes until the session expires (defaults to 43,200, which is 30
52
+ # days)
53
+ #
54
+ # @option params [Array<Symbol, FinchAPI::Models::Connect::SessionReauthenticateParams::Product>, nil] :products The products to request access to (optional for reauthentication)
55
+ #
56
+ # @option params [String, nil] :redirect_uri The URI to redirect to after the Connect flow is completed
57
+ #
58
+ # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
59
+ #
60
+ # @return [FinchAPI::Models::Connect::SessionReauthenticateResponse]
61
+ #
62
+ def reauthenticate(params)
63
+ parsed, options = FinchAPI::Models::Connect::SessionReauthenticateParams.dump_request(params)
64
+ @client.request(
65
+ method: :post,
66
+ path: "connect/sessions/reauthenticate",
67
+ body: parsed,
68
+ model: FinchAPI::Models::Connect::SessionReauthenticateResponse,
69
+ options: options
70
+ )
71
+ end
72
+
73
+ # @param client [FinchAPI::Client]
74
+ #
75
+ def initialize(client:)
76
+ @client = client
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinchAPI
4
+ module Resources
5
+ class Connect
6
+ # @return [FinchAPI::Resources::Connect::Sessions]
7
+ attr_reader :sessions
8
+
9
+ # @param client [FinchAPI::Client]
10
+ #
11
+ def initialize(client:)
12
+ @client = client
13
+ @sessions = FinchAPI::Resources::Connect::Sessions.new(client: client)
14
+ end
15
+ end
16
+ end
17
+ end