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
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ class Client
6
+ # @param client [VitableConnect::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # Returns a paginated list of groups belonging to the authenticated organization.
14
+ #
15
+ # @param request_options [Hash]
16
+ # @param params [Hash]
17
+ # @option request_options [String] :base_url
18
+ # @option request_options [Hash{String => Object}] :additional_headers
19
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
20
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
21
+ # @option request_options [Integer] :timeout_in_seconds
22
+ # @option params [Integer, nil] :limit
23
+ # @option params [Integer, nil] :page
24
+ #
25
+ # @example
26
+ # client.groups.list(
27
+ # limit: 20,
28
+ # page: 1
29
+ # )
30
+ #
31
+ # @return [VitableConnect::Types::GroupListResponse]
32
+ def list(request_options: {}, **params)
33
+ params = VitableConnect::Internal::Types::Utils.normalize_keys(params)
34
+ query_params = {}
35
+ query_params["limit"] = params[:limit] if params.key?(:limit)
36
+ query_params["page"] = params[:page] if params.key?(:page)
37
+
38
+ VitableConnect::Internal::OffsetItemIterator.new(
39
+ initial_page: query_params["page"],
40
+ item_field: :data,
41
+ has_next_field: nil,
42
+ step: false
43
+ ) do |next_page|
44
+ query_params["page"] = next_page
45
+ request = VitableConnect::Internal::JSON::Request.new(
46
+ base_url: request_options[:base_url],
47
+ method: "GET",
48
+ path: "v1/groups",
49
+ query: query_params,
50
+ request_options: request_options
51
+ )
52
+ begin
53
+ response = @client.send(request)
54
+ rescue Net::HTTPRequestTimeout
55
+ raise VitableConnect::Errors::TimeoutError
56
+ end
57
+ code = response.code.to_i
58
+ if code.between?(200, 299)
59
+ parsed_response = VitableConnect::Types::GroupListResponse.load(response.body)
60
+ [parsed_response, response]
61
+ else
62
+ error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code)
63
+ raise error_class.new(response.body, code: code)
64
+ end
65
+ end
66
+ end
67
+
68
+ # Creates a new group scoped to the authenticated organization.
69
+ #
70
+ # @param request_options [Hash]
71
+ # @param params [VitableConnect::Groups::Types::CreateGroupRequest]
72
+ # @option request_options [String] :base_url
73
+ # @option request_options [Hash{String => Object}] :additional_headers
74
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
75
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
76
+ # @option request_options [Integer] :timeout_in_seconds
77
+ #
78
+ # @example
79
+ # client.groups.create(
80
+ # name: "Tier 1",
81
+ # external_reference_id: "mol_seg_001"
82
+ # )
83
+ #
84
+ # @return [VitableConnect::Types::GroupResponse]
85
+ def create(request_options: {}, **params)
86
+ params = VitableConnect::Internal::Types::Utils.normalize_keys(params)
87
+ request = VitableConnect::Internal::JSON::Request.new(
88
+ base_url: request_options[:base_url],
89
+ method: "POST",
90
+ path: "v1/groups",
91
+ body: VitableConnect::Groups::Types::CreateGroupRequest.new(params).to_h,
92
+ request_options: request_options
93
+ )
94
+ begin
95
+ response = @client.send(request)
96
+ rescue Net::HTTPRequestTimeout
97
+ raise VitableConnect::Errors::TimeoutError
98
+ end
99
+ code = response.code.to_i
100
+ if code.between?(200, 299)
101
+ VitableConnect::Types::GroupResponse.load(response.body)
102
+ else
103
+ error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code)
104
+ raise error_class.new(response.body, code: code)
105
+ end
106
+ end
107
+
108
+ # Retrieves a single group by its prefixed ID. Returns 404 if the group does not belong to the authenticated
109
+ # organization.
110
+ #
111
+ # @param request_options [Hash]
112
+ # @param params [Hash]
113
+ # @option request_options [String] :base_url
114
+ # @option request_options [Hash{String => Object}] :additional_headers
115
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
116
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
117
+ # @option request_options [Integer] :timeout_in_seconds
118
+ # @option params [VitableConnect::Types::GroupID] :group_id
119
+ #
120
+ # @example
121
+ # client.groups.get(group_id: "grp_abc123def456")
122
+ #
123
+ # @return [VitableConnect::Types::GroupResponse]
124
+ def get(request_options: {}, **params)
125
+ params = VitableConnect::Internal::Types::Utils.normalize_keys(params)
126
+ request = VitableConnect::Internal::JSON::Request.new(
127
+ base_url: request_options[:base_url],
128
+ method: "GET",
129
+ path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}",
130
+ request_options: request_options
131
+ )
132
+ begin
133
+ response = @client.send(request)
134
+ rescue Net::HTTPRequestTimeout
135
+ raise VitableConnect::Errors::TimeoutError
136
+ end
137
+ code = response.code.to_i
138
+ if code.between?(200, 299)
139
+ VitableConnect::Types::GroupResponse.load(response.body)
140
+ else
141
+ error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code)
142
+ raise error_class.new(response.body, code: code)
143
+ end
144
+ end
145
+
146
+ # Partially updates a group's name or external reference ID. Returns 404 if the group does not belong to the
147
+ # authenticated organization.
148
+ #
149
+ # @param request_options [Hash]
150
+ # @param params [VitableConnect::Groups::Types::PatchedUpdateGroupRequest]
151
+ # @option request_options [String] :base_url
152
+ # @option request_options [Hash{String => Object}] :additional_headers
153
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
154
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
155
+ # @option request_options [Integer] :timeout_in_seconds
156
+ # @option params [VitableConnect::Types::GroupID] :group_id
157
+ #
158
+ # @example
159
+ # client.groups.update(
160
+ # group_id: "grp_abc123def456",
161
+ # name: "Tier 1 (renamed)",
162
+ # external_reference_id: "mol_seg_001_v2"
163
+ # )
164
+ #
165
+ # @return [VitableConnect::Types::GroupResponse]
166
+ def update(request_options: {}, **params)
167
+ params = VitableConnect::Internal::Types::Utils.normalize_keys(params)
168
+ request_data = VitableConnect::Groups::Types::PatchedUpdateGroupRequest.new(params).to_h
169
+ non_body_param_names = %w[group_id]
170
+ body = request_data.except(*non_body_param_names)
171
+
172
+ request = VitableConnect::Internal::JSON::Request.new(
173
+ base_url: request_options[:base_url],
174
+ method: "PATCH",
175
+ path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}",
176
+ body: body,
177
+ request_options: request_options
178
+ )
179
+ begin
180
+ response = @client.send(request)
181
+ rescue Net::HTTPRequestTimeout
182
+ raise VitableConnect::Errors::TimeoutError
183
+ end
184
+ code = response.code.to_i
185
+ if code.between?(200, 299)
186
+ VitableConnect::Types::GroupResponse.load(response.body)
187
+ else
188
+ error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code)
189
+ raise error_class.new(response.body, code: code)
190
+ end
191
+ end
192
+
193
+ # @return [VitableConnect::Members::Client]
194
+ def members
195
+ @members ||= VitableConnect::Groups::Members::Client.new(client: @client)
196
+ end
197
+ end
198
+ end
199
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Members
6
+ class Client
7
+ # @param client [VitableConnect::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+
14
+ # @return [VitableConnect::Sync::Client]
15
+ def sync
16
+ @sync ||= VitableConnect::Groups::Members::Sync::Client.new(client: @client)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Members
6
+ module Sync
7
+ class Client
8
+ # @param client [VitableConnect::Internal::Http::RawClient]
9
+ #
10
+ # @return [void]
11
+ def initialize(client:)
12
+ @client = client
13
+ end
14
+
15
+ # Submits a member sync payload for the specified group. Members in the payload will be queued for processing
16
+ # asynchronously. Returns HTTP 202 with the batch ID and acceptance timestamp.
17
+ #
18
+ # @param request_options [Hash]
19
+ # @param params [VitableConnect::Groups::Members::Sync::Types::GroupMemberSyncRequest]
20
+ # @option request_options [String] :base_url
21
+ # @option request_options [Hash{String => Object}] :additional_headers
22
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
23
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
24
+ # @option request_options [Integer] :timeout_in_seconds
25
+ # @option params [VitableConnect::Types::GroupID] :group_id
26
+ #
27
+ # @example
28
+ # client.groups.members.sync.submit(
29
+ # group_id: "grp_abc123def456",
30
+ # members: [{
31
+ # reference_id: "EMP-001",
32
+ # first_name: "Jane",
33
+ # last_name: "Doe",
34
+ # date_of_birth: "1990-05-15",
35
+ # phone: "4155550100",
36
+ # plan_id: "pln_abc123def456",
37
+ # address: {
38
+ # address_line1: "123 Main Street",
39
+ # address_line2: "Apt 4B",
40
+ # city: "San Francisco",
41
+ # state: "CA",
42
+ # zipcode: "94102"
43
+ # },
44
+ # email: "jane.doe@acme.com"
45
+ # }]
46
+ # )
47
+ #
48
+ # @return [VitableConnect::Types::GroupMemberSyncDetailResponse]
49
+ def submit(request_options: {}, **params)
50
+ params = VitableConnect::Internal::Types::Utils.normalize_keys(params)
51
+ request_data = VitableConnect::Groups::Members::Sync::Types::GroupMemberSyncRequest.new(params).to_h
52
+ non_body_param_names = %w[group_id]
53
+ body = request_data.except(*non_body_param_names)
54
+
55
+ request = VitableConnect::Internal::JSON::Request.new(
56
+ base_url: request_options[:base_url],
57
+ method: "POST",
58
+ path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}/members/sync",
59
+ body: body,
60
+ request_options: request_options
61
+ )
62
+ begin
63
+ response = @client.send(request)
64
+ rescue Net::HTTPRequestTimeout
65
+ raise VitableConnect::Errors::TimeoutError
66
+ end
67
+ code = response.code.to_i
68
+ if code.between?(200, 299)
69
+ VitableConnect::Types::GroupMemberSyncDetailResponse.load(response.body)
70
+ else
71
+ error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code)
72
+ raise error_class.new(response.body, code: code)
73
+ end
74
+ end
75
+
76
+ # Retrieves a previously-submitted group member sync request by its `grpmsr_` ID. Returns the acceptance
77
+ # timestamp, completion timestamp (if processing has finished), and the per-member `results` once available.
78
+ # While processing is in flight, `completed_at` and `results` are `null`.
79
+ #
80
+ # @param request_options [Hash]
81
+ # @param params [Hash]
82
+ # @option request_options [String] :base_url
83
+ # @option request_options [Hash{String => Object}] :additional_headers
84
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
85
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
86
+ # @option request_options [Integer] :timeout_in_seconds
87
+ # @option params [VitableConnect::Types::GroupID] :group_id
88
+ # @option params [VitableConnect::Types::RequestID] :request_id
89
+ #
90
+ # @example
91
+ # client.groups.members.sync.get(
92
+ # group_id: "grp_abc123def456",
93
+ # request_id: "request_id"
94
+ # )
95
+ #
96
+ # @return [VitableConnect::Types::GroupMemberSyncRequestDetailResponse]
97
+ def get(request_options: {}, **params)
98
+ params = VitableConnect::Internal::Types::Utils.normalize_keys(params)
99
+ request = VitableConnect::Internal::JSON::Request.new(
100
+ base_url: request_options[:base_url],
101
+ method: "GET",
102
+ path: "v1/groups/#{URI.encode_uri_component(params[:group_id].to_s)}/members/sync/#{URI.encode_uri_component(params[:request_id].to_s)}",
103
+ request_options: request_options
104
+ )
105
+ begin
106
+ response = @client.send(request)
107
+ rescue Net::HTTPRequestTimeout
108
+ raise VitableConnect::Errors::TimeoutError
109
+ end
110
+ code = response.code.to_i
111
+ if code.between?(200, 299)
112
+ VitableConnect::Types::GroupMemberSyncRequestDetailResponse.load(response.body)
113
+ else
114
+ error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code)
115
+ raise error_class.new(response.body, code: code)
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Members
6
+ module Sync
7
+ module Types
8
+ class GetSyncRequest < Internal::Types::Model
9
+ field :group_id, -> { String }, optional: false, nullable: false
10
+
11
+ field :request_id, -> { String }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Members
6
+ module Sync
7
+ module Types
8
+ class GroupMemberSyncRequest < Internal::Types::Model
9
+ field :group_id, -> { String }, optional: false, nullable: false
10
+
11
+ field :members, -> { Internal::Types::Array[VitableConnect::Types::GroupMemberSyncMemberRequest] }, optional: false, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Types
6
+ class CreateGroupRequest < Internal::Types::Model
7
+ field :name, -> { String }, optional: false, nullable: false
8
+
9
+ field :external_reference_id, -> { String }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Types
6
+ class GetGroupsRequest < Internal::Types::Model
7
+ field :group_id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Types
6
+ class ListGroupsRequest < Internal::Types::Model
7
+ field :limit, -> { Integer }, optional: true, nullable: false
8
+
9
+ field :page, -> { Integer }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Groups
5
+ module Types
6
+ class PatchedUpdateGroupRequest < Internal::Types::Model
7
+ field :group_id, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :external_reference_id, -> { String }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Internal
5
+ module Errors
6
+ class ConstraintError < StandardError
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Internal
5
+ module Errors
6
+ class TypeError < StandardError
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Internal
5
+ module Http
6
+ # @api private
7
+ class BaseRequest
8
+ attr_reader :base_url, :path, :method, :headers, :query, :request_options
9
+
10
+ # @param base_url [String] The base URL for the request
11
+ # @param path [String] The path for the request
12
+ # @param method [String] The HTTP method for the request (:get, :post, etc.)
13
+ # @param headers [Hash] Additional headers for the request (optional)
14
+ # @param query [Hash] Query parameters for the request (optional)
15
+ # @param request_options [VitableConnect::RequestOptions, Hash{Symbol=>Object}, nil]
16
+ def initialize(base_url:, path:, method:, headers: {}, query: {}, request_options: {})
17
+ @base_url = base_url
18
+ @path = path
19
+ @method = method
20
+ @headers = headers
21
+ @query = query
22
+ @request_options = request_options
23
+ end
24
+
25
+ # @return [Hash] The query parameters merged with additional query parameters from request options.
26
+ def encode_query
27
+ additional_query = @request_options&.dig(:additional_query_parameters) || @request_options&.dig("additional_query_parameters") || {}
28
+ @query.merge(additional_query)
29
+ end
30
+
31
+ # Child classes should implement:
32
+ # - encode_headers: Returns the encoded HTTP request headers.
33
+ # - encode_body: Returns the encoded HTTP request body.
34
+
35
+ private
36
+
37
+ # Merges additional_headers from request_options into sdk_headers, filtering out
38
+ # any keys that collide with SDK-set or client-protected headers (case-insensitive).
39
+ # @param sdk_headers [Hash] Headers set by the SDK for this request type.
40
+ # @param protected_keys [Array<String>] Additional header keys that must not be overridden.
41
+ # @return [Hash] The merged headers.
42
+ def merge_additional_headers(sdk_headers, protected_keys: [])
43
+ additional_headers = @request_options&.dig(:additional_headers) || @request_options&.dig("additional_headers") || {}
44
+ all_protected = (sdk_headers.keys + protected_keys).to_set { |k| k.to_s.downcase }
45
+ filtered = additional_headers.reject { |key, _| all_protected.include?(key.to_s.downcase) }
46
+ sdk_headers.merge(filtered)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end