finch-api 0.1.0.pre.alpha.49 → 0.1.0.pre.alpha.50

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +1 -1
  4. data/lib/finch_api/models/hris/employment_data.rb +36 -1
  5. data/lib/finch_api/models/hris/individual.rb +30 -1
  6. data/lib/finch_api/models/sandbox/directory_create_params.rb +65 -1
  7. data/lib/finch_api/models/sandbox/employment_update_params.rb +36 -1
  8. data/lib/finch_api/models/sandbox/employment_update_response.rb +36 -1
  9. data/lib/finch_api/models/sandbox/individual_update_params.rb +28 -1
  10. data/lib/finch_api/models/sandbox/individual_update_response.rb +30 -1
  11. data/lib/finch_api/resources/sandbox/employment.rb +9 -1
  12. data/lib/finch_api/resources/sandbox/individual.rb +3 -1
  13. data/lib/finch_api/version.rb +1 -1
  14. data/rbi/finch_api/models/hris/employment_data.rbi +38 -0
  15. data/rbi/finch_api/models/hris/individual.rbi +78 -0
  16. data/rbi/finch_api/models/sandbox/directory_create_params.rbi +119 -3
  17. data/rbi/finch_api/models/sandbox/employment_update_params.rbi +38 -0
  18. data/rbi/finch_api/models/sandbox/employment_update_response.rbi +41 -3
  19. data/rbi/finch_api/models/sandbox/individual_update_params.rbi +78 -0
  20. data/rbi/finch_api/models/sandbox/individual_update_response.rbi +78 -0
  21. data/rbi/finch_api/resources/sandbox/employment.rbi +15 -0
  22. data/rbi/finch_api/resources/sandbox/individual.rbi +7 -0
  23. data/sig/finch_api/models/hris/employment_data.rbs +20 -0
  24. data/sig/finch_api/models/hris/individual.rbs +26 -0
  25. data/sig/finch_api/models/sandbox/directory_create_params.rbs +49 -3
  26. data/sig/finch_api/models/sandbox/employment_update_params.rbs +21 -1
  27. data/sig/finch_api/models/sandbox/employment_update_response.rbs +23 -3
  28. data/sig/finch_api/models/sandbox/individual_update_params.rbs +26 -0
  29. data/sig/finch_api/models/sandbox/individual_update_response.rbs +26 -0
  30. data/sig/finch_api/resources/sandbox/employment.rbs +4 -0
  31. data/sig/finch_api/resources/sandbox/individual.rbs +1 -0
  32. metadata +2 -2
@@ -99,10 +99,20 @@ module FinchAPI
99
99
  end
100
100
  attr_accessor :flsa_status
101
101
 
102
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
103
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
104
+ sig { returns(T.nilable(T::Boolean)) }
105
+ attr_accessor :highly_compensated_employee
106
+
102
107
  # `true` if the individual an an active employee or contractor at the company.
103
108
  sig { returns(T.nilable(T::Boolean)) }
104
109
  attr_accessor :is_active
105
110
 
111
+ # IRS flag indicating whether the employee is classified as a Key Employee for
112
+ # top-heavy testing purposes. US-only.
113
+ sig { returns(T.nilable(T::Boolean)) }
114
+ attr_accessor :key_employee
115
+
106
116
  # The legal last name of the individual.
107
117
  sig { returns(T.nilable(String)) }
108
118
  attr_accessor :last_name
@@ -147,6 +157,15 @@ module FinchAPI
147
157
  sig { returns(T.nilable(String)) }
148
158
  attr_accessor :title
149
159
 
160
+ # The code identifying the union the employee is a member of, as configured in the
161
+ # payroll system.
162
+ sig { returns(T.nilable(String)) }
163
+ attr_accessor :union_code
164
+
165
+ # The local chapter or local number within the employee's union.
166
+ sig { returns(T.nilable(String)) }
167
+ attr_accessor :union_local
168
+
150
169
  # Custom fields for the individual. These are fields which are defined by the
151
170
  # employer in the system. Custom fields are not currently supported for assisted
152
171
  # connections.
@@ -204,7 +223,9 @@ module FinchAPI
204
223
  T.nilable(
205
224
  FinchAPI::HRIS::EmploymentData::EmploymentDataResponseBody::FlsaStatus::OrSymbol
206
225
  ),
226
+ highly_compensated_employee: T.nilable(T::Boolean),
207
227
  is_active: T.nilable(T::Boolean),
228
+ key_employee: T.nilable(T::Boolean),
208
229
  last_name: T.nilable(String),
209
230
  latest_rehire_date: T.nilable(String),
210
231
  location: T.nilable(FinchAPI::Location::OrHash),
@@ -215,6 +236,8 @@ module FinchAPI
215
236
  middle_name: T.nilable(String),
216
237
  start_date: T.nilable(String),
217
238
  title: T.nilable(String),
239
+ union_code: T.nilable(String),
240
+ union_local: T.nilable(String),
218
241
  custom_fields:
219
242
  T.nilable(
220
243
  T::Array[
@@ -245,8 +268,14 @@ module FinchAPI
245
268
  # The FLSA status of the individual. Available options: `exempt`, `non_exempt`,
246
269
  # `unknown`.
247
270
  flsa_status:,
271
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
272
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
273
+ highly_compensated_employee:,
248
274
  # `true` if the individual an an active employee or contractor at the company.
249
275
  is_active:,
276
+ # IRS flag indicating whether the employee is classified as a Key Employee for
277
+ # top-heavy testing purposes. US-only.
278
+ key_employee:,
250
279
  # The legal last name of the individual.
251
280
  last_name:,
252
281
  latest_rehire_date:,
@@ -258,6 +287,11 @@ module FinchAPI
258
287
  start_date:,
259
288
  # The current title of the individual.
260
289
  title:,
290
+ # The code identifying the union the employee is a member of, as configured in the
291
+ # payroll system.
292
+ union_code:,
293
+ # The local chapter or local number within the employee's union.
294
+ union_local:,
261
295
  # Custom fields for the individual. These are fields which are defined by the
262
296
  # employer in the system. Custom fields are not currently supported for assisted
263
297
  # connections.
@@ -298,7 +332,9 @@ module FinchAPI
298
332
  T.nilable(
299
333
  FinchAPI::HRIS::EmploymentData::EmploymentDataResponseBody::FlsaStatus::TaggedSymbol
300
334
  ),
335
+ highly_compensated_employee: T.nilable(T::Boolean),
301
336
  is_active: T.nilable(T::Boolean),
337
+ key_employee: T.nilable(T::Boolean),
302
338
  last_name: T.nilable(String),
303
339
  latest_rehire_date: T.nilable(String),
304
340
  location: T.nilable(FinchAPI::Location),
@@ -309,6 +345,8 @@ module FinchAPI
309
345
  middle_name: T.nilable(String),
310
346
  start_date: T.nilable(String),
311
347
  title: T.nilable(String),
348
+ union_code: T.nilable(String),
349
+ union_local: T.nilable(String),
312
350
  custom_fields:
313
351
  T.nilable(
314
352
  T::Array[
@@ -58,6 +58,17 @@ module FinchAPI
58
58
  sig { returns(T.nilable(String)) }
59
59
  attr_accessor :last_name
60
60
 
61
+ # The employee's marital status, used for beneficiary designation and spousal
62
+ # consent workflows.
63
+ sig do
64
+ returns(
65
+ T.nilable(
66
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
67
+ )
68
+ )
69
+ end
70
+ attr_accessor :marital_status
71
+
61
72
  # The legal middle name of the individual.
62
73
  sig { returns(T.nilable(String)) }
63
74
  attr_accessor :middle_name
@@ -123,6 +134,10 @@ module FinchAPI
123
134
  FinchAPI::HRIS::Individual::IndividualResponseBody::Gender::OrSymbol
124
135
  ),
125
136
  last_name: T.nilable(String),
137
+ marital_status:
138
+ T.nilable(
139
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::OrSymbol
140
+ ),
126
141
  middle_name: T.nilable(String),
127
142
  phone_numbers:
128
143
  T.nilable(
@@ -156,6 +171,9 @@ module FinchAPI
156
171
  gender:,
157
172
  # The legal last name of the individual.
158
173
  last_name:,
174
+ # The employee's marital status, used for beneficiary designation and spousal
175
+ # consent workflows.
176
+ marital_status:,
159
177
  # The legal middle name of the individual.
160
178
  middle_name:,
161
179
  phone_numbers:,
@@ -190,6 +208,10 @@ module FinchAPI
190
208
  FinchAPI::HRIS::Individual::IndividualResponseBody::Gender::TaggedSymbol
191
209
  ),
192
210
  last_name: T.nilable(String),
211
+ marital_status:
212
+ T.nilable(
213
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
214
+ ),
193
215
  middle_name: T.nilable(String),
194
216
  phone_numbers:
195
217
  T.nilable(
@@ -325,6 +347,62 @@ module FinchAPI
325
347
  end
326
348
  end
327
349
 
350
+ # The employee's marital status, used for beneficiary designation and spousal
351
+ # consent workflows.
352
+ module MaritalStatus
353
+ extend FinchAPI::Internal::Type::Enum
354
+
355
+ TaggedSymbol =
356
+ T.type_alias do
357
+ T.all(
358
+ Symbol,
359
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus
360
+ )
361
+ end
362
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
363
+
364
+ SINGLE =
365
+ T.let(
366
+ :single,
367
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
368
+ )
369
+ MARRIED =
370
+ T.let(
371
+ :married,
372
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
373
+ )
374
+ DIVORCED =
375
+ T.let(
376
+ :divorced,
377
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
378
+ )
379
+ WIDOWED =
380
+ T.let(
381
+ :widowed,
382
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
383
+ )
384
+ DOMESTIC_PARTNER =
385
+ T.let(
386
+ :domestic_partner,
387
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
388
+ )
389
+ UNKNOWN =
390
+ T.let(
391
+ :unknown,
392
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
393
+ )
394
+
395
+ sig do
396
+ override.returns(
397
+ T::Array[
398
+ FinchAPI::HRIS::Individual::IndividualResponseBody::MaritalStatus::TaggedSymbol
399
+ ]
400
+ )
401
+ end
402
+ def self.values
403
+ end
404
+ end
405
+
328
406
  class PhoneNumber < FinchAPI::Internal::Type::BaseModel
329
407
  OrHash =
330
408
  T.type_alias do
@@ -191,6 +191,11 @@ module FinchAPI
191
191
  end
192
192
  attr_accessor :gender
193
193
 
194
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
195
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
196
+ sig { returns(T.nilable(T::Boolean)) }
197
+ attr_accessor :highly_compensated_employee
198
+
194
199
  # The employee's income as reported by the provider. This may not always be
195
200
  # annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc,
196
201
  # depending on what information the provider returns.
@@ -208,6 +213,11 @@ module FinchAPI
208
213
  sig { returns(T.nilable(T::Boolean)) }
209
214
  attr_accessor :is_active
210
215
 
216
+ # IRS flag indicating whether the employee is classified as a Key Employee for
217
+ # top-heavy testing purposes. US-only.
218
+ sig { returns(T.nilable(T::Boolean)) }
219
+ attr_accessor :key_employee
220
+
211
221
  # The legal last name of the individual.
212
222
  sig { returns(T.nilable(String)) }
213
223
  attr_accessor :last_name
@@ -239,6 +249,17 @@ module FinchAPI
239
249
  end
240
250
  attr_writer :manager
241
251
 
252
+ # The employee's marital status, used for beneficiary designation and spousal
253
+ # consent workflows.
254
+ sig do
255
+ returns(
256
+ T.nilable(
257
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::OrSymbol
258
+ )
259
+ )
260
+ end
261
+ attr_accessor :marital_status
262
+
242
263
  # The legal middle name of the individual.
243
264
  sig { returns(T.nilable(String)) }
244
265
  attr_accessor :middle_name
@@ -284,6 +305,15 @@ module FinchAPI
284
305
  sig { returns(T.nilable(String)) }
285
306
  attr_accessor :title
286
307
 
308
+ # The code identifying the union the employee is a member of, as configured in the
309
+ # payroll system.
310
+ sig { returns(T.nilable(String)) }
311
+ attr_accessor :union_code
312
+
313
+ # The local chapter or local number within the employee's union.
314
+ sig { returns(T.nilable(String)) }
315
+ attr_accessor :union_local
316
+
287
317
  sig do
288
318
  params(
289
319
  class_code: T.nilable(String),
@@ -327,10 +357,12 @@ module FinchAPI
327
357
  T.nilable(
328
358
  FinchAPI::Sandbox::DirectoryCreateParams::Body::Gender::OrSymbol
329
359
  ),
360
+ highly_compensated_employee: T.nilable(T::Boolean),
330
361
  income: T.nilable(FinchAPI::Income::OrHash),
331
362
  income_history:
332
363
  T.nilable(T::Array[T.nilable(FinchAPI::Income::OrHash)]),
333
364
  is_active: T.nilable(T::Boolean),
365
+ key_employee: T.nilable(T::Boolean),
334
366
  last_name: T.nilable(String),
335
367
  latest_rehire_date: T.nilable(String),
336
368
  location: T.nilable(FinchAPI::Location::OrHash),
@@ -338,6 +370,10 @@ module FinchAPI
338
370
  T.nilable(
339
371
  FinchAPI::Sandbox::DirectoryCreateParams::Body::Manager::OrHash
340
372
  ),
373
+ marital_status:
374
+ T.nilable(
375
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::OrSymbol
376
+ ),
341
377
  middle_name: T.nilable(String),
342
378
  phone_numbers:
343
379
  T.nilable(
@@ -352,7 +388,9 @@ module FinchAPI
352
388
  source_id: T.nilable(String),
353
389
  ssn: T.nilable(String),
354
390
  start_date: T.nilable(String),
355
- title: T.nilable(String)
391
+ title: T.nilable(String),
392
+ union_code: T.nilable(String),
393
+ union_local: T.nilable(String)
356
394
  ).returns(T.attached_class)
357
395
  end
358
396
  def self.new(
@@ -384,6 +422,9 @@ module FinchAPI
384
422
  flsa_status: nil,
385
423
  # The gender of the individual.
386
424
  gender: nil,
425
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
426
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
427
+ highly_compensated_employee: nil,
387
428
  # The employee's income as reported by the provider. This may not always be
388
429
  # annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc,
389
430
  # depending on what information the provider returns.
@@ -392,12 +433,18 @@ module FinchAPI
392
433
  income_history: nil,
393
434
  # `true` if the individual an an active employee or contractor at the company.
394
435
  is_active: nil,
436
+ # IRS flag indicating whether the employee is classified as a Key Employee for
437
+ # top-heavy testing purposes. US-only.
438
+ key_employee: nil,
395
439
  # The legal last name of the individual.
396
440
  last_name: nil,
397
441
  latest_rehire_date: nil,
398
442
  location: nil,
399
443
  # The manager object representing the manager of the individual within the org.
400
444
  manager: nil,
445
+ # The employee's marital status, used for beneficiary designation and spousal
446
+ # consent workflows.
447
+ marital_status: nil,
401
448
  # The legal middle name of the individual.
402
449
  middle_name: nil,
403
450
  phone_numbers: nil,
@@ -413,7 +460,12 @@ module FinchAPI
413
460
  ssn: nil,
414
461
  start_date: nil,
415
462
  # The current title of the individual.
416
- title: nil
463
+ title: nil,
464
+ # The code identifying the union the employee is a member of, as configured in the
465
+ # payroll system.
466
+ union_code: nil,
467
+ # The local chapter or local number within the employee's union.
468
+ union_local: nil
417
469
  )
418
470
  end
419
471
 
@@ -461,10 +513,12 @@ module FinchAPI
461
513
  T.nilable(
462
514
  FinchAPI::Sandbox::DirectoryCreateParams::Body::Gender::OrSymbol
463
515
  ),
516
+ highly_compensated_employee: T.nilable(T::Boolean),
464
517
  income: T.nilable(FinchAPI::Income),
465
518
  income_history:
466
519
  T.nilable(T::Array[T.nilable(FinchAPI::Income)]),
467
520
  is_active: T.nilable(T::Boolean),
521
+ key_employee: T.nilable(T::Boolean),
468
522
  last_name: T.nilable(String),
469
523
  latest_rehire_date: T.nilable(String),
470
524
  location: T.nilable(FinchAPI::Location),
@@ -472,6 +526,10 @@ module FinchAPI
472
526
  T.nilable(
473
527
  FinchAPI::Sandbox::DirectoryCreateParams::Body::Manager
474
528
  ),
529
+ marital_status:
530
+ T.nilable(
531
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::OrSymbol
532
+ ),
475
533
  middle_name: T.nilable(String),
476
534
  phone_numbers:
477
535
  T.nilable(
@@ -486,7 +544,9 @@ module FinchAPI
486
544
  source_id: T.nilable(String),
487
545
  ssn: T.nilable(String),
488
546
  start_date: T.nilable(String),
489
- title: T.nilable(String)
547
+ title: T.nilable(String),
548
+ union_code: T.nilable(String),
549
+ union_local: T.nilable(String)
490
550
  }
491
551
  )
492
552
  end
@@ -1088,6 +1148,62 @@ module FinchAPI
1088
1148
  end
1089
1149
  end
1090
1150
 
1151
+ # The employee's marital status, used for beneficiary designation and spousal
1152
+ # consent workflows.
1153
+ module MaritalStatus
1154
+ extend FinchAPI::Internal::Type::Enum
1155
+
1156
+ TaggedSymbol =
1157
+ T.type_alias do
1158
+ T.all(
1159
+ Symbol,
1160
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus
1161
+ )
1162
+ end
1163
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1164
+
1165
+ SINGLE =
1166
+ T.let(
1167
+ :single,
1168
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1169
+ )
1170
+ MARRIED =
1171
+ T.let(
1172
+ :married,
1173
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1174
+ )
1175
+ DIVORCED =
1176
+ T.let(
1177
+ :divorced,
1178
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1179
+ )
1180
+ WIDOWED =
1181
+ T.let(
1182
+ :widowed,
1183
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1184
+ )
1185
+ DOMESTIC_PARTNER =
1186
+ T.let(
1187
+ :domestic_partner,
1188
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1189
+ )
1190
+ UNKNOWN =
1191
+ T.let(
1192
+ :unknown,
1193
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1194
+ )
1195
+
1196
+ sig do
1197
+ override.returns(
1198
+ T::Array[
1199
+ FinchAPI::Sandbox::DirectoryCreateParams::Body::MaritalStatus::TaggedSymbol
1200
+ ]
1201
+ )
1202
+ end
1203
+ def self.values
1204
+ end
1205
+ end
1206
+
1091
1207
  class PhoneNumber < FinchAPI::Internal::Type::BaseModel
1092
1208
  OrHash =
1093
1209
  T.type_alias do
@@ -98,6 +98,11 @@ module FinchAPI
98
98
  end
99
99
  attr_accessor :flsa_status
100
100
 
101
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
102
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
103
+ sig { returns(T.nilable(T::Boolean)) }
104
+ attr_accessor :highly_compensated_employee
105
+
101
106
  # The employee's income as reported by the provider. This may not always be
102
107
  # annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc,
103
108
  # depending on what information the provider returns.
@@ -115,6 +120,11 @@ module FinchAPI
115
120
  sig { returns(T.nilable(T::Boolean)) }
116
121
  attr_accessor :is_active
117
122
 
123
+ # IRS flag indicating whether the employee is classified as a Key Employee for
124
+ # top-heavy testing purposes. US-only.
125
+ sig { returns(T.nilable(T::Boolean)) }
126
+ attr_accessor :key_employee
127
+
118
128
  # The legal last name of the individual.
119
129
  sig { returns(T.nilable(String)) }
120
130
  attr_accessor :last_name
@@ -159,6 +169,15 @@ module FinchAPI
159
169
  sig { returns(T.nilable(String)) }
160
170
  attr_accessor :title
161
171
 
172
+ # The code identifying the union the employee is a member of, as configured in the
173
+ # payroll system.
174
+ sig { returns(T.nilable(String)) }
175
+ attr_accessor :union_code
176
+
177
+ # The local chapter or local number within the employee's union.
178
+ sig { returns(T.nilable(String)) }
179
+ attr_accessor :union_local
180
+
162
181
  sig do
163
182
  params(
164
183
  individual_id: String,
@@ -187,10 +206,12 @@ module FinchAPI
187
206
  T.nilable(
188
207
  FinchAPI::Sandbox::EmploymentUpdateParams::FlsaStatus::OrSymbol
189
208
  ),
209
+ highly_compensated_employee: T.nilable(T::Boolean),
190
210
  income: T.nilable(FinchAPI::Income::OrHash),
191
211
  income_history:
192
212
  T.nilable(T::Array[T.nilable(FinchAPI::Income::OrHash)]),
193
213
  is_active: T.nilable(T::Boolean),
214
+ key_employee: T.nilable(T::Boolean),
194
215
  last_name: T.nilable(String),
195
216
  latest_rehire_date: T.nilable(String),
196
217
  location: T.nilable(FinchAPI::Location::OrHash),
@@ -202,6 +223,8 @@ module FinchAPI
202
223
  source_id: T.nilable(String),
203
224
  start_date: T.nilable(String),
204
225
  title: T.nilable(String),
226
+ union_code: T.nilable(String),
227
+ union_local: T.nilable(String),
205
228
  request_options: FinchAPI::RequestOptions::OrHash
206
229
  ).returns(T.attached_class)
207
230
  end
@@ -225,6 +248,9 @@ module FinchAPI
225
248
  # The FLSA status of the individual. Available options: `exempt`, `non_exempt`,
226
249
  # `unknown`.
227
250
  flsa_status: nil,
251
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
252
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
253
+ highly_compensated_employee: nil,
228
254
  # The employee's income as reported by the provider. This may not always be
229
255
  # annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc,
230
256
  # depending on what information the provider returns.
@@ -233,6 +259,9 @@ module FinchAPI
233
259
  income_history: nil,
234
260
  # `true` if the individual an an active employee or contractor at the company.
235
261
  is_active: nil,
262
+ # IRS flag indicating whether the employee is classified as a Key Employee for
263
+ # top-heavy testing purposes. US-only.
264
+ key_employee: nil,
236
265
  # The legal last name of the individual.
237
266
  last_name: nil,
238
267
  latest_rehire_date: nil,
@@ -246,6 +275,11 @@ module FinchAPI
246
275
  start_date: nil,
247
276
  # The current title of the individual.
248
277
  title: nil,
278
+ # The code identifying the union the employee is a member of, as configured in the
279
+ # payroll system.
280
+ union_code: nil,
281
+ # The local chapter or local number within the employee's union.
282
+ union_local: nil,
249
283
  request_options: {}
250
284
  )
251
285
  end
@@ -279,9 +313,11 @@ module FinchAPI
279
313
  T.nilable(
280
314
  FinchAPI::Sandbox::EmploymentUpdateParams::FlsaStatus::OrSymbol
281
315
  ),
316
+ highly_compensated_employee: T.nilable(T::Boolean),
282
317
  income: T.nilable(FinchAPI::Income),
283
318
  income_history: T.nilable(T::Array[T.nilable(FinchAPI::Income)]),
284
319
  is_active: T.nilable(T::Boolean),
320
+ key_employee: T.nilable(T::Boolean),
285
321
  last_name: T.nilable(String),
286
322
  latest_rehire_date: T.nilable(String),
287
323
  location: T.nilable(FinchAPI::Location),
@@ -291,6 +327,8 @@ module FinchAPI
291
327
  source_id: T.nilable(String),
292
328
  start_date: T.nilable(String),
293
329
  title: T.nilable(String),
330
+ union_code: T.nilable(String),
331
+ union_local: T.nilable(String),
294
332
  request_options: FinchAPI::RequestOptions
295
333
  }
296
334
  )
@@ -105,6 +105,11 @@ module FinchAPI
105
105
  end
106
106
  attr_accessor :flsa_status
107
107
 
108
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
109
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
110
+ sig { returns(T.nilable(T::Boolean)) }
111
+ attr_accessor :highly_compensated_employee
112
+
108
113
  # The employee's income as reported by the provider. This may not always be
109
114
  # annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc,
110
115
  # depending on what information the provider returns.
@@ -122,6 +127,11 @@ module FinchAPI
122
127
  sig { returns(T.nilable(T::Boolean)) }
123
128
  attr_accessor :is_active
124
129
 
130
+ # IRS flag indicating whether the employee is classified as a Key Employee for
131
+ # top-heavy testing purposes. US-only.
132
+ sig { returns(T.nilable(T::Boolean)) }
133
+ attr_accessor :key_employee
134
+
125
135
  # The legal last name of the individual.
126
136
  sig { returns(T.nilable(String)) }
127
137
  attr_accessor :last_name
@@ -170,6 +180,15 @@ module FinchAPI
170
180
  sig { returns(T.nilable(String)) }
171
181
  attr_accessor :title
172
182
 
183
+ # The code identifying the union the employee is a member of, as configured in the
184
+ # payroll system.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_accessor :union_code
187
+
188
+ # The local chapter or local number within the employee's union.
189
+ sig { returns(T.nilable(String)) }
190
+ attr_accessor :union_local
191
+
173
192
  sig do
174
193
  params(
175
194
  id: String,
@@ -198,10 +217,12 @@ module FinchAPI
198
217
  T.nilable(
199
218
  FinchAPI::Models::Sandbox::EmploymentUpdateResponse::FlsaStatus::OrSymbol
200
219
  ),
220
+ highly_compensated_employee: T.nilable(T::Boolean),
201
221
  income: T.nilable(FinchAPI::Income::OrHash),
202
222
  income_history:
203
223
  T.nilable(T::Array[T.nilable(FinchAPI::Income::OrHash)]),
204
224
  is_active: T.nilable(T::Boolean),
225
+ key_employee: T.nilable(T::Boolean),
205
226
  last_name: T.nilable(String),
206
227
  latest_rehire_date: T.nilable(String),
207
228
  location: T.nilable(FinchAPI::Location::OrHash),
@@ -212,7 +233,9 @@ module FinchAPI
212
233
  middle_name: T.nilable(String),
213
234
  source_id: T.nilable(String),
214
235
  start_date: T.nilable(String),
215
- title: T.nilable(String)
236
+ title: T.nilable(String),
237
+ union_code: T.nilable(String),
238
+ union_local: T.nilable(String)
216
239
  ).returns(T.attached_class)
217
240
  end
218
241
  def self.new(
@@ -236,6 +259,9 @@ module FinchAPI
236
259
  # The FLSA status of the individual. Available options: `exempt`, `non_exempt`,
237
260
  # `unknown`.
238
261
  flsa_status: nil,
262
+ # IRS flag indicating whether the employee is classified as a Highly Compensated
263
+ # Employee for nondiscrimination testing purposes (ADP/ACP tests). US-only.
264
+ highly_compensated_employee: nil,
239
265
  # The employee's income as reported by the provider. This may not always be
240
266
  # annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc,
241
267
  # depending on what information the provider returns.
@@ -244,6 +270,9 @@ module FinchAPI
244
270
  income_history: nil,
245
271
  # `true` if the individual an an active employee or contractor at the company.
246
272
  is_active: nil,
273
+ # IRS flag indicating whether the employee is classified as a Key Employee for
274
+ # top-heavy testing purposes. US-only.
275
+ key_employee: nil,
247
276
  # The legal last name of the individual.
248
277
  last_name: nil,
249
278
  latest_rehire_date: nil,
@@ -256,7 +285,12 @@ module FinchAPI
256
285
  source_id: nil,
257
286
  start_date: nil,
258
287
  # The current title of the individual.
259
- title: nil
288
+ title: nil,
289
+ # The code identifying the union the employee is a member of, as configured in the
290
+ # payroll system.
291
+ union_code: nil,
292
+ # The local chapter or local number within the employee's union.
293
+ union_local: nil
260
294
  )
261
295
  end
262
296
 
@@ -289,9 +323,11 @@ module FinchAPI
289
323
  T.nilable(
290
324
  FinchAPI::Models::Sandbox::EmploymentUpdateResponse::FlsaStatus::TaggedSymbol
291
325
  ),
326
+ highly_compensated_employee: T.nilable(T::Boolean),
292
327
  income: T.nilable(FinchAPI::Income),
293
328
  income_history: T.nilable(T::Array[T.nilable(FinchAPI::Income)]),
294
329
  is_active: T.nilable(T::Boolean),
330
+ key_employee: T.nilable(T::Boolean),
295
331
  last_name: T.nilable(String),
296
332
  latest_rehire_date: T.nilable(String),
297
333
  location: T.nilable(FinchAPI::Location),
@@ -302,7 +338,9 @@ module FinchAPI
302
338
  middle_name: T.nilable(String),
303
339
  source_id: T.nilable(String),
304
340
  start_date: T.nilable(String),
305
- title: T.nilable(String)
341
+ title: T.nilable(String),
342
+ union_code: T.nilable(String),
343
+ union_local: T.nilable(String)
306
344
  }
307
345
  )
308
346
  end