@dsptch-work/api-client 0.17.0 → 0.19.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.
@@ -585,6 +585,26 @@ export const zApprenticeshipApprenticeResponseObject = z.object({
585
585
  created_at: z.iso.datetime(),
586
586
  updated_at: z.iso.datetime()
587
587
  });
588
+ export const zApprenticeshipAllocationResponseObject = z.object({
589
+ id: z.string(),
590
+ apprenticeship_apprentice_id: z.string(),
591
+ apprenticeship_work_process_category_id: z.string().nullable(),
592
+ allocated_by_user_id: z.string(),
593
+ timekeeping_time_card_id: z.string().nullable(),
594
+ minutes: z.int(),
595
+ description: z.string().nullable(),
596
+ allocated_at: z.iso.datetime(),
597
+ cumulative_minutes: z.int(),
598
+ apprenticeship_wage_schedule_period_id: z.string(),
599
+ created_at: z.iso.datetime(),
600
+ updated_at: z.iso.datetime()
601
+ });
602
+ /**
603
+ * Correct the effective timestamp of an existing standalone allocation. Time-card-linked allocations cannot be date-corrected. A changed timestamp rebuilds progression and requests historical wage repricing in the background, including locked time cards.
604
+ */
605
+ export const zApprenticeshipAllocationUpdateParameters = z.object({
606
+ allocated_at: z.iso.datetime().optional()
607
+ });
588
608
  /**
589
609
  * Enroll a user as an apprentice under an employer in a program; the employing program-employer record is derived from the enrolling company and the program in the URL path. Apprentices cannot be updated through the API, only created.
590
610
  */
@@ -608,7 +628,7 @@ export const zApprenticeshipApprenticeParameters = z.object({
608
628
  operative_end_date: z.iso.date().nullish()
609
629
  });
610
630
  /**
611
- * Create or update an apprenticeship program sponsored by your company; the sponsor is always your company and is never taken from the request body.
631
+ * Create an apprenticeship program sponsored by your company; the sponsor is always your company and is never taken from the request body.
612
632
  */
613
633
  export const zApprenticeshipProgramParameters = z.object({
614
634
  program_number: z.string(),
@@ -618,7 +638,17 @@ export const zApprenticeshipProgramParameters = z.object({
618
638
  registration_agency_type: z.enum(['federal', 'regional']).nullish()
619
639
  });
620
640
  /**
621
- * Create or update an occupation (trade) within a sponsored program; the program is taken from the URL path.
641
+ * Update an apprenticeship program sponsored by your company. Send only the fields to change; the sponsor is fixed to your company.
642
+ */
643
+ export const zApprenticeshipProgramUpdateParameters = z.object({
644
+ program_number: z.string().optional(),
645
+ program_name: z.string().nullish(),
646
+ sponsor_name: z.string().nullish(),
647
+ doing_business_as: z.string().nullish(),
648
+ registration_agency_type: z.enum(['federal', 'regional']).nullish()
649
+ });
650
+ /**
651
+ * Create an occupation (trade) within a sponsored program; the program is taken from the URL path.
622
652
  */
623
653
  export const zApprenticeshipOccupationParameters = z.object({
624
654
  rapids_code: z.string(),
@@ -636,14 +666,39 @@ export const zApprenticeshipOccupationParameters = z.object({
636
666
  num_journeyworkers: z.int()
637
667
  });
638
668
  /**
639
- * Authorize an employer to employ apprentices in a program; only the program's sponsor may manage this roster.
669
+ * Update an occupation (trade) within a sponsored program. Send only the fields to change; the program is taken from the URL path.
670
+ */
671
+ export const zApprenticeshipOccupationUpdateParameters = z.object({
672
+ rapids_code: z.string().optional(),
673
+ occupation_type: z.enum([
674
+ 'time_based',
675
+ 'competency_based',
676
+ 'hybrid'
677
+ ]).optional(),
678
+ title: z.string().optional(),
679
+ description: z.string().nullish(),
680
+ min_minutes: z.int().optional(),
681
+ max_minutes: z.int().optional(),
682
+ probation_minutes: z.int().optional(),
683
+ num_apprentices: z.int().optional(),
684
+ num_journeyworkers: z.int().optional()
685
+ });
686
+ /**
687
+ * Create an authorization for an employer to employ apprentices in a program; only the program's sponsor may manage this roster.
640
688
  */
641
689
  export const zApprenticeshipProgramEmployerParameters = z.object({
642
690
  company_id: z.string(),
643
691
  require_timecard_allocation: z.boolean().optional()
644
692
  });
645
693
  /**
646
- * Create or update a period on a wage schedule; the wage schedule is taken from the URL path. wage_cents is sent as integer cents.
694
+ * Update an employer authorization in a program. Send only the fields to change; only the program's sponsor may manage this roster.
695
+ */
696
+ export const zApprenticeshipProgramEmployerUpdateParameters = z.object({
697
+ company_id: z.string().optional(),
698
+ require_timecard_allocation: z.boolean().optional()
699
+ });
700
+ /**
701
+ * Create a period on a wage schedule; the wage schedule is taken from the URL path. wage_cents is sent as integer cents.
647
702
  */
648
703
  export const zApprenticeshipWageSchedulePeriodParameters = z.object({
649
704
  period_number: z.int(),
@@ -655,7 +710,19 @@ export const zApprenticeshipWageSchedulePeriodParameters = z.object({
655
710
  wage_cents: z.int()
656
711
  });
657
712
  /**
658
- * Create or update a wage schedule for an occupation; the occupation is taken from the URL path. Money is sent as integer cents; periods may be created, updated, or removed inline via periods_attributes.
713
+ * Update a period on a wage schedule. Send only the fields to change; the wage schedule is taken from the URL path and wage_cents is sent as integer cents.
714
+ */
715
+ export const zApprenticeshipWageSchedulePeriodUpdateParameters = z.object({
716
+ period_number: z.int().optional(),
717
+ min_minutes: z.int().nullish(),
718
+ max_minutes: z.int().nullish(),
719
+ num_competencies: z.int().nullish(),
720
+ description: z.string().nullish(),
721
+ wage_percent: z.number().optional(),
722
+ wage_cents: z.int().optional()
723
+ });
724
+ /**
725
+ * Create a wage schedule for an occupation; the occupation is taken from the URL path. Money is sent as integer cents; periods may be created inline via periods_attributes.
659
726
  */
660
727
  export const zApprenticeshipWageScheduleParameters = z.object({
661
728
  name: z.string(),
@@ -698,6 +765,66 @@ export const zApprenticeshipWageScheduleParameters = z.object({
698
765
  _destroy: z.boolean().optional()
699
766
  })).optional()
700
767
  });
768
+ /**
769
+ * Update a wage schedule for an occupation. Send only the fields to change; money is sent as integer cents and periods may be created, updated, or removed inline via periods_attributes.
770
+ */
771
+ export const zApprenticeshipWageScheduleUpdateParameters = z.object({
772
+ name: z.string().optional(),
773
+ description: z.string().nullish(),
774
+ wage_unit: z.enum([
775
+ 'hourly',
776
+ 'weekly',
777
+ 'monthly',
778
+ 'quarterly',
779
+ 'semi_annually',
780
+ 'annually'
781
+ ]).optional(),
782
+ journeyworker_wage_unit: z.enum([
783
+ 'hourly',
784
+ 'weekly',
785
+ 'monthly',
786
+ 'quarterly',
787
+ 'semi_annually',
788
+ 'annually'
789
+ ]).optional(),
790
+ period_unit: z.enum([
791
+ 'hours',
792
+ 'weeks',
793
+ 'months',
794
+ 'quarter',
795
+ 'semi_annual',
796
+ 'year'
797
+ ]).optional(),
798
+ journeyworker_wage_cents: z.int().optional(),
799
+ end_wage_cents: z.int().optional(),
800
+ periods_attributes: z.array(z.intersection(z.union([
801
+ z.unknown(),
802
+ z.union([
803
+ z.object({
804
+ min_minutes: z.int()
805
+ }),
806
+ z.object({
807
+ max_minutes: z.int()
808
+ }),
809
+ z.object({
810
+ num_competencies: z.int()
811
+ })
812
+ ]),
813
+ z.object({
814
+ _destroy: z.literal(true)
815
+ })
816
+ ]), z.object({
817
+ id: z.string().optional(),
818
+ period_number: z.int().optional(),
819
+ min_minutes: z.int().nullish(),
820
+ max_minutes: z.int().nullish(),
821
+ num_competencies: z.int().nullish(),
822
+ description: z.string().nullish(),
823
+ wage_percent: z.number().optional(),
824
+ wage_cents: z.int().optional(),
825
+ _destroy: z.boolean().optional()
826
+ }))).optional()
827
+ });
701
828
  /**
702
829
  * A work-type classification that determines how tracked time is treated — paid vs unpaid, overtime-eligible, billable, PWA/prevailing-wage-eligible, holiday, PTO, or rest-and-recovery — versioned bitemporally so each version carries its own validity window.
703
830
  */
@@ -731,6 +858,102 @@ export const zTimecodeResponseObject = z.object({
731
858
  created_at: z.iso.datetime(),
732
859
  updated_at: z.iso.datetime()
733
860
  });
861
+ /**
862
+ * An employment stint in the credential company. Its id is stable across valid-time versions; a rehire is a separate stint with a new id. A read returns only a version covering now or as_of[valid].
863
+ */
864
+ export const zPeopleEmploymentResponseObject = z.object({
865
+ id: z.string(),
866
+ user_id: z.string(),
867
+ company_id: z.string(),
868
+ type: z.enum(['EMPLOYEE', 'CONTRACTOR']),
869
+ title: z.string().nullable(),
870
+ compensation_type: z.enum(['hourly', 'salary']),
871
+ payroll_id: z.string().nullable(),
872
+ manager_user_id: z.string().nullable(),
873
+ companies_department_id: z.string().nullable(),
874
+ enrolled_in_t_and_a: z.boolean(),
875
+ overtime_eligible: z.boolean().nullable(),
876
+ overtime_package_id: z.string().nullable(),
877
+ pay_rates_rule_package_id: z.string().nullable(),
878
+ pay_rates_package_id: z.string().nullable(),
879
+ worked_annual_minutes: z.int().nullable(),
880
+ pto_annual_minutes: z.int().nullable(),
881
+ holiday_annual_minutes: z.int().nullable(),
882
+ training_annual_minutes: z.int().nullable(),
883
+ hourly_rate_cents: z.string().nullable(),
884
+ training_annual_amount_cents: z.string().nullable(),
885
+ employer_combined_health_amount_cents: z.string().nullable(),
886
+ employer_combined_savings_cents: z.string().nullable(),
887
+ currency: z.string(),
888
+ valid_from: z.iso.datetime().nullable(),
889
+ valid_to: z.iso.datetime().nullable(),
890
+ created_at: z.iso.datetime(),
891
+ updated_at: z.iso.datetime()
892
+ });
893
+ export const zPeopleEmploymentHistoryCorrectionObject = z.object({
894
+ people_employment_id: z.string(),
895
+ user_id: z.string(),
896
+ company_id: z.string(),
897
+ type: z.enum(['EMPLOYEE', 'CONTRACTOR']),
898
+ title: z.string().nullable(),
899
+ compensation_type: z.enum(['hourly', 'salary']),
900
+ payroll_id: z.string().nullable(),
901
+ manager_user_id: z.string().nullable(),
902
+ companies_department_id: z.string().nullable(),
903
+ enrolled_in_t_and_a: z.boolean(),
904
+ overtime_eligible: z.boolean().nullable(),
905
+ overtime_package_id: z.string().nullable(),
906
+ pay_rates_rule_package_id: z.string().nullable(),
907
+ pay_rates_package_id: z.string().nullable(),
908
+ worked_annual_minutes: z.int().nullable(),
909
+ pto_annual_minutes: z.int().nullable(),
910
+ holiday_annual_minutes: z.int().nullable(),
911
+ training_annual_minutes: z.int().nullable(),
912
+ hourly_rate_cents: z.string().nullable(),
913
+ training_annual_amount_cents: z.string().nullable(),
914
+ employer_combined_health_amount_cents: z.string().nullable(),
915
+ employer_combined_savings_cents: z.string().nullable(),
916
+ currency: z.string(),
917
+ valid_from: z.iso.datetime().nullable(),
918
+ valid_to: z.iso.datetime().nullable(),
919
+ created_at: z.iso.datetime(),
920
+ updated_at: z.iso.datetime()
921
+ });
922
+ export const zPeopleEmploymentHistoryVersionObject = z.object({
923
+ people_employment_id: z.string(),
924
+ user_id: z.string(),
925
+ company_id: z.string(),
926
+ type: z.enum(['EMPLOYEE', 'CONTRACTOR']),
927
+ title: z.string().nullable(),
928
+ compensation_type: z.enum(['hourly', 'salary']),
929
+ payroll_id: z.string().nullable(),
930
+ manager_user_id: z.string().nullable(),
931
+ companies_department_id: z.string().nullable(),
932
+ enrolled_in_t_and_a: z.boolean(),
933
+ overtime_eligible: z.boolean().nullable(),
934
+ overtime_package_id: z.string().nullable(),
935
+ pay_rates_rule_package_id: z.string().nullable(),
936
+ pay_rates_package_id: z.string().nullable(),
937
+ worked_annual_minutes: z.int().nullable(),
938
+ pto_annual_minutes: z.int().nullable(),
939
+ holiday_annual_minutes: z.int().nullable(),
940
+ training_annual_minutes: z.int().nullable(),
941
+ hourly_rate_cents: z.string().nullable(),
942
+ training_annual_amount_cents: z.string().nullable(),
943
+ employer_combined_health_amount_cents: z.string().nullable(),
944
+ employer_combined_savings_cents: z.string().nullable(),
945
+ currency: z.string(),
946
+ valid_from: z.iso.datetime().nullable(),
947
+ valid_to: z.iso.datetime().nullable(),
948
+ created_at: z.iso.datetime(),
949
+ updated_at: z.iso.datetime(),
950
+ version_status: z.enum([
951
+ 'scheduled',
952
+ 'current',
953
+ 'historical'
954
+ ]),
955
+ corrections: z.array(zPeopleEmploymentHistoryCorrectionObject)
956
+ });
734
957
  export const zTimecodeHistoryCorrectionObject = z.object({
735
958
  timekeeping_timecode_id: z.string(),
736
959
  name: z.string(),
@@ -823,10 +1046,13 @@ export const zTimecodeParameters = z.object({
823
1046
  ]).optional(),
824
1047
  effective_date: z.iso.datetime().optional()
825
1048
  });
1049
+ /**
1050
+ * Request body for correcting a timecode over a valid-time span. Send only the fields to change; omitted fields retain their current values. `effective_from` defaults to the addressed version's start, and `effective_to` is optional.
1051
+ */
826
1052
  export const zTimecodeCorrectionParameters = z.object({
827
1053
  effective_from: z.iso.datetime().optional(),
828
1054
  effective_to: z.iso.datetime().optional(),
829
- name: z.string(),
1055
+ name: z.string().optional(),
830
1056
  description: z.string().nullish(),
831
1057
  description_is_required: z.boolean().optional(),
832
1058
  billable: z.boolean().optional(),
@@ -847,6 +1073,9 @@ export const zTimecodeCorrectionParameters = z.object({
847
1073
  'job_with_timecode'
848
1074
  ]).optional()
849
1075
  });
1076
+ /**
1077
+ * Request body for moving the beginning of a timecode's valid-time timeline. Moving it earlier extends coverage; moving it later removes coverage before the new beginning.
1078
+ */
850
1079
  export const zTimecodeGenesisParameters = z.object({
851
1080
  effective_date: z.iso.datetime()
852
1081
  });
@@ -900,7 +1129,7 @@ export const zPerDiemResponseObject = z.object({
900
1129
  updated_at: z.iso.datetime()
901
1130
  });
902
1131
  /**
903
- * Fields for creating or updating a per diem.
1132
+ * Request body for creating a per diem. name, currency, and rate_cents are required.
904
1133
  */
905
1134
  export const zPerDiemParameters = z.object({
906
1135
  name: z.string(),
@@ -913,6 +1142,20 @@ export const zPerDiemParameters = z.object({
913
1142
  work_type_ids: z.array(z.string()).optional(),
914
1143
  timekeeping_timecode_ids: z.array(z.string()).optional()
915
1144
  });
1145
+ /**
1146
+ * Request body for updating a per diem. Send only the fields to change.
1147
+ */
1148
+ export const zPerDiemUpdateParameters = z.object({
1149
+ name: z.string().optional(),
1150
+ description: z.string().nullish(),
1151
+ rate_cents: z.string().optional(),
1152
+ currency: z.string().optional(),
1153
+ taxable: z.boolean().optional(),
1154
+ default: z.boolean().nullish(),
1155
+ active: z.boolean().nullish(),
1156
+ work_type_ids: z.array(z.string()).optional(),
1157
+ timekeeping_timecode_ids: z.array(z.string()).optional()
1158
+ });
916
1159
  /**
917
1160
  * The product's filled attribute values — one entry per attribute assigned to its category.
918
1161
  */
@@ -962,6 +1205,25 @@ export const zAssetsAttributeParameters = z.object({
962
1205
  _destroy: z.boolean().optional()
963
1206
  })).optional()
964
1207
  });
1208
+ /**
1209
+ * Update an attribute definition. All fields are optional — send only what changes. Options apply only to a select attribute and are ignored otherwise; data_type cannot be changed once any value has been filled.
1210
+ */
1211
+ export const zAssetsAttributeUpdateParameters = z.object({
1212
+ name: z.string().optional(),
1213
+ data_type: z.enum([
1214
+ 'text',
1215
+ 'number',
1216
+ 'date',
1217
+ 'boolean',
1218
+ 'select'
1219
+ ]).optional(),
1220
+ options: z.array(z.object({
1221
+ id: z.string().optional(),
1222
+ value: z.string().optional(),
1223
+ position: z.int().optional(),
1224
+ _destroy: z.boolean().optional()
1225
+ })).optional()
1226
+ });
965
1227
  /**
966
1228
  * A node in the company's asset category tree. Categories classify products and, through their attribute assignments, set which custom fields those products and items carry.
967
1229
  */
@@ -996,6 +1258,21 @@ export const zAssetsCategoryParameters = z.object({
996
1258
  _destroy: z.boolean().optional()
997
1259
  })).optional()
998
1260
  });
1261
+ /**
1262
+ * Update a category. All fields are optional — send only what changes. `category_attributes` sets this category's direct attribute assignments.
1263
+ */
1264
+ export const zAssetsCategoryUpdateParameters = z.object({
1265
+ name: z.string().optional(),
1266
+ parent_id: z.string().nullish(),
1267
+ category_attributes: z.array(z.object({
1268
+ id: z.string().optional(),
1269
+ assets_attribute_id: z.string(),
1270
+ fillable_on: z.enum(['product', 'item']),
1271
+ required: z.boolean().optional(),
1272
+ position: z.int().optional(),
1273
+ _destroy: z.boolean().optional()
1274
+ })).optional()
1275
+ });
999
1276
  /**
1000
1277
  * A company department that workers can be assigned to.
1001
1278
  */
@@ -1008,12 +1285,19 @@ export const zDepartmentResponseObject = z.object({
1008
1285
  updated_at: z.iso.datetime()
1009
1286
  });
1010
1287
  /**
1011
- * Request body for creating or updating a department.
1288
+ * Request body for creating a department.
1012
1289
  */
1013
1290
  export const zDepartmentParameters = z.object({
1014
1291
  name: z.string(),
1015
1292
  description: z.string().nullish()
1016
1293
  });
1294
+ /**
1295
+ * Request body for updating a department. Send only the fields to change.
1296
+ */
1297
+ export const zDepartmentUpdateParameters = z.object({
1298
+ name: z.string().optional(),
1299
+ description: z.string().nullish()
1300
+ });
1017
1301
  /**
1018
1302
  * A per-diem allowance recorded on a time card for a specific date. Its rate, currency, and taxable flag are snapshotted from the referenced catalog per diem when saved.
1019
1303
  */
@@ -1030,12 +1314,20 @@ export const zTimeCardPerDiemResponseObject = z.object({
1030
1314
  updated_at: z.iso.datetime()
1031
1315
  });
1032
1316
  /**
1033
- * Request body for recording or updating a per diem on a time card. The time card is taken from the URL path; the rate, currency, and taxable flag are copied from the referenced catalog per diem, not this body.
1317
+ * Request body for recording a per diem on a time card. The time card is taken from the URL path; the rate, currency, and taxable flag are copied from the referenced catalog per diem when one is supplied, not this body.
1034
1318
  */
1035
1319
  export const zTimeCardPerDiemParameters = z.object({
1036
1320
  date: z.iso.date(),
1037
1321
  approver_user_id: z.string(),
1038
- per_diem_id: z.string()
1322
+ per_diem_id: z.string().optional()
1323
+ });
1324
+ /**
1325
+ * Request body for updating a per diem recorded on a time card. Send only the fields to change; the time card comes from the URL path.
1326
+ */
1327
+ export const zTimeCardPerDiemUpdateParameters = z.object({
1328
+ date: z.iso.date().optional(),
1329
+ approver_user_id: z.string().optional(),
1330
+ per_diem_id: z.string().optional()
1039
1331
  });
1040
1332
  /**
1041
1333
  * A holiday on a pay schedule's holiday calendar — a fixed (month + day) or floating (nth weekday of a month) date that gets holiday-pay treatment when a time entry's timecode opts into holiday handling.
@@ -1200,7 +1492,7 @@ export const zPayPeriodConfigHistoryVersionObject = z.object({
1200
1492
  corrections: z.array(zPayPeriodConfigHistoryCorrectionObject)
1201
1493
  });
1202
1494
  /**
1203
- * Create or update a holiday on a pay schedule. name, holiday_type, and month are required; mday is required for fixed holidays and wday + week for floating holidays (enforced by model validation).
1495
+ * Create a holiday on a pay schedule. name, holiday_type, and month are required; mday is required for fixed holidays and wday + week for floating holidays.
1204
1496
  */
1205
1497
  export const zHolidayParameters = z.object({
1206
1498
  name: z.string(),
@@ -1216,6 +1508,23 @@ export const zHolidayParameters = z.object({
1216
1508
  banking: z.boolean().optional(),
1217
1509
  count_hours_for_overtime: z.boolean().optional()
1218
1510
  });
1511
+ /**
1512
+ * Update a holiday on a pay schedule. Send only the fields to change; the resulting fixed or floating definition must remain complete.
1513
+ */
1514
+ export const zHolidayUpdateParameters = z.object({
1515
+ name: z.string().optional(),
1516
+ date: z.iso.date().optional(),
1517
+ holiday_type: z.enum(['fixed', 'floating']).optional(),
1518
+ month: z.int().optional(),
1519
+ mday: z.int().optional(),
1520
+ wday: z.int().optional(),
1521
+ week: z.int().optional(),
1522
+ year: z.int().optional(),
1523
+ move_to_weekday: z.boolean().optional(),
1524
+ overtime: z.boolean().optional(),
1525
+ banking: z.boolean().optional(),
1526
+ count_hours_for_overtime: z.boolean().optional()
1527
+ });
1219
1528
  /**
1220
1529
  * Prevailing-wage / apprenticeship (PWA) compliance details for a worker at a company — home address, demographics, and jurisdiction-specific fields used in certified-payroll and compliance exports. One record per company/user pair.
1221
1530
  */
@@ -1312,10 +1621,9 @@ export const zPwaCompanyUserDetailsResponseObject = z.object({
1312
1621
  ])).nullable()
1313
1622
  });
1314
1623
  /**
1315
- * Create or update a worker's PWA compliance details at a company. company_id and user_id identify the pair and are required on create; every other field is optional — send whichever your jurisdiction's certified-payroll export requires. On update, omitted fields are left unchanged.
1624
+ * Create a worker's PWA compliance details at a company. The company is taken from the API key. user_id names the worker and is required; every other field is optional — send whichever your jurisdiction's certified-payroll export requires. Only the keys listed here are accepted — any other key is rejected with 400 unknown_key.
1316
1625
  */
1317
1626
  export const zPwaCompanyUserDetailsParameters = z.object({
1318
- company_id: z.string(),
1319
1627
  user_id: z.string(),
1320
1628
  address1: z.string().nullish(),
1321
1629
  address2: z.string().nullish(),
@@ -1405,6 +1713,98 @@ export const zPwaCompanyUserDetailsParameters = z.object({
1405
1713
  'portuguese_or_brazilian'
1406
1714
  ])).nullish()
1407
1715
  });
1716
+ /**
1717
+ * Update a worker's PWA compliance details. The company is taken from the API key. Every field is optional — send only what changes, and omitted fields are left unchanged. user_id is absent by design — the company/user pair is fixed at creation, so sending the key is rejected with 400 unknown_key, as is any other key not listed here.
1718
+ */
1719
+ export const zPwaCompanyUserDetailsUpdateParameters = z.object({
1720
+ address1: z.string().nullish(),
1721
+ address2: z.string().nullish(),
1722
+ city: z.string().nullish(),
1723
+ state: z.string().nullish(),
1724
+ zip: z.string().nullish(),
1725
+ race: z.array(z.enum([
1726
+ 'AFRICAN_AMERICAN',
1727
+ 'ASIAN',
1728
+ 'CAUCASIAN',
1729
+ 'NATIVE_AMERICAN',
1730
+ 'NOT_SPECIFIED',
1731
+ 'OTHER'
1732
+ ])).nullish(),
1733
+ sex: z.enum([
1734
+ 'female',
1735
+ 'male',
1736
+ 'non_binary',
1737
+ 'not_specified'
1738
+ ]).nullish(),
1739
+ local_business_license: z.string().nullish(),
1740
+ drivers_license_state: z.string().nullish(),
1741
+ drivers_license_number: z.string().nullish(),
1742
+ ssn: z.string().nullish(),
1743
+ veteran_status: z.enum([
1744
+ 'protected_veteran',
1745
+ 'not_protected_veteran',
1746
+ 'reserves',
1747
+ 'guard',
1748
+ 'not_specified'
1749
+ ]).nullish(),
1750
+ hispanic_origin: z.enum([
1751
+ 'yes',
1752
+ 'no',
1753
+ 'not_specified'
1754
+ ]).nullish(),
1755
+ ca_dir_withholding_exemptions: z.int().nullish(),
1756
+ disabled: z.boolean().optional(),
1757
+ il_dol_race: z.enum([
1758
+ 'white',
1759
+ 'black',
1760
+ 'hispanic_or_latino',
1761
+ 'american_indian_or_alaska_native',
1762
+ 'chinese',
1763
+ 'filipino',
1764
+ 'asian_india',
1765
+ 'vietnamese',
1766
+ 'korean',
1767
+ 'japanese',
1768
+ 'native_hawaiian',
1769
+ 'samoan',
1770
+ 'chamorro',
1771
+ 'other_asian',
1772
+ 'other_pacific_islander',
1773
+ 'other'
1774
+ ]).nullish(),
1775
+ il_shines_employment_type: z.enum([
1776
+ 'part_time',
1777
+ 'full_time',
1778
+ 'seasonal_temporary',
1779
+ 'independent_contract'
1780
+ ]).nullish(),
1781
+ il_shines_eep_qualifiers: z.array(z.enum([
1782
+ 'eep_program_completed',
1783
+ 'foster_care',
1784
+ 'formerly_incarcerated',
1785
+ 'equity_investment_eligible_community',
1786
+ 'self_registered_or_unknown'
1787
+ ])).nullish(),
1788
+ il_shines_other_programs: z.array(z.enum([
1789
+ 'solar_training_pipeline_program',
1790
+ 'craft_apprenticeship_program',
1791
+ 'multi_cultural_jobs_program',
1792
+ 'clean_jobs_workforce_network_program',
1793
+ 'illinois_climate_works_prep_apprenticeship_program',
1794
+ 'returning_residents_clean_jobs_training_program',
1795
+ 'other'
1796
+ ])).nullish(),
1797
+ or_boli_schedule_type: z.enum(['five_eight', 'four_ten']).nullish(),
1798
+ or_boli_race: z.array(z.enum([
1799
+ 'american_indian_or_alaska_native',
1800
+ 'asian',
1801
+ 'hispanic_or_latino',
1802
+ 'black_or_african_american',
1803
+ 'native_hawaiian_or_pacific_islander',
1804
+ 'white',
1805
+ 'portuguese_or_brazilian'
1806
+ ])).nullish()
1807
+ });
1408
1808
  /**
1409
1809
  * A craft grouping used for prevailing-wage / apprenticeship (PWA) compliance — the unit an apprenticeship ratio is measured against. Owned by either a project (pooling the craft across the project's jobs) or a standalone job, never both.
1410
1810
  */
@@ -1498,11 +1898,17 @@ export const zGroupResponseObject = z.object({
1498
1898
  updated_at: z.iso.datetime()
1499
1899
  });
1500
1900
  /**
1501
- * Request body for creating or updating a group.
1901
+ * Request body for creating a group.
1502
1902
  */
1503
1903
  export const zGroupParameters = z.object({
1504
1904
  name: z.string()
1505
1905
  });
1906
+ /**
1907
+ * Request body for updating a group. Send only the fields to change.
1908
+ */
1909
+ export const zGroupUpdateParameters = z.object({
1910
+ name: z.string().optional()
1911
+ });
1506
1912
  /**
1507
1913
  * Request body for updating a worker's profile. Limited to person-level identity fields; employment, roles, and compliance are managed through onboarding (create) and the user-company endpoints.
1508
1914
  */
@@ -1668,12 +2074,19 @@ export const zPositionFunctionResponseObject = z.object({
1668
2074
  updated_at: z.iso.datetime()
1669
2075
  });
1670
2076
  /**
1671
- * Request body for creating or updating a position function.
2077
+ * Request body for creating a position function.
1672
2078
  */
1673
2079
  export const zPositionFunctionParameters = z.object({
1674
2080
  value: z.string(),
1675
2081
  description: z.string()
1676
2082
  });
2083
+ /**
2084
+ * Request body for updating a position function. Send only the fields to change.
2085
+ */
2086
+ export const zPositionFunctionUpdateParameters = z.object({
2087
+ value: z.string().optional(),
2088
+ description: z.string().optional()
2089
+ });
1677
2090
  export const zCompanyResponseObject = z.object({
1678
2091
  id: z.string(),
1679
2092
  name: z.string(),
@@ -1931,6 +2344,11 @@ export const zJobParameters = z.object({
1931
2344
  tracks_feature_allocations: z.boolean().nullish(),
1932
2345
  requires_feature_allocation: z.boolean().nullish(),
1933
2346
  max_one_feature_allocation: z.boolean().nullish(),
2347
+ production_tracking_kind: z.enum([
2348
+ 'none',
2349
+ 'feature',
2350
+ 'quantity'
2351
+ ]).optional(),
1934
2352
  job_work_types_attributes: z.array(z.object({
1935
2353
  primary: z.boolean().optional(),
1936
2354
  work_type_id: z.string().optional()
@@ -2303,6 +2721,19 @@ export const zManagerTimeCardApprovalParameters = z.object({
2303
2721
  export const zWorkerTimeCardApprovalParameters = z.object({
2304
2722
  status: z.enum(['pending', 'approved'])
2305
2723
  });
2724
+ /**
2725
+ * One clock-in by a worker — open (`active`) from clock-in until clock-out, and retained afterwards as the record that the session happened. A worker holds at most one active session at a time.
2726
+ */
2727
+ export const zTimeSessionResponseObject = z.object({
2728
+ id: z.string(),
2729
+ user_id: z.string(),
2730
+ job_id: z.string().nullable(),
2731
+ timekeeping_timecode_id: z.string().nullable(),
2732
+ active: z.boolean(),
2733
+ start_time: z.iso.datetime(),
2734
+ created_at: z.iso.datetime(),
2735
+ updated_at: z.iso.datetime()
2736
+ });
2306
2737
  /**
2307
2738
  * Request body for locking or unlocking a time card.
2308
2739
  */
@@ -2386,7 +2817,7 @@ export const zPayrollFringeBenefitPlanResponseObject = z.object({
2386
2817
  updated_at: z.iso.datetime()
2387
2818
  });
2388
2819
  /**
2389
- * Request body for creating or updating a fringe-benefit plan. timekeeping_pay_period_config_id, name, plan_number, and benefit_category are required.
2820
+ * Request body for creating a fringe-benefit plan. timekeeping_pay_period_config_id, name, plan_number, and benefit_category are required.
2390
2821
  */
2391
2822
  export const zPayrollFringeBenefitPlanParameters = z.object({
2392
2823
  timekeeping_pay_period_config_id: z.string(),
@@ -2410,6 +2841,31 @@ export const zPayrollFringeBenefitPlanParameters = z.object({
2410
2841
  il_sponsor_name: z.string().nullish(),
2411
2842
  il_admin_name: z.string().nullish()
2412
2843
  });
2844
+ /**
2845
+ * Request body for updating a fringe-benefit plan. Send only the fields to change.
2846
+ */
2847
+ export const zPayrollFringeBenefitPlanUpdateParameters = z.object({
2848
+ timekeeping_pay_period_config_id: z.string().optional(),
2849
+ name: z.string().optional(),
2850
+ plan_number: z.string().optional(),
2851
+ funded: z.boolean().optional(),
2852
+ benefit_category: z.enum([
2853
+ 'employer_combined_health',
2854
+ 'employer_combined_savings',
2855
+ 'employer_combined_holiday_pto',
2856
+ 'employer_training',
2857
+ 'employer_other_contributions'
2858
+ ]).optional(),
2859
+ il_jointly_managed: z.boolean().optional(),
2860
+ il_fund_name: z.string().nullish(),
2861
+ il_fund_address1: z.string().nullish(),
2862
+ il_fund_address2: z.string().nullish(),
2863
+ il_fund_city: z.string().nullish(),
2864
+ il_fund_state: z.string().nullish(),
2865
+ il_fund_zip: z.string().nullish(),
2866
+ il_sponsor_name: z.string().nullish(),
2867
+ il_admin_name: z.string().nullish()
2868
+ });
2413
2869
  /**
2414
2870
  * A mapping from an external payroll or benefits system's field name to a DSPTCH compensation element, so imported paystub line items can be normalized. Bitemporal and read-only; a null pay schedule means the map is global (shared across companies).
2415
2871
  */
@@ -2534,7 +2990,7 @@ export const zPayrollRunResponseObject = z.object({
2534
2990
  updated_at: z.iso.datetime()
2535
2991
  });
2536
2992
  /**
2537
- * Request body for creating or updating a payroll run. company_id, run_type, and run_date are required; an on-cycle run additionally requires timekeeping_pay_period_id.
2993
+ * Create a payroll run. company_id, run_type, and run_date are required; an on-cycle run additionally requires timekeeping_pay_period_id. Only the keys listed here are accepted — any other key is rejected with 400 unknown_key.
2538
2994
  */
2539
2995
  export const zPayrollRunParameters = z.object({
2540
2996
  company_id: z.string(),
@@ -2551,6 +3007,23 @@ export const zPayrollRunParameters = z.object({
2551
3007
  run_date: z.iso.date(),
2552
3008
  external_id: z.string().nullish()
2553
3009
  });
3010
+ /**
3011
+ * Update a payroll run. Every field is optional — send only what changes. company_id is absent by design — the run's company is fixed at creation, so sending the key is rejected with 400 unknown_key, as is any other key not listed here.
3012
+ */
3013
+ export const zPayrollRunUpdateParameters = z.object({
3014
+ timekeeping_pay_period_id: z.string().nullish(),
3015
+ payrolls_credential_id: z.string().nullish(),
3016
+ run_type: z.enum([
3017
+ 'CORRECTION',
3018
+ 'ON_CYCLE',
3019
+ 'OFF_CYCLE',
3020
+ 'RECONCILIATION',
3021
+ 'SIGN_ON_BONUS',
3022
+ 'TERMINATION'
3023
+ ]).optional(),
3024
+ run_date: z.iso.date().optional(),
3025
+ external_id: z.string().nullish()
3026
+ });
2554
3027
  /**
2555
3028
  * A project: a top-level container that groups jobs into federal and regional PWA compliance scopes, carrying the compliance modes, regional scoping, schedule envelope, and administrator/budget metadata.
2556
3029
  */
@@ -2637,7 +3110,11 @@ export const zSiteCheckInResponseObject = z.object({
2637
3110
  employer_name: z.string().nullable(),
2638
3111
  description: z.string().nullable(),
2639
3112
  rationale: z.string().nullable(),
2640
- source: z.enum(['manual', 'auto']),
3113
+ source: z.enum([
3114
+ 'manual',
3115
+ 'auto',
3116
+ 'public_form'
3117
+ ]),
2641
3118
  nerc_check_in: z.boolean(),
2642
3119
  cip_exceptional: z.boolean(),
2643
3120
  created_by_user_id: z.string().nullable(),
@@ -3134,7 +3611,7 @@ export const zPaystubResponseObject = z.object({
3134
3611
  updated_at: z.iso.datetime()
3135
3612
  });
3136
3613
  /**
3137
- * Request body for creating or updating a paystub. payrolls_payroll_run_id and user_id are required; timekeeping_time_card_id is required for an on-cycle run and disallowed for an off-cycle run.
3614
+ * Request body for creating a paystub. payrolls_payroll_run_id and user_id are required; timekeeping_time_card_id is required for an on-cycle run and disallowed for an off-cycle run.
3138
3615
  */
3139
3616
  export const zPaystubParameters = z.object({
3140
3617
  payrolls_payroll_run_id: z.string(),
@@ -3143,6 +3620,16 @@ export const zPaystubParameters = z.object({
3143
3620
  external_id: z.string().nullish(),
3144
3621
  check_number: z.string().nullish()
3145
3622
  });
3623
+ /**
3624
+ * Request body for updating a paystub. Send only the fields to change; the resulting paystub must still match its payroll run type.
3625
+ */
3626
+ export const zPaystubUpdateParameters = z.object({
3627
+ payrolls_payroll_run_id: z.string().optional(),
3628
+ user_id: z.string().optional(),
3629
+ timekeeping_time_card_id: z.string().nullish(),
3630
+ external_id: z.string().nullish(),
3631
+ check_number: z.string().nullish()
3632
+ });
3146
3633
  /**
3147
3634
  * An adjustment applied in the current pay period to correct a prior one, tied to the paystub line item it corrects.
3148
3635
  */
@@ -3302,7 +3789,7 @@ export const zPaystubLineItemResponseObject = z.object({
3302
3789
  updated_at: z.iso.datetime()
3303
3790
  });
3304
3791
  /**
3305
- * Request body for creating or updating a paystub line item. All four fields are required.
3792
+ * Request body for creating a paystub line item. All four fields are required.
3306
3793
  */
3307
3794
  export const zPaystubLineItemParameters = z.object({
3308
3795
  payrolls_paystub_id: z.string(),
@@ -3310,6 +3797,15 @@ export const zPaystubLineItemParameters = z.object({
3310
3797
  contributor: z.enum(['employee', 'employer']),
3311
3798
  payrolls_external_map_id: z.string()
3312
3799
  });
3800
+ /**
3801
+ * Request body for updating a paystub line item. Send only the fields to change.
3802
+ */
3803
+ export const zPaystubLineItemUpdateParameters = z.object({
3804
+ payrolls_paystub_id: z.string().optional(),
3805
+ amount_cents: z.string().optional(),
3806
+ contributor: z.enum(['employee', 'employer']).optional(),
3807
+ payrolls_external_map_id: z.string().optional()
3808
+ });
3313
3809
  /**
3314
3810
  * Request body for creating or updating a position on a job. The job is taken from the URL path.
3315
3811
  */
@@ -3458,7 +3954,7 @@ export const zFormAssignmentTaskResponseObject = z.array(z.object({
3458
3954
  }))
3459
3955
  }));
3460
3956
  /**
3461
- * Request body for creating or updating a certification — a named qualification a worker can hold. You can only manage your own company's certifications; global (platform) certifications are read-only.
3957
+ * Request body for creating a certification — a named qualification a worker can hold. You can only manage your own company's certifications; global (platform) certifications are read-only.
3462
3958
  */
3463
3959
  export const zCertificationParameters = z.object({
3464
3960
  company_id: z.string(),
@@ -3467,6 +3963,16 @@ export const zCertificationParameters = z.object({
3467
3963
  verified: z.boolean().optional(),
3468
3964
  duration: z.string().nullish()
3469
3965
  });
3966
+ /**
3967
+ * Request body for updating a certification — a named qualification a worker can hold. Include only the fields to change. You can only manage your own company's certifications; global (platform) certifications are read-only.
3968
+ */
3969
+ export const zCertificationUpdateParameters = z.object({
3970
+ company_id: z.string().optional(),
3971
+ name: z.string().optional(),
3972
+ description: z.string().nullish(),
3973
+ verified: z.boolean().optional(),
3974
+ duration: z.string().nullish()
3975
+ });
3470
3976
  /**
3471
3977
  * A certification package — a named set of certifications your company requires together.
3472
3978
  */
@@ -3482,7 +3988,7 @@ export const zCertificationPackageResponseObject = z.object({
3482
3988
  updated_at: z.iso.datetime()
3483
3989
  });
3484
3990
  /**
3485
- * Request body for creating or updating a certification package — a named set of certifications a company requires together.
3991
+ * Request body for creating a certification package — a named set of certifications a company requires together.
3486
3992
  */
3487
3993
  export const zCertificationPackageParameters = z.object({
3488
3994
  name: z.string(),
@@ -3490,6 +3996,15 @@ export const zCertificationPackageParameters = z.object({
3490
3996
  certification_ids: z.array(z.string()).optional(),
3491
3997
  performed_by_user_id: z.string()
3492
3998
  });
3999
+ /**
4000
+ * Request body for updating a certification package — a named set of certifications a company requires together. Include only the fields to change.
4001
+ */
4002
+ export const zCertificationPackageUpdateParameters = z.object({
4003
+ name: z.string().optional(),
4004
+ description: z.string().nullish(),
4005
+ certification_ids: z.array(z.string()).optional(),
4006
+ performed_by_user_id: z.string()
4007
+ });
3493
4008
  /**
3494
4009
  * A certification — a named qualification a worker can hold, either owned by your company or a global (platform) credential type (company_id null).
3495
4010
  */
@@ -3621,7 +4136,12 @@ export const zJobResponseObject = z.object({
3621
4136
  timekeeping_timecode_ids: z.array(z.string()),
3622
4137
  tracks_feature_allocations: z.boolean(),
3623
4138
  requires_feature_allocation: z.boolean(),
3624
- max_one_feature_allocation: z.boolean()
4139
+ max_one_feature_allocation: z.boolean(),
4140
+ production_tracking_kind: z.enum([
4141
+ 'none',
4142
+ 'feature',
4143
+ 'quantity'
4144
+ ])
3625
4145
  });
3626
4146
  /**
3627
4147
  * A spot to be filled on a job — one worker's assignment and the unit against which they track time, carrying the schedule window, assigned worker, function, and the planned pay and fringe rates (including PWA prevailing-wage compliance rates). Always accessed nested under a job.
@@ -4080,6 +4600,14 @@ export const zTimeCardsResponseObject = z.object({
4080
4600
  links: zLinks,
4081
4601
  data: z.array(zTimeCardResponseObject)
4082
4602
  });
4603
+ /**
4604
+ * A page of time sessions, with pagination metadata and navigation links.
4605
+ */
4606
+ export const zTimeSessionsResponseObject = z.object({
4607
+ meta: zMeta,
4608
+ links: zLinks,
4609
+ data: z.array(zTimeSessionResponseObject)
4610
+ });
4083
4611
  /**
4084
4612
  * A page of payroll runs, with pagination metadata and navigation links.
4085
4613
  */
@@ -4171,6 +4699,7 @@ export const zLaborRateResponseObject = z.object({
4171
4699
  fringe_percentage_rate: z.string().nullable(),
4172
4700
  fringe_benefit_weekly_rate_cents: z.string().nullable(),
4173
4701
  fringe_benefit_monthly_rate_cents: z.string().nullable(),
4702
+ reference_item_ids: z.array(z.string()),
4174
4703
  created_at: z.iso.datetime(),
4175
4704
  updated_at: z.iso.datetime()
4176
4705
  });
@@ -4182,6 +4711,118 @@ export const zLaborRatesResponseObject = z.object({
4182
4711
  links: zLinks,
4183
4712
  data: z.array(zLaborRateResponseObject)
4184
4713
  });
4714
+ /**
4715
+ * A DOL labor-classification schedule within one wage determination; its labor rates and reference items share this schedule boundary.
4716
+ */
4717
+ export const zWageClassificationResponseObject = z.object({
4718
+ id: z.string(),
4719
+ wage_determination_id: z.string(),
4720
+ identifier: z.string(),
4721
+ date: z.iso.date(),
4722
+ footnote: z.string().nullable(),
4723
+ subheader: z.string().nullable(),
4724
+ created_at: z.iso.datetime(),
4725
+ updated_at: z.iso.datetime()
4726
+ });
4727
+ /**
4728
+ * A page of a wage determination's classification schedules, with pagination metadata and navigation links.
4729
+ */
4730
+ export const zWageClassificationsResponseObject = z.object({
4731
+ meta: zMeta,
4732
+ links: zLinks,
4733
+ data: z.array(zWageClassificationResponseObject)
4734
+ });
4735
+ /**
4736
+ * A Davis-Bacon construction category assigned to one wage determination.
4737
+ */
4738
+ export const zConstructionTypeResponseObject = z.object({
4739
+ id: z.string(),
4740
+ wage_determination_id: z.string(),
4741
+ construction_type: z.enum([
4742
+ 'BUILDING',
4743
+ 'HEAVY',
4744
+ 'HIGHWAY',
4745
+ 'RESIDENTIAL'
4746
+ ]),
4747
+ created_at: z.iso.datetime(),
4748
+ updated_at: z.iso.datetime()
4749
+ });
4750
+ /**
4751
+ * A page of a wage determination's construction categories, with pagination metadata and navigation links.
4752
+ */
4753
+ export const zConstructionTypesResponseObject = z.object({
4754
+ meta: zMeta,
4755
+ links: zLinks,
4756
+ data: z.array(zConstructionTypeResponseObject)
4757
+ });
4758
+ /**
4759
+ * A DOL project-type tag attached directly to one wage determination.
4760
+ */
4761
+ export const zProjectTypeResponseObject = z.object({
4762
+ id: z.string(),
4763
+ wage_determination_id: z.string(),
4764
+ project_type: z.string(),
4765
+ project_type_subtext: z.string().nullable(),
4766
+ created_at: z.iso.datetime(),
4767
+ updated_at: z.iso.datetime()
4768
+ });
4769
+ /**
4770
+ * A page of project-type tags attached directly to a wage determination, with pagination metadata and navigation links.
4771
+ */
4772
+ export const zProjectTypesResponseObject = z.object({
4773
+ meta: zMeta,
4774
+ links: zLinks,
4775
+ data: z.array(zProjectTypeResponseObject)
4776
+ });
4777
+ /**
4778
+ * A link between a wage determination and one geographic boundary where it applies. Includes stable boundary identity metadata but never geometry.
4779
+ */
4780
+ export const zWageDeterminationBoundaryResponseObject = z.object({
4781
+ id: z.string(),
4782
+ wage_determination_id: z.string(),
4783
+ boundary_id: z.string(),
4784
+ boundary_type: z.string(),
4785
+ name: z.string(),
4786
+ source_boundary_id: z.string().nullable(),
4787
+ source_geo_id: z.string().nullable(),
4788
+ source_unique_id: z.string().nullable(),
4789
+ created_at: z.iso.datetime(),
4790
+ updated_at: z.iso.datetime()
4791
+ });
4792
+ /**
4793
+ * A page of a wage determination's geographic applicability links, with pagination metadata and navigation links.
4794
+ */
4795
+ export const zWageDeterminationBoundariesResponseObject = z.object({
4796
+ meta: zMeta,
4797
+ links: zLinks,
4798
+ data: z.array(zWageDeterminationBoundaryResponseObject)
4799
+ });
4800
+ /**
4801
+ * One ordered, lettered item of verbatim fringe-reference prose within a wage-classification schedule.
4802
+ */
4803
+ export const zReferenceItemResponseObject = z.object({
4804
+ id: z.string(),
4805
+ wage_classification_id: z.string(),
4806
+ position: z.int(),
4807
+ letter: z.string(),
4808
+ container_type: z.enum([
4809
+ 'footnote',
4810
+ 'premium_pay',
4811
+ 'holidays',
4812
+ 'zone_pay'
4813
+ ]),
4814
+ text: z.string(),
4815
+ created_at: z.iso.datetime(),
4816
+ updated_at: z.iso.datetime()
4817
+ });
4818
+ /**
4819
+ * A page of reference items flattened across every classification schedule in a wage determination, with pagination metadata and navigation links.
4820
+ */
4821
+ export const zReferenceItemsResponseObject = z.object({
4822
+ meta: zMeta,
4823
+ links: zLinks,
4824
+ data: z.array(zReferenceItemResponseObject)
4825
+ });
4185
4826
  /**
4186
4827
  * A Federal (Davis-Bacon) wage determination on a job.
4187
4828
  */
@@ -4764,6 +5405,13 @@ export const zAssetsVendorParameters = z.object({
4764
5405
  name: z.string(),
4765
5406
  logo_signed_id: z.string().optional()
4766
5407
  });
5408
+ /**
5409
+ * Update a vendor. All fields are optional — send only what changes.
5410
+ */
5411
+ export const zAssetsVendorUpdateParameters = z.object({
5412
+ name: z.string().optional(),
5413
+ logo_signed_id: z.string().optional()
5414
+ });
4767
5415
  /**
4768
5416
  * A location that holds a company's assets and inventory — a warehouse or yard, optionally backed by a site on the Atlas map.
4769
5417
  */
@@ -4789,6 +5437,9 @@ export const zAssetsSiteParameters = z.intersection(z.union([
4789
5437
  site_id: z.string().nullish(),
4790
5438
  name: z.string().nullish()
4791
5439
  }));
5440
+ /**
5441
+ * Request body for updating an asset location. Every field is optional; send only the fields to change. The saved location must still have a name or a backing `site_id`.
5442
+ */
4792
5443
  export const zAssetsSiteUpdateParameters = z.object({
4793
5444
  kind: z.enum(['warehouse', 'yard']).optional(),
4794
5445
  site_id: z.string().nullish(),
@@ -5477,6 +6128,47 @@ export const zAssetsArchiveParameters = z.object({
5477
6128
  export const zListApiKeyScopesResponse = z.object({
5478
6129
  data: z.array(zApiKeyScopeResponseObject)
5479
6130
  });
6131
+ export const zListAllocationsPath = z.object({
6132
+ apprentice_id: z.string()
6133
+ });
6134
+ export const zListAllocationsQuery = z.object({
6135
+ 'filter[allocated_at][gte]': z.iso.datetime().optional(),
6136
+ 'filter[allocated_at][lte]': z.iso.datetime().optional(),
6137
+ 'filter[created_at][gte]': z.iso.datetime().optional(),
6138
+ 'filter[created_at][lte]': z.iso.datetime().optional(),
6139
+ 'filter[updated_at][gte]': z.iso.datetime().optional(),
6140
+ 'filter[updated_at][lte]': z.iso.datetime().optional(),
6141
+ filter: z.string().optional(),
6142
+ 'filter[unexpected]': z.string().optional(),
6143
+ 'page[cursor]': z.string().optional(),
6144
+ 'page[limit]': z.int().gte(1).optional().default(20),
6145
+ page: z.string().optional()
6146
+ });
6147
+ /**
6148
+ * Success
6149
+ */
6150
+ export const zListAllocationsResponse = z.object({
6151
+ meta: zMeta,
6152
+ links: zLinks,
6153
+ data: z.array(zApprenticeshipAllocationResponseObject)
6154
+ });
6155
+ export const zGetAllocationPath = z.object({
6156
+ apprentice_id: z.string(),
6157
+ id: z.string()
6158
+ });
6159
+ /**
6160
+ * Success
6161
+ */
6162
+ export const zGetAllocationResponse = zApprenticeshipAllocationResponseObject;
6163
+ export const zUpdateAllocationBody = zApprenticeshipAllocationUpdateParameters;
6164
+ export const zUpdateAllocationPath = z.object({
6165
+ apprentice_id: z.string(),
6166
+ id: z.string()
6167
+ });
6168
+ /**
6169
+ * Success
6170
+ */
6171
+ export const zUpdateAllocationResponse = zApprenticeshipAllocationResponseObject;
5480
6172
  export const zListApprenticesPath = z.object({
5481
6173
  program_id: z.string()
5482
6174
  });
@@ -5539,7 +6231,7 @@ export const zCreateOccupationPath = z.object({
5539
6231
  * Created
5540
6232
  */
5541
6233
  export const zCreateOccupationResponse = zApprenticeshipOccupationResponseObject;
5542
- export const zUpdateOccupationBody = zApprenticeshipOccupationParameters;
6234
+ export const zUpdateOccupationBody = zApprenticeshipOccupationUpdateParameters;
5543
6235
  export const zUpdateOccupationPath = z.object({
5544
6236
  program_id: z.string(),
5545
6237
  id: z.string()
@@ -5586,7 +6278,7 @@ export const zDeleteEmployerPath = z.object({
5586
6278
  * Success
5587
6279
  */
5588
6280
  export const zDeleteEmployerResponse = zApprenticeshipProgramEmployerResponseObject;
5589
- export const zUpdateEmployerBody = zApprenticeshipProgramEmployerParameters;
6281
+ export const zUpdateEmployerBody = zApprenticeshipProgramEmployerUpdateParameters;
5590
6282
  export const zUpdateEmployerPath = z.object({
5591
6283
  program_id: z.string(),
5592
6284
  id: z.string()
@@ -5619,7 +6311,7 @@ export const zCreateProgramBody = zApprenticeshipProgramParameters;
5619
6311
  * Created
5620
6312
  */
5621
6313
  export const zCreateProgramResponse = zApprenticeshipProgramResponseObject;
5622
- export const zUpdateProgramBody = zApprenticeshipProgramParameters;
6314
+ export const zUpdateProgramBody = zApprenticeshipProgramUpdateParameters;
5623
6315
  export const zUpdateProgramPath = z.object({
5624
6316
  id: z.string()
5625
6317
  });
@@ -5657,7 +6349,7 @@ export const zCreatePeriodPath = z.object({
5657
6349
  * Created
5658
6350
  */
5659
6351
  export const zCreatePeriodResponse = zApprenticeshipWageSchedulePeriodResponseObject;
5660
- export const zUpdatePeriodBody = zApprenticeshipWageSchedulePeriodParameters;
6352
+ export const zUpdatePeriodBody = zApprenticeshipWageSchedulePeriodUpdateParameters;
5661
6353
  export const zUpdatePeriodPath = z.object({
5662
6354
  wage_schedule_id: z.string(),
5663
6355
  id: z.string()
@@ -5696,7 +6388,7 @@ export const zCreateWageSchedulePath = z.object({
5696
6388
  * Created
5697
6389
  */
5698
6390
  export const zCreateWageScheduleResponse = zApprenticeshipWageScheduleResponseObject;
5699
- export const zUpdateWageScheduleBody = zApprenticeshipWageScheduleParameters;
6391
+ export const zUpdateWageScheduleBody = zApprenticeshipWageScheduleUpdateParameters;
5700
6392
  export const zUpdateWageSchedulePath = z.object({
5701
6393
  occupation_id: z.string(),
5702
6394
  id: z.string()
@@ -5744,7 +6436,7 @@ export const zGetAttributePath = z.object({
5744
6436
  * Success
5745
6437
  */
5746
6438
  export const zGetAttributeResponse = zAssetsAttributeResponseObject;
5747
- export const zUpdateAttributeBody = zAssetsAttributeParameters;
6439
+ export const zUpdateAttributeBody = zAssetsAttributeUpdateParameters;
5748
6440
  export const zUpdateAttributePath = z.object({
5749
6441
  id: z.string()
5750
6442
  });
@@ -5790,7 +6482,7 @@ export const zGetCategoryPath = z.object({
5790
6482
  * Success
5791
6483
  */
5792
6484
  export const zGetCategoryResponse = zAssetsCategoryResponseObject;
5793
- export const zUpdateCategoryBody = zAssetsCategoryParameters;
6485
+ export const zUpdateCategoryBody = zAssetsCategoryUpdateParameters;
5794
6486
  export const zUpdateCategoryPath = z.object({
5795
6487
  id: z.string()
5796
6488
  });
@@ -6500,7 +7192,7 @@ export const zGetVendorPath = z.object({
6500
7192
  * Success
6501
7193
  */
6502
7194
  export const zGetVendorResponse = zAssetsVendorResponseObject;
6503
- export const zUpdateVendorBody = zAssetsVendorParameters;
7195
+ export const zUpdateVendorBody = zAssetsVendorUpdateParameters;
6504
7196
  export const zUpdateVendorPath = z.object({
6505
7197
  id: z.string()
6506
7198
  });
@@ -6622,7 +7314,7 @@ export const zGetPackagePath = z.object({
6622
7314
  * Success
6623
7315
  */
6624
7316
  export const zGetPackageResponse = zCertificationPackageResponseObject;
6625
- export const zUpdatePackageBody = zCertificationPackageParameters;
7317
+ export const zUpdatePackageBody = zCertificationPackageUpdateParameters;
6626
7318
  export const zUpdatePackagePath = z.object({
6627
7319
  id: z.string()
6628
7320
  });
@@ -6701,7 +7393,7 @@ export const zGetCertificationPath = z.object({
6701
7393
  * Success
6702
7394
  */
6703
7395
  export const zGetCertificationResponse = zCertificationResponseObject;
6704
- export const zUpdateCertificationBody = zCertificationParameters;
7396
+ export const zUpdateCertificationBody = zCertificationUpdateParameters;
6705
7397
  export const zUpdateCertificationPath = z.object({
6706
7398
  id: z.string()
6707
7399
  });
@@ -6733,7 +7425,7 @@ export const zCreateDepartmentBody = zDepartmentParameters;
6733
7425
  * Created
6734
7426
  */
6735
7427
  export const zCreateDepartmentResponse = zDepartmentResponseObject;
6736
- export const zUpdateDepartmentBody = zDepartmentParameters;
7428
+ export const zUpdateDepartmentBody = zDepartmentUpdateParameters;
6737
7429
  export const zUpdateDepartmentPath = z.object({
6738
7430
  id: z.string()
6739
7431
  });
@@ -7009,7 +7701,7 @@ export const zGetGroupPath = z.object({
7009
7701
  * Success
7010
7702
  */
7011
7703
  export const zGetGroupResponse = zGroupResponseObject;
7012
- export const zUpdateGroupBody = zGroupParameters;
7704
+ export const zUpdateGroupBody = zGroupUpdateParameters;
7013
7705
  export const zUpdateGroupPath = z.object({
7014
7706
  id: z.string()
7015
7707
  });
@@ -7283,6 +7975,11 @@ export const zListJobsQuery = z.object({
7283
7975
  'filter[updated_at][lte]': z.iso.datetime().optional(),
7284
7976
  'filter[project_id]': z.string().optional(),
7285
7977
  'filter[status]': z.string().optional(),
7978
+ 'filter[production_tracking_kind]': z.enum([
7979
+ 'none',
7980
+ 'feature',
7981
+ 'quantity'
7982
+ ]).optional(),
7286
7983
  'page[cursor]': z.string().optional(),
7287
7984
  'page[limit]': z.int().gte(1).optional().default(20),
7288
7985
  page: z.string().optional(),
@@ -7748,7 +8445,7 @@ export const zGetFringeBenefitPlanPath = z.object({
7748
8445
  * Success
7749
8446
  */
7750
8447
  export const zGetFringeBenefitPlanResponse = zPayrollFringeBenefitPlanResponseObject;
7751
- export const zUpdateFringeBenefitPlanBody = zPayrollFringeBenefitPlanParameters;
8448
+ export const zUpdateFringeBenefitPlanBody = zPayrollFringeBenefitPlanUpdateParameters;
7752
8449
  export const zUpdateFringeBenefitPlanPath = z.object({
7753
8450
  id: z.string()
7754
8451
  });
@@ -7835,7 +8532,7 @@ export const zGetPayrollRunPath = z.object({
7835
8532
  * Success
7836
8533
  */
7837
8534
  export const zGetPayrollRunResponse = zPayrollRunResponseObject;
7838
- export const zUpdatePayrollRunBody = zPayrollRunParameters;
8535
+ export const zUpdatePayrollRunBody = zPayrollRunUpdateParameters;
7839
8536
  export const zUpdatePayrollRunPath = z.object({
7840
8537
  id: z.string()
7841
8538
  });
@@ -7874,7 +8571,7 @@ export const zGetPaystubLineItemPath = z.object({
7874
8571
  * Success
7875
8572
  */
7876
8573
  export const zGetPaystubLineItemResponse = zPaystubLineItemResponseObject;
7877
- export const zUpdatePaystubLineItemBody = zPaystubLineItemParameters;
8574
+ export const zUpdatePaystubLineItemBody = zPaystubLineItemUpdateParameters;
7878
8575
  export const zUpdatePaystubLineItemPath = z.object({
7879
8576
  id: z.string()
7880
8577
  });
@@ -7915,7 +8612,7 @@ export const zGetPaystubPath = z.object({
7915
8612
  * Success
7916
8613
  */
7917
8614
  export const zGetPaystubResponse = zPaystubResponseObject;
7918
- export const zUpdatePaystubBody = zPaystubParameters;
8615
+ export const zUpdatePaystubBody = zPaystubUpdateParameters;
7919
8616
  export const zUpdatePaystubPath = z.object({
7920
8617
  id: z.string()
7921
8618
  });
@@ -7923,6 +8620,73 @@ export const zUpdatePaystubPath = z.object({
7923
8620
  * Success
7924
8621
  */
7925
8622
  export const zUpdatePaystubResponse = zPaystubResponseObject;
8623
+ export const zListEmploymentHistoryPath = z.object({
8624
+ employment_id: z.string()
8625
+ });
8626
+ export const zListEmploymentHistoryQuery = z.object({
8627
+ 'as_of[valid]': z.string().optional(),
8628
+ 'as_of[transaction]': z.string().optional(),
8629
+ 'page[cursor]': z.string().optional(),
8630
+ 'page[limit]': z.int().gte(1).optional().default(20),
8631
+ page: z.string().optional()
8632
+ });
8633
+ /**
8634
+ * Success
8635
+ */
8636
+ export const zListEmploymentHistoryResponse = z.object({
8637
+ meta: zMeta,
8638
+ links: zLinks,
8639
+ data: z.array(zPeopleEmploymentHistoryVersionObject)
8640
+ });
8641
+ export const zListEmploymentsHistoryQuery = z.object({
8642
+ 'filter[user_id]': z.string().optional(),
8643
+ 'as_of[valid]': z.string().optional(),
8644
+ 'as_of[transaction]': z.string().optional(),
8645
+ filter: z.string().optional(),
8646
+ 'filter[unexpected]': z.string().optional(),
8647
+ 'page[cursor]': z.string().optional(),
8648
+ 'page[limit]': z.int().gte(1).optional().default(20),
8649
+ page: z.string().optional()
8650
+ });
8651
+ /**
8652
+ * Success
8653
+ */
8654
+ export const zListEmploymentsHistoryResponse = z.object({
8655
+ meta: zMeta,
8656
+ links: zLinks,
8657
+ data: z.array(zPeopleEmploymentHistoryVersionObject)
8658
+ });
8659
+ export const zListEmploymentsQuery = z.object({
8660
+ 'filter[user_id]': z.string().optional(),
8661
+ filter: z.string().optional(),
8662
+ 'filter[unexpected]': z.string().optional(),
8663
+ 'as_of[valid]': z.iso.datetime().optional(),
8664
+ as_of: z.string().optional(),
8665
+ 'as_of[bogus_axis]': z.string().optional(),
8666
+ 'as_of[valid][gte]': z.string().optional(),
8667
+ 'as_of[transaction]': z.string().optional(),
8668
+ 'page[cursor]': z.string().optional(),
8669
+ 'page[limit]': z.int().gte(1).optional().default(20),
8670
+ page: z.string().optional()
8671
+ });
8672
+ /**
8673
+ * Success in a gap between employment stints
8674
+ */
8675
+ export const zListEmploymentsResponse = z.object({
8676
+ meta: zMeta,
8677
+ links: zLinks,
8678
+ data: z.array(zPeopleEmploymentResponseObject)
8679
+ });
8680
+ export const zGetEmploymentPath = z.object({
8681
+ id: z.string()
8682
+ });
8683
+ export const zGetEmploymentQuery = z.object({
8684
+ 'as_of[valid]': z.iso.datetime().optional()
8685
+ });
8686
+ /**
8687
+ * Success
8688
+ */
8689
+ export const zGetEmploymentResponse = zPeopleEmploymentResponseObject;
7926
8690
  export const zListPerDiemsQuery = z.object({
7927
8691
  'filter[default]': z.boolean().optional(),
7928
8692
  'filter[taxable]': z.boolean().optional(),
@@ -7968,7 +8732,7 @@ export const zGetPerDiemPath = z.object({
7968
8732
  * Success
7969
8733
  */
7970
8734
  export const zGetPerDiemResponse = zPerDiemResponseObject;
7971
- export const zUpdatePerDiemBody = zPerDiemParameters;
8735
+ export const zUpdatePerDiemBody = zPerDiemUpdateParameters;
7972
8736
  export const zUpdatePerDiemPath = z.object({
7973
8737
  id: z.string()
7974
8738
  });
@@ -8008,7 +8772,7 @@ export const zGetPositionFunctionPath = z.object({
8008
8772
  * Success
8009
8773
  */
8010
8774
  export const zGetPositionFunctionResponse = zPositionFunctionResponseObject;
8011
- export const zUpdatePositionFunctionBody = zPositionFunctionParameters;
8775
+ export const zUpdatePositionFunctionBody = zPositionFunctionUpdateParameters;
8012
8776
  export const zUpdatePositionFunctionPath = z.object({
8013
8777
  id: z.string()
8014
8778
  });
@@ -8133,7 +8897,7 @@ export const zCreateCompanyUserDetailBody = zPwaCompanyUserDetailsParameters;
8133
8897
  * Created
8134
8898
  */
8135
8899
  export const zCreateCompanyUserDetailResponse = zPwaCompanyUserDetailsResponseObject;
8136
- export const zUpdateCompanyUserDetailBody = zPwaCompanyUserDetailsParameters;
8900
+ export const zUpdateCompanyUserDetailBody = zPwaCompanyUserDetailsUpdateParameters;
8137
8901
  export const zUpdateCompanyUserDetailPath = z.object({
8138
8902
  id: z.string()
8139
8903
  });
@@ -8422,7 +9186,7 @@ export const zDeleteTimeCardPerDiemPath = z.object({
8422
9186
  * Success
8423
9187
  */
8424
9188
  export const zDeleteTimeCardPerDiemResponse = zTimeCardPerDiemResponseObject;
8425
- export const zUpdateTimeCardPerDiemBody = zTimeCardPerDiemParameters;
9189
+ export const zUpdateTimeCardPerDiemBody = zTimeCardPerDiemUpdateParameters;
8426
9190
  export const zUpdateTimeCardPerDiemPath = z.object({
8427
9191
  time_card_id: z.string(),
8428
9192
  id: z.int()
@@ -8832,7 +9596,7 @@ export const zDeleteHolidayPath = z.object({
8832
9596
  * Success
8833
9597
  */
8834
9598
  export const zDeleteHolidayResponse = zHolidayResponseObject;
8835
- export const zUpdateHolidayBody = zHolidayParameters;
9599
+ export const zUpdateHolidayBody = zHolidayUpdateParameters;
8836
9600
  export const zUpdateHolidayPath = z.object({
8837
9601
  pay_period_config_id: z.string(),
8838
9602
  id: z.string()
@@ -8896,6 +9660,34 @@ export const zGetTimeCardActualPath = z.object({
8896
9660
  * Success
8897
9661
  */
8898
9662
  export const zGetTimeCardActualResponse = zTimeCardActualsResponseObject;
9663
+ export const zListTimeSessionsQuery = z.object({
9664
+ 'filter[user_id]': z.string().optional(),
9665
+ 'filter[job_id]': z.string().optional(),
9666
+ 'filter[job_id][null]': z.boolean().optional(),
9667
+ 'filter[active]': z.boolean().optional(),
9668
+ 'filter[start_time][gte]': z.iso.datetime().optional(),
9669
+ 'filter[start_time][lte]': z.iso.datetime().optional(),
9670
+ 'filter[created_at][gte]': z.iso.datetime().optional(),
9671
+ 'filter[created_at][lte]': z.iso.datetime().optional(),
9672
+ 'filter[updated_at][gte]': z.iso.datetime().optional(),
9673
+ 'filter[updated_at][lte]': z.iso.datetime().optional(),
9674
+ filter: z.string().optional(),
9675
+ 'filter[unexpected]': z.string().optional(),
9676
+ 'page[cursor]': z.string().optional(),
9677
+ 'page[limit]': z.int().gte(1).optional().default(20),
9678
+ page: z.string().optional()
9679
+ });
9680
+ /**
9681
+ * Success
9682
+ */
9683
+ export const zListTimeSessionsResponse = zTimeSessionsResponseObject;
9684
+ export const zGetTimeSessionPath = z.object({
9685
+ id: z.string()
9686
+ });
9687
+ /**
9688
+ * Success
9689
+ */
9690
+ export const zGetTimeSessionResponse = zTimeSessionResponseObject;
8899
9691
  /**
8900
9692
  * Success
8901
9693
  */
@@ -9062,6 +9854,43 @@ export const zUpdateUserPath = z.object({
9062
9854
  * Success
9063
9855
  */
9064
9856
  export const zUpdateUserResponse = zUserResponseObject;
9857
+ export const zListBoundariesPath = z.object({
9858
+ wage_determination_id: z.string()
9859
+ });
9860
+ export const zListBoundariesQuery = z.object({
9861
+ 'filter[id]': z.string().optional(),
9862
+ 'filter[boundary_id]': z.string().optional(),
9863
+ 'filter[name]': z.string().optional(),
9864
+ 'filter[boundary_type]': z.string().optional(),
9865
+ 'filter[source_boundary_id]': z.string().optional(),
9866
+ 'filter[source_geo_id]': z.string().optional(),
9867
+ 'filter[source_unique_id]': z.string().optional(),
9868
+ filter: z.string().optional(),
9869
+ 'filter[unexpected]': z.string().optional(),
9870
+ 'page[cursor]': z.string().optional(),
9871
+ 'page[limit]': z.int().gte(1).optional().default(20),
9872
+ page: z.string().optional()
9873
+ });
9874
+ /**
9875
+ * Success
9876
+ */
9877
+ export const zListBoundariesResponse = zWageDeterminationBoundariesResponseObject;
9878
+ export const zListConstructionTypesPath = z.object({
9879
+ wage_determination_id: z.string()
9880
+ });
9881
+ export const zListConstructionTypesQuery = z.object({
9882
+ 'filter[id]': z.string().optional(),
9883
+ 'filter[construction_type]': z.string().optional(),
9884
+ filter: z.string().optional(),
9885
+ 'filter[unexpected]': z.string().optional(),
9886
+ 'page[cursor]': z.string().optional(),
9887
+ 'page[limit]': z.int().gte(1).optional().default(20),
9888
+ page: z.string().optional()
9889
+ });
9890
+ /**
9891
+ * Success
9892
+ */
9893
+ export const zListConstructionTypesResponse = zConstructionTypesResponseObject;
9065
9894
  export const zListLaborRatesPath = z.object({
9066
9895
  wage_determination_id: z.string()
9067
9896
  });
@@ -9077,6 +9906,59 @@ export const zListLaborRatesQuery = z.object({
9077
9906
  * Success
9078
9907
  */
9079
9908
  export const zListLaborRatesResponse = zLaborRatesResponseObject;
9909
+ export const zListProjectTypesPath = z.object({
9910
+ wage_determination_id: z.string()
9911
+ });
9912
+ export const zListProjectTypesQuery = z.object({
9913
+ 'filter[id]': z.string().optional(),
9914
+ 'filter[project_type]': z.string().optional(),
9915
+ 'filter[project_type_subtext]': z.string().optional(),
9916
+ filter: z.string().optional(),
9917
+ 'filter[unexpected]': z.string().optional(),
9918
+ 'page[cursor]': z.string().optional(),
9919
+ 'page[limit]': z.int().gte(1).optional().default(20),
9920
+ page: z.string().optional()
9921
+ });
9922
+ /**
9923
+ * Success
9924
+ */
9925
+ export const zListProjectTypesResponse = zProjectTypesResponseObject;
9926
+ export const zListReferenceItemsPath = z.object({
9927
+ wage_determination_id: z.string()
9928
+ });
9929
+ export const zListReferenceItemsQuery = z.object({
9930
+ 'filter[id]': z.string().optional(),
9931
+ 'filter[wage_classification_id]': z.string().optional(),
9932
+ 'filter[position]': z.int().optional(),
9933
+ 'filter[letter]': z.string().optional(),
9934
+ 'filter[container_type]': z.string().optional(),
9935
+ filter: z.string().optional(),
9936
+ 'filter[unexpected]': z.string().optional(),
9937
+ 'page[cursor]': z.string().optional(),
9938
+ 'page[limit]': z.int().gte(1).optional().default(20),
9939
+ page: z.string().optional()
9940
+ });
9941
+ /**
9942
+ * Success
9943
+ */
9944
+ export const zListReferenceItemsResponse = zReferenceItemsResponseObject;
9945
+ export const zListWageClassificationsPath = z.object({
9946
+ wage_determination_id: z.string()
9947
+ });
9948
+ export const zListWageClassificationsQuery = z.object({
9949
+ 'filter[id]': z.string().optional(),
9950
+ 'filter[identifier]': z.string().optional(),
9951
+ 'filter[date]': z.iso.date().optional(),
9952
+ filter: z.string().optional(),
9953
+ 'filter[unexpected]': z.string().optional(),
9954
+ 'page[cursor]': z.string().optional(),
9955
+ 'page[limit]': z.int().gte(1).optional().default(20),
9956
+ page: z.string().optional()
9957
+ });
9958
+ /**
9959
+ * Success
9960
+ */
9961
+ export const zListWageClassificationsResponse = zWageClassificationsResponseObject;
9080
9962
  export const zListWageDeterminationsQuery = z.object({
9081
9963
  'filter[valid_from][gte]': z.iso.datetime().optional(),
9082
9964
  'filter[valid_from][lte]': z.iso.datetime().optional(),