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
@@ -0,0 +1,813 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VitableConnect
4
+ module Models
5
+ # @see VitableConnect::Resources::Employers#retrieve_benefit_plan_year
6
+ class EmployerRetrieveBenefitPlanYearResponse < VitableConnect::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # One plan year, detail view.
9
+ #
10
+ # Standalone (no shared base) so the exact detail payload is readable in one
11
+ # place; the list serializer is a separate class even where fields overlap. Detail
12
+ # carries the SPD link and omits the list-only `is_current` flag.
13
+ #
14
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data]
15
+ required :data, -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data }
16
+
17
+ # @!method initialize(data:)
18
+ # Some parameter documentations has been truncated, see
19
+ # {VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse} for more
20
+ # details.
21
+ #
22
+ # Response containing a single employer benefit plan year resource.
23
+ #
24
+ # @param data [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data] One plan year, detail view.
25
+
26
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse#data
27
+ class Data < VitableConnect::Internal::Type::BaseModel
28
+ # @!attribute benefit_id
29
+ # Prefixed benefit identifier (`bprd_*`).
30
+ #
31
+ # @return [String]
32
+ required :benefit_id, String
33
+
34
+ # @!attribute benefit_plan_year_id
35
+ # Prefixed plan-year identifier (`plyr_*`).
36
+ #
37
+ # @return [String]
38
+ required :benefit_plan_year_id, String
39
+
40
+ # @!attribute carrier
41
+ # Carrier name, or null (e.g. ICHRA).
42
+ #
43
+ # @return [String, nil]
44
+ required :carrier, String, nil?: true
45
+
46
+ # @!attribute contribution_strategy
47
+ # How the plan year prices contributions: exactly one collection is populated,
48
+ # determined by the plan year's `family` (ICHRA vs tier-priced).
49
+ #
50
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy]
51
+ required :contribution_strategy,
52
+ -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy }
53
+
54
+ # @!attribute coverage_end
55
+ # Coverage end.
56
+ #
57
+ # @return [Date, nil]
58
+ required :coverage_end, Date, nil?: true
59
+
60
+ # @!attribute coverage_start
61
+ # Coverage start.
62
+ #
63
+ # @return [Date]
64
+ required :coverage_start, Date
65
+
66
+ # @!attribute eligibility_policy
67
+ # The plan year's active eligibility policy. Mirrors the internal
68
+ # `PlanYearEligibilityPolicyDTO` but exposes only the public subset (no raw ids,
69
+ # `active_in`, or timestamps).
70
+ #
71
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy, nil]
72
+ required :eligibility_policy,
73
+ -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy },
74
+ nil?: true
75
+
76
+ # @!attribute employee_contribution
77
+ # Employee contribution range.
78
+ #
79
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EmployeeContribution, nil]
80
+ required :employee_contribution,
81
+ -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EmployeeContribution },
82
+ nil?: true
83
+
84
+ # @!attribute employer_contribution
85
+ # Employer contribution range.
86
+ #
87
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EmployerContribution, nil]
88
+ required :employer_contribution,
89
+ -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EmployerContribution },
90
+ nil?: true
91
+
92
+ # @!attribute enrollment_rate
93
+ # Enrolled/eligible rate for this plan year.
94
+ #
95
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EnrollmentRate]
96
+ required :enrollment_rate,
97
+ -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EnrollmentRate }
98
+
99
+ # @!attribute family
100
+ # - `mec` - Mec
101
+ # - `mvp` - Mvp
102
+ # - `ichra` - Ichra
103
+ # - `vpc` - Vpc
104
+ # - `dental` - Dental
105
+ # - `vision` - Vision
106
+ #
107
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::Family]
108
+ required :family,
109
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::Family }
110
+
111
+ # @!attribute network_names
112
+ # Displayed networks: ["multi"] for ICHRA, otherwise the plan year's distinct
113
+ # network names.
114
+ #
115
+ # @return [Array<String>]
116
+ required :network_names, VitableConnect::Internal::Type::ArrayOf[String]
117
+
118
+ # @!attribute offered_states
119
+ # Distinct offered state codes.
120
+ #
121
+ # @return [Array<String>]
122
+ required :offered_states, VitableConnect::Internal::Type::ArrayOf[String]
123
+
124
+ # @!attribute open_enrollment_end
125
+ # Open-enrollment end.
126
+ #
127
+ # @return [Date, nil]
128
+ required :open_enrollment_end, Date, nil?: true
129
+
130
+ # @!attribute open_enrollment_start
131
+ # Open-enrollment start.
132
+ #
133
+ # @return [Date]
134
+ required :open_enrollment_start, Date
135
+
136
+ # @!attribute premium_in_cents
137
+ # Monthly premium in cents; only for an ICHRA benefit with effective coverage.
138
+ #
139
+ # @return [Integer, nil]
140
+ required :premium_in_cents, Integer, nil?: true
141
+
142
+ # @!attribute product_name
143
+ # Benefit/product display name.
144
+ #
145
+ # @return [String]
146
+ required :product_name, String
147
+
148
+ # @!attribute spd_file_url
149
+ # Summary Plan Description (SPD) link, or null.
150
+ #
151
+ # @return [String, nil]
152
+ required :spd_file_url, String, nil?: true
153
+
154
+ # @!attribute status
155
+ # - `active` - Active
156
+ # - `upcoming` - Upcoming
157
+ # - `open_enrollment` - Open Enrollment
158
+ # - `inactive` - Inactive
159
+ #
160
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::Status]
161
+ required :status,
162
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::Status }
163
+
164
+ # @!attribute year
165
+ # Calendar coverage year.
166
+ #
167
+ # @return [Integer]
168
+ required :year, Integer
169
+
170
+ # @!method initialize(benefit_id:, benefit_plan_year_id:, carrier:, contribution_strategy:, coverage_end:, coverage_start:, eligibility_policy:, employee_contribution:, employer_contribution:, enrollment_rate:, family:, network_names:, offered_states:, open_enrollment_end:, open_enrollment_start:, premium_in_cents:, product_name:, spd_file_url:, status:, year:)
171
+ # Some parameter documentations has been truncated, see
172
+ # {VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data} for more
173
+ # details.
174
+ #
175
+ # One plan year, detail view.
176
+ #
177
+ # Standalone (no shared base) so the exact detail payload is readable in one
178
+ # place; the list serializer is a separate class even where fields overlap. Detail
179
+ # carries the SPD link and omits the list-only `is_current` flag.
180
+ #
181
+ # @param benefit_id [String] Prefixed benefit identifier (`bprd_*`).
182
+ #
183
+ # @param benefit_plan_year_id [String] Prefixed plan-year identifier (`plyr_*`).
184
+ #
185
+ # @param carrier [String, nil] Carrier name, or null (e.g. ICHRA).
186
+ #
187
+ # @param contribution_strategy [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy] How the plan year prices contributions: exactly one collection is populated, det
188
+ #
189
+ # @param coverage_end [Date, nil] Coverage end.
190
+ #
191
+ # @param coverage_start [Date] Coverage start.
192
+ #
193
+ # @param eligibility_policy [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy, nil] The plan year's active eligibility policy. Mirrors the internal ``PlanYearEligib
194
+ #
195
+ # @param employee_contribution [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EmployeeContribution, nil] Employee contribution range.
196
+ #
197
+ # @param employer_contribution [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EmployerContribution, nil] Employer contribution range.
198
+ #
199
+ # @param enrollment_rate [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EnrollmentRate] Enrolled/eligible rate for this plan year.
200
+ #
201
+ # @param family [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::Family] - `mec` - Mec
202
+ #
203
+ # @param network_names [Array<String>] Displayed networks: ["multi"] for ICHRA, otherwise the plan year's distinct netw
204
+ #
205
+ # @param offered_states [Array<String>] Distinct offered state codes.
206
+ #
207
+ # @param open_enrollment_end [Date, nil] Open-enrollment end.
208
+ #
209
+ # @param open_enrollment_start [Date] Open-enrollment start.
210
+ #
211
+ # @param premium_in_cents [Integer, nil] Monthly premium in cents; only for an ICHRA benefit with effective coverage.
212
+ #
213
+ # @param product_name [String] Benefit/product display name.
214
+ #
215
+ # @param spd_file_url [String, nil] Summary Plan Description (SPD) link, or null.
216
+ #
217
+ # @param status [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::Status] - `active` - Active
218
+ #
219
+ # @param year [Integer] Calendar coverage year.
220
+
221
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#contribution_strategy
222
+ class ContributionStrategy < VitableConnect::Internal::Type::BaseModel
223
+ # @!attribute contribution_tiers
224
+ # Coverage tiers and their costs; empty for ICHRA benefits.
225
+ #
226
+ # @return [Array<VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::ContributionTier>]
227
+ required :contribution_tiers,
228
+ -> do
229
+ VitableConnect::Internal::Type::ArrayOf[
230
+ VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::ContributionTier
231
+ ]
232
+ end
233
+
234
+ # @!attribute ichra_contribution_classes
235
+ # ICHRA contribution classes; empty for tier-priced benefits.
236
+ #
237
+ # @return [Array<VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass>]
238
+ required :ichra_contribution_classes,
239
+ -> do
240
+ VitableConnect::Internal::Type::ArrayOf[
241
+ VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass
242
+ ]
243
+ end
244
+
245
+ # @!method initialize(contribution_tiers:, ichra_contribution_classes:)
246
+ # How the plan year prices contributions: exactly one collection is populated,
247
+ # determined by the plan year's `family` (ICHRA vs tier-priced).
248
+ #
249
+ # @param contribution_tiers [Array<VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::ContributionTier>] Coverage tiers and their costs; empty for ICHRA benefits.
250
+ #
251
+ # @param ichra_contribution_classes [Array<VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass>] ICHRA contribution classes; empty for tier-priced benefits.
252
+
253
+ class ContributionTier < VitableConnect::Internal::Type::BaseModel
254
+ # @!attribute benefit_plan_id
255
+ # Prefixed benefit-plan identifier (`bpln_*`).
256
+ #
257
+ # @return [String]
258
+ required :benefit_plan_id, String
259
+
260
+ # @!attribute benefit_plan_name
261
+ # Benefit plan name.
262
+ #
263
+ # @return [String]
264
+ required :benefit_plan_name, String
265
+
266
+ # @!attribute benefit_plan_tier_name
267
+ # Coverage-tier name.
268
+ #
269
+ # @return [String]
270
+ required :benefit_plan_tier_name, String
271
+
272
+ # @!attribute cost
273
+ # Monthly employee deduction in cents.
274
+ #
275
+ # @return [Integer]
276
+ required :cost, Integer
277
+
278
+ # @!attribute cost_per_dependent
279
+ # Monthly employee deduction per dependent, in cents.
280
+ #
281
+ # @return [Integer]
282
+ required :cost_per_dependent, Integer
283
+
284
+ # @!attribute dependents_required_in
285
+ # Whether dependents are required for this tier.
286
+ #
287
+ # @return [Boolean]
288
+ required :dependents_required_in, VitableConnect::Internal::Type::Boolean
289
+
290
+ # @!attribute spouse_required_in
291
+ # Whether a spouse is required for this tier.
292
+ #
293
+ # @return [Boolean]
294
+ required :spouse_required_in, VitableConnect::Internal::Type::Boolean
295
+
296
+ # @!method initialize(benefit_plan_id:, benefit_plan_name:, benefit_plan_tier_name:, cost:, cost_per_dependent:, dependents_required_in:, spouse_required_in:)
297
+ # One non-ICHRA coverage tier, mirroring the internal configuration
298
+ # `CompanyBenefitPlanTierCostDTO` minus the tier-cost id, `pepm` and
299
+ # `pepm_per_dependent`; `benefit_plan_id` is the prefixed `bpln_*` form rather
300
+ # than a raw UUID.
301
+ #
302
+ # @param benefit_plan_id [String] Prefixed benefit-plan identifier (`bpln_*`).
303
+ #
304
+ # @param benefit_plan_name [String] Benefit plan name.
305
+ #
306
+ # @param benefit_plan_tier_name [String] Coverage-tier name.
307
+ #
308
+ # @param cost [Integer] Monthly employee deduction in cents.
309
+ #
310
+ # @param cost_per_dependent [Integer] Monthly employee deduction per dependent, in cents.
311
+ #
312
+ # @param dependents_required_in [Boolean] Whether dependents are required for this tier.
313
+ #
314
+ # @param spouse_required_in [Boolean] Whether a spouse is required for this tier.
315
+ end
316
+
317
+ class IchraContributionClass < VitableConnect::Internal::Type::BaseModel
318
+ # @!attribute amount_in_cents
319
+ # Monthly allowance in cents.
320
+ #
321
+ # @return [Integer]
322
+ required :amount_in_cents, Integer
323
+
324
+ # @!attribute compensation
325
+ # - `Unspecified` - Unspecified
326
+ # - `Salary` - Salary
327
+ # - `Hourly` - Hourly
328
+ #
329
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Compensation]
330
+ required :compensation,
331
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Compensation }
332
+
333
+ # @!attribute contribution_class_id
334
+ # Prefixed contribution-class identifier (`iccl_*`).
335
+ #
336
+ # @return [String]
337
+ required :contribution_class_id, String
338
+
339
+ # @!attribute employment
340
+ # - `Unspecified` - Unspecified
341
+ # - `Full Time` - Full Time
342
+ # - `Part Time` - Part Time
343
+ # - `Temporary` - Temporary
344
+ # - `Seasonal` - Seasonal
345
+ #
346
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Employment]
347
+ required :employment,
348
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Employment }
349
+
350
+ # @!attribute family_status
351
+ # - `Unspecified` - Unspecified
352
+ # - `EE` - Ee
353
+ # - `ES` - Es
354
+ # - `EC` - Ec
355
+ # - `EF` - Ef
356
+ #
357
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::FamilyStatus]
358
+ required :family_status,
359
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::FamilyStatus }
360
+
361
+ # @!attribute location
362
+ # - `Unspecified` - Unspecified
363
+ # - `State` - State
364
+ #
365
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Location]
366
+ required :location,
367
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Location }
368
+
369
+ # @!attribute location_value
370
+ # Location matcher value (CSV of state codes), or null.
371
+ #
372
+ # @return [String, nil]
373
+ required :location_value, String, nil?: true
374
+
375
+ # @!attribute max_age
376
+ # Age-band upper bound, or null.
377
+ #
378
+ # @return [Integer, nil]
379
+ required :max_age, Integer, nil?: true
380
+
381
+ # @!attribute min_age
382
+ # Age-band lower bound, or null.
383
+ #
384
+ # @return [Integer, nil]
385
+ required :min_age, Integer, nil?: true
386
+
387
+ # @!method initialize(amount_in_cents:, compensation:, contribution_class_id:, employment:, family_status:, location:, location_value:, max_age:, min_age:)
388
+ # Some parameter documentations has been truncated, see
389
+ # {VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass}
390
+ # for more details.
391
+ #
392
+ # One ICHRA contribution class, mirroring the internal configuration endpoint's
393
+ # `IchraContributionClassConfigurationEntitySerializer` field-for-field. Two
394
+ # deliberate differences for the public surface: the identifier is the opaque
395
+ # prefixed `iccl_*` form rather than a raw UUID, and the matcher choices come from
396
+ # the domain enums rather than the model's.
397
+ #
398
+ # @param amount_in_cents [Integer] Monthly allowance in cents.
399
+ #
400
+ # @param compensation [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Compensation] - `Unspecified` - Unspecified
401
+ #
402
+ # @param contribution_class_id [String] Prefixed contribution-class identifier (`iccl_*`).
403
+ #
404
+ # @param employment [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Employment] - `Unspecified` - Unspecified
405
+ #
406
+ # @param family_status [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::FamilyStatus] - `Unspecified` - Unspecified
407
+ #
408
+ # @param location [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass::Location] - `Unspecified` - Unspecified
409
+ #
410
+ # @param location_value [String, nil] Location matcher value (CSV of state codes), or null.
411
+ #
412
+ # @param max_age [Integer, nil] Age-band upper bound, or null.
413
+ #
414
+ # @param min_age [Integer, nil] Age-band lower bound, or null.
415
+
416
+ # - `Unspecified` - Unspecified
417
+ # - `Salary` - Salary
418
+ # - `Hourly` - Hourly
419
+ #
420
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass#compensation
421
+ module Compensation
422
+ extend VitableConnect::Internal::Type::Enum
423
+
424
+ UNSPECIFIED = :Unspecified
425
+ SALARY = :Salary
426
+ HOURLY = :Hourly
427
+
428
+ # @!method self.values
429
+ # @return [Array<Symbol>]
430
+ end
431
+
432
+ # - `Unspecified` - Unspecified
433
+ # - `Full Time` - Full Time
434
+ # - `Part Time` - Part Time
435
+ # - `Temporary` - Temporary
436
+ # - `Seasonal` - Seasonal
437
+ #
438
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass#employment
439
+ module Employment
440
+ extend VitableConnect::Internal::Type::Enum
441
+
442
+ UNSPECIFIED = :Unspecified
443
+ FULL_TIME = :"Full Time"
444
+ PART_TIME = :"Part Time"
445
+ TEMPORARY = :Temporary
446
+ SEASONAL = :Seasonal
447
+
448
+ # @!method self.values
449
+ # @return [Array<Symbol>]
450
+ end
451
+
452
+ # - `Unspecified` - Unspecified
453
+ # - `EE` - Ee
454
+ # - `ES` - Es
455
+ # - `EC` - Ec
456
+ # - `EF` - Ef
457
+ #
458
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass#family_status
459
+ module FamilyStatus
460
+ extend VitableConnect::Internal::Type::Enum
461
+
462
+ UNSPECIFIED = :Unspecified
463
+ EE = :EE
464
+ ES = :ES
465
+ EC = :EC
466
+ EF = :EF
467
+
468
+ # @!method self.values
469
+ # @return [Array<Symbol>]
470
+ end
471
+
472
+ # - `Unspecified` - Unspecified
473
+ # - `State` - State
474
+ #
475
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::ContributionStrategy::IchraContributionClass#location
476
+ module Location
477
+ extend VitableConnect::Internal::Type::Enum
478
+
479
+ UNSPECIFIED = :Unspecified
480
+ STATE = :State
481
+
482
+ # @!method self.values
483
+ # @return [Array<Symbol>]
484
+ end
485
+ end
486
+ end
487
+
488
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#eligibility_policy
489
+ class EligibilityPolicy < VitableConnect::Internal::Type::BaseModel
490
+ # @!attribute rules
491
+ # Eligibility rules; never empty for a valid policy.
492
+ #
493
+ # @return [Array<VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule>]
494
+ required :rules,
495
+ -> { VitableConnect::Internal::Type::ArrayOf[VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule] }
496
+
497
+ # @!attribute termination_n_months
498
+ # Months of continued coverage; set only when `termination_rule` is
499
+ # `END_OF_N_MONTHS`.
500
+ #
501
+ # @return [Integer, nil]
502
+ required :termination_n_months, Integer, nil?: true
503
+
504
+ # @!attribute termination_rule
505
+ # - `END_OF_N_MONTHS` - End Of N Months
506
+ # - `END_OF_PLAN_YEAR` - End Of Plan Year
507
+ #
508
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::TerminationRule]
509
+ required :termination_rule,
510
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::TerminationRule }
511
+
512
+ # @!attribute waiting_period
513
+ # - `FIRST_OF_FOLLOWING_MONTH` - First Of Following Month
514
+ # - `THIRTY_DAYS` - Thirty Days
515
+ # - `SIXTY_DAYS` - Sixty Days
516
+ #
517
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::WaitingPeriod, nil]
518
+ required :waiting_period,
519
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::WaitingPeriod },
520
+ nil?: true
521
+
522
+ # @!method initialize(rules:, termination_n_months:, termination_rule:, waiting_period:)
523
+ # Some parameter documentations has been truncated, see
524
+ # {VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy}
525
+ # for more details.
526
+ #
527
+ # The plan year's active eligibility policy. Mirrors the internal
528
+ # `PlanYearEligibilityPolicyDTO` but exposes only the public subset (no raw ids,
529
+ # `active_in`, or timestamps).
530
+ #
531
+ # @param rules [Array<VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule>] Eligibility rules; never empty for a valid policy.
532
+ #
533
+ # @param termination_n_months [Integer, nil] Months of continued coverage; set only when `termination_rule` is `END_OF_N_MONT
534
+ #
535
+ # @param termination_rule [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::TerminationRule] - `END_OF_N_MONTHS` - End Of N Months
536
+ #
537
+ # @param waiting_period [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::WaitingPeriod, nil] - `FIRST_OF_FOLLOWING_MONTH` - First Of Following Month
538
+
539
+ class Rule < VitableConnect::Internal::Type::BaseModel
540
+ # @!attribute compensation_type
541
+ # - `Salary` - Salary
542
+ # - `Hourly` - Hourly
543
+ # - `All` - All
544
+ #
545
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::CompensationType]
546
+ required :compensation_type,
547
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::CompensationType }
548
+
549
+ # @!attribute eligible_geographical_location
550
+ # Geographic matcher.
551
+ #
552
+ # @return [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation]
553
+ required :eligible_geographical_location,
554
+ -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation }
555
+
556
+ # @!attribute employee_class
557
+ # - `Full Time` - Full Time
558
+ # - `Part Time` - Part Time
559
+ # - `Temporary` - Temporary
560
+ # - `Intern` - Intern
561
+ # - `Seasonal` - Seasonal
562
+ # - `Individual Contractor` - Individual Contractor
563
+ # - `All` - All
564
+ #
565
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EmployeeClass]
566
+ required :employee_class,
567
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EmployeeClass }
568
+
569
+ # @!method initialize(compensation_type:, eligible_geographical_location:, employee_class:)
570
+ # Some parameter documentations has been truncated, see
571
+ # {VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule}
572
+ # for more details.
573
+ #
574
+ # One eligibility rule — the workforce slice it makes eligible. Mirrors the
575
+ # internal `PlanYearEligibilityPolicyRuleDTO` minus the raw ids and timestamps.
576
+ #
577
+ # @param compensation_type [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::CompensationType] - `Salary` - Salary
578
+ #
579
+ # @param eligible_geographical_location [VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation] Geographic matcher.
580
+ #
581
+ # @param employee_class [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EmployeeClass] - `Full Time` - Full Time
582
+
583
+ # - `Salary` - Salary
584
+ # - `Hourly` - Hourly
585
+ # - `All` - All
586
+ #
587
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule#compensation_type
588
+ module CompensationType
589
+ extend VitableConnect::Internal::Type::Enum
590
+
591
+ SALARY = :Salary
592
+ HOURLY = :Hourly
593
+ ALL = :All
594
+
595
+ # @!method self.values
596
+ # @return [Array<Symbol>]
597
+ end
598
+
599
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule#eligible_geographical_location
600
+ class EligibleGeographicalLocation < VitableConnect::Internal::Type::BaseModel
601
+ # @!attribute state_codes
602
+ # States the rule is restricted to; empty when `type` is `All`.
603
+ #
604
+ # @return [Array<String>]
605
+ required :state_codes, VitableConnect::Internal::Type::ArrayOf[String]
606
+
607
+ # @!attribute type
608
+ # - `All` - All
609
+ # - `StateCodes` - State Codes
610
+ #
611
+ # @return [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation::Type]
612
+ required :type,
613
+ enum: -> { VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation::Type }
614
+
615
+ # @!method initialize(state_codes:, type:)
616
+ # Some parameter documentations has been truncated, see
617
+ # {VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation}
618
+ # for more details.
619
+ #
620
+ # Geographic matcher.
621
+ #
622
+ # @param state_codes [Array<String>] States the rule is restricted to; empty when `type` is `All`.
623
+ #
624
+ # @param type [Symbol, VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation::Type] - `All` - All
625
+
626
+ # - `All` - All
627
+ # - `StateCodes` - State Codes
628
+ #
629
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule::EligibleGeographicalLocation#type
630
+ module Type
631
+ extend VitableConnect::Internal::Type::Enum
632
+
633
+ ALL = :All
634
+ STATE_CODES = :StateCodes
635
+
636
+ # @!method self.values
637
+ # @return [Array<Symbol>]
638
+ end
639
+ end
640
+
641
+ # - `Full Time` - Full Time
642
+ # - `Part Time` - Part Time
643
+ # - `Temporary` - Temporary
644
+ # - `Intern` - Intern
645
+ # - `Seasonal` - Seasonal
646
+ # - `Individual Contractor` - Individual Contractor
647
+ # - `All` - All
648
+ #
649
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy::Rule#employee_class
650
+ module EmployeeClass
651
+ extend VitableConnect::Internal::Type::Enum
652
+
653
+ FULL_TIME = :"Full Time"
654
+ PART_TIME = :"Part Time"
655
+ TEMPORARY = :Temporary
656
+ INTERN = :Intern
657
+ SEASONAL = :Seasonal
658
+ INDIVIDUAL_CONTRACTOR = :"Individual Contractor"
659
+ ALL = :All
660
+
661
+ # @!method self.values
662
+ # @return [Array<Symbol>]
663
+ end
664
+ end
665
+
666
+ # - `END_OF_N_MONTHS` - End Of N Months
667
+ # - `END_OF_PLAN_YEAR` - End Of Plan Year
668
+ #
669
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy#termination_rule
670
+ module TerminationRule
671
+ extend VitableConnect::Internal::Type::Enum
672
+
673
+ END_OF_N_MONTHS = :END_OF_N_MONTHS
674
+ END_OF_PLAN_YEAR = :END_OF_PLAN_YEAR
675
+
676
+ # @!method self.values
677
+ # @return [Array<Symbol>]
678
+ end
679
+
680
+ # - `FIRST_OF_FOLLOWING_MONTH` - First Of Following Month
681
+ # - `THIRTY_DAYS` - Thirty Days
682
+ # - `SIXTY_DAYS` - Sixty Days
683
+ #
684
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data::EligibilityPolicy#waiting_period
685
+ module WaitingPeriod
686
+ extend VitableConnect::Internal::Type::Enum
687
+
688
+ FIRST_OF_FOLLOWING_MONTH = :FIRST_OF_FOLLOWING_MONTH
689
+ THIRTY_DAYS = :THIRTY_DAYS
690
+ SIXTY_DAYS = :SIXTY_DAYS
691
+
692
+ # @!method self.values
693
+ # @return [Array<Symbol>]
694
+ end
695
+ end
696
+
697
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#employee_contribution
698
+ class EmployeeContribution < VitableConnect::Internal::Type::BaseModel
699
+ # @!attribute max_cents
700
+ # Highest per-tier contribution in cents.
701
+ #
702
+ # @return [Integer]
703
+ required :max_cents, Integer
704
+
705
+ # @!attribute min_cents
706
+ # Lowest per-tier contribution in cents.
707
+ #
708
+ # @return [Integer]
709
+ required :min_cents, Integer
710
+
711
+ # @!method initialize(max_cents:, min_cents:)
712
+ # Employee contribution range.
713
+ #
714
+ # @param max_cents [Integer] Highest per-tier contribution in cents.
715
+ #
716
+ # @param min_cents [Integer] Lowest per-tier contribution in cents.
717
+ end
718
+
719
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#employer_contribution
720
+ class EmployerContribution < VitableConnect::Internal::Type::BaseModel
721
+ # @!attribute max_cents
722
+ # Highest per-tier contribution in cents.
723
+ #
724
+ # @return [Integer]
725
+ required :max_cents, Integer
726
+
727
+ # @!attribute min_cents
728
+ # Lowest per-tier contribution in cents.
729
+ #
730
+ # @return [Integer]
731
+ required :min_cents, Integer
732
+
733
+ # @!method initialize(max_cents:, min_cents:)
734
+ # Employer contribution range.
735
+ #
736
+ # @param max_cents [Integer] Highest per-tier contribution in cents.
737
+ #
738
+ # @param min_cents [Integer] Lowest per-tier contribution in cents.
739
+ end
740
+
741
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#enrollment_rate
742
+ class EnrollmentRate < VitableConnect::Internal::Type::BaseModel
743
+ # @!attribute eligible
744
+ # Employees eligible for this plan year.
745
+ #
746
+ # @return [Integer]
747
+ required :eligible, Integer
748
+
749
+ # @!attribute enrolled
750
+ # Employees enrolled in this plan year.
751
+ #
752
+ # @return [Integer]
753
+ required :enrolled, Integer
754
+
755
+ # @!attribute percentage
756
+ # `enrolled / eligible` whole-number percent (0 when none).
757
+ #
758
+ # @return [Integer]
759
+ required :percentage, Integer
760
+
761
+ # @!method initialize(eligible:, enrolled:, percentage:)
762
+ # Enrolled/eligible rate for this plan year.
763
+ #
764
+ # @param eligible [Integer] Employees eligible for this plan year.
765
+ #
766
+ # @param enrolled [Integer] Employees enrolled in this plan year.
767
+ #
768
+ # @param percentage [Integer] `enrolled / eligible` whole-number percent (0 when none).
769
+ end
770
+
771
+ # - `mec` - Mec
772
+ # - `mvp` - Mvp
773
+ # - `ichra` - Ichra
774
+ # - `vpc` - Vpc
775
+ # - `dental` - Dental
776
+ # - `vision` - Vision
777
+ #
778
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#family
779
+ module Family
780
+ extend VitableConnect::Internal::Type::Enum
781
+
782
+ MEC = :mec
783
+ MVP = :mvp
784
+ ICHRA = :ichra
785
+ VPC = :vpc
786
+ DENTAL = :dental
787
+ VISION = :vision
788
+
789
+ # @!method self.values
790
+ # @return [Array<Symbol>]
791
+ end
792
+
793
+ # - `active` - Active
794
+ # - `upcoming` - Upcoming
795
+ # - `open_enrollment` - Open Enrollment
796
+ # - `inactive` - Inactive
797
+ #
798
+ # @see VitableConnect::Models::EmployerRetrieveBenefitPlanYearResponse::Data#status
799
+ module Status
800
+ extend VitableConnect::Internal::Type::Enum
801
+
802
+ ACTIVE = :active
803
+ UPCOMING = :upcoming
804
+ OPEN_ENROLLMENT = :open_enrollment
805
+ INACTIVE = :inactive
806
+
807
+ # @!method self.values
808
+ # @return [Array<Symbol>]
809
+ end
810
+ end
811
+ end
812
+ end
813
+ end