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,14 +2,14 @@
2
2
 
3
3
  module VitableConnect
4
4
  module Models
5
- class EmployerCreateBenefitEligibilityPolicyParams < VitableConnect::Internal::Type::BaseModel
5
+ class EmployerListPayrollDeductionStatementsParams < 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::EmployerCreateBenefitEligibilityPolicyParams,
12
+ VitableConnect::EmployerListPayrollDeductionStatementsParams,
13
13
  VitableConnect::Internal::AnyHash
14
14
  )
15
15
  end
@@ -18,31 +18,35 @@ module VitableConnect
18
18
  sig { returns(String) }
19
19
  attr_accessor :employer_id
20
20
 
21
- # Which employee classifications are eligible. One of: full_time, part_time, all
22
- sig { returns(String) }
23
- attr_accessor :classification
21
+ # Maximum number of statements per page
22
+ sig { returns(T.nilable(Integer)) }
23
+ attr_reader :limit
24
24
 
25
- # Waiting period before eligibility. One of: first_of_following_month, 30_days,
26
- # 60_days, none
27
- sig { returns(String) }
28
- attr_accessor :waiting_period
25
+ sig { params(limit: Integer).void }
26
+ attr_writer :limit
27
+
28
+ # Page number to retrieve (starts at 1)
29
+ sig { returns(T.nilable(Integer)) }
30
+ attr_reader :page
31
+
32
+ sig { params(page: Integer).void }
33
+ attr_writer :page
29
34
 
30
35
  sig do
31
36
  params(
32
37
  employer_id: String,
33
- classification: String,
34
- waiting_period: String,
38
+ limit: Integer,
39
+ page: Integer,
35
40
  request_options: VitableConnect::RequestOptions::OrHash
36
41
  ).returns(T.attached_class)
37
42
  end
38
43
  def self.new(
39
44
  # Unique employer identifier (empr\_\*)
40
45
  employer_id:,
41
- # Which employee classifications are eligible. One of: full_time, part_time, all
42
- classification:,
43
- # Waiting period before eligibility. One of: first_of_following_month, 30_days,
44
- # 60_days, none
45
- waiting_period:,
46
+ # Maximum number of statements per page
47
+ limit: nil,
48
+ # Page number to retrieve (starts at 1)
49
+ page: nil,
46
50
  request_options: {}
47
51
  )
48
52
  end
@@ -51,8 +55,8 @@ module VitableConnect
51
55
  override.returns(
52
56
  {
53
57
  employer_id: String,
54
- classification: String,
55
- waiting_period: String,
58
+ limit: Integer,
59
+ page: Integer,
56
60
  request_options: VitableConnect::RequestOptions
57
61
  }
58
62
  )
@@ -0,0 +1,169 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerListPayrollDeductionStatementsResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Download link for the change CSV, or null.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :csv_file_url
17
+
18
+ # - `weekly` - Weekly
19
+ # - `bi_weekly` - Bi Weekly
20
+ # - `semi_monthly` - Semi Monthly
21
+ # - `monthly` - Monthly
22
+ sig do
23
+ returns(
24
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol
25
+ )
26
+ end
27
+ attr_accessor :deduction_frequency
28
+
29
+ # Human-readable deduction frequency (e.g. `Monthly`).
30
+ sig { returns(String) }
31
+ attr_accessor :deduction_frequency_label
32
+
33
+ # Distinct employees covered by the statement's entries.
34
+ sig { returns(Integer) }
35
+ attr_accessor :employee_count
36
+
37
+ # Deduction period end date.
38
+ sig { returns(Date) }
39
+ attr_accessor :period_end
40
+
41
+ # Deduction period start date.
42
+ sig { returns(Date) }
43
+ attr_accessor :period_start
44
+
45
+ # When the statement was generated.
46
+ sig { returns(Time) }
47
+ attr_accessor :run_date
48
+
49
+ # Prefixed payroll-deduction-statement identifier (`pstmt_<base64-encoded-uuid>`).
50
+ sig { returns(String) }
51
+ attr_accessor :statement_id
52
+
53
+ # Total payroll deduction for the period, in cents.
54
+ sig { returns(Integer) }
55
+ attr_accessor :total_deduction_cents
56
+
57
+ # One payroll-deduction statement row.
58
+ #
59
+ # Reads a :class:`PayrollDeductionStatementDTO` by attribute: the `statement_id`
60
+ # character field renders the prefixed id via `str()`, and the date/datetime
61
+ # fields emit ISO-8601 strings.
62
+ sig do
63
+ params(
64
+ csv_file_url: T.nilable(String),
65
+ deduction_frequency:
66
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::OrSymbol,
67
+ deduction_frequency_label: String,
68
+ employee_count: Integer,
69
+ period_end: Date,
70
+ period_start: Date,
71
+ run_date: Time,
72
+ statement_id: String,
73
+ total_deduction_cents: Integer
74
+ ).returns(T.attached_class)
75
+ end
76
+ def self.new(
77
+ # Download link for the change CSV, or null.
78
+ csv_file_url:,
79
+ # - `weekly` - Weekly
80
+ # - `bi_weekly` - Bi Weekly
81
+ # - `semi_monthly` - Semi Monthly
82
+ # - `monthly` - Monthly
83
+ deduction_frequency:,
84
+ # Human-readable deduction frequency (e.g. `Monthly`).
85
+ deduction_frequency_label:,
86
+ # Distinct employees covered by the statement's entries.
87
+ employee_count:,
88
+ # Deduction period end date.
89
+ period_end:,
90
+ # Deduction period start date.
91
+ period_start:,
92
+ # When the statement was generated.
93
+ run_date:,
94
+ # Prefixed payroll-deduction-statement identifier (`pstmt_<base64-encoded-uuid>`).
95
+ statement_id:,
96
+ # Total payroll deduction for the period, in cents.
97
+ total_deduction_cents:
98
+ )
99
+ end
100
+
101
+ sig do
102
+ override.returns(
103
+ {
104
+ csv_file_url: T.nilable(String),
105
+ deduction_frequency:
106
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol,
107
+ deduction_frequency_label: String,
108
+ employee_count: Integer,
109
+ period_end: Date,
110
+ period_start: Date,
111
+ run_date: Time,
112
+ statement_id: String,
113
+ total_deduction_cents: Integer
114
+ }
115
+ )
116
+ end
117
+ def to_hash
118
+ end
119
+
120
+ # - `weekly` - Weekly
121
+ # - `bi_weekly` - Bi Weekly
122
+ # - `semi_monthly` - Semi Monthly
123
+ # - `monthly` - Monthly
124
+ module DeductionFrequency
125
+ extend VitableConnect::Internal::Type::Enum
126
+
127
+ TaggedSymbol =
128
+ T.type_alias do
129
+ T.all(
130
+ Symbol,
131
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency
132
+ )
133
+ end
134
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
135
+
136
+ WEEKLY =
137
+ T.let(
138
+ :weekly,
139
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol
140
+ )
141
+ BI_WEEKLY =
142
+ T.let(
143
+ :bi_weekly,
144
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol
145
+ )
146
+ SEMI_MONTHLY =
147
+ T.let(
148
+ :semi_monthly,
149
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol
150
+ )
151
+ MONTHLY =
152
+ T.let(
153
+ :monthly,
154
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol
155
+ )
156
+
157
+ sig do
158
+ override.returns(
159
+ T::Array[
160
+ VitableConnect::Models::EmployerListPayrollDeductionStatementsResponse::DeductionFrequency::TaggedSymbol
161
+ ]
162
+ )
163
+ end
164
+ def self.values
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,426 @@
1
+ # typed: strong
2
+
3
+ module VitableConnect
4
+ module Models
5
+ class EmployerListResponse < VitableConnect::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ VitableConnect::Models::EmployerListResponse,
10
+ VitableConnect::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Whether the employer is currently active in the system.
15
+ sig { returns(T::Boolean) }
16
+ attr_accessor :active
17
+
18
+ # Shared read serializer for a postal address on public API responses.
19
+ #
20
+ # One definition for the address block every public resource emits (employer,
21
+ # employee, …), so the 5-field shape isn't hand-rolled per endpoint. Read-only: it
22
+ # renders an already-built address value object (e.g. `AddressDVO`) whose
23
+ # attributes map 1:1 to these fields.
24
+ sig { returns(VitableConnect::Models::EmployerListResponse::Address) }
25
+ attr_reader :address
26
+
27
+ sig do
28
+ params(
29
+ address: VitableConnect::Models::EmployerListResponse::Address::OrHash
30
+ ).void
31
+ end
32
+ attr_writer :address
33
+
34
+ # Distinct benefit-family tags across the employer's active benefits (e.g. `MEC`,
35
+ # `ICHRA`, `VPC`).
36
+ sig { returns(T::Array[String]) }
37
+ attr_accessor :benefit_families
38
+
39
+ sig do
40
+ returns(
41
+ VitableConnect::Models::EmployerListResponse::BenefitLifecycleStage
42
+ )
43
+ end
44
+ attr_reader :benefit_lifecycle_stage
45
+
46
+ sig do
47
+ params(
48
+ benefit_lifecycle_stage:
49
+ VitableConnect::Models::EmployerListResponse::BenefitLifecycleStage::OrHash
50
+ ).void
51
+ end
52
+ attr_writer :benefit_lifecycle_stage
53
+
54
+ # Timestamp when the employer was created.
55
+ sig { returns(Time) }
56
+ attr_accessor :created_at
57
+
58
+ # Employer Identification Number (masked in responses).
59
+ sig { returns(T.nilable(String)) }
60
+ attr_accessor :ein
61
+
62
+ # Email address for billing and communications.
63
+ sig { returns(T.nilable(String)) }
64
+ attr_accessor :email
65
+
66
+ # Prefixed employer identifier (`empr_<base64-encoded-uuid>`).
67
+ sig { returns(String) }
68
+ attr_accessor :employer_id
69
+
70
+ # Enrolled/eligible employees roll-up.
71
+ sig do
72
+ returns(
73
+ VitableConnect::Models::EmployerListResponse::EnrollmentRateSummary
74
+ )
75
+ end
76
+ attr_reader :enrollment_rate_summary
77
+
78
+ sig do
79
+ params(
80
+ enrollment_rate_summary:
81
+ VitableConnect::Models::EmployerListResponse::EnrollmentRateSummary::OrHash
82
+ ).void
83
+ end
84
+ attr_writer :enrollment_rate_summary
85
+
86
+ # HRIS connection, or null when the employer has none.
87
+ sig do
88
+ returns(
89
+ T.nilable(VitableConnect::Models::EmployerListResponse::HRISStatus)
90
+ )
91
+ end
92
+ attr_reader :hris_status
93
+
94
+ sig do
95
+ params(
96
+ hris_status:
97
+ T.nilable(
98
+ VitableConnect::Models::EmployerListResponse::HRISStatus::OrHash
99
+ )
100
+ ).void
101
+ end
102
+ attr_writer :hris_status
103
+
104
+ # Legal business name for compliance and tax purposes.
105
+ sig { returns(T.nilable(String)) }
106
+ attr_accessor :legal_name
107
+
108
+ # Employer name.
109
+ sig { returns(String) }
110
+ attr_accessor :name
111
+
112
+ # ID of the parent organization (`org_*`), or null when unknown.
113
+ sig { returns(T.nilable(String)) }
114
+ attr_accessor :organization_id
115
+
116
+ # Employer phone number.
117
+ sig { returns(T.nilable(String)) }
118
+ attr_accessor :phone_number
119
+
120
+ # The organization's own reference id for this employer, or null when none was
121
+ # assigned.
122
+ sig { returns(T.nilable(String)) }
123
+ attr_accessor :reference_id
124
+
125
+ # Timestamp when the employer was last updated.
126
+ sig { returns(Time) }
127
+ attr_accessor :updated_at
128
+
129
+ # One employer row of the organization's book (list projection).
130
+ #
131
+ # Carries the enriched/computed columns (enrollment roll-up, benefit-family tags,
132
+ # HRIS connection, benefit-lifecycle stage) alongside the flat CRM fields of the
133
+ # underlying employer (legal name, EIN, contact, address, timestamps) for parity
134
+ # with the legacy `Employer` contract.
135
+ sig do
136
+ params(
137
+ active: T::Boolean,
138
+ address:
139
+ VitableConnect::Models::EmployerListResponse::Address::OrHash,
140
+ benefit_families: T::Array[String],
141
+ benefit_lifecycle_stage:
142
+ VitableConnect::Models::EmployerListResponse::BenefitLifecycleStage::OrHash,
143
+ created_at: Time,
144
+ ein: T.nilable(String),
145
+ email: T.nilable(String),
146
+ employer_id: String,
147
+ enrollment_rate_summary:
148
+ VitableConnect::Models::EmployerListResponse::EnrollmentRateSummary::OrHash,
149
+ hris_status:
150
+ T.nilable(
151
+ VitableConnect::Models::EmployerListResponse::HRISStatus::OrHash
152
+ ),
153
+ legal_name: T.nilable(String),
154
+ name: String,
155
+ organization_id: T.nilable(String),
156
+ phone_number: T.nilable(String),
157
+ reference_id: T.nilable(String),
158
+ updated_at: Time
159
+ ).returns(T.attached_class)
160
+ end
161
+ def self.new(
162
+ # Whether the employer is currently active in the system.
163
+ active:,
164
+ # Shared read serializer for a postal address on public API responses.
165
+ #
166
+ # One definition for the address block every public resource emits (employer,
167
+ # employee, …), so the 5-field shape isn't hand-rolled per endpoint. Read-only: it
168
+ # renders an already-built address value object (e.g. `AddressDVO`) whose
169
+ # attributes map 1:1 to these fields.
170
+ address:,
171
+ # Distinct benefit-family tags across the employer's active benefits (e.g. `MEC`,
172
+ # `ICHRA`, `VPC`).
173
+ benefit_families:,
174
+ benefit_lifecycle_stage:,
175
+ # Timestamp when the employer was created.
176
+ created_at:,
177
+ # Employer Identification Number (masked in responses).
178
+ ein:,
179
+ # Email address for billing and communications.
180
+ email:,
181
+ # Prefixed employer identifier (`empr_<base64-encoded-uuid>`).
182
+ employer_id:,
183
+ # Enrolled/eligible employees roll-up.
184
+ enrollment_rate_summary:,
185
+ # HRIS connection, or null when the employer has none.
186
+ hris_status:,
187
+ # Legal business name for compliance and tax purposes.
188
+ legal_name:,
189
+ # Employer name.
190
+ name:,
191
+ # ID of the parent organization (`org_*`), or null when unknown.
192
+ organization_id:,
193
+ # Employer phone number.
194
+ phone_number:,
195
+ # The organization's own reference id for this employer, or null when none was
196
+ # assigned.
197
+ reference_id:,
198
+ # Timestamp when the employer was last updated.
199
+ updated_at:
200
+ )
201
+ end
202
+
203
+ sig do
204
+ override.returns(
205
+ {
206
+ active: T::Boolean,
207
+ address: VitableConnect::Models::EmployerListResponse::Address,
208
+ benefit_families: T::Array[String],
209
+ benefit_lifecycle_stage:
210
+ VitableConnect::Models::EmployerListResponse::BenefitLifecycleStage,
211
+ created_at: Time,
212
+ ein: T.nilable(String),
213
+ email: T.nilable(String),
214
+ employer_id: String,
215
+ enrollment_rate_summary:
216
+ VitableConnect::Models::EmployerListResponse::EnrollmentRateSummary,
217
+ hris_status:
218
+ T.nilable(
219
+ VitableConnect::Models::EmployerListResponse::HRISStatus
220
+ ),
221
+ legal_name: T.nilable(String),
222
+ name: String,
223
+ organization_id: T.nilable(String),
224
+ phone_number: T.nilable(String),
225
+ reference_id: T.nilable(String),
226
+ updated_at: Time
227
+ }
228
+ )
229
+ end
230
+ def to_hash
231
+ end
232
+
233
+ class Address < VitableConnect::Internal::Type::BaseModel
234
+ OrHash =
235
+ T.type_alias do
236
+ T.any(
237
+ VitableConnect::Models::EmployerListResponse::Address,
238
+ VitableConnect::Internal::AnyHash
239
+ )
240
+ end
241
+
242
+ # Primary street address.
243
+ sig { returns(String) }
244
+ attr_accessor :address_line_1
245
+
246
+ # Secondary street address (apt, suite, etc.).
247
+ sig { returns(T.nilable(String)) }
248
+ attr_accessor :address_line_2
249
+
250
+ # City name.
251
+ sig { returns(String) }
252
+ attr_accessor :city
253
+
254
+ # Two-letter state code (e.g. `CA`, `NY`).
255
+ sig { returns(String) }
256
+ attr_accessor :state
257
+
258
+ # ZIP code (5 or 9 digit).
259
+ sig { returns(String) }
260
+ attr_accessor :zipcode
261
+
262
+ # Shared read serializer for a postal address on public API responses.
263
+ #
264
+ # One definition for the address block every public resource emits (employer,
265
+ # employee, …), so the 5-field shape isn't hand-rolled per endpoint. Read-only: it
266
+ # renders an already-built address value object (e.g. `AddressDVO`) whose
267
+ # attributes map 1:1 to these fields.
268
+ sig do
269
+ params(
270
+ address_line_1: String,
271
+ address_line_2: T.nilable(String),
272
+ city: String,
273
+ state: String,
274
+ zipcode: String
275
+ ).returns(T.attached_class)
276
+ end
277
+ def self.new(
278
+ # Primary street address.
279
+ address_line_1:,
280
+ # Secondary street address (apt, suite, etc.).
281
+ address_line_2:,
282
+ # City name.
283
+ city:,
284
+ # Two-letter state code (e.g. `CA`, `NY`).
285
+ state:,
286
+ # ZIP code (5 or 9 digit).
287
+ zipcode:
288
+ )
289
+ end
290
+
291
+ sig do
292
+ override.returns(
293
+ {
294
+ address_line_1: String,
295
+ address_line_2: T.nilable(String),
296
+ city: String,
297
+ state: String,
298
+ zipcode: String
299
+ }
300
+ )
301
+ end
302
+ def to_hash
303
+ end
304
+ end
305
+
306
+ class BenefitLifecycleStage < VitableConnect::Internal::Type::BaseModel
307
+ OrHash =
308
+ T.type_alias do
309
+ T.any(
310
+ VitableConnect::Models::EmployerListResponse::BenefitLifecycleStage,
311
+ VitableConnect::Internal::AnyHash
312
+ )
313
+ end
314
+
315
+ # Anchor date for the stage (e.g. renewal date); null when not applicable.
316
+ sig { returns(T.nilable(Date)) }
317
+ attr_accessor :as_of_date
318
+
319
+ # Computed employer benefit-lifecycle stage: `open_enrollment`, `renewal`,
320
+ # `active`, `onboarding`, or `cancelled`.
321
+ sig { returns(String) }
322
+ attr_accessor :stage
323
+
324
+ sig do
325
+ params(as_of_date: T.nilable(Date), stage: String).returns(
326
+ T.attached_class
327
+ )
328
+ end
329
+ def self.new(
330
+ # Anchor date for the stage (e.g. renewal date); null when not applicable.
331
+ as_of_date:,
332
+ # Computed employer benefit-lifecycle stage: `open_enrollment`, `renewal`,
333
+ # `active`, `onboarding`, or `cancelled`.
334
+ stage:
335
+ )
336
+ end
337
+
338
+ sig { override.returns({ as_of_date: T.nilable(Date), stage: String }) }
339
+ def to_hash
340
+ end
341
+ end
342
+
343
+ class EnrollmentRateSummary < VitableConnect::Internal::Type::BaseModel
344
+ OrHash =
345
+ T.type_alias do
346
+ T.any(
347
+ VitableConnect::Models::EmployerListResponse::EnrollmentRateSummary,
348
+ VitableConnect::Internal::AnyHash
349
+ )
350
+ end
351
+
352
+ # Employees eligible for at least one active benefit.
353
+ sig { returns(Integer) }
354
+ attr_accessor :eligible
355
+
356
+ # Employees enrolled in at least one active benefit.
357
+ sig { returns(Integer) }
358
+ attr_accessor :enrolled
359
+
360
+ # `enrolled / eligible` as a whole-number percent (0 when none eligible).
361
+ sig { returns(Integer) }
362
+ attr_accessor :percentage
363
+
364
+ # Enrolled/eligible employees roll-up.
365
+ sig do
366
+ params(
367
+ eligible: Integer,
368
+ enrolled: Integer,
369
+ percentage: Integer
370
+ ).returns(T.attached_class)
371
+ end
372
+ def self.new(
373
+ # Employees eligible for at least one active benefit.
374
+ eligible:,
375
+ # Employees enrolled in at least one active benefit.
376
+ enrolled:,
377
+ # `enrolled / eligible` as a whole-number percent (0 when none eligible).
378
+ percentage:
379
+ )
380
+ end
381
+
382
+ sig do
383
+ override.returns(
384
+ { eligible: Integer, enrolled: Integer, percentage: Integer }
385
+ )
386
+ end
387
+ def to_hash
388
+ end
389
+ end
390
+
391
+ class HRISStatus < VitableConnect::Internal::Type::BaseModel
392
+ OrHash =
393
+ T.type_alias do
394
+ T.any(
395
+ VitableConnect::Models::EmployerListResponse::HRISStatus,
396
+ VitableConnect::Internal::AnyHash
397
+ )
398
+ end
399
+
400
+ # HRIS/payroll provider the employer is connected to (e.g. `Paychex`).
401
+ sig { returns(String) }
402
+ attr_accessor :provider
403
+
404
+ # Connection status reported by the integration.
405
+ sig { returns(String) }
406
+ attr_accessor :status
407
+
408
+ # HRIS connection, or null when the employer has none.
409
+ sig do
410
+ params(provider: String, status: String).returns(T.attached_class)
411
+ end
412
+ def self.new(
413
+ # HRIS/payroll provider the employer is connected to (e.g. `Paychex`).
414
+ provider:,
415
+ # Connection status reported by the integration.
416
+ status:
417
+ )
418
+ end
419
+
420
+ sig { override.returns({ provider: String, status: String }) }
421
+ def to_hash
422
+ end
423
+ end
424
+ end
425
+ end
426
+ end