vitable-connect 0.5.0 → 1.0.0

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 (497) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +16 -0
  3. data/.fernignore +7 -0
  4. data/.rubocop.yml +110 -0
  5. data/CONTRIBUTING.md +120 -0
  6. data/LICENSE +201 -0
  7. data/README.md +170 -123
  8. data/Rakefile +20 -0
  9. data/custom.gemspec.rb +16 -0
  10. data/lib/VitableConnect/auth/client.rb +52 -0
  11. data/lib/VitableConnect/auth/types/issue_access_token_request.rb +13 -0
  12. data/lib/VitableConnect/client.rb +67 -0
  13. data/lib/VitableConnect/employees/client.rb +161 -0
  14. data/lib/VitableConnect/employees/types/get_employees_request.rb +11 -0
  15. data/lib/VitableConnect/employees/types/list_enrollments_employees_request.rb +15 -0
  16. data/lib/VitableConnect/employees/types/patched_update_employee_request.rb +27 -0
  17. data/lib/VitableConnect/employers/client.rb +904 -0
  18. data/lib/VitableConnect/employers/types/census_sync_request.rb +13 -0
  19. data/lib/VitableConnect/employers/types/create_employer_request.rb +23 -0
  20. data/lib/VitableConnect/employers/types/ensure_payroll_integration_email_employers_request.rb +11 -0
  21. data/lib/VitableConnect/employers/types/get_benefit_plan_year_employers_request.rb +13 -0
  22. data/lib/VitableConnect/employers/types/get_employers_request.rb +11 -0
  23. data/lib/VitableConnect/employers/types/get_hris_employers_request.rb +11 -0
  24. data/lib/VitableConnect/employers/types/get_invoice_pdf_employers_request.rb +13 -0
  25. data/lib/VitableConnect/employers/types/get_payroll_access_setup_employers_request.rb +11 -0
  26. data/lib/VitableConnect/employers/types/list_benefit_plan_year_enrollments_employers_request.rb +21 -0
  27. data/lib/VitableConnect/employers/types/list_benefit_plan_years_employers_request.rb +11 -0
  28. data/lib/VitableConnect/employers/types/list_employees_employers_request.rb +19 -0
  29. data/lib/VitableConnect/employers/types/list_employers_request.rb +25 -0
  30. data/lib/VitableConnect/employers/types/list_invoices_employers_request.rb +15 -0
  31. data/lib/VitableConnect/employers/types/list_payroll_deduction_statements_employers_request.rb +15 -0
  32. data/lib/VitableConnect/employers/types/submit_payroll_access_setup_request.rb +57 -0
  33. data/lib/VitableConnect/employers/types/update_employer_request.rb +19 -0
  34. data/lib/VitableConnect/employers/types/update_employer_settings_request.rb +13 -0
  35. data/lib/VitableConnect/enrollments/client.rb +152 -0
  36. data/lib/VitableConnect/enrollments/types/get_enrollments_request.rb +11 -0
  37. data/lib/VitableConnect/enrollments/types/reissue_enrollment_request.rb +17 -0
  38. data/lib/VitableConnect/enrollments/types/terminate_enrollment_request.rb +17 -0
  39. data/lib/VitableConnect/environment.rb +9 -0
  40. data/lib/VitableConnect/errors/api_error.rb +8 -0
  41. data/lib/VitableConnect/errors/client_error.rb +17 -0
  42. data/lib/VitableConnect/errors/redirect_error.rb +8 -0
  43. data/lib/VitableConnect/errors/response_error.rb +42 -0
  44. data/lib/VitableConnect/errors/server_error.rb +11 -0
  45. data/lib/VitableConnect/errors/timeout_error.rb +8 -0
  46. data/lib/VitableConnect/groups/client.rb +199 -0
  47. data/lib/VitableConnect/groups/members/client.rb +21 -0
  48. data/lib/VitableConnect/groups/members/sync/client.rb +122 -0
  49. data/lib/VitableConnect/groups/members/sync/types/get_sync_request.rb +17 -0
  50. data/lib/VitableConnect/groups/members/sync/types/group_member_sync_request.rb +17 -0
  51. data/lib/VitableConnect/groups/types/create_group_request.rb +13 -0
  52. data/lib/VitableConnect/groups/types/get_groups_request.rb +11 -0
  53. data/lib/VitableConnect/groups/types/list_groups_request.rb +13 -0
  54. data/lib/VitableConnect/groups/types/patched_update_group_request.rb +15 -0
  55. data/lib/VitableConnect/internal/errors/constraint_error.rb +10 -0
  56. data/lib/VitableConnect/internal/errors/type_error.rb +10 -0
  57. data/lib/VitableConnect/internal/http/base_request.rb +51 -0
  58. data/lib/VitableConnect/internal/http/raw_client.rb +265 -0
  59. data/lib/VitableConnect/internal/iterators/cursor_item_iterator.rb +28 -0
  60. data/lib/VitableConnect/internal/iterators/cursor_page_iterator.rb +63 -0
  61. data/lib/VitableConnect/internal/iterators/item_iterator.rb +65 -0
  62. data/lib/VitableConnect/internal/iterators/offset_item_iterator.rb +30 -0
  63. data/lib/VitableConnect/internal/iterators/offset_page_iterator.rb +103 -0
  64. data/lib/VitableConnect/internal/json/request.rb +41 -0
  65. data/lib/VitableConnect/internal/json/serializable.rb +25 -0
  66. data/lib/VitableConnect/internal/multipart/multipart_encoder.rb +141 -0
  67. data/lib/VitableConnect/internal/multipart/multipart_form_data.rb +78 -0
  68. data/lib/VitableConnect/internal/multipart/multipart_form_data_part.rb +51 -0
  69. data/lib/VitableConnect/internal/multipart/multipart_request.rb +40 -0
  70. data/lib/VitableConnect/internal/types/array.rb +47 -0
  71. data/lib/VitableConnect/internal/types/boolean.rb +34 -0
  72. data/lib/VitableConnect/internal/types/enum.rb +56 -0
  73. data/lib/VitableConnect/internal/types/hash.rb +36 -0
  74. data/lib/VitableConnect/internal/types/model/field.rb +38 -0
  75. data/lib/VitableConnect/internal/types/model.rb +208 -0
  76. data/lib/VitableConnect/internal/types/type.rb +35 -0
  77. data/lib/VitableConnect/internal/types/union.rb +161 -0
  78. data/lib/VitableConnect/internal/types/unknown.rb +15 -0
  79. data/lib/VitableConnect/internal/types/utils.rb +116 -0
  80. data/lib/VitableConnect/members/client.rb +385 -0
  81. data/lib/VitableConnect/members/types/get_household_members_request.rb +11 -0
  82. data/lib/VitableConnect/members/types/get_members_request.rb +11 -0
  83. data/lib/VitableConnect/members/types/list_dependents_members_request.rb +11 -0
  84. data/lib/VitableConnect/members/types/list_employments_members_request.rb +11 -0
  85. data/lib/VitableConnect/members/types/list_enrollments_members_request.rb +11 -0
  86. data/lib/VitableConnect/members/types/list_id_cards_members_request.rb +11 -0
  87. data/lib/VitableConnect/members/types/list_members_request.rb +15 -0
  88. data/lib/VitableConnect/members/types/list_qualifying_life_events_members_request.rb +17 -0
  89. data/lib/VitableConnect/organizations/client.rb +92 -0
  90. data/lib/VitableConnect/organizations/types/create_organization_request.rb +13 -0
  91. data/lib/VitableConnect/plans/client.rb +69 -0
  92. data/lib/VitableConnect/plans/types/list_plans_request.rb +13 -0
  93. data/lib/VitableConnect/types/access_method.rb +12 -0
  94. data/lib/VitableConnect/types/access_token_response.rb +15 -0
  95. data/lib/VitableConnect/types/additional_access_method.rb +12 -0
  96. data/lib/VitableConnect/types/address.rb +22 -0
  97. data/lib/VitableConnect/types/address_request.rb +17 -0
  98. data/lib/VitableConnect/types/benefit_family.rb +16 -0
  99. data/lib/VitableConnect/types/benefit_family_param_item.rb +16 -0
  100. data/lib/VitableConnect/types/benefit_lifecycle_stage_item.rb +15 -0
  101. data/lib/VitableConnect/types/benefit_plan_network.rb +29 -0
  102. data/lib/VitableConnect/types/benefit_plan_year_detail.rb +52 -0
  103. data/lib/VitableConnect/types/benefit_plan_year_id.rb +23 -0
  104. data/lib/VitableConnect/types/benefit_plan_year_list.rb +47 -0
  105. data/lib/VitableConnect/types/benefit_status.rb +14 -0
  106. data/lib/VitableConnect/types/benefit_summary.rb +15 -0
  107. data/lib/VitableConnect/types/bound_entity.rb +11 -0
  108. data/lib/VitableConnect/types/bound_entity_response.rb +11 -0
  109. data/lib/VitableConnect/types/bound_entity_type.rb +12 -0
  110. data/lib/VitableConnect/types/card_type.rb +14 -0
  111. data/lib/VitableConnect/types/category.rb +14 -0
  112. data/lib/VitableConnect/types/census_sync_detail_response.rb +10 -0
  113. data/lib/VitableConnect/types/census_sync_employee_address_request.rb +17 -0
  114. data/lib/VitableConnect/types/census_sync_employee_request.rb +27 -0
  115. data/lib/VitableConnect/types/census_sync_response.rb +11 -0
  116. data/lib/VitableConnect/types/classification_correction_source.rb +12 -0
  117. data/lib/VitableConnect/types/compensation_type.rb +12 -0
  118. data/lib/VitableConnect/types/contribution_class_compensation.rb +13 -0
  119. data/lib/VitableConnect/types/contribution_class_employment.rb +15 -0
  120. data/lib/VitableConnect/types/contribution_class_location.rb +12 -0
  121. data/lib/VitableConnect/types/contribution_range.rb +11 -0
  122. data/lib/VitableConnect/types/contribution_strategy.rb +13 -0
  123. data/lib/VitableConnect/types/contribution_tier.rb +26 -0
  124. data/lib/VitableConnect/types/coverage_tier.rb +15 -0
  125. data/lib/VitableConnect/types/create_organization_request_type.rb +16 -0
  126. data/lib/VitableConnect/types/created_after.rb +23 -0
  127. data/lib/VitableConnect/types/created_before.rb +23 -0
  128. data/lib/VitableConnect/types/deduction_detail.rb +21 -0
  129. data/lib/VitableConnect/types/deduction_frequency.rb +14 -0
  130. data/lib/VitableConnect/types/digital_benefit_card.rb +36 -0
  131. data/lib/VitableConnect/types/election_status_item.rb +14 -0
  132. data/lib/VitableConnect/types/eligibility_policy.rb +17 -0
  133. data/lib/VitableConnect/types/eligibility_policy_rule.rb +15 -0
  134. data/lib/VitableConnect/types/eligibility_rule_compensation_type.rb +13 -0
  135. data/lib/VitableConnect/types/eligibility_rule_employee_class.rb +17 -0
  136. data/lib/VitableConnect/types/eligible_geographical_location.rb +11 -0
  137. data/lib/VitableConnect/types/eligible_geographical_location_type.rb +12 -0
  138. data/lib/VitableConnect/types/employee.rb +53 -0
  139. data/lib/VitableConnect/types/employee_address.rb +17 -0
  140. data/lib/VitableConnect/types/employee_address_input.rb +19 -0
  141. data/lib/VitableConnect/types/employee_class.rb +16 -0
  142. data/lib/VitableConnect/types/employee_id.rb +23 -0
  143. data/lib/VitableConnect/types/employee_list_response.rb +12 -0
  144. data/lib/VitableConnect/types/employee_response.rb +10 -0
  145. data/lib/VitableConnect/types/employee_search.rb +23 -0
  146. data/lib/VitableConnect/types/employee_status.rb +12 -0
  147. data/lib/VitableConnect/types/employer.rb +34 -0
  148. data/lib/VitableConnect/types/employer_address.rb +18 -0
  149. data/lib/VitableConnect/types/employer_address_input.rb +17 -0
  150. data/lib/VitableConnect/types/employer_benefit_lifecycle_stage.rb +11 -0
  151. data/lib/VitableConnect/types/employer_benefit_plan_year_response.rb +10 -0
  152. data/lib/VitableConnect/types/employer_benefit_plan_years_list_response.rb +9 -0
  153. data/lib/VitableConnect/types/employer_contact.rb +12 -0
  154. data/lib/VitableConnect/types/employer_hris.rb +9 -0
  155. data/lib/VitableConnect/types/employer_hris_response.rb +10 -0
  156. data/lib/VitableConnect/types/employer_hris_status.rb +13 -0
  157. data/lib/VitableConnect/types/employer_id.rb +23 -0
  158. data/lib/VitableConnect/types/employer_invoice_pdf.rb +9 -0
  159. data/lib/VitableConnect/types/employer_invoice_pdf_response.rb +10 -0
  160. data/lib/VitableConnect/types/employer_invoices_list_response.rb +12 -0
  161. data/lib/VitableConnect/types/employer_payroll_deduction_statement_list_response.rb +12 -0
  162. data/lib/VitableConnect/types/employer_response.rb +10 -0
  163. data/lib/VitableConnect/types/employer_search.rb +23 -0
  164. data/lib/VitableConnect/types/employer_settings.rb +9 -0
  165. data/lib/VitableConnect/types/employer_settings_response.rb +10 -0
  166. data/lib/VitableConnect/types/enrollment.rb +34 -0
  167. data/lib/VitableConnect/types/enrollment_detail.rb +39 -0
  168. data/lib/VitableConnect/types/enrollment_id.rb +23 -0
  169. data/lib/VitableConnect/types/enrollment_list_response.rb +12 -0
  170. data/lib/VitableConnect/types/enrollment_rate.rb +13 -0
  171. data/lib/VitableConnect/types/enrollment_rate_summary.rb +13 -0
  172. data/lib/VitableConnect/types/enrollment_response.rb +10 -0
  173. data/lib/VitableConnect/types/enrollment_status.rb +14 -0
  174. data/lib/VitableConnect/types/error_response.rb +17 -0
  175. data/lib/VitableConnect/types/event_id.rb +23 -0
  176. data/lib/VitableConnect/types/event_name.rb +21 -0
  177. data/lib/VitableConnect/types/gender.rb +15 -0
  178. data/lib/VitableConnect/types/grant_type.rb +11 -0
  179. data/lib/VitableConnect/types/group.rb +19 -0
  180. data/lib/VitableConnect/types/group_id.rb +23 -0
  181. data/lib/VitableConnect/types/group_list_response.rb +12 -0
  182. data/lib/VitableConnect/types/group_member_sync_detail_response.rb +10 -0
  183. data/lib/VitableConnect/types/group_member_sync_failure.rb +13 -0
  184. data/lib/VitableConnect/types/group_member_sync_member_request.rb +23 -0
  185. data/lib/VitableConnect/types/group_member_sync_request_detail.rb +17 -0
  186. data/lib/VitableConnect/types/group_member_sync_request_detail_response.rb +10 -0
  187. data/lib/VitableConnect/types/group_member_sync_response.rb +13 -0
  188. data/lib/VitableConnect/types/group_member_sync_results.rb +13 -0
  189. data/lib/VitableConnect/types/group_response.rb +10 -0
  190. data/lib/VitableConnect/types/household_member.rb +22 -0
  191. data/lib/VitableConnect/types/household_member_relationship.rb +14 -0
  192. data/lib/VitableConnect/types/household_member_type.rb +13 -0
  193. data/lib/VitableConnect/types/household_members_response.rb +10 -0
  194. data/lib/VitableConnect/types/hris_connection.rb +17 -0
  195. data/lib/VitableConnect/types/hris_status_item.rb +15 -0
  196. data/lib/VitableConnect/types/ichra_contribution_class.rb +29 -0
  197. data/lib/VitableConnect/types/idp_provider.rb +12 -0
  198. data/lib/VitableConnect/types/include_cancelled.rb +23 -0
  199. data/lib/VitableConnect/types/invoice.rb +15 -0
  200. data/lib/VitableConnect/types/invoice_id.rb +23 -0
  201. data/lib/VitableConnect/types/invoices_cursor_pagination.rb +9 -0
  202. data/lib/VitableConnect/types/limit.rb +23 -0
  203. data/lib/VitableConnect/types/list_webhook_event_deliveries_response.rb +9 -0
  204. data/lib/VitableConnect/types/marital_status.rb +12 -0
  205. data/lib/VitableConnect/types/member.rb +42 -0
  206. data/lib/VitableConnect/types/member_address.rb +17 -0
  207. data/lib/VitableConnect/types/member_dependents_response.rb +10 -0
  208. data/lib/VitableConnect/types/member_digital_benefit_cards_response.rb +10 -0
  209. data/lib/VitableConnect/types/member_employments_response.rb +10 -0
  210. data/lib/VitableConnect/types/member_enrollment.rb +58 -0
  211. data/lib/VitableConnect/types/member_enrollments_response.rb +10 -0
  212. data/lib/VitableConnect/types/member_id.rb +23 -0
  213. data/lib/VitableConnect/types/member_legal_dependent.rb +24 -0
  214. data/lib/VitableConnect/types/member_list_item.rb +20 -0
  215. data/lib/VitableConnect/types/member_list_response.rb +12 -0
  216. data/lib/VitableConnect/types/member_qualifying_life_event.rb +19 -0
  217. data/lib/VitableConnect/types/member_qualifying_life_event_list_response.rb +12 -0
  218. data/lib/VitableConnect/types/member_response.rb +10 -0
  219. data/lib/VitableConnect/types/member_search.rb +23 -0
  220. data/lib/VitableConnect/types/member_status.rb +12 -0
  221. data/lib/VitableConnect/types/missing_employee_resolution.rb +12 -0
  222. data/lib/VitableConnect/types/name_suffix.rb +17 -0
  223. data/lib/VitableConnect/types/offset.rb +23 -0
  224. data/lib/VitableConnect/types/operation.rb +12 -0
  225. data/lib/VitableConnect/types/organization.rb +19 -0
  226. data/lib/VitableConnect/types/organization_employer.rb +44 -0
  227. data/lib/VitableConnect/types/organization_employer_list_response.rb +12 -0
  228. data/lib/VitableConnect/types/organization_hris_provider.rb +11 -0
  229. data/lib/VitableConnect/types/organization_hris_providers_response.rb +10 -0
  230. data/lib/VitableConnect/types/organization_type.rb +16 -0
  231. data/lib/VitableConnect/types/organizations_list_response.rb +12 -0
  232. data/lib/VitableConnect/types/page.rb +23 -0
  233. data/lib/VitableConnect/types/pagination.rb +16 -0
  234. data/lib/VitableConnect/types/payroll_access_setup_status.rb +11 -0
  235. data/lib/VitableConnect/types/payroll_access_setup_status_response.rb +10 -0
  236. data/lib/VitableConnect/types/payroll_deduction_statement.rb +29 -0
  237. data/lib/VitableConnect/types/payroll_integration_email.rb +9 -0
  238. data/lib/VitableConnect/types/payroll_integration_email_response.rb +10 -0
  239. data/lib/VitableConnect/types/plan.rb +11 -0
  240. data/lib/VitableConnect/types/plan_list_response.rb +12 -0
  241. data/lib/VitableConnect/types/plan_year_enrollment.rb +35 -0
  242. data/lib/VitableConnect/types/plan_year_enrollment_election_status.rb +14 -0
  243. data/lib/VitableConnect/types/plan_year_enrollment_list_response.rb +12 -0
  244. data/lib/VitableConnect/types/plan_year_enrollment_policy_status.rb +14 -0
  245. data/lib/VitableConnect/types/preferred_language.rb +16 -0
  246. data/lib/VitableConnect/types/product_code.rb +25 -0
  247. data/lib/VitableConnect/types/qualifying_life_event_status.rb +13 -0
  248. data/lib/VitableConnect/types/qualifying_life_event_type.rb +31 -0
  249. data/lib/VitableConnect/types/reissue_enrollment.rb +9 -0
  250. data/lib/VitableConnect/types/reissue_enrollment_response.rb +10 -0
  251. data/lib/VitableConnect/types/relationship.rb +12 -0
  252. data/lib/VitableConnect/types/remaining_employee_action.rb +12 -0
  253. data/lib/VitableConnect/types/request_id.rb +23 -0
  254. data/lib/VitableConnect/types/resource_id.rb +23 -0
  255. data/lib/VitableConnect/types/resource_type.rb +16 -0
  256. data/lib/VitableConnect/types/search.rb +23 -0
  257. data/lib/VitableConnect/types/sex_at_birth.rb +14 -0
  258. data/lib/VitableConnect/types/state.rb +72 -0
  259. data/lib/VitableConnect/types/status.rb +13 -0
  260. data/lib/VitableConnect/types/tax_classification.rb +13 -0
  261. data/lib/VitableConnect/types/termination_rule.rb +12 -0
  262. data/lib/VitableConnect/types/update_employer_address_input.rb +17 -0
  263. data/lib/VitableConnect/types/waiting_period.rb +13 -0
  264. data/lib/VitableConnect/types/webhook_delivery.rb +25 -0
  265. data/lib/VitableConnect/types/webhook_event.rb +19 -0
  266. data/lib/VitableConnect/types/webhook_event_list_response.rb +12 -0
  267. data/lib/VitableConnect/types/webhook_event_response.rb +10 -0
  268. data/lib/{vitable_connect → VitableConnect}/version.rb +1 -1
  269. data/lib/VitableConnect/webhook_events/client.rb +156 -0
  270. data/lib/VitableConnect/webhook_events/types/get_webhook_events_request.rb +11 -0
  271. data/lib/VitableConnect/webhook_events/types/list_deliveries_webhook_events_request.rb +11 -0
  272. data/lib/VitableConnect/webhook_events/types/list_webhook_events_request.rb +23 -0
  273. data/lib/VitableConnect.rb +268 -0
  274. data/lib/vitable_connect.rb +4 -105
  275. data/reference.md +3722 -0
  276. metadata +286 -266
  277. data/.ignore +0 -2
  278. data/CHANGELOG.md +0 -133
  279. data/lib/vitable_connect/client.rb +0 -139
  280. data/lib/vitable_connect/errors.rb +0 -228
  281. data/lib/vitable_connect/file_part.rb +0 -58
  282. data/lib/vitable_connect/internal/page_number_page.rb +0 -113
  283. data/lib/vitable_connect/internal/transport/base_client.rb +0 -582
  284. data/lib/vitable_connect/internal/transport/pooled_net_requester.rb +0 -210
  285. data/lib/vitable_connect/internal/type/array_of.rb +0 -168
  286. data/lib/vitable_connect/internal/type/base_model.rb +0 -534
  287. data/lib/vitable_connect/internal/type/base_page.rb +0 -55
  288. data/lib/vitable_connect/internal/type/boolean.rb +0 -77
  289. data/lib/vitable_connect/internal/type/converter.rb +0 -327
  290. data/lib/vitable_connect/internal/type/enum.rb +0 -152
  291. data/lib/vitable_connect/internal/type/file_input.rb +0 -111
  292. data/lib/vitable_connect/internal/type/hash_of.rb +0 -188
  293. data/lib/vitable_connect/internal/type/request_parameters.rb +0 -42
  294. data/lib/vitable_connect/internal/type/union.rb +0 -245
  295. data/lib/vitable_connect/internal/type/unknown.rb +0 -81
  296. data/lib/vitable_connect/internal/util.rb +0 -966
  297. data/lib/vitable_connect/internal.rb +0 -20
  298. data/lib/vitable_connect/models/auth_issue_access_token_params.rb +0 -68
  299. data/lib/vitable_connect/models/auth_issue_access_token_response.rb +0 -70
  300. data/lib/vitable_connect/models/employee.rb +0 -310
  301. data/lib/vitable_connect/models/employee_class.rb +0 -25
  302. data/lib/vitable_connect/models/employee_list_enrollments_params.rb +0 -38
  303. data/lib/vitable_connect/models/employee_retrieve_params.rb +0 -22
  304. data/lib/vitable_connect/models/employee_retrieve_response.rb +0 -18
  305. data/lib/vitable_connect/models/employer.rb +0 -155
  306. data/lib/vitable_connect/models/employer_create_params.rb +0 -115
  307. data/lib/vitable_connect/models/employer_list_employees_params.rb +0 -38
  308. data/lib/vitable_connect/models/employer_list_params.rb +0 -30
  309. data/lib/vitable_connect/models/employer_response.rb +0 -19
  310. data/lib/vitable_connect/models/employer_retrieve_params.rb +0 -22
  311. data/lib/vitable_connect/models/employer_submit_census_sync_params.rb +0 -374
  312. data/lib/vitable_connect/models/employer_submit_census_sync_response.rb +0 -35
  313. data/lib/vitable_connect/models/employer_update_settings_params.rb +0 -52
  314. data/lib/vitable_connect/models/employer_update_settings_response.rb +0 -56
  315. data/lib/vitable_connect/models/enrollment.rb +0 -234
  316. data/lib/vitable_connect/models/enrollment_retrieve_params.rb +0 -22
  317. data/lib/vitable_connect/models/enrollment_retrieve_response.rb +0 -18
  318. data/lib/vitable_connect/models/enrollment_status.rb +0 -21
  319. data/lib/vitable_connect/models/group.rb +0 -57
  320. data/lib/vitable_connect/models/group_create_params.rb +0 -26
  321. data/lib/vitable_connect/models/group_list_params.rb +0 -30
  322. data/lib/vitable_connect/models/group_response.rb +0 -18
  323. data/lib/vitable_connect/models/group_retrieve_params.rb +0 -22
  324. data/lib/vitable_connect/models/group_update_params.rb +0 -36
  325. data/lib/vitable_connect/models/groups/members/sync_retrieve_params.rb +0 -33
  326. data/lib/vitable_connect/models/groups/members/sync_retrieve_response.rb +0 -128
  327. data/lib/vitable_connect/models/groups/members/sync_submit_params.rb +0 -121
  328. data/lib/vitable_connect/models/groups/members/sync_submit_response.rb +0 -45
  329. data/lib/vitable_connect/models/pagination.rb +0 -42
  330. data/lib/vitable_connect/models/plan_list_params.rb +0 -30
  331. data/lib/vitable_connect/models/plan_list_response.rb +0 -22
  332. data/lib/vitable_connect/models/type.rb +0 -17
  333. data/lib/vitable_connect/models/webhook_event.rb +0 -62
  334. data/lib/vitable_connect/models/webhook_event_list_deliveries_params.rb +0 -20
  335. data/lib/vitable_connect/models/webhook_event_list_deliveries_response.rb +0 -92
  336. data/lib/vitable_connect/models/webhook_event_list_params.rb +0 -132
  337. data/lib/vitable_connect/models/webhook_event_retrieve_params.rb +0 -20
  338. data/lib/vitable_connect/models/webhook_event_retrieve_response.rb +0 -18
  339. data/lib/vitable_connect/models.rb +0 -104
  340. data/lib/vitable_connect/request_options.rb +0 -78
  341. data/lib/vitable_connect/resources/auth.rb +0 -41
  342. data/lib/vitable_connect/resources/benefit_eligibility_policies.rb +0 -14
  343. data/lib/vitable_connect/resources/employees.rb +0 -65
  344. data/lib/vitable_connect/resources/employers.rb +0 -184
  345. data/lib/vitable_connect/resources/enrollments.rb +0 -35
  346. data/lib/vitable_connect/resources/groups/members/sync.rb +0 -74
  347. data/lib/vitable_connect/resources/groups/members.rb +0 -20
  348. data/lib/vitable_connect/resources/groups.rb +0 -114
  349. data/lib/vitable_connect/resources/plans.rb +0 -41
  350. data/lib/vitable_connect/resources/webhook_events.rb +0 -95
  351. data/manifest.yaml +0 -17
  352. data/rbi/vitable_connect/client.rbi +0 -93
  353. data/rbi/vitable_connect/errors.rbi +0 -205
  354. data/rbi/vitable_connect/file_part.rbi +0 -37
  355. data/rbi/vitable_connect/internal/page_number_page.rbi +0 -49
  356. data/rbi/vitable_connect/internal/transport/base_client.rbi +0 -307
  357. data/rbi/vitable_connect/internal/transport/pooled_net_requester.rbi +0 -84
  358. data/rbi/vitable_connect/internal/type/array_of.rbi +0 -108
  359. data/rbi/vitable_connect/internal/type/base_model.rbi +0 -314
  360. data/rbi/vitable_connect/internal/type/base_page.rbi +0 -43
  361. data/rbi/vitable_connect/internal/type/boolean.rbi +0 -58
  362. data/rbi/vitable_connect/internal/type/converter.rbi +0 -225
  363. data/rbi/vitable_connect/internal/type/enum.rbi +0 -82
  364. data/rbi/vitable_connect/internal/type/file_input.rbi +0 -59
  365. data/rbi/vitable_connect/internal/type/hash_of.rbi +0 -108
  366. data/rbi/vitable_connect/internal/type/request_parameters.rbi +0 -31
  367. data/rbi/vitable_connect/internal/type/union.rbi +0 -130
  368. data/rbi/vitable_connect/internal/type/unknown.rbi +0 -58
  369. data/rbi/vitable_connect/internal/util.rbi +0 -515
  370. data/rbi/vitable_connect/internal.rbi +0 -18
  371. data/rbi/vitable_connect/models/auth_issue_access_token_params.rbi +0 -147
  372. data/rbi/vitable_connect/models/auth_issue_access_token_response.rbi +0 -128
  373. data/rbi/vitable_connect/models/employee.rbi +0 -450
  374. data/rbi/vitable_connect/models/employee_class.rbi +0 -38
  375. data/rbi/vitable_connect/models/employee_list_enrollments_params.rbi +0 -68
  376. data/rbi/vitable_connect/models/employee_retrieve_params.rbi +0 -46
  377. data/rbi/vitable_connect/models/employee_retrieve_response.rbi +0 -32
  378. data/rbi/vitable_connect/models/employer.rbi +0 -197
  379. data/rbi/vitable_connect/models/employer_create_params.rbi +0 -169
  380. data/rbi/vitable_connect/models/employer_list_employees_params.rbi +0 -68
  381. data/rbi/vitable_connect/models/employer_list_params.rbi +0 -60
  382. data/rbi/vitable_connect/models/employer_response.rbi +0 -36
  383. data/rbi/vitable_connect/models/employer_retrieve_params.rbi +0 -46
  384. data/rbi/vitable_connect/models/employer_submit_census_sync_params.rbi +0 -819
  385. data/rbi/vitable_connect/models/employer_submit_census_sync_response.rbi +0 -76
  386. data/rbi/vitable_connect/models/employer_update_settings_params.rbi +0 -114
  387. data/rbi/vitable_connect/models/employer_update_settings_response.rbi +0 -147
  388. data/rbi/vitable_connect/models/enrollment.rbi +0 -401
  389. data/rbi/vitable_connect/models/enrollment_retrieve_params.rbi +0 -46
  390. data/rbi/vitable_connect/models/enrollment_retrieve_response.rbi +0 -34
  391. data/rbi/vitable_connect/models/enrollment_status.rbi +0 -32
  392. data/rbi/vitable_connect/models/group.rbi +0 -77
  393. data/rbi/vitable_connect/models/group_create_params.rbi +0 -46
  394. data/rbi/vitable_connect/models/group_list_params.rbi +0 -60
  395. data/rbi/vitable_connect/models/group_response.rbi +0 -32
  396. data/rbi/vitable_connect/models/group_retrieve_params.rbi +0 -43
  397. data/rbi/vitable_connect/models/group_update_params.rbi +0 -58
  398. data/rbi/vitable_connect/models/groups/members/sync_retrieve_params.rbi +0 -56
  399. data/rbi/vitable_connect/models/groups/members/sync_retrieve_response.rbi +0 -282
  400. data/rbi/vitable_connect/models/groups/members/sync_submit_params.rbi +0 -214
  401. data/rbi/vitable_connect/models/groups/members/sync_submit_response.rbi +0 -92
  402. data/rbi/vitable_connect/models/pagination.rbi +0 -62
  403. data/rbi/vitable_connect/models/plan_list_params.rbi +0 -60
  404. data/rbi/vitable_connect/models/plan_list_response.rbi +0 -29
  405. data/rbi/vitable_connect/models/type.rbi +0 -21
  406. data/rbi/vitable_connect/models/webhook_event.rbi +0 -81
  407. data/rbi/vitable_connect/models/webhook_event_list_deliveries_params.rbi +0 -38
  408. data/rbi/vitable_connect/models/webhook_event_list_deliveries_response.rbi +0 -147
  409. data/rbi/vitable_connect/models/webhook_event_list_params.rbi +0 -299
  410. data/rbi/vitable_connect/models/webhook_event_retrieve_params.rbi +0 -38
  411. data/rbi/vitable_connect/models/webhook_event_retrieve_response.rbi +0 -34
  412. data/rbi/vitable_connect/models.rbi +0 -70
  413. data/rbi/vitable_connect/request_options.rbi +0 -61
  414. data/rbi/vitable_connect/resources/auth.rbi +0 -36
  415. data/rbi/vitable_connect/resources/benefit_eligibility_policies.rbi +0 -12
  416. data/rbi/vitable_connect/resources/employees.rbi +0 -51
  417. data/rbi/vitable_connect/resources/employers.rbi +0 -150
  418. data/rbi/vitable_connect/resources/enrollments.rbi +0 -27
  419. data/rbi/vitable_connect/resources/groups/members/sync.rbi +0 -62
  420. data/rbi/vitable_connect/resources/groups/members.rbi +0 -17
  421. data/rbi/vitable_connect/resources/groups.rbi +0 -79
  422. data/rbi/vitable_connect/resources/plans.rbi +0 -34
  423. data/rbi/vitable_connect/resources/webhook_events.rbi +0 -83
  424. data/rbi/vitable_connect/version.rbi +0 -5
  425. data/sig/vitable_connect/client.rbs +0 -46
  426. data/sig/vitable_connect/errors.rbs +0 -117
  427. data/sig/vitable_connect/file_part.rbs +0 -21
  428. data/sig/vitable_connect/internal/page_number_page.rbs +0 -28
  429. data/sig/vitable_connect/internal/transport/base_client.rbs +0 -133
  430. data/sig/vitable_connect/internal/transport/pooled_net_requester.rbs +0 -48
  431. data/sig/vitable_connect/internal/type/array_of.rbs +0 -48
  432. data/sig/vitable_connect/internal/type/base_model.rbs +0 -104
  433. data/sig/vitable_connect/internal/type/base_page.rbs +0 -24
  434. data/sig/vitable_connect/internal/type/boolean.rbs +0 -26
  435. data/sig/vitable_connect/internal/type/converter.rbs +0 -79
  436. data/sig/vitable_connect/internal/type/enum.rbs +0 -32
  437. data/sig/vitable_connect/internal/type/file_input.rbs +0 -25
  438. data/sig/vitable_connect/internal/type/hash_of.rbs +0 -48
  439. data/sig/vitable_connect/internal/type/request_parameters.rbs +0 -20
  440. data/sig/vitable_connect/internal/type/union.rbs +0 -52
  441. data/sig/vitable_connect/internal/type/unknown.rbs +0 -26
  442. data/sig/vitable_connect/internal/util.rbs +0 -199
  443. data/sig/vitable_connect/internal.rbs +0 -10
  444. data/sig/vitable_connect/models/auth_issue_access_token_params.rbs +0 -56
  445. data/sig/vitable_connect/models/auth_issue_access_token_response.rbs +0 -50
  446. data/sig/vitable_connect/models/employee.rbs +0 -214
  447. data/sig/vitable_connect/models/employee_class.rbs +0 -24
  448. data/sig/vitable_connect/models/employee_list_enrollments_params.rbs +0 -36
  449. data/sig/vitable_connect/models/employee_retrieve_params.rbs +0 -24
  450. data/sig/vitable_connect/models/employee_retrieve_response.rbs +0 -13
  451. data/sig/vitable_connect/models/employer.rbs +0 -112
  452. data/sig/vitable_connect/models/employer_create_params.rbs +0 -93
  453. data/sig/vitable_connect/models/employer_list_employees_params.rbs +0 -36
  454. data/sig/vitable_connect/models/employer_list_params.rbs +0 -32
  455. data/sig/vitable_connect/models/employer_response.rbs +0 -13
  456. data/sig/vitable_connect/models/employer_retrieve_params.rbs +0 -24
  457. data/sig/vitable_connect/models/employer_submit_census_sync_params.rbs +0 -274
  458. data/sig/vitable_connect/models/employer_submit_census_sync_response.rbs +0 -30
  459. data/sig/vitable_connect/models/employer_update_settings_params.rbs +0 -44
  460. data/sig/vitable_connect/models/employer_update_settings_response.rbs +0 -48
  461. data/sig/vitable_connect/models/enrollment.rbs +0 -164
  462. data/sig/vitable_connect/models/enrollment_retrieve_params.rbs +0 -24
  463. data/sig/vitable_connect/models/enrollment_retrieve_response.rbs +0 -13
  464. data/sig/vitable_connect/models/enrollment_status.rbs +0 -16
  465. data/sig/vitable_connect/models/group.rbs +0 -45
  466. data/sig/vitable_connect/models/group_create_params.rbs +0 -28
  467. data/sig/vitable_connect/models/group_list_params.rbs +0 -32
  468. data/sig/vitable_connect/models/group_response.rbs +0 -13
  469. data/sig/vitable_connect/models/group_retrieve_params.rbs +0 -23
  470. data/sig/vitable_connect/models/group_update_params.rbs +0 -32
  471. data/sig/vitable_connect/models/groups/members/sync_retrieve_params.rbs +0 -32
  472. data/sig/vitable_connect/models/groups/members/sync_retrieve_response.rbs +0 -126
  473. data/sig/vitable_connect/models/groups/members/sync_submit_params.rbs +0 -124
  474. data/sig/vitable_connect/models/groups/members/sync_submit_response.rbs +0 -47
  475. data/sig/vitable_connect/models/pagination.rbs +0 -30
  476. data/sig/vitable_connect/models/plan_list_params.rbs +0 -32
  477. data/sig/vitable_connect/models/plan_list_response.rbs +0 -15
  478. data/sig/vitable_connect/models/type.rbs +0 -14
  479. data/sig/vitable_connect/models/webhook_event.rbs +0 -45
  480. data/sig/vitable_connect/models/webhook_event_list_deliveries_params.rbs +0 -23
  481. data/sig/vitable_connect/models/webhook_event_list_deliveries_response.rbs +0 -77
  482. data/sig/vitable_connect/models/webhook_event_list_params.rbs +0 -124
  483. data/sig/vitable_connect/models/webhook_event_retrieve_params.rbs +0 -23
  484. data/sig/vitable_connect/models/webhook_event_retrieve_response.rbs +0 -14
  485. data/sig/vitable_connect/models.rbs +0 -61
  486. data/sig/vitable_connect/request_options.rbs +0 -36
  487. data/sig/vitable_connect/resources/auth.rbs +0 -13
  488. data/sig/vitable_connect/resources/benefit_eligibility_policies.rbs +0 -7
  489. data/sig/vitable_connect/resources/employees.rbs +0 -19
  490. data/sig/vitable_connect/resources/employers.rbs +0 -48
  491. data/sig/vitable_connect/resources/enrollments.rbs +0 -12
  492. data/sig/vitable_connect/resources/groups/members/sync.rbs +0 -23
  493. data/sig/vitable_connect/resources/groups/members.rbs +0 -11
  494. data/sig/vitable_connect/resources/groups.rbs +0 -33
  495. data/sig/vitable_connect/resources/plans.rbs +0 -13
  496. data/sig/vitable_connect/resources/webhook_events.rbs +0 -28
  497. data/sig/vitable_connect/version.rbs +0 -3
@@ -1,210 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module VitableConnect
4
- module Internal
5
- module Transport
6
- # @api private
7
- class PooledNetRequester
8
- extend VitableConnect::Internal::Util::SorbetRuntimeSupport
9
-
10
- # from the golang stdlib
11
- # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
12
- KEEP_ALIVE_TIMEOUT = 30
13
-
14
- DEFAULT_MAX_CONNECTIONS = [Etc.nprocessors, 99].max
15
-
16
- class << self
17
- # @api private
18
- #
19
- # @param cert_store [OpenSSL::X509::Store]
20
- # @param url [URI::Generic]
21
- #
22
- # @return [Net::HTTP]
23
- def connect(cert_store:, url:)
24
- port =
25
- case [url.port, url.scheme]
26
- in [Integer, _]
27
- url.port
28
- in [nil, "http" | "ws"]
29
- Net::HTTP.http_default_port
30
- in [nil, "https" | "wss"]
31
- Net::HTTP.https_default_port
32
- end
33
-
34
- Net::HTTP.new(url.host, port).tap do
35
- _1.use_ssl = %w[https wss].include?(url.scheme)
36
- _1.max_retries = 0
37
-
38
- (_1.cert_store = cert_store) if _1.use_ssl?
39
- end
40
- end
41
-
42
- # @api private
43
- #
44
- # @param conn [Net::HTTP]
45
- # @param deadline [Float]
46
- def calibrate_socket_timeout(conn, deadline)
47
- timeout = deadline - VitableConnect::Internal::Util.monotonic_secs
48
- conn.open_timeout = conn.read_timeout = conn.write_timeout = conn.continue_timeout = timeout
49
- end
50
-
51
- # @api private
52
- #
53
- # @param request [Hash{Symbol=>Object}] .
54
- #
55
- # @option request [Symbol] :method
56
- #
57
- # @option request [URI::Generic] :url
58
- #
59
- # @option request [Hash{String=>String}] :headers
60
- #
61
- # @param blk [Proc]
62
- #
63
- # @yieldparam [String]
64
- # @return [Array(Net::HTTPGenericRequest, Proc)]
65
- def build_request(request, &blk)
66
- method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
67
- req = Net::HTTPGenericRequest.new(
68
- method.to_s.upcase,
69
- !body.nil?,
70
- method != :head,
71
- URI(url.to_s) # ensure we construct a URI class of the right scheme
72
- )
73
-
74
- headers.each { req[_1] = _2 }
75
-
76
- case body
77
- in nil
78
- req["content-length"] ||= 0 unless req["transfer-encoding"]
79
- in String
80
- req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
81
- req.body_stream = VitableConnect::Internal::Util::ReadIOAdapter.new(body, &blk)
82
- in StringIO
83
- req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
84
- req.body_stream = VitableConnect::Internal::Util::ReadIOAdapter.new(body, &blk)
85
- in Pathname | IO | Enumerator
86
- req["transfer-encoding"] ||= "chunked" unless req["content-length"]
87
- req.body_stream = VitableConnect::Internal::Util::ReadIOAdapter.new(body, &blk)
88
- end
89
-
90
- [req, req.body_stream&.method(:close)]
91
- end
92
- end
93
-
94
- # @api private
95
- #
96
- # @param url [URI::Generic]
97
- # @param deadline [Float]
98
- # @param blk [Proc]
99
- #
100
- # @raise [Timeout::Error]
101
- # @yieldparam [Net::HTTP]
102
- private def with_pool(url, deadline:, &blk)
103
- origin = VitableConnect::Internal::Util.uri_origin(url)
104
- timeout = deadline - VitableConnect::Internal::Util.monotonic_secs
105
- pool =
106
- @mutex.synchronize do
107
- @pools[origin] ||= ConnectionPool.new(size: @size) do
108
- self.class.connect(cert_store: @cert_store, url: url)
109
- end
110
- end
111
-
112
- pool.with(timeout: timeout, &blk)
113
- end
114
-
115
- # @api private
116
- #
117
- # @param request [Hash{Symbol=>Object}] .
118
- #
119
- # @option request [Symbol] :method
120
- #
121
- # @option request [URI::Generic] :url
122
- #
123
- # @option request [Hash{String=>String}] :headers
124
- #
125
- # @option request [Object] :body
126
- #
127
- # @option request [Float] :deadline
128
- #
129
- # @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
130
- def execute(request)
131
- url, deadline = request.fetch_values(:url, :deadline)
132
-
133
- req = nil
134
- finished = false
135
-
136
- # rubocop:disable Metrics/BlockLength
137
- enum = Enumerator.new do |y|
138
- next if finished
139
-
140
- with_pool(url, deadline: deadline) do |conn|
141
- eof = false
142
- closing = nil
143
- ::Thread.handle_interrupt(Object => :never) do
144
- ::Thread.handle_interrupt(Object => :immediate) do
145
- req, closing = self.class.build_request(request) do
146
- self.class.calibrate_socket_timeout(conn, deadline)
147
- end
148
-
149
- self.class.calibrate_socket_timeout(conn, deadline)
150
- unless conn.started?
151
- conn.keep_alive_timeout = self.class::KEEP_ALIVE_TIMEOUT
152
- conn.start
153
- end
154
-
155
- self.class.calibrate_socket_timeout(conn, deadline)
156
- ::Kernel.catch(:jump) do
157
- conn.request(req) do |rsp|
158
- y << [req, rsp]
159
- ::Kernel.throw(:jump) if finished
160
-
161
- rsp.read_body do |bytes|
162
- y << bytes.force_encoding(Encoding::BINARY)
163
- ::Kernel.throw(:jump) if finished
164
-
165
- self.class.calibrate_socket_timeout(conn, deadline)
166
- end
167
- eof = true
168
- end
169
- end
170
- end
171
- ensure
172
- begin
173
- conn.finish if !eof && conn&.started?
174
- ensure
175
- closing&.call
176
- end
177
- end
178
- end
179
- rescue Timeout::Error
180
- raise VitableConnect::Errors::APITimeoutError.new(url: url, request: req)
181
- rescue StandardError
182
- raise VitableConnect::Errors::APIConnectionError.new(url: url, request: req)
183
- end
184
- # rubocop:enable Metrics/BlockLength
185
-
186
- _, response = enum.next
187
- body = VitableConnect::Internal::Util.fused_enum(enum, external: true) do
188
- finished = true
189
- loop { enum.next }
190
- end
191
- [Integer(response.code), response, body]
192
- end
193
-
194
- # @api private
195
- #
196
- # @param size [Integer]
197
- def initialize(size: self.class::DEFAULT_MAX_CONNECTIONS)
198
- @mutex = Mutex.new
199
- @size = size
200
- @cert_store = OpenSSL::X509::Store.new.tap(&:set_default_paths)
201
- @pools = {}
202
- end
203
-
204
- define_sorbet_constant!(:Request) do
205
- T.type_alias { {method: Symbol, url: URI::Generic, headers: T::Hash[String, String], body: T.anything, deadline: Float} }
206
- end
207
- end
208
- end
209
- end
210
- end
@@ -1,168 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module VitableConnect
4
- module Internal
5
- module Type
6
- # @api private
7
- #
8
- # @abstract
9
- #
10
- # @generic Elem
11
- #
12
- # Array of items of a given type.
13
- class ArrayOf
14
- include VitableConnect::Internal::Type::Converter
15
- include VitableConnect::Internal::Util::SorbetRuntimeSupport
16
-
17
- private_class_method :new
18
-
19
- # @overload [](type_info, spec = {})
20
- #
21
- # @param type_info [Hash{Symbol=>Object}, Proc, VitableConnect::Internal::Type::Converter, Class]
22
- #
23
- # @param spec [Hash{Symbol=>Object}] .
24
- #
25
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
26
- #
27
- # @option spec [Proc] :enum
28
- #
29
- # @option spec [Proc] :union
30
- #
31
- # @option spec [Boolean] :"nil?"
32
- #
33
- # @return [self]
34
- def self.[](...) = new(...)
35
-
36
- # @api public
37
- #
38
- # @param other [Object]
39
- #
40
- # @return [Boolean]
41
- def ===(other) = other.is_a?(Array) && other.all?(item_type)
42
-
43
- # @api public
44
- #
45
- # @param other [Object]
46
- #
47
- # @return [Boolean]
48
- def ==(other)
49
- # rubocop:disable Layout/LineLength
50
- other.is_a?(VitableConnect::Internal::Type::ArrayOf) && other.nilable? == nilable? && other.item_type == item_type
51
- # rubocop:enable Layout/LineLength
52
- end
53
-
54
- # @api public
55
- #
56
- # @return [Integer]
57
- def hash = [self.class, item_type].hash
58
-
59
- # @api private
60
- #
61
- # @param value [Array<Object>, Object]
62
- #
63
- # @param state [Hash{Symbol=>Object}] .
64
- #
65
- # @option state [Boolean] :translate_names
66
- #
67
- # @option state [Boolean] :strictness
68
- #
69
- # @option state [Hash{Symbol=>Object}] :exactness
70
- #
71
- # @option state [Class<StandardError>] :error
72
- #
73
- # @option state [Integer] :branched
74
- #
75
- # @return [Array<Object>, Object]
76
- def coerce(value, state:)
77
- exactness = state.fetch(:exactness)
78
-
79
- unless value.is_a?(Array)
80
- exactness[:no] += 1
81
- state[:error] = TypeError.new("#{value.class} can't be coerced into #{Array}")
82
- return value
83
- end
84
-
85
- target = item_type
86
- exactness[:yes] += 1
87
- value
88
- .map do |item|
89
- case [nilable?, item]
90
- in [true, nil]
91
- exactness[:yes] += 1
92
- nil
93
- else
94
- VitableConnect::Internal::Type::Converter.coerce(target, item, state: state)
95
- end
96
- end
97
- end
98
-
99
- # @api private
100
- #
101
- # @param value [Array<Object>, Object]
102
- #
103
- # @param state [Hash{Symbol=>Object}] .
104
- #
105
- # @option state [Boolean] :can_retry
106
- #
107
- # @return [Array<Object>, Object]
108
- def dump(value, state:)
109
- target = item_type
110
- if value.is_a?(Array)
111
- value.map do
112
- VitableConnect::Internal::Type::Converter.dump(target, _1, state: state)
113
- end
114
- else
115
- super
116
- end
117
- end
118
-
119
- # @api private
120
- #
121
- # @return [Object]
122
- def to_sorbet_type
123
- T::Array[VitableConnect::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(item_type)]
124
- end
125
-
126
- # @api private
127
- #
128
- # @return [generic<Elem>]
129
- protected def item_type = @item_type_fn.call
130
-
131
- # @api private
132
- #
133
- # @return [Boolean]
134
- protected def nilable? = @nilable
135
-
136
- # @api private
137
- #
138
- # @param type_info [Hash{Symbol=>Object}, Proc, VitableConnect::Internal::Type::Converter, Class]
139
- #
140
- # @param spec [Hash{Symbol=>Object}] .
141
- #
142
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
143
- #
144
- # @option spec [Proc] :enum
145
- #
146
- # @option spec [Proc] :union
147
- #
148
- # @option spec [Boolean] :"nil?"
149
- def initialize(type_info, spec = {})
150
- @item_type_fn = VitableConnect::Internal::Type::Converter.type_info(type_info || spec)
151
- @meta = VitableConnect::Internal::Type::Converter.meta_info(type_info, spec)
152
- @nilable = spec.fetch(:nil?, false)
153
- end
154
-
155
- # @api private
156
- #
157
- # @param depth [Integer]
158
- #
159
- # @return [String]
160
- def inspect(depth: 0)
161
- items = VitableConnect::Internal::Type::Converter.inspect(item_type, depth: depth.succ)
162
-
163
- "#{self.class}[#{[items, nilable? ? 'nil' : nil].compact.join(' | ')}]"
164
- end
165
- end
166
- end
167
- end
168
- end