vitable-connect 0.4.0 → 0.6.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 (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -0
  3. data/README.md +9 -9
  4. data/lib/vitable_connect/client.rb +19 -6
  5. data/lib/vitable_connect/internal/transport/base_client.rb +28 -4
  6. data/lib/vitable_connect/internal/type/enum.rb +13 -9
  7. data/lib/vitable_connect/models/auth_issue_access_token_params.rb +17 -3
  8. data/lib/vitable_connect/models/auth_issue_access_token_response.rb +17 -3
  9. data/lib/vitable_connect/models/employee.rb +98 -30
  10. data/lib/vitable_connect/models/employee_update_params.rb +185 -0
  11. data/lib/vitable_connect/models/employee_update_response.rb +18 -0
  12. data/lib/vitable_connect/models/employer.rb +36 -10
  13. data/lib/vitable_connect/models/employer_ensure_payroll_integration_email_params.rb +22 -0
  14. data/lib/vitable_connect/models/employer_ensure_payroll_integration_email_response.rb +29 -0
  15. data/lib/vitable_connect/models/employer_list_benefit_plan_year_enrollments_params.rb +80 -0
  16. data/lib/vitable_connect/models/employer_list_benefit_plan_year_enrollments_response.rb +175 -0
  17. data/lib/vitable_connect/models/employer_list_benefit_plan_years_params.rb +22 -0
  18. data/lib/vitable_connect/models/employer_list_benefit_plan_years_response.rb +301 -0
  19. data/lib/vitable_connect/models/employer_list_employees_params.rb +28 -1
  20. data/lib/vitable_connect/models/employer_list_hris_providers_params.rb +14 -0
  21. data/lib/vitable_connect/models/employer_list_hris_providers_response.rb +30 -0
  22. data/lib/vitable_connect/models/employer_list_invoices_params.rb +38 -0
  23. data/lib/vitable_connect/models/employer_list_invoices_response.rb +77 -0
  24. data/lib/vitable_connect/models/employer_list_params.rb +118 -5
  25. data/lib/vitable_connect/models/employer_list_payroll_deduction_statements_params.rb +38 -0
  26. data/lib/vitable_connect/models/employer_list_payroll_deduction_statements_response.rb +113 -0
  27. data/lib/vitable_connect/models/employer_list_response.rb +283 -0
  28. data/lib/vitable_connect/models/employer_retrieve_benefit_plan_year_params.rb +30 -0
  29. data/lib/vitable_connect/models/employer_retrieve_benefit_plan_year_response.rb +813 -0
  30. data/lib/vitable_connect/models/employer_retrieve_hris_params.rb +22 -0
  31. data/lib/vitable_connect/models/employer_retrieve_hris_response.rb +55 -0
  32. data/lib/vitable_connect/models/employer_retrieve_invoice_pdf_params.rb +30 -0
  33. data/lib/vitable_connect/models/employer_retrieve_invoice_pdf_response.rb +17 -0
  34. data/lib/vitable_connect/models/employer_retrieve_payroll_access_setup_params.rb +22 -0
  35. data/lib/vitable_connect/models/employer_retrieve_payroll_access_setup_response.rb +35 -0
  36. data/lib/vitable_connect/models/employer_submit_census_sync_params.rb +9 -8
  37. data/lib/vitable_connect/models/employer_submit_payroll_access_setup_params.rb +267 -0
  38. data/lib/vitable_connect/models/employer_submit_payroll_access_setup_response.rb +35 -0
  39. data/lib/vitable_connect/models/employer_update_params.rb +99 -0
  40. data/lib/vitable_connect/models/employer_update_settings_params.rb +9 -9
  41. data/lib/vitable_connect/models/employer_update_settings_response.rb +4 -4
  42. data/lib/vitable_connect/models/enrollment_reissue_params.rb +50 -0
  43. data/lib/vitable_connect/models/enrollment_reissue_response.rb +30 -0
  44. data/lib/vitable_connect/models/enrollment_terminate_params.rb +50 -0
  45. data/lib/vitable_connect/models/group.rb +17 -6
  46. data/lib/vitable_connect/models/groups/members/sync_retrieve_response.rb +74 -3
  47. data/lib/vitable_connect/models/groups/members/sync_submit_params.rb +7 -7
  48. data/lib/vitable_connect/models/member_list_dependents_params.rb +20 -0
  49. data/lib/vitable_connect/models/member_list_dependents_response.rb +132 -0
  50. data/lib/vitable_connect/models/member_list_employments_params.rb +20 -0
  51. data/lib/vitable_connect/models/member_list_employments_response.rb +18 -0
  52. data/lib/vitable_connect/models/member_list_enrollments_params.rb +20 -0
  53. data/lib/vitable_connect/models/member_list_enrollments_response.rb +319 -0
  54. data/lib/vitable_connect/models/member_list_id_cards_params.rb +20 -0
  55. data/lib/vitable_connect/models/member_list_id_cards_response.rb +368 -0
  56. data/lib/vitable_connect/models/member_list_params.rb +38 -0
  57. data/lib/vitable_connect/models/member_list_qualifying_life_events_params.rb +57 -0
  58. data/lib/vitable_connect/models/member_list_qualifying_life_events_response.rb +96 -0
  59. data/lib/vitable_connect/models/member_list_response.rb +108 -0
  60. data/lib/vitable_connect/models/member_retrieve_household_params.rb +20 -0
  61. data/lib/vitable_connect/models/member_retrieve_household_response.rb +128 -0
  62. data/lib/vitable_connect/models/member_retrieve_params.rb +20 -0
  63. data/lib/vitable_connect/models/member_retrieve_response.rb +195 -0
  64. data/lib/vitable_connect/models/organization_create_params.rb +57 -0
  65. data/lib/vitable_connect/models/organization_create_response.rb +104 -0
  66. data/lib/vitable_connect/models/organization_list_params.rb +14 -0
  67. data/lib/vitable_connect/models/organization_list_response.rb +128 -0
  68. data/lib/vitable_connect/models/webhook_event_list_params.rb +3 -3
  69. data/lib/vitable_connect/models.rb +54 -11
  70. data/lib/vitable_connect/resources/employees.rb +49 -3
  71. data/lib/vitable_connect/resources/employers.rb +402 -28
  72. data/lib/vitable_connect/resources/enrollments.rb +75 -0
  73. data/lib/vitable_connect/resources/members.rb +231 -0
  74. data/lib/vitable_connect/resources/organizations.rb +66 -0
  75. data/lib/vitable_connect/version.rb +1 -1
  76. data/lib/vitable_connect.rb +51 -6
  77. data/rbi/vitable_connect/client.rbi +18 -6
  78. data/rbi/vitable_connect/internal/transport/base_client.rbi +4 -1
  79. data/rbi/vitable_connect/models/auth_issue_access_token_params.rbi +53 -5
  80. data/rbi/vitable_connect/models/auth_issue_access_token_response.rbi +51 -5
  81. data/rbi/vitable_connect/models/employee.rbi +138 -37
  82. data/rbi/vitable_connect/models/employee_update_params.rbi +323 -0
  83. data/rbi/vitable_connect/models/employee_update_response.rbi +32 -0
  84. data/rbi/vitable_connect/models/employer.rbi +58 -8
  85. data/rbi/vitable_connect/models/employer_ensure_payroll_integration_email_params.rbi +46 -0
  86. data/rbi/vitable_connect/models/employer_ensure_payroll_integration_email_response.rbi +72 -0
  87. data/rbi/vitable_connect/models/employer_list_benefit_plan_year_enrollments_params.rbi +165 -0
  88. data/rbi/vitable_connect/models/employer_list_benefit_plan_year_enrollments_response.rbi +278 -0
  89. data/rbi/vitable_connect/models/{benefit_eligibility_policy_retrieve_params.rbi → employer_list_benefit_plan_years_params.rbi} +11 -8
  90. data/rbi/vitable_connect/models/employer_list_benefit_plan_years_response.rbi +539 -0
  91. data/rbi/vitable_connect/models/employer_list_employees_params.rbi +70 -0
  92. data/rbi/vitable_connect/models/employer_list_hris_providers_params.rbi +32 -0
  93. data/rbi/vitable_connect/models/employer_list_hris_providers_response.rbi +74 -0
  94. data/rbi/vitable_connect/models/employer_list_invoices_params.rbi +65 -0
  95. data/rbi/vitable_connect/models/employer_list_invoices_response.rbi +151 -0
  96. data/rbi/vitable_connect/models/employer_list_params.rbi +292 -4
  97. data/rbi/vitable_connect/models/{employer_create_benefit_eligibility_policy_params.rbi → employer_list_payroll_deduction_statements_params.rbi} +22 -18
  98. data/rbi/vitable_connect/models/employer_list_payroll_deduction_statements_response.rbi +169 -0
  99. data/rbi/vitable_connect/models/employer_list_response.rbi +426 -0
  100. data/rbi/vitable_connect/models/employer_retrieve_benefit_plan_year_params.rbi +54 -0
  101. data/rbi/vitable_connect/models/employer_retrieve_benefit_plan_year_response.rbi +1574 -0
  102. data/rbi/vitable_connect/models/employer_retrieve_hris_params.rbi +46 -0
  103. data/rbi/vitable_connect/models/employer_retrieve_hris_response.rbi +120 -0
  104. data/rbi/vitable_connect/models/employer_retrieve_invoice_pdf_params.rbi +54 -0
  105. data/rbi/vitable_connect/models/employer_retrieve_invoice_pdf_response.rbi +30 -0
  106. data/rbi/vitable_connect/models/employer_retrieve_payroll_access_setup_params.rbi +46 -0
  107. data/rbi/vitable_connect/models/employer_retrieve_payroll_access_setup_response.rbi +83 -0
  108. data/rbi/vitable_connect/models/employer_submit_census_sync_params.rbi +8 -6
  109. data/rbi/vitable_connect/models/employer_submit_payroll_access_setup_params.rbi +441 -0
  110. data/rbi/vitable_connect/models/employer_submit_payroll_access_setup_response.rbi +83 -0
  111. data/rbi/vitable_connect/models/employer_update_params.rbi +155 -0
  112. data/rbi/vitable_connect/models/employer_update_settings_params.rbi +12 -12
  113. data/rbi/vitable_connect/models/employer_update_settings_response.rbi +6 -6
  114. data/rbi/vitable_connect/models/enrollment_reissue_params.rbi +72 -0
  115. data/rbi/vitable_connect/models/enrollment_reissue_response.rbi +67 -0
  116. data/rbi/vitable_connect/models/enrollment_terminate_params.rbi +72 -0
  117. data/rbi/vitable_connect/models/group.rbi +12 -0
  118. data/rbi/vitable_connect/models/groups/members/sync_retrieve_response.rbi +174 -4
  119. data/rbi/vitable_connect/models/groups/members/sync_submit_params.rbi +9 -9
  120. data/rbi/vitable_connect/models/member_list_dependents_params.rbi +38 -0
  121. data/rbi/vitable_connect/models/member_list_dependents_response.rbi +249 -0
  122. data/rbi/vitable_connect/models/member_list_employments_params.rbi +38 -0
  123. data/rbi/vitable_connect/models/member_list_employments_response.rbi +31 -0
  124. data/rbi/vitable_connect/models/member_list_enrollments_params.rbi +38 -0
  125. data/rbi/vitable_connect/models/member_list_enrollments_response.rbi +579 -0
  126. data/rbi/vitable_connect/models/member_list_id_cards_params.rbi +38 -0
  127. data/rbi/vitable_connect/models/member_list_id_cards_response.rbi +624 -0
  128. data/rbi/vitable_connect/models/member_list_params.rbi +71 -0
  129. data/rbi/vitable_connect/models/member_list_qualifying_life_events_params.rbi +130 -0
  130. data/rbi/vitable_connect/models/member_list_qualifying_life_events_response.rbi +192 -0
  131. data/rbi/vitable_connect/models/member_list_response.rbi +166 -0
  132. data/rbi/vitable_connect/models/member_retrieve_household_params.rbi +38 -0
  133. data/rbi/vitable_connect/models/member_retrieve_household_response.rbi +251 -0
  134. data/rbi/vitable_connect/models/member_retrieve_params.rbi +38 -0
  135. data/rbi/vitable_connect/models/member_retrieve_response.rbi +312 -0
  136. data/rbi/vitable_connect/models/organization_create_params.rbi +127 -0
  137. data/rbi/vitable_connect/models/organization_create_response.rbi +212 -0
  138. data/rbi/vitable_connect/models/organization_list_params.rbi +32 -0
  139. data/rbi/vitable_connect/models/organization_list_response.rbi +266 -0
  140. data/rbi/vitable_connect/models/webhook_event_list_params.rbi +8 -8
  141. data/rbi/vitable_connect/models.rbi +66 -13
  142. data/rbi/vitable_connect/resources/employees.rbi +62 -3
  143. data/rbi/vitable_connect/resources/employers.rbi +373 -24
  144. data/rbi/vitable_connect/resources/enrollments.rbi +61 -0
  145. data/rbi/vitable_connect/resources/members.rbi +169 -0
  146. data/rbi/vitable_connect/resources/organizations.rbi +48 -0
  147. data/rbi/vitable_connect/resources/webhook_events.rbi +1 -1
  148. data/sig/vitable_connect/client.rbs +9 -3
  149. data/sig/vitable_connect/internal/transport/base_client.rbs +2 -0
  150. data/sig/vitable_connect/models/auth_issue_access_token_params.rbs +22 -4
  151. data/sig/vitable_connect/models/auth_issue_access_token_response.rbs +22 -4
  152. data/sig/vitable_connect/models/employee.rbs +65 -18
  153. data/sig/vitable_connect/models/employee_update_params.rbs +140 -0
  154. data/sig/vitable_connect/models/employee_update_response.rbs +13 -0
  155. data/sig/vitable_connect/models/employer.rbs +17 -5
  156. data/sig/vitable_connect/models/employer_ensure_payroll_integration_email_params.rbs +24 -0
  157. data/sig/vitable_connect/models/employer_ensure_payroll_integration_email_response.rbs +30 -0
  158. data/sig/vitable_connect/models/employer_list_benefit_plan_year_enrollments_params.rbs +74 -0
  159. data/sig/vitable_connect/models/employer_list_benefit_plan_year_enrollments_response.rbs +111 -0
  160. data/sig/vitable_connect/models/employer_list_benefit_plan_years_params.rbs +24 -0
  161. data/sig/vitable_connect/models/employer_list_benefit_plan_years_response.rbs +197 -0
  162. data/sig/vitable_connect/models/employer_list_employees_params.rbs +32 -1
  163. data/sig/vitable_connect/models/employer_list_hris_providers_params.rbs +15 -0
  164. data/sig/vitable_connect/models/employer_list_hris_providers_response.rbs +30 -0
  165. data/sig/vitable_connect/models/employer_list_invoices_params.rbs +34 -0
  166. data/sig/vitable_connect/models/employer_list_invoices_response.rbs +62 -0
  167. data/sig/vitable_connect/models/employer_list_params.rbs +94 -1
  168. data/sig/vitable_connect/models/{employer_create_benefit_eligibility_policy_params.rbs → employer_list_payroll_deduction_statements_params.rbs} +13 -9
  169. data/sig/vitable_connect/models/employer_list_payroll_deduction_statements_response.rbs +73 -0
  170. data/sig/vitable_connect/models/employer_list_response.rbs +179 -0
  171. data/sig/vitable_connect/models/employer_retrieve_benefit_plan_year_params.rbs +28 -0
  172. data/sig/vitable_connect/models/employer_retrieve_benefit_plan_year_response.rbs +540 -0
  173. data/sig/vitable_connect/models/employer_retrieve_hris_params.rbs +24 -0
  174. data/sig/vitable_connect/models/employer_retrieve_hris_response.rbs +50 -0
  175. data/sig/vitable_connect/models/employer_retrieve_invoice_pdf_params.rbs +28 -0
  176. data/sig/vitable_connect/models/employer_retrieve_invoice_pdf_response.rbs +13 -0
  177. data/sig/vitable_connect/models/employer_retrieve_payroll_access_setup_params.rbs +24 -0
  178. data/sig/vitable_connect/models/employer_retrieve_payroll_access_setup_response.rbs +32 -0
  179. data/sig/vitable_connect/models/employer_submit_census_sync_params.rbs +5 -5
  180. data/sig/vitable_connect/models/employer_submit_payroll_access_setup_params.rbs +198 -0
  181. data/sig/vitable_connect/models/employer_submit_payroll_access_setup_response.rbs +32 -0
  182. data/sig/vitable_connect/models/employer_update_params.rbs +83 -0
  183. data/sig/vitable_connect/models/enrollment_reissue_params.rbs +41 -0
  184. data/sig/vitable_connect/models/enrollment_reissue_response.rbs +28 -0
  185. data/sig/vitable_connect/models/enrollment_terminate_params.rbs +41 -0
  186. data/sig/vitable_connect/models/groups/members/sync_retrieve_response.rbs +69 -4
  187. data/sig/vitable_connect/models/groups/members/sync_submit_params.rbs +8 -8
  188. data/sig/vitable_connect/models/{benefit_eligibility_policy_retrieve_params.rbs → member_list_dependents_params.rbs} +6 -6
  189. data/sig/vitable_connect/models/member_list_dependents_response.rbs +96 -0
  190. data/sig/vitable_connect/models/member_list_employments_params.rbs +23 -0
  191. data/sig/vitable_connect/models/member_list_employments_response.rbs +14 -0
  192. data/sig/vitable_connect/models/member_list_enrollments_params.rbs +23 -0
  193. data/sig/vitable_connect/models/member_list_enrollments_response.rbs +215 -0
  194. data/sig/vitable_connect/models/member_list_id_cards_params.rbs +23 -0
  195. data/sig/vitable_connect/models/member_list_id_cards_response.rbs +256 -0
  196. data/sig/vitable_connect/models/member_list_params.rbs +38 -0
  197. data/sig/vitable_connect/models/member_list_qualifying_life_events_params.rbs +61 -0
  198. data/sig/vitable_connect/models/member_list_qualifying_life_events_response.rbs +67 -0
  199. data/sig/vitable_connect/models/member_list_response.rbs +82 -0
  200. data/sig/vitable_connect/models/member_retrieve_household_params.rbs +23 -0
  201. data/sig/vitable_connect/models/member_retrieve_household_response.rbs +92 -0
  202. data/sig/vitable_connect/models/member_retrieve_params.rbs +23 -0
  203. data/sig/vitable_connect/models/member_retrieve_response.rbs +143 -0
  204. data/sig/vitable_connect/models/organization_create_params.rbs +52 -0
  205. data/sig/vitable_connect/models/organization_create_response.rbs +77 -0
  206. data/sig/vitable_connect/models/organization_list_params.rbs +15 -0
  207. data/sig/vitable_connect/models/organization_list_response.rbs +99 -0
  208. data/sig/vitable_connect/models/webhook_event_list_params.rbs +2 -2
  209. data/sig/vitable_connect/models.rbs +50 -10
  210. data/sig/vitable_connect/resources/employees.rbs +13 -0
  211. data/sig/vitable_connect/resources/employers.rbs +103 -5
  212. data/sig/vitable_connect/resources/enrollments.rbs +16 -0
  213. data/sig/vitable_connect/resources/members.rbs +52 -0
  214. data/sig/vitable_connect/resources/organizations.rbs +17 -0
  215. metadata +155 -20
  216. data/lib/vitable_connect/models/benefit_eligibility_policy.rb +0 -53
  217. data/lib/vitable_connect/models/benefit_eligibility_policy_response.rb +0 -18
  218. data/lib/vitable_connect/models/benefit_eligibility_policy_retrieve_params.rb +0 -22
  219. data/lib/vitable_connect/models/employer_create_benefit_eligibility_policy_params.rb +0 -43
  220. data/lib/vitable_connect/models/type.rb +0 -17
  221. data/lib/vitable_connect/resources/benefit_eligibility_policies.rb +0 -35
  222. data/rbi/vitable_connect/models/benefit_eligibility_policy.rbi +0 -74
  223. data/rbi/vitable_connect/models/benefit_eligibility_policy_response.rbi +0 -38
  224. data/rbi/vitable_connect/models/type.rbi +0 -21
  225. data/rbi/vitable_connect/resources/benefit_eligibility_policies.rbi +0 -27
  226. data/sig/vitable_connect/models/benefit_eligibility_policy.rbs +0 -50
  227. data/sig/vitable_connect/models/benefit_eligibility_policy_response.rbs +0 -14
  228. data/sig/vitable_connect/models/type.rbs +0 -14
  229. data/sig/vitable_connect/resources/benefit_eligibility_policies.rbs +0 -12
@@ -18,6 +18,67 @@ module VitableConnect
18
18
  )
19
19
  end
20
20
 
21
+ # Closes the targeted enrollment and creates a new unanswered enrollment for the
22
+ # same member and plan year. VPC never requires a qualifying life event; other
23
+ # products require an accepted, member-owned event outside open enrollment.
24
+ # User-backed callers must provide a reason; it is optional for userless
25
+ # organization callers. API keys and unbound access tokens may act across the
26
+ # caller organization's book. Employer-bound access tokens may act only on that
27
+ # employer's enrollments, and employee-bound access tokens may act only on that
28
+ # employee's enrollment. Tenant or token-scope mismatches return the same
29
+ # non-disclosing 404 before the request body is validated.
30
+ sig do
31
+ params(
32
+ enrollment_id: String,
33
+ qualifying_life_event_id: T.nilable(String),
34
+ reason: T.nilable(String),
35
+ ticket_number: T.nilable(String),
36
+ request_options: VitableConnect::RequestOptions::OrHash
37
+ ).returns(VitableConnect::Models::EnrollmentReissueResponse)
38
+ end
39
+ def reissue(
40
+ # Unique enrollment identifier (enrl\_\*)
41
+ enrollment_id,
42
+ # Accepted member qualifying life event identifier (qle\_\*)
43
+ qualifying_life_event_id: nil,
44
+ # Audit reason for the reissue; required for user-backed callers and optional for
45
+ # userless organization callers
46
+ reason: nil,
47
+ # Optional support or operational ticket number
48
+ ticket_number: nil,
49
+ request_options: {}
50
+ )
51
+ end
52
+
53
+ # Terminates enrolled coverage immediately. An accepted qualifying life event
54
+ # owned by the enrollment member is required unless the plan is VPC or ICHRA.
55
+ # User-backed callers must provide a reason; it is optional for userless
56
+ # organization callers. API keys may act across the caller organization's book.
57
+ # Tenant mismatches return the same non-disclosing 404 before the request body is
58
+ # validated.
59
+ sig do
60
+ params(
61
+ enrollment_id: String,
62
+ qualifying_life_event_id: T.nilable(String),
63
+ reason: T.nilable(String),
64
+ ticket_number: T.nilable(String),
65
+ request_options: VitableConnect::RequestOptions::OrHash
66
+ ).void
67
+ end
68
+ def terminate(
69
+ # Unique enrollment identifier (enrl\_\*)
70
+ enrollment_id,
71
+ # Accepted member qualifying life event identifier (qle\_\*)
72
+ qualifying_life_event_id: nil,
73
+ # Audit reason for the termination; required for user-backed callers and optional
74
+ # for userless organization callers
75
+ reason: nil,
76
+ # Optional support or operational ticket number
77
+ ticket_number: nil,
78
+ request_options: {}
79
+ )
80
+ end
81
+
21
82
  # @api private
22
83
  sig { params(client: VitableConnect::Client).returns(T.attached_class) }
23
84
  def self.new(client:)
@@ -0,0 +1,169 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ # Browse the members covered across your book and read a member's profile
6
+ class Members
7
+ # Retrieves a member's profile by ID — identity, demographics, address, contact
8
+ # details, tobacco status, and profile status. Access is scoped to the
9
+ # authenticated principal; a member not visible to the caller returns a 404.
10
+ sig do
11
+ params(
12
+ member_id: String,
13
+ request_options: VitableConnect::RequestOptions::OrHash
14
+ ).returns(VitableConnect::Models::MemberRetrieveResponse)
15
+ end
16
+ def retrieve(member_id, request_options: {})
17
+ end
18
+
19
+ # Retrieves a paginated list of the members in the authenticated organization's
20
+ # book — identity, contact details, and address. The book covers members reached
21
+ # through an employer in the organization's book as well as members of a group it
22
+ # owns. Supports free-text search (name, email, or exact member id).
23
+ sig do
24
+ params(
25
+ limit: Integer,
26
+ page: Integer,
27
+ search: String,
28
+ request_options: VitableConnect::RequestOptions::OrHash
29
+ ).returns(
30
+ VitableConnect::Internal::PageNumberPage[
31
+ VitableConnect::Models::MemberListResponse
32
+ ]
33
+ )
34
+ end
35
+ def list(
36
+ # Items per page (default: 20, max: 100)
37
+ limit: nil,
38
+ # Page number (default: 1)
39
+ page: nil,
40
+ # Case-insensitive search across member name and email; exact match on member id
41
+ search: nil,
42
+ request_options: {}
43
+ )
44
+ end
45
+
46
+ # Lists a member's active legal dependents — name, relationship, date of birth,
47
+ # age, and sex at birth. Access is scoped to the authenticated principal; a member
48
+ # not visible to the caller returns a 404.
49
+ sig do
50
+ params(
51
+ member_id: String,
52
+ request_options: VitableConnect::RequestOptions::OrHash
53
+ ).returns(VitableConnect::Models::MemberListDependentsResponse)
54
+ end
55
+ def list_dependents(member_id, request_options: {})
56
+ end
57
+
58
+ # Lists a member's employment across every employer — the same employee record
59
+ # shape as the employer's employees list, plus the employer name. For an
60
+ # organization caller the rows are scoped to companies in that organization's
61
+ # book; a member (self/household) or Vitable Admin sees all employments. A member
62
+ # not visible to the caller returns a 404.
63
+ sig do
64
+ params(
65
+ member_id: String,
66
+ request_options: VitableConnect::RequestOptions::OrHash
67
+ ).returns(VitableConnect::Models::MemberListEmploymentsResponse)
68
+ end
69
+ def list_employments(member_id, request_options: {})
70
+ end
71
+
72
+ # Lists a member's benefit enrollments across every employer — benefit type and
73
+ # product, employer, carrier, plan, tier, employee deduction, employer
74
+ # contribution and total premium, the individual enrollment coverage boundary
75
+ # (`coverage_end`), the distinct benefit plan-year boundary
76
+ # (`plan_year_coverage_end`) used to determine whether the plan year itself has
77
+ # ended, whether a qualifying life event would currently be required for reissue
78
+ # under the product/open-enrollment rule, enrollment/open-enrollment window, and
79
+ # two statuses: `election_status` (what the member answered) and `policy_status`
80
+ # (what became of their coverage, null unless they enrolled). Every row includes a
81
+ # stable enrollment ID that can be used to target enrollment actions. The full
82
+ # list is returned across all states so the client derives active plans (effective
83
+ # and upcoming) and the enrollment history from those per-row statuses. For an
84
+ # organization caller the rows are scoped to companies in that organization's
85
+ # book; a member (self/household) or Vitable Admin sees all enrollments. A member
86
+ # not visible to the caller returns a 404.
87
+ sig do
88
+ params(
89
+ member_id: String,
90
+ request_options: VitableConnect::RequestOptions::OrHash
91
+ ).returns(VitableConnect::Models::MemberListEnrollmentsResponse)
92
+ end
93
+ def list_enrollments(member_id, request_options: {})
94
+ end
95
+
96
+ # Lists a member's benefit ID cards — card type (medical, dental, vision, or rx),
97
+ # employer, plan, provider network, claims payer, carrier contact details, and the
98
+ # disclaimers printed on the card. Medical, dental and vision cards come from the
99
+ # member's active digital benefit cards; the rx card from the member's Ventegra
100
+ # pharmacy benefit (omitted when the member has no free-medication coverage),
101
+ # which carries no plan, network, or carrier details. Access is scoped to the
102
+ # authenticated principal, and an organization caller sees only cards from
103
+ # employers in its book; a member not visible to the caller returns a 404.
104
+ sig do
105
+ params(
106
+ member_id: String,
107
+ request_options: VitableConnect::RequestOptions::OrHash
108
+ ).returns(VitableConnect::Models::MemberListIDCardsResponse)
109
+ end
110
+ def list_id_cards(member_id, request_options: {})
111
+ end
112
+
113
+ # Lists a member's qualifying life events, including events already used for
114
+ # another enrollment. Returns all statuses by default; pass the status query param
115
+ # to filter to one (e.g. approved). Events are ordered newest submission first
116
+ # with stable paging. Custom text is present only when submitted and is otherwise
117
+ # null. A member not visible to the caller returns a 404. API keys and unbound
118
+ # access tokens have organization-wide access. Employer-bound tokens require
119
+ # employment at the bound employer, and employee-bound tokens require the exact
120
+ # employee-member relationship. Organization or scope mismatches return a 404
121
+ # before pagination is validated.
122
+ sig do
123
+ params(
124
+ member_id: String,
125
+ limit: Integer,
126
+ page: Integer,
127
+ status:
128
+ VitableConnect::MemberListQualifyingLifeEventsParams::Status::OrSymbol,
129
+ request_options: VitableConnect::RequestOptions::OrHash
130
+ ).returns(
131
+ VitableConnect::Internal::PageNumberPage[
132
+ VitableConnect::Models::MemberListQualifyingLifeEventsResponse
133
+ ]
134
+ )
135
+ end
136
+ def list_qualifying_life_events(
137
+ # Unique member identifier (mbr\_\*)
138
+ member_id,
139
+ # Items per page (default: 20, max: 100)
140
+ limit: nil,
141
+ # Page number (default: 1)
142
+ page: nil,
143
+ # Optional. Filter to a single QLE status; omit to return all statuses.
144
+ status: nil,
145
+ request_options: {}
146
+ )
147
+ end
148
+
149
+ # Lists a member's household as a per-participant table — the account holder plus
150
+ # each active household member, with name, relationship, member type, date of
151
+ # birth, and household-admin flag. Access is scoped to the authenticated
152
+ # principal; a member not visible to the caller (or with no household) returns
153
+ # a 404.
154
+ sig do
155
+ params(
156
+ member_id: String,
157
+ request_options: VitableConnect::RequestOptions::OrHash
158
+ ).returns(VitableConnect::Models::MemberRetrieveHouseholdResponse)
159
+ end
160
+ def retrieve_household(member_id, request_options: {})
161
+ end
162
+
163
+ # @api private
164
+ sig { params(client: VitableConnect::Client).returns(T.attached_class) }
165
+ def self.new(client:)
166
+ end
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Resources
5
+ class Organizations
6
+ # Onboards the authenticated user's partner Organization: creates the local
7
+ # Organization + the creator's admin membership atomically, then mirrors it to
8
+ # WorkOS (creates the WorkOS org and binds the creator as admin). 409
9
+ # `organization_already_exists` when the user already has an organization (v0: one
10
+ # organization per user).
11
+ sig do
12
+ params(
13
+ name: String,
14
+ type:
15
+ T.nilable(VitableConnect::OrganizationCreateParams::Type::OrSymbol),
16
+ request_options: VitableConnect::RequestOptions::OrHash
17
+ ).returns(VitableConnect::Models::OrganizationCreateResponse)
18
+ end
19
+ def create(
20
+ name:,
21
+ # - `BROKERAGE` - BROKERAGE
22
+ # - `TPA` - TPA
23
+ # - `GENERAL_AGENT` - GENERAL_AGENT
24
+ # - `CHANNEL_PARTNER` - CHANNEL_PARTNER
25
+ # - `CONSULTING_FIRM` - CONSULTING_FIRM
26
+ # - `API_PLATFORM` - API_PLATFORM
27
+ type: nil,
28
+ request_options: {}
29
+ )
30
+ end
31
+
32
+ # Lists the organizations the authenticated caller is an active member of
33
+ # (paginated). Returns an empty list when the caller belongs to no organizations.
34
+ sig do
35
+ params(request_options: VitableConnect::RequestOptions::OrHash).returns(
36
+ VitableConnect::Models::OrganizationListResponse
37
+ )
38
+ end
39
+ def list(request_options: {})
40
+ end
41
+
42
+ # @api private
43
+ sig { params(client: VitableConnect::Client).returns(T.attached_class) }
44
+ def self.new(client:)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -37,6 +37,7 @@ module VitableConnect
37
37
  created_before: nil,
38
38
  # - `enrollment.accepted` - Enrollment Accepted
39
39
  # - `enrollment.terminated` - Enrollment Terminated
40
+ # - `enrollment.termination_rescheduled` - Enrollment Termination Rescheduled
40
41
  # - `enrollment.elected` - Enrollment Elected
41
42
  # - `enrollment.granted` - Enrollment Granted
42
43
  # - `enrollment.waived` - Enrollment Waived
@@ -44,7 +45,6 @@ module VitableConnect
44
45
  # - `employee.eligibility_granted` - Employee Eligibility Granted
45
46
  # - `employee.eligibility_terminated` - Employee Eligibility Terminated
46
47
  # - `employee.deactivated` - Employee Deactivated
47
- # - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
48
48
  # - `employee.deduction_created` - Employee Deduction Created
49
49
  event_name: nil,
50
50
  # Items per page (default: 20, max: 100)
@@ -17,8 +17,6 @@ module VitableConnect
17
17
 
18
18
  attr_reader auth: VitableConnect::Resources::Auth
19
19
 
20
- attr_reader benefit_eligibility_policies: VitableConnect::Resources::BenefitEligibilityPolicies
21
-
22
20
  attr_reader employees: VitableConnect::Resources::Employees
23
21
 
24
22
  attr_reader employers: VitableConnect::Resources::Employers
@@ -29,9 +27,17 @@ module VitableConnect
29
27
 
30
28
  attr_reader groups: VitableConnect::Resources::Groups
31
29
 
30
+ attr_reader members: VitableConnect::Resources::Members
31
+
32
+ attr_reader organizations: VitableConnect::Resources::Organizations
33
+
32
34
  attr_reader plans: VitableConnect::Resources::Plans
33
35
 
34
- private def auth_headers: -> ::Hash[String, String]
36
+ private def auth_headers: (
37
+ security: { api_key_auth: bool }
38
+ ) -> ::Hash[String, String]
39
+
40
+ private def api_key_auth: -> ::Hash[String, String]
35
41
 
36
42
  def initialize: (
37
43
  ?api_key: String?,
@@ -20,6 +20,7 @@ module VitableConnect
20
20
  page: Class?,
21
21
  stream: Class?,
22
22
  model: VitableConnect::Internal::Type::Converter::input?,
23
+ security: { api_key_auth: bool }?,
23
24
  options: VitableConnect::request_opts?
24
25
  }
25
26
  type request_input =
@@ -123,6 +124,7 @@ module VitableConnect
123
124
  ?page: Class?,
124
125
  ?stream: Class?,
125
126
  ?model: VitableConnect::Internal::Type::Converter::input?,
127
+ ?security: { api_key_auth: bool }?,
126
128
  ?options: VitableConnect::request_opts?
127
129
  ) -> top
128
130
 
@@ -37,19 +37,37 @@ module VitableConnect
37
37
  def self?.values: -> ::Array[VitableConnect::Models::AuthIssueAccessTokenParams::grant_type]
38
38
  end
39
39
 
40
- type bound_entity = { id: String, type: VitableConnect::Models::type_ }
40
+ type bound_entity =
41
+ {
42
+ id: String,
43
+ type: VitableConnect::Models::AuthIssueAccessTokenParams::BoundEntity::type_
44
+ }
41
45
 
42
46
  class BoundEntity < VitableConnect::Internal::Type::BaseModel
43
47
  attr_accessor id: String
44
48
 
45
- attr_accessor type: VitableConnect::Models::type_
49
+ attr_accessor type: VitableConnect::Models::AuthIssueAccessTokenParams::BoundEntity::type_
46
50
 
47
51
  def initialize: (
48
52
  id: String,
49
- type: VitableConnect::Models::type_
53
+ type: VitableConnect::Models::AuthIssueAccessTokenParams::BoundEntity::type_
50
54
  ) -> void
51
55
 
52
- def to_hash: -> { id: String, type: VitableConnect::Models::type_ }
56
+ def to_hash: -> {
57
+ id: String,
58
+ type: VitableConnect::Models::AuthIssueAccessTokenParams::BoundEntity::type_
59
+ }
60
+
61
+ type type_ = :employer | :employee
62
+
63
+ module Type
64
+ extend VitableConnect::Internal::Type::Enum
65
+
66
+ EMPLOYER: :employer
67
+ EMPLOYEE: :employee
68
+
69
+ def self?.values: -> ::Array[VitableConnect::Models::AuthIssueAccessTokenParams::BoundEntity::type_]
70
+ end
53
71
  end
54
72
  end
55
73
  end
@@ -31,19 +31,37 @@ module VitableConnect
31
31
  bound_entity: VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity?
32
32
  }
33
33
 
34
- type bound_entity = { id: String, type: VitableConnect::Models::type_ }
34
+ type bound_entity =
35
+ {
36
+ id: String,
37
+ type: VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::type_
38
+ }
35
39
 
36
40
  class BoundEntity < VitableConnect::Internal::Type::BaseModel
37
41
  attr_accessor id: String
38
42
 
39
- attr_accessor type: VitableConnect::Models::type_
43
+ attr_accessor type: VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::type_
40
44
 
41
45
  def initialize: (
42
46
  id: String,
43
- type: VitableConnect::Models::type_
47
+ type: VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::type_
44
48
  ) -> void
45
49
 
46
- def to_hash: -> { id: String, type: VitableConnect::Models::type_ }
50
+ def to_hash: -> {
51
+ id: String,
52
+ type: VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::type_
53
+ }
54
+
55
+ type type_ = :employer | :employee
56
+
57
+ module Type
58
+ extend VitableConnect::Internal::Type::Enum
59
+
60
+ EMPLOYER: :employer
61
+ EMPLOYEE: :employee
62
+
63
+ def self?.values: -> ::Array[VitableConnect::Models::AuthIssueAccessTokenResponse::BoundEntity::type_]
64
+ end
47
65
  end
48
66
  end
49
67
  end
@@ -3,20 +3,25 @@ module VitableConnect
3
3
  type employee =
4
4
  {
5
5
  id: String,
6
+ classification_effective_date: Date,
7
+ compensation_type: VitableConnect::Models::Employee::compensation_type?,
8
+ compensation_type_effective_date: Date,
6
9
  created_at: Time,
7
10
  date_of_birth: Date,
8
11
  deductions: ::Array[VitableConnect::Employee::Deduction],
9
12
  email: String,
13
+ employee_class: VitableConnect::Models::employee_class,
14
+ employer_id: String,
10
15
  first_name: String,
11
16
  last_name: String,
12
17
  member_id: String,
13
- status: String,
18
+ phone: String?,
19
+ start_date: Date,
20
+ status: VitableConnect::Models::Employee::status,
14
21
  updated_at: Time,
15
22
  address: VitableConnect::Employee::Address?,
16
- employee_class: VitableConnect::Models::employee_class?,
23
+ employer_name: String?,
17
24
  gender: String?,
18
- hire_date: Date?,
19
- phone: String?,
20
25
  reference_id: String?,
21
26
  suffix: String?,
22
27
  termination_date: Date?
@@ -31,6 +36,8 @@ module VitableConnect
31
36
 
32
37
  attr_accessor email: String
33
38
 
39
+ attr_accessor employee_class: VitableConnect::Models::employee_class
40
+
34
41
  attr_accessor first_name: String
35
42
 
36
43
  attr_accessor last_name: String
@@ -39,14 +46,10 @@ module VitableConnect
39
46
 
40
47
  attr_accessor address: VitableConnect::Employee::Address?
41
48
 
42
- attr_accessor employee_class: VitableConnect::Models::employee_class?
49
+ attr_accessor employer_name: String?
43
50
 
44
51
  attr_accessor gender: String?
45
52
 
46
- attr_accessor hire_date: Date?
47
-
48
- attr_accessor phone: String?
49
-
50
53
  attr_accessor reference_id: String?
51
54
 
52
55
  attr_accessor suffix: String?
@@ -55,26 +58,43 @@ module VitableConnect
55
58
 
56
59
  attr_accessor id: String
57
60
 
61
+ attr_accessor classification_effective_date: Date
62
+
63
+ attr_accessor compensation_type: VitableConnect::Models::Employee::compensation_type?
64
+
65
+ attr_accessor compensation_type_effective_date: Date
66
+
67
+ attr_accessor employer_id: String
68
+
58
69
  attr_accessor member_id: String
59
70
 
60
- attr_accessor status: String
71
+ attr_accessor phone: String?
72
+
73
+ attr_accessor start_date: Date
74
+
75
+ attr_accessor status: VitableConnect::Models::Employee::status
61
76
 
62
77
  def initialize: (
63
78
  id: String,
79
+ classification_effective_date: Date,
80
+ compensation_type: VitableConnect::Models::Employee::compensation_type?,
81
+ compensation_type_effective_date: Date,
64
82
  created_at: Time,
65
83
  date_of_birth: Date,
66
84
  deductions: ::Array[VitableConnect::Employee::Deduction],
67
85
  email: String,
86
+ employee_class: VitableConnect::Models::employee_class,
87
+ employer_id: String,
68
88
  first_name: String,
69
89
  last_name: String,
70
90
  member_id: String,
71
- status: String,
91
+ phone: String?,
92
+ start_date: Date,
93
+ status: VitableConnect::Models::Employee::status,
72
94
  updated_at: Time,
73
95
  ?address: VitableConnect::Employee::Address?,
74
- ?employee_class: VitableConnect::Models::employee_class?,
96
+ ?employer_name: String?,
75
97
  ?gender: String?,
76
- ?hire_date: Date?,
77
- ?phone: String?,
78
98
  ?reference_id: String?,
79
99
  ?suffix: String?,
80
100
  ?termination_date: Date?
@@ -82,25 +102,41 @@ module VitableConnect
82
102
 
83
103
  def to_hash: -> {
84
104
  id: String,
105
+ classification_effective_date: Date,
106
+ compensation_type: VitableConnect::Models::Employee::compensation_type?,
107
+ compensation_type_effective_date: Date,
85
108
  created_at: Time,
86
109
  date_of_birth: Date,
87
110
  deductions: ::Array[VitableConnect::Employee::Deduction],
88
111
  email: String,
112
+ employee_class: VitableConnect::Models::employee_class,
113
+ employer_id: String,
89
114
  first_name: String,
90
115
  last_name: String,
91
116
  member_id: String,
92
- status: String,
117
+ phone: String?,
118
+ start_date: Date,
119
+ status: VitableConnect::Models::Employee::status,
93
120
  updated_at: Time,
94
121
  address: VitableConnect::Employee::Address?,
95
- employee_class: VitableConnect::Models::employee_class?,
122
+ employer_name: String?,
96
123
  gender: String?,
97
- hire_date: Date?,
98
- phone: String?,
99
124
  reference_id: String?,
100
125
  suffix: String?,
101
126
  termination_date: Date?
102
127
  }
103
128
 
129
+ type compensation_type = :Salary | :Hourly
130
+
131
+ module CompensationType
132
+ extend VitableConnect::Internal::Type::Enum
133
+
134
+ SALARY: :Salary
135
+ HOURLY: :Hourly
136
+
137
+ def self?.values: -> ::Array[VitableConnect::Models::Employee::compensation_type]
138
+ end
139
+
104
140
  type deduction =
105
141
  {
106
142
  benefit_name: String,
@@ -173,6 +209,17 @@ module VitableConnect
173
209
  end
174
210
  end
175
211
 
212
+ type status = :active | :terminated
213
+
214
+ module Status
215
+ extend VitableConnect::Internal::Type::Enum
216
+
217
+ ACTIVE: :active
218
+ TERMINATED: :terminated
219
+
220
+ def self?.values: -> ::Array[VitableConnect::Models::Employee::status]
221
+ end
222
+
176
223
  type address =
177
224
  {
178
225
  :address_line_1 => String,