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
@@ -2,38 +2,41 @@
2
2
 
3
3
  module VitableConnect
4
4
  module Models
5
- class BenefitEligibilityPolicyRetrieveParams < VitableConnect::Internal::Type::BaseModel
5
+ class EmployerListBenefitPlanYearsParams < VitableConnect::Internal::Type::BaseModel
6
6
  extend VitableConnect::Internal::Type::RequestParameters::Converter
7
7
  include VitableConnect::Internal::Type::RequestParameters
8
8
 
9
9
  OrHash =
10
10
  T.type_alias do
11
11
  T.any(
12
- VitableConnect::BenefitEligibilityPolicyRetrieveParams,
12
+ VitableConnect::EmployerListBenefitPlanYearsParams,
13
13
  VitableConnect::Internal::AnyHash
14
14
  )
15
15
  end
16
16
 
17
- # Unique benefit eligibility policy identifier (epol\_\*)
17
+ # Unique employer identifier (empr\_\*)
18
18
  sig { returns(String) }
19
- attr_accessor :policy_id
19
+ attr_accessor :employer_id
20
20
 
21
21
  sig do
22
22
  params(
23
- policy_id: String,
23
+ employer_id: String,
24
24
  request_options: VitableConnect::RequestOptions::OrHash
25
25
  ).returns(T.attached_class)
26
26
  end
27
27
  def self.new(
28
- # Unique benefit eligibility policy identifier (epol\_\*)
29
- policy_id:,
28
+ # Unique employer identifier (empr\_\*)
29
+ employer_id:,
30
30
  request_options: {}
31
31
  )
32
32
  end
33
33
 
34
34
  sig do
35
35
  override.returns(
36
- { policy_id: String, request_options: VitableConnect::RequestOptions }
36
+ {
37
+ employer_id: String,
38
+ request_options: VitableConnect::RequestOptions
39
+ }
37
40
  )
38
41
  end
39
42
  def to_hash
@@ -0,0 +1,539 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerListBenefitPlanYearsResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig do
15
+ returns(
16
+ T::Array[
17
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data
18
+ ]
19
+ )
20
+ end
21
+ attr_accessor :data
22
+
23
+ sig do
24
+ params(
25
+ data:
26
+ T::Array[
27
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::OrHash
28
+ ]
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(data:)
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ data:
38
+ T::Array[
39
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data
40
+ ]
41
+ }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+
47
+ class Data < VitableConnect::Internal::Type::BaseModel
48
+ OrHash =
49
+ T.type_alias do
50
+ T.any(
51
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data,
52
+ VitableConnect::Internal::AnyHash
53
+ )
54
+ end
55
+
56
+ # Prefixed benefit identifier (`bprd_*`).
57
+ sig { returns(String) }
58
+ attr_accessor :benefit_id
59
+
60
+ # Prefixed plan-year identifier (`plyr_*`).
61
+ sig { returns(String) }
62
+ attr_accessor :benefit_plan_year_id
63
+
64
+ # Carrier name, or null (e.g. ICHRA).
65
+ sig { returns(T.nilable(String)) }
66
+ attr_accessor :carrier
67
+
68
+ # Coverage end.
69
+ sig { returns(T.nilable(Date)) }
70
+ attr_accessor :coverage_end
71
+
72
+ # Coverage start.
73
+ sig { returns(Date) }
74
+ attr_accessor :coverage_start
75
+
76
+ # Employee contribution range.
77
+ sig do
78
+ returns(
79
+ T.nilable(
80
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployeeContribution
81
+ )
82
+ )
83
+ end
84
+ attr_reader :employee_contribution
85
+
86
+ sig do
87
+ params(
88
+ employee_contribution:
89
+ T.nilable(
90
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployeeContribution::OrHash
91
+ )
92
+ ).void
93
+ end
94
+ attr_writer :employee_contribution
95
+
96
+ # Employer contribution range.
97
+ sig do
98
+ returns(
99
+ T.nilable(
100
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployerContribution
101
+ )
102
+ )
103
+ end
104
+ attr_reader :employer_contribution
105
+
106
+ sig do
107
+ params(
108
+ employer_contribution:
109
+ T.nilable(
110
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployerContribution::OrHash
111
+ )
112
+ ).void
113
+ end
114
+ attr_writer :employer_contribution
115
+
116
+ # Enrolled/eligible rate for this plan year.
117
+ sig do
118
+ returns(
119
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EnrollmentRate
120
+ )
121
+ end
122
+ attr_reader :enrollment_rate
123
+
124
+ sig do
125
+ params(
126
+ enrollment_rate:
127
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EnrollmentRate::OrHash
128
+ ).void
129
+ end
130
+ attr_writer :enrollment_rate
131
+
132
+ # - `mec` - Mec
133
+ # - `mvp` - Mvp
134
+ # - `ichra` - Ichra
135
+ # - `vpc` - Vpc
136
+ # - `dental` - Dental
137
+ # - `vision` - Vision
138
+ sig do
139
+ returns(
140
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
141
+ )
142
+ end
143
+ attr_accessor :family
144
+
145
+ # Whether this is the current plan year.
146
+ sig { returns(T::Boolean) }
147
+ attr_accessor :is_current
148
+
149
+ # Displayed networks: ["multi"] for ICHRA, otherwise the plan year's distinct
150
+ # network names.
151
+ sig { returns(T::Array[String]) }
152
+ attr_accessor :network_names
153
+
154
+ # Distinct offered state codes.
155
+ sig { returns(T::Array[String]) }
156
+ attr_accessor :offered_states
157
+
158
+ # Open-enrollment end.
159
+ sig { returns(T.nilable(Date)) }
160
+ attr_accessor :open_enrollment_end
161
+
162
+ # Open-enrollment start.
163
+ sig { returns(Date) }
164
+ attr_accessor :open_enrollment_start
165
+
166
+ # Monthly premium in cents; only for an ICHRA benefit with effective coverage.
167
+ sig { returns(T.nilable(Integer)) }
168
+ attr_accessor :premium_in_cents
169
+
170
+ # Benefit/product display name.
171
+ sig { returns(String) }
172
+ attr_accessor :product_name
173
+
174
+ # - `active` - Active
175
+ # - `upcoming` - Upcoming
176
+ # - `open_enrollment` - Open Enrollment
177
+ # - `inactive` - Inactive
178
+ sig do
179
+ returns(
180
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol
181
+ )
182
+ end
183
+ attr_accessor :status
184
+
185
+ # Calendar coverage year.
186
+ sig { returns(Integer) }
187
+ attr_accessor :year
188
+
189
+ # One plan year, list view.
190
+ #
191
+ # Standalone (no shared base) so the exact list payload is readable in one place;
192
+ # the detail serializer is a separate class even where fields overlap.
193
+ sig do
194
+ params(
195
+ benefit_id: String,
196
+ benefit_plan_year_id: String,
197
+ carrier: T.nilable(String),
198
+ coverage_end: T.nilable(Date),
199
+ coverage_start: Date,
200
+ employee_contribution:
201
+ T.nilable(
202
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployeeContribution::OrHash
203
+ ),
204
+ employer_contribution:
205
+ T.nilable(
206
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployerContribution::OrHash
207
+ ),
208
+ enrollment_rate:
209
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EnrollmentRate::OrHash,
210
+ family:
211
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::OrSymbol,
212
+ is_current: T::Boolean,
213
+ network_names: T::Array[String],
214
+ offered_states: T::Array[String],
215
+ open_enrollment_end: T.nilable(Date),
216
+ open_enrollment_start: Date,
217
+ premium_in_cents: T.nilable(Integer),
218
+ product_name: String,
219
+ status:
220
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::OrSymbol,
221
+ year: Integer
222
+ ).returns(T.attached_class)
223
+ end
224
+ def self.new(
225
+ # Prefixed benefit identifier (`bprd_*`).
226
+ benefit_id:,
227
+ # Prefixed plan-year identifier (`plyr_*`).
228
+ benefit_plan_year_id:,
229
+ # Carrier name, or null (e.g. ICHRA).
230
+ carrier:,
231
+ # Coverage end.
232
+ coverage_end:,
233
+ # Coverage start.
234
+ coverage_start:,
235
+ # Employee contribution range.
236
+ employee_contribution:,
237
+ # Employer contribution range.
238
+ employer_contribution:,
239
+ # Enrolled/eligible rate for this plan year.
240
+ enrollment_rate:,
241
+ # - `mec` - Mec
242
+ # - `mvp` - Mvp
243
+ # - `ichra` - Ichra
244
+ # - `vpc` - Vpc
245
+ # - `dental` - Dental
246
+ # - `vision` - Vision
247
+ family:,
248
+ # Whether this is the current plan year.
249
+ is_current:,
250
+ # Displayed networks: ["multi"] for ICHRA, otherwise the plan year's distinct
251
+ # network names.
252
+ network_names:,
253
+ # Distinct offered state codes.
254
+ offered_states:,
255
+ # Open-enrollment end.
256
+ open_enrollment_end:,
257
+ # Open-enrollment start.
258
+ open_enrollment_start:,
259
+ # Monthly premium in cents; only for an ICHRA benefit with effective coverage.
260
+ premium_in_cents:,
261
+ # Benefit/product display name.
262
+ product_name:,
263
+ # - `active` - Active
264
+ # - `upcoming` - Upcoming
265
+ # - `open_enrollment` - Open Enrollment
266
+ # - `inactive` - Inactive
267
+ status:,
268
+ # Calendar coverage year.
269
+ year:
270
+ )
271
+ end
272
+
273
+ sig do
274
+ override.returns(
275
+ {
276
+ benefit_id: String,
277
+ benefit_plan_year_id: String,
278
+ carrier: T.nilable(String),
279
+ coverage_end: T.nilable(Date),
280
+ coverage_start: Date,
281
+ employee_contribution:
282
+ T.nilable(
283
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployeeContribution
284
+ ),
285
+ employer_contribution:
286
+ T.nilable(
287
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployerContribution
288
+ ),
289
+ enrollment_rate:
290
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EnrollmentRate,
291
+ family:
292
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol,
293
+ is_current: T::Boolean,
294
+ network_names: T::Array[String],
295
+ offered_states: T::Array[String],
296
+ open_enrollment_end: T.nilable(Date),
297
+ open_enrollment_start: Date,
298
+ premium_in_cents: T.nilable(Integer),
299
+ product_name: String,
300
+ status:
301
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol,
302
+ year: Integer
303
+ }
304
+ )
305
+ end
306
+ def to_hash
307
+ end
308
+
309
+ class EmployeeContribution < VitableConnect::Internal::Type::BaseModel
310
+ OrHash =
311
+ T.type_alias do
312
+ T.any(
313
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployeeContribution,
314
+ VitableConnect::Internal::AnyHash
315
+ )
316
+ end
317
+
318
+ # Highest per-tier contribution in cents.
319
+ sig { returns(Integer) }
320
+ attr_accessor :max_cents
321
+
322
+ # Lowest per-tier contribution in cents.
323
+ sig { returns(Integer) }
324
+ attr_accessor :min_cents
325
+
326
+ # Employee contribution range.
327
+ sig do
328
+ params(max_cents: Integer, min_cents: Integer).returns(
329
+ T.attached_class
330
+ )
331
+ end
332
+ def self.new(
333
+ # Highest per-tier contribution in cents.
334
+ max_cents:,
335
+ # Lowest per-tier contribution in cents.
336
+ min_cents:
337
+ )
338
+ end
339
+
340
+ sig { override.returns({ max_cents: Integer, min_cents: Integer }) }
341
+ def to_hash
342
+ end
343
+ end
344
+
345
+ class EmployerContribution < VitableConnect::Internal::Type::BaseModel
346
+ OrHash =
347
+ T.type_alias do
348
+ T.any(
349
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EmployerContribution,
350
+ VitableConnect::Internal::AnyHash
351
+ )
352
+ end
353
+
354
+ # Highest per-tier contribution in cents.
355
+ sig { returns(Integer) }
356
+ attr_accessor :max_cents
357
+
358
+ # Lowest per-tier contribution in cents.
359
+ sig { returns(Integer) }
360
+ attr_accessor :min_cents
361
+
362
+ # Employer contribution range.
363
+ sig do
364
+ params(max_cents: Integer, min_cents: Integer).returns(
365
+ T.attached_class
366
+ )
367
+ end
368
+ def self.new(
369
+ # Highest per-tier contribution in cents.
370
+ max_cents:,
371
+ # Lowest per-tier contribution in cents.
372
+ min_cents:
373
+ )
374
+ end
375
+
376
+ sig { override.returns({ max_cents: Integer, min_cents: Integer }) }
377
+ def to_hash
378
+ end
379
+ end
380
+
381
+ class EnrollmentRate < VitableConnect::Internal::Type::BaseModel
382
+ OrHash =
383
+ T.type_alias do
384
+ T.any(
385
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::EnrollmentRate,
386
+ VitableConnect::Internal::AnyHash
387
+ )
388
+ end
389
+
390
+ # Employees eligible for this plan year.
391
+ sig { returns(Integer) }
392
+ attr_accessor :eligible
393
+
394
+ # Employees enrolled in this plan year.
395
+ sig { returns(Integer) }
396
+ attr_accessor :enrolled
397
+
398
+ # `enrolled / eligible` whole-number percent (0 when none).
399
+ sig { returns(Integer) }
400
+ attr_accessor :percentage
401
+
402
+ # Enrolled/eligible rate for this plan year.
403
+ sig do
404
+ params(
405
+ eligible: Integer,
406
+ enrolled: Integer,
407
+ percentage: Integer
408
+ ).returns(T.attached_class)
409
+ end
410
+ def self.new(
411
+ # Employees eligible for this plan year.
412
+ eligible:,
413
+ # Employees enrolled in this plan year.
414
+ enrolled:,
415
+ # `enrolled / eligible` whole-number percent (0 when none).
416
+ percentage:
417
+ )
418
+ end
419
+
420
+ sig do
421
+ override.returns(
422
+ { eligible: Integer, enrolled: Integer, percentage: Integer }
423
+ )
424
+ end
425
+ def to_hash
426
+ end
427
+ end
428
+
429
+ # - `mec` - Mec
430
+ # - `mvp` - Mvp
431
+ # - `ichra` - Ichra
432
+ # - `vpc` - Vpc
433
+ # - `dental` - Dental
434
+ # - `vision` - Vision
435
+ module Family
436
+ extend VitableConnect::Internal::Type::Enum
437
+
438
+ TaggedSymbol =
439
+ T.type_alias do
440
+ T.all(
441
+ Symbol,
442
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family
443
+ )
444
+ end
445
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
446
+
447
+ MEC =
448
+ T.let(
449
+ :mec,
450
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
451
+ )
452
+ MVP =
453
+ T.let(
454
+ :mvp,
455
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
456
+ )
457
+ ICHRA =
458
+ T.let(
459
+ :ichra,
460
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
461
+ )
462
+ VPC =
463
+ T.let(
464
+ :vpc,
465
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
466
+ )
467
+ DENTAL =
468
+ T.let(
469
+ :dental,
470
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
471
+ )
472
+ VISION =
473
+ T.let(
474
+ :vision,
475
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
476
+ )
477
+
478
+ sig do
479
+ override.returns(
480
+ T::Array[
481
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Family::TaggedSymbol
482
+ ]
483
+ )
484
+ end
485
+ def self.values
486
+ end
487
+ end
488
+
489
+ # - `active` - Active
490
+ # - `upcoming` - Upcoming
491
+ # - `open_enrollment` - Open Enrollment
492
+ # - `inactive` - Inactive
493
+ module Status
494
+ extend VitableConnect::Internal::Type::Enum
495
+
496
+ TaggedSymbol =
497
+ T.type_alias do
498
+ T.all(
499
+ Symbol,
500
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status
501
+ )
502
+ end
503
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
504
+
505
+ ACTIVE =
506
+ T.let(
507
+ :active,
508
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol
509
+ )
510
+ UPCOMING =
511
+ T.let(
512
+ :upcoming,
513
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol
514
+ )
515
+ OPEN_ENROLLMENT =
516
+ T.let(
517
+ :open_enrollment,
518
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol
519
+ )
520
+ INACTIVE =
521
+ T.let(
522
+ :inactive,
523
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol
524
+ )
525
+
526
+ sig do
527
+ override.returns(
528
+ T::Array[
529
+ VitableConnect::Models::EmployerListBenefitPlanYearsResponse::Data::Status::TaggedSymbol
530
+ ]
531
+ )
532
+ end
533
+ def self.values
534
+ end
535
+ end
536
+ end
537
+ end
538
+ end
539
+ end
@@ -18,6 +18,24 @@ module VitableConnect
18
18
  sig { returns(String) }
19
19
  attr_accessor :employer_id
20
20
 
21
+ # Filter by employment status (active or terminated)
22
+ sig do
23
+ returns(
24
+ T.nilable(
25
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::OrSymbol
26
+ )
27
+ )
28
+ end
29
+ attr_reader :employment_status
30
+
31
+ sig do
32
+ params(
33
+ employment_status:
34
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::OrSymbol
35
+ ).void
36
+ end
37
+ attr_writer :employment_status
38
+
21
39
  # Items per page (default: 20, max: 100)
22
40
  sig { returns(T.nilable(Integer)) }
23
41
  attr_reader :limit
@@ -32,21 +50,35 @@ module VitableConnect
32
50
  sig { params(page: Integer).void }
33
51
  attr_writer :page
34
52
 
53
+ # Case-insensitive search across employee first name, last name, and email
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :search
56
+
57
+ sig { params(search: String).void }
58
+ attr_writer :search
59
+
35
60
  sig do
36
61
  params(
37
62
  employer_id: String,
63
+ employment_status:
64
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::OrSymbol,
38
65
  limit: Integer,
39
66
  page: Integer,
67
+ search: String,
40
68
  request_options: VitableConnect::RequestOptions::OrHash
41
69
  ).returns(T.attached_class)
42
70
  end
43
71
  def self.new(
44
72
  # Unique employer identifier (empr\_\*)
45
73
  employer_id:,
74
+ # Filter by employment status (active or terminated)
75
+ employment_status: nil,
46
76
  # Items per page (default: 20, max: 100)
47
77
  limit: nil,
48
78
  # Page number (default: 1)
49
79
  page: nil,
80
+ # Case-insensitive search across employee first name, last name, and email
81
+ search: nil,
50
82
  request_options: {}
51
83
  )
52
84
  end
@@ -55,14 +87,52 @@ module VitableConnect
55
87
  override.returns(
56
88
  {
57
89
  employer_id: String,
90
+ employment_status:
91
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::OrSymbol,
58
92
  limit: Integer,
59
93
  page: Integer,
94
+ search: String,
60
95
  request_options: VitableConnect::RequestOptions
61
96
  }
62
97
  )
63
98
  end
64
99
  def to_hash
65
100
  end
101
+
102
+ # Filter by employment status (active or terminated)
103
+ module EmploymentStatus
104
+ extend VitableConnect::Internal::Type::Enum
105
+
106
+ TaggedSymbol =
107
+ T.type_alias do
108
+ T.all(
109
+ Symbol,
110
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus
111
+ )
112
+ end
113
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
114
+
115
+ ACTIVE =
116
+ T.let(
117
+ :active,
118
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::TaggedSymbol
119
+ )
120
+ TERMINATED =
121
+ T.let(
122
+ :terminated,
123
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::TaggedSymbol
124
+ )
125
+
126
+ sig do
127
+ override.returns(
128
+ T::Array[
129
+ VitableConnect::EmployerListEmployeesParams::EmploymentStatus::TaggedSymbol
130
+ ]
131
+ )
132
+ end
133
+ def self.values
134
+ end
135
+ end
66
136
  end
67
137
  end
68
138
  end