@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.
@@ -767,6 +767,29 @@ export type ApprenticeshipApprenticeResponseObject = {
767
767
  */
768
768
  updated_at: string;
769
769
  };
770
+ export type ApprenticeshipAllocationResponseObject = {
771
+ id: string;
772
+ apprenticeship_apprentice_id: string;
773
+ apprenticeship_work_process_category_id: string | null;
774
+ allocated_by_user_id: string;
775
+ timekeeping_time_card_id: string | null;
776
+ minutes: number;
777
+ description: string | null;
778
+ allocated_at: string;
779
+ cumulative_minutes: number;
780
+ apprenticeship_wage_schedule_period_id: string;
781
+ created_at: string;
782
+ updated_at: string;
783
+ };
784
+ /**
785
+ * 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.
786
+ */
787
+ export type ApprenticeshipAllocationUpdateParameters = {
788
+ /**
789
+ * Effective timestamp for the credited hours, as ISO 8601 with an explicit UTC offset or Z. Optional; omission leaves the timestamp unchanged, and null is rejected. The employer-local date must be today or earlier and may predate enrollment. An unchanged timestamp does not request repricing.
790
+ */
791
+ allocated_at?: string;
792
+ };
770
793
  /**
771
794
  * 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.
772
795
  */
@@ -805,7 +828,7 @@ export type ApprenticeshipApprenticeParameters = {
805
828
  operative_end_date?: string | null;
806
829
  };
807
830
  /**
808
- * Create or update an apprenticeship program sponsored by your company; the sponsor is always your company and is never taken from the request body.
831
+ * Create an apprenticeship program sponsored by your company; the sponsor is always your company and is never taken from the request body.
809
832
  */
810
833
  export type ApprenticeshipProgramParameters = {
811
834
  /**
@@ -830,7 +853,32 @@ export type ApprenticeshipProgramParameters = {
830
853
  registration_agency_type?: 'federal' | 'regional' | null;
831
854
  };
832
855
  /**
833
- * Create or update an occupation (trade) within a sponsored program; the program is taken from the URL path.
856
+ * Update an apprenticeship program sponsored by your company. Send only the fields to change; the sponsor is fixed to your company.
857
+ */
858
+ export type ApprenticeshipProgramUpdateParameters = {
859
+ /**
860
+ * DOL- or state-agency-assigned registration number for the program; unique per sponsor company. Omit to leave it unchanged.
861
+ */
862
+ program_number?: string;
863
+ /**
864
+ * Human-readable name for the program; omit to leave it unchanged, or send null to clear.
865
+ */
866
+ program_name?: string | null;
867
+ /**
868
+ * Official name of the sponsoring organization; omit to leave it unchanged, or send null to clear.
869
+ */
870
+ sponsor_name?: string | null;
871
+ /**
872
+ * Name the sponsor operates under; omit to leave it unchanged, or send null to clear.
873
+ */
874
+ doing_business_as?: string | null;
875
+ /**
876
+ * Agency that registered the program: federal or regional; omit to leave it unchanged, or send null to clear.
877
+ */
878
+ registration_agency_type?: 'federal' | 'regional' | null;
879
+ };
880
+ /**
881
+ * Create an occupation (trade) within a sponsored program; the program is taken from the URL path.
834
882
  */
835
883
  export type ApprenticeshipOccupationParameters = {
836
884
  /**
@@ -871,7 +919,48 @@ export type ApprenticeshipOccupationParameters = {
871
919
  num_journeyworkers: number;
872
920
  };
873
921
  /**
874
- * Authorize an employer to employ apprentices in a program; only the program's sponsor may manage this roster.
922
+ * Update an occupation (trade) within a sponsored program. Send only the fields to change; the program is taken from the URL path.
923
+ */
924
+ export type ApprenticeshipOccupationUpdateParameters = {
925
+ /**
926
+ * DOL RAPIDS code identifying this occupation. Omit to leave it unchanged.
927
+ */
928
+ rapids_code?: string;
929
+ /**
930
+ * How apprentices progress through this occupation: time_based, competency_based, or hybrid. Omit to leave it unchanged.
931
+ */
932
+ occupation_type?: 'time_based' | 'competency_based' | 'hybrid';
933
+ /**
934
+ * Trade title for the occupation (e.g. "Electrician"). Omit to leave it unchanged.
935
+ */
936
+ title?: string;
937
+ /**
938
+ * Description of the occupation; omit to leave it unchanged, or send null to clear.
939
+ */
940
+ description?: string | null;
941
+ /**
942
+ * Minimum total on-the-job minutes required to complete the occupation. Omit to leave it unchanged.
943
+ */
944
+ min_minutes?: number;
945
+ /**
946
+ * Maximum total on-the-job minutes allowed for the occupation; must exceed min_minutes. Omit to leave it unchanged.
947
+ */
948
+ max_minutes?: number;
949
+ /**
950
+ * Length of the occupation's initial probationary period, in minutes. Omit to leave it unchanged.
951
+ */
952
+ probation_minutes?: number;
953
+ /**
954
+ * Apprentice side of the apprentice-to-journeyworker ratio. Omit to leave it unchanged.
955
+ */
956
+ num_apprentices?: number;
957
+ /**
958
+ * Journeyworker side of the apprentice-to-journeyworker ratio. Omit to leave it unchanged.
959
+ */
960
+ num_journeyworkers?: number;
961
+ };
962
+ /**
963
+ * Create an authorization for an employer to employ apprentices in a program; only the program's sponsor may manage this roster.
875
964
  */
876
965
  export type ApprenticeshipProgramEmployerParameters = {
877
966
  /**
@@ -884,7 +973,20 @@ export type ApprenticeshipProgramEmployerParameters = {
884
973
  require_timecard_allocation?: boolean;
885
974
  };
886
975
  /**
887
- * 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.
976
+ * Update an employer authorization in a program. Send only the fields to change; only the program's sponsor may manage this roster.
977
+ */
978
+ export type ApprenticeshipProgramEmployerUpdateParameters = {
979
+ /**
980
+ * ID of the company authorized as an employer in this program. It cannot be changed once the employer has apprentices; omit to leave it unchanged.
981
+ */
982
+ company_id?: string;
983
+ /**
984
+ * Whether this employer's apprentices must allocate apprenticeship hours from DSPTCH time cards rather than recording them standalone; omit to leave it unchanged.
985
+ */
986
+ require_timecard_allocation?: boolean;
987
+ };
988
+ /**
989
+ * Create a period on a wage schedule; the wage schedule is taken from the URL path. wage_cents is sent as integer cents.
888
990
  */
889
991
  export type ApprenticeshipWageSchedulePeriodParameters = {
890
992
  /**
@@ -917,7 +1019,40 @@ export type ApprenticeshipWageSchedulePeriodParameters = {
917
1019
  wage_cents: number;
918
1020
  };
919
1021
  /**
920
- * 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.
1022
+ * 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.
1023
+ */
1024
+ export type ApprenticeshipWageSchedulePeriodUpdateParameters = {
1025
+ /**
1026
+ * 0-indexed position of this period in the progression; omit to leave it unchanged.
1027
+ */
1028
+ period_number?: number;
1029
+ /**
1030
+ * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1031
+ */
1032
+ min_minutes?: number | null;
1033
+ /**
1034
+ * Upper bound on this period's duration, in minutes; informational only, not used to compute advancement; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1035
+ */
1036
+ max_minutes?: number | null;
1037
+ /**
1038
+ * Number of competencies required to complete this period; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1039
+ */
1040
+ num_competencies?: number | null;
1041
+ /**
1042
+ * Free-text description of this period; optional, null to clear.
1043
+ */
1044
+ description?: string | null;
1045
+ /**
1046
+ * Percentage of the journeyworker wage paid during this period (e.g. 75 for 75%); omit to leave it unchanged.
1047
+ */
1048
+ wage_percent?: number;
1049
+ /**
1050
+ * Wage rate for this period, in cents; omit to leave it unchanged.
1051
+ */
1052
+ wage_cents?: number;
1053
+ };
1054
+ /**
1055
+ * 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.
921
1056
  */
922
1057
  export type ApprenticeshipWageScheduleParameters = {
923
1058
  /**
@@ -990,6 +1125,88 @@ export type ApprenticeshipWageScheduleParameters = {
990
1125
  _destroy?: boolean;
991
1126
  }>;
992
1127
  };
1128
+ /**
1129
+ * 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.
1130
+ */
1131
+ export type ApprenticeshipWageScheduleUpdateParameters = {
1132
+ /**
1133
+ * Human-readable name for the wage schedule; omit to leave it unchanged.
1134
+ */
1135
+ name?: string;
1136
+ /**
1137
+ * Free-text description of the wage schedule; omit to leave it unchanged, or send null to clear.
1138
+ */
1139
+ description?: string | null;
1140
+ /**
1141
+ * Pay frequency for each period's wage_cents: hourly, weekly, monthly, quarterly, semi_annually, or annually. Omit to leave it unchanged.
1142
+ */
1143
+ wage_unit?: 'hourly' | 'weekly' | 'monthly' | 'quarterly' | 'semi_annually' | 'annually';
1144
+ /**
1145
+ * Pay frequency for journeyworker_wage_cents: hourly, weekly, monthly, quarterly, semi_annually, or annually. Omit to leave it unchanged.
1146
+ */
1147
+ journeyworker_wage_unit?: 'hourly' | 'weekly' | 'monthly' | 'quarterly' | 'semi_annually' | 'annually';
1148
+ /**
1149
+ * Display unit for the periods: hours, weeks, months, quarter, semi_annual, or year. Omit to leave it unchanged.
1150
+ */
1151
+ period_unit?: 'hours' | 'weeks' | 'months' | 'quarter' | 'semi_annual' | 'year';
1152
+ /**
1153
+ * Journeyworker wage to progress toward, in cents; omit to leave it unchanged.
1154
+ */
1155
+ journeyworker_wage_cents?: number;
1156
+ /**
1157
+ * Wage at the end of the progression, in cents; omit to leave it unchanged.
1158
+ */
1159
+ end_wage_cents?: number;
1160
+ /**
1161
+ * Periods to create, update, or remove alongside the schedule; omit a period's id to add one, include its id to update it, or send its id with _destroy true to remove it.
1162
+ */
1163
+ periods_attributes?: Array<(unknown | {
1164
+ min_minutes: number;
1165
+ } | {
1166
+ max_minutes: number;
1167
+ } | {
1168
+ num_competencies: number;
1169
+ } | {
1170
+ _destroy: true;
1171
+ }) & {
1172
+ /**
1173
+ * Unique identifier.
1174
+ */
1175
+ id?: string;
1176
+ /**
1177
+ * 0-indexed position of this period in the progression; omit to leave it unchanged.
1178
+ */
1179
+ period_number?: number;
1180
+ /**
1181
+ * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1182
+ */
1183
+ min_minutes?: number | null;
1184
+ /**
1185
+ * Upper bound on this period's duration, in minutes; informational only, not used to compute advancement; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1186
+ */
1187
+ max_minutes?: number | null;
1188
+ /**
1189
+ * Number of competencies required to complete this period; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1190
+ */
1191
+ num_competencies?: number | null;
1192
+ /**
1193
+ * Free-text description of this period; optional, null to clear.
1194
+ */
1195
+ description?: string | null;
1196
+ /**
1197
+ * Percentage of the journeyworker wage paid during this period (e.g. 75 for 75%); omit to leave it unchanged.
1198
+ */
1199
+ wage_percent?: number;
1200
+ /**
1201
+ * Wage rate for this period, in cents; omit to leave it unchanged.
1202
+ */
1203
+ wage_cents?: number;
1204
+ /**
1205
+ * Set to true, together with the period's id, to remove that period from the schedule.
1206
+ */
1207
+ _destroy?: boolean;
1208
+ }>;
1209
+ };
993
1210
  /**
994
1211
  * 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.
995
1212
  */
@@ -1087,161 +1304,391 @@ export type TimecodeResponseObject = {
1087
1304
  */
1088
1305
  updated_at: string;
1089
1306
  };
1090
- export type TimecodeHistoryCorrectionObject = {
1307
+ /**
1308
+ * 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].
1309
+ */
1310
+ export type PeopleEmploymentResponseObject = {
1091
1311
  /**
1092
- * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1312
+ * Version-stable identity for this employment stint.
1093
1313
  */
1094
- timekeeping_timecode_id: string;
1095
- name: string;
1096
- description: string | null;
1097
- description_is_required: boolean;
1098
- billable: boolean;
1099
- overtime_eligible: boolean;
1100
- unpaid: boolean;
1101
- holiday: boolean;
1102
- pto: boolean;
1103
- safety: boolean;
1104
- lunch_shortcut: boolean;
1105
- break_shortcut: boolean;
1106
- pwa: boolean;
1107
- rest_and_recovery: boolean;
1108
- incentive_pay_eligible: boolean;
1109
- restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1110
- default_for_company_id: string;
1111
- valid_from: string | null;
1112
- valid_to: string | null;
1113
- transaction_from: string;
1114
- transaction_to: string | null;
1115
- created_at: string;
1116
- updated_at: string;
1117
- };
1118
- export type TimecodeHistoryVersionObject = {
1314
+ id: string;
1119
1315
  /**
1120
- * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1316
+ * ID of the employed person.
1121
1317
  */
1122
- timekeeping_timecode_id: string;
1123
- name: string;
1124
- description: string | null;
1125
- description_is_required: boolean;
1126
- billable: boolean;
1127
- overtime_eligible: boolean;
1128
- unpaid: boolean;
1129
- holiday: boolean;
1130
- pto: boolean;
1131
- safety: boolean;
1132
- lunch_shortcut: boolean;
1133
- break_shortcut: boolean;
1134
- pwa: boolean;
1135
- rest_and_recovery: boolean;
1136
- incentive_pay_eligible: boolean;
1137
- restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1138
- default_for_company_id: string;
1139
- valid_from: string | null;
1140
- valid_to: string | null;
1141
- transaction_from: string;
1142
- transaction_to: string | null;
1143
- created_at: string;
1144
- updated_at: string;
1145
- version_status: 'scheduled' | 'current' | 'historical';
1146
- corrections: Array<TimecodeHistoryCorrectionObject>;
1147
- };
1148
- /**
1149
- * Request body for creating or updating a timecode; only `name` is required. On create, omitted fields take their model/DB defaults (noted per field). On update the request applies a bitemporal correction, so omitted fields keep the current version's values rather than reverting to defaults.
1150
- */
1151
- export type TimecodeParameters = {
1318
+ user_id: string;
1152
1319
  /**
1153
- * Human-readable name of the timecode. Required; must be unique within the company.
1320
+ * ID of the employing company; always the credential company.
1154
1321
  */
1155
- name: string;
1322
+ company_id: string;
1156
1323
  /**
1157
- * Optional free-text description; blank is stored as null.
1324
+ * Whether the relationship is EMPLOYEE or CONTRACTOR.
1158
1325
  */
1159
- description?: string | null;
1326
+ type: 'EMPLOYEE' | 'CONTRACTOR';
1160
1327
  /**
1161
- * When true, users must supply a description when logging time against this timecode. Defaults to false on create.
1328
+ * Employment title; null when unset.
1162
1329
  */
1163
- description_is_required?: boolean;
1330
+ title: string | null;
1164
1331
  /**
1165
- * Whether tracked time is billable to the customer. Defaults to true on create.
1332
+ * Whether pay is hourly or salary.
1166
1333
  */
1167
- billable?: boolean;
1334
+ compensation_type: 'hourly' | 'salary';
1168
1335
  /**
1169
- * Whether tracked time counts toward overtime. Defaults to true on create.
1336
+ * Payroll-system identifier; null when unset.
1170
1337
  */
1171
- overtime_eligible?: boolean;
1338
+ payroll_id: string | null;
1172
1339
  /**
1173
- * Whether tracked time is unpaid. Defaults to false on create.
1340
+ * Manager ID; null when unset.
1174
1341
  */
1175
- unpaid?: boolean;
1342
+ manager_user_id: string | null;
1176
1343
  /**
1177
- * Whether the timecode represents holiday time. Defaults to false on create.
1344
+ * Department ID; null when unset.
1178
1345
  */
1179
- holiday?: boolean;
1346
+ companies_department_id: string | null;
1180
1347
  /**
1181
- * Whether the timecode represents paid time off. Defaults to false on create.
1348
+ * Whether this employment is enrolled in time and attendance.
1182
1349
  */
1183
- pto?: boolean;
1350
+ enrolled_in_t_and_a: boolean;
1184
1351
  /**
1185
- * Whether the timecode represents a safety hour or safety-related task. Defaults to false on create.
1352
+ * Whether this employment is overtime eligible; null when unset.
1186
1353
  */
1187
- safety?: boolean;
1354
+ overtime_eligible: boolean | null;
1188
1355
  /**
1189
- * Marks this as the company's lunch-break shortcut; at most one per company. Defaults to false on create.
1356
+ * Overtime package ID; null when unset.
1190
1357
  */
1191
- lunch_shortcut?: boolean;
1358
+ overtime_package_id: string | null;
1192
1359
  /**
1193
- * Marks this as the company's rest-break shortcut; at most one per company. Defaults to false on create.
1360
+ * Pay-rate rules package ID; null when unset.
1194
1361
  */
1195
- break_shortcut?: boolean;
1362
+ pay_rates_rule_package_id: string | null;
1196
1363
  /**
1197
- * Whether tracked time is prevailing-wage (PWA) eligible. Defaults to true on create. Cannot be true together with restricted_to: non_job.
1364
+ * Pay-rates package ID; null when unset.
1198
1365
  */
1199
- pwa?: boolean;
1366
+ pay_rates_package_id: string | null;
1200
1367
  /**
1201
- * Whether the timecode represents rest-and-recovery time. Defaults to false on create.
1368
+ * Annual worked minutes; null when unset.
1202
1369
  */
1203
- rest_and_recovery?: boolean;
1370
+ worked_annual_minutes: number | null;
1204
1371
  /**
1205
- * Whether tracked time is eligible for incentive (holiday) pay. Defaults to false on create.
1372
+ * Annual paid-time-off minutes; null when unset.
1206
1373
  */
1207
- incentive_pay_eligible?: boolean;
1374
+ pto_annual_minutes: number | null;
1208
1375
  /**
1209
- * Where the timecode may be applied: none, job, non_job, or job_with_timecode. Defaults to none on create.
1376
+ * Annual holiday minutes; null when unset.
1210
1377
  */
1211
- restricted_to?: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1378
+ holiday_annual_minutes: number | null;
1212
1379
  /**
1213
- * When the new timecode becomes effective. Defaults to the time of the request. Accepted on create only.
1380
+ * Annual training minutes; null when unset.
1214
1381
  */
1215
- effective_date?: string;
1216
- };
1217
- export type TimecodeCorrectionParameters = {
1382
+ training_annual_minutes: number | null;
1218
1383
  /**
1219
- * Where the correction starts applying. Defaults to the addressed version's own start.
1384
+ * Hourly pay in cents as a decimal string; null when unset.
1220
1385
  */
1221
- effective_from?: string;
1386
+ hourly_rate_cents: string | null;
1222
1387
  /**
1223
- * Where the correction stops applying, after which the timeline resumes its previous values. Must fall strictly after `effective_from`; an empty or backwards span is refused with `422`. Omit to correct through to the end of the segment containing `effective_from`, leaving later changes standing.
1388
+ * Annual training amount in cents as a decimal string; null when unset.
1389
+ */
1390
+ training_annual_amount_cents: string | null;
1391
+ /**
1392
+ * Employer health amount in cents as a decimal string; null when unset.
1393
+ */
1394
+ employer_combined_health_amount_cents: string | null;
1395
+ /**
1396
+ * Employer savings amount in cents as a decimal string; null when unset.
1397
+ */
1398
+ employer_combined_savings_cents: string | null;
1399
+ /**
1400
+ * Currency from the company's current pay schedule, or the system default when it has none. It is company configuration context rather than historical employment data.
1401
+ */
1402
+ currency: string;
1403
+ /**
1404
+ * ISO8601 timestamp when this version starts; null for an unbounded lower bound.
1405
+ */
1406
+ valid_from: string | null;
1407
+ /**
1408
+ * ISO8601 timestamp when this version ends; null for an open-ended version.
1409
+ */
1410
+ valid_to: string | null;
1411
+ /**
1412
+ * ISO8601 timestamp when this stored version was created.
1413
+ */
1414
+ created_at: string;
1415
+ /**
1416
+ * ISO8601 timestamp when this stored version was last updated.
1417
+ */
1418
+ updated_at: string;
1419
+ };
1420
+ export type PeopleEmploymentHistoryCorrectionObject = {
1421
+ /**
1422
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1423
+ */
1424
+ people_employment_id: string;
1425
+ user_id: string;
1426
+ company_id: string;
1427
+ type: 'EMPLOYEE' | 'CONTRACTOR';
1428
+ title: string | null;
1429
+ compensation_type: 'hourly' | 'salary';
1430
+ payroll_id: string | null;
1431
+ manager_user_id: string | null;
1432
+ companies_department_id: string | null;
1433
+ enrolled_in_t_and_a: boolean;
1434
+ overtime_eligible: boolean | null;
1435
+ overtime_package_id: string | null;
1436
+ pay_rates_rule_package_id: string | null;
1437
+ pay_rates_package_id: string | null;
1438
+ worked_annual_minutes: number | null;
1439
+ pto_annual_minutes: number | null;
1440
+ holiday_annual_minutes: number | null;
1441
+ training_annual_minutes: number | null;
1442
+ hourly_rate_cents: string | null;
1443
+ training_annual_amount_cents: string | null;
1444
+ employer_combined_health_amount_cents: string | null;
1445
+ employer_combined_savings_cents: string | null;
1446
+ currency: string;
1447
+ valid_from: string | null;
1448
+ valid_to: string | null;
1449
+ created_at: string;
1450
+ updated_at: string;
1451
+ };
1452
+ export type PeopleEmploymentHistoryVersionObject = {
1453
+ /**
1454
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1455
+ */
1456
+ people_employment_id: string;
1457
+ user_id: string;
1458
+ company_id: string;
1459
+ type: 'EMPLOYEE' | 'CONTRACTOR';
1460
+ title: string | null;
1461
+ compensation_type: 'hourly' | 'salary';
1462
+ payroll_id: string | null;
1463
+ manager_user_id: string | null;
1464
+ companies_department_id: string | null;
1465
+ enrolled_in_t_and_a: boolean;
1466
+ overtime_eligible: boolean | null;
1467
+ overtime_package_id: string | null;
1468
+ pay_rates_rule_package_id: string | null;
1469
+ pay_rates_package_id: string | null;
1470
+ worked_annual_minutes: number | null;
1471
+ pto_annual_minutes: number | null;
1472
+ holiday_annual_minutes: number | null;
1473
+ training_annual_minutes: number | null;
1474
+ hourly_rate_cents: string | null;
1475
+ training_annual_amount_cents: string | null;
1476
+ employer_combined_health_amount_cents: string | null;
1477
+ employer_combined_savings_cents: string | null;
1478
+ currency: string;
1479
+ valid_from: string | null;
1480
+ valid_to: string | null;
1481
+ created_at: string;
1482
+ updated_at: string;
1483
+ version_status: 'scheduled' | 'current' | 'historical';
1484
+ corrections: Array<PeopleEmploymentHistoryCorrectionObject>;
1485
+ };
1486
+ export type TimecodeHistoryCorrectionObject = {
1487
+ /**
1488
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1489
+ */
1490
+ timekeeping_timecode_id: string;
1491
+ name: string;
1492
+ description: string | null;
1493
+ description_is_required: boolean;
1494
+ billable: boolean;
1495
+ overtime_eligible: boolean;
1496
+ unpaid: boolean;
1497
+ holiday: boolean;
1498
+ pto: boolean;
1499
+ safety: boolean;
1500
+ lunch_shortcut: boolean;
1501
+ break_shortcut: boolean;
1502
+ pwa: boolean;
1503
+ rest_and_recovery: boolean;
1504
+ incentive_pay_eligible: boolean;
1505
+ restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1506
+ default_for_company_id: string;
1507
+ valid_from: string | null;
1508
+ valid_to: string | null;
1509
+ transaction_from: string;
1510
+ transaction_to: string | null;
1511
+ created_at: string;
1512
+ updated_at: string;
1513
+ };
1514
+ export type TimecodeHistoryVersionObject = {
1515
+ /**
1516
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1517
+ */
1518
+ timekeeping_timecode_id: string;
1519
+ name: string;
1520
+ description: string | null;
1521
+ description_is_required: boolean;
1522
+ billable: boolean;
1523
+ overtime_eligible: boolean;
1524
+ unpaid: boolean;
1525
+ holiday: boolean;
1526
+ pto: boolean;
1527
+ safety: boolean;
1528
+ lunch_shortcut: boolean;
1529
+ break_shortcut: boolean;
1530
+ pwa: boolean;
1531
+ rest_and_recovery: boolean;
1532
+ incentive_pay_eligible: boolean;
1533
+ restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1534
+ default_for_company_id: string;
1535
+ valid_from: string | null;
1536
+ valid_to: string | null;
1537
+ transaction_from: string;
1538
+ transaction_to: string | null;
1539
+ created_at: string;
1540
+ updated_at: string;
1541
+ version_status: 'scheduled' | 'current' | 'historical';
1542
+ corrections: Array<TimecodeHistoryCorrectionObject>;
1543
+ };
1544
+ /**
1545
+ * Request body for creating or updating a timecode; only `name` is required. On create, omitted fields take their model/DB defaults (noted per field). On update the request applies a bitemporal correction, so omitted fields keep the current version's values rather than reverting to defaults.
1546
+ */
1547
+ export type TimecodeParameters = {
1548
+ /**
1549
+ * Human-readable name of the timecode. Required; must be unique within the company.
1550
+ */
1551
+ name: string;
1552
+ /**
1553
+ * Optional free-text description; blank is stored as null.
1554
+ */
1555
+ description?: string | null;
1556
+ /**
1557
+ * When true, users must supply a description when logging time against this timecode. Defaults to false on create.
1558
+ */
1559
+ description_is_required?: boolean;
1560
+ /**
1561
+ * Whether tracked time is billable to the customer. Defaults to true on create.
1562
+ */
1563
+ billable?: boolean;
1564
+ /**
1565
+ * Whether tracked time counts toward overtime. Defaults to true on create.
1566
+ */
1567
+ overtime_eligible?: boolean;
1568
+ /**
1569
+ * Whether tracked time is unpaid. Defaults to false on create.
1570
+ */
1571
+ unpaid?: boolean;
1572
+ /**
1573
+ * Whether the timecode represents holiday time. Defaults to false on create.
1574
+ */
1575
+ holiday?: boolean;
1576
+ /**
1577
+ * Whether the timecode represents paid time off. Defaults to false on create.
1578
+ */
1579
+ pto?: boolean;
1580
+ /**
1581
+ * Whether the timecode represents a safety hour or safety-related task. Defaults to false on create.
1582
+ */
1583
+ safety?: boolean;
1584
+ /**
1585
+ * Marks this as the company's lunch-break shortcut; at most one per company. Defaults to false on create.
1586
+ */
1587
+ lunch_shortcut?: boolean;
1588
+ /**
1589
+ * Marks this as the company's rest-break shortcut; at most one per company. Defaults to false on create.
1590
+ */
1591
+ break_shortcut?: boolean;
1592
+ /**
1593
+ * Whether tracked time is prevailing-wage (PWA) eligible. Defaults to true on create. Cannot be true together with restricted_to: non_job.
1594
+ */
1595
+ pwa?: boolean;
1596
+ /**
1597
+ * Whether the timecode represents rest-and-recovery time. Defaults to false on create.
1598
+ */
1599
+ rest_and_recovery?: boolean;
1600
+ /**
1601
+ * Whether tracked time is eligible for incentive (holiday) pay. Defaults to false on create.
1602
+ */
1603
+ incentive_pay_eligible?: boolean;
1604
+ /**
1605
+ * Where the timecode may be applied: none, job, non_job, or job_with_timecode. Defaults to none on create.
1606
+ */
1607
+ restricted_to?: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1608
+ /**
1609
+ * When the new timecode becomes effective. Defaults to the time of the request. Accepted on create only.
1610
+ */
1611
+ effective_date?: string;
1612
+ };
1613
+ /**
1614
+ * 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.
1615
+ */
1616
+ export type TimecodeCorrectionParameters = {
1617
+ /**
1618
+ * Where the correction starts applying. Defaults to the addressed version's own start.
1619
+ */
1620
+ effective_from?: string;
1621
+ /**
1622
+ * Where the correction stops applying; it must be later than `effective_from`. Omit to correct through the end of the segment containing `effective_from`, preserving later scheduled changes.
1623
+ */
1624
+ effective_to?: string;
1625
+ /**
1626
+ * Human-readable name of the timecode. Send it to change the name; omitted on update to retain the existing name.
1627
+ */
1628
+ name?: string;
1629
+ /**
1630
+ * Optional free-text description; `null` clears it and a blank value is stored as null.
1631
+ */
1632
+ description?: string | null;
1633
+ /**
1634
+ * Whether users must supply a description when logging time against this timecode.
1635
+ */
1636
+ description_is_required?: boolean;
1637
+ /**
1638
+ * Whether tracked time is billable to the customer.
1639
+ */
1640
+ billable?: boolean;
1641
+ /**
1642
+ * Whether tracked time counts toward overtime calculations.
1643
+ */
1644
+ overtime_eligible?: boolean;
1645
+ /**
1646
+ * Whether tracked time is unpaid.
1647
+ */
1648
+ unpaid?: boolean;
1649
+ /**
1650
+ * Whether the timecode represents holiday time.
1651
+ */
1652
+ holiday?: boolean;
1653
+ /**
1654
+ * Whether the timecode represents paid time off.
1655
+ */
1656
+ pto?: boolean;
1657
+ /**
1658
+ * Whether the timecode represents a safety hour or safety-related task.
1659
+ */
1660
+ safety?: boolean;
1661
+ /**
1662
+ * Whether this timecode is the company's lunch-break shortcut.
1663
+ */
1664
+ lunch_shortcut?: boolean;
1665
+ /**
1666
+ * Whether this timecode is the company's rest-break shortcut.
1667
+ */
1668
+ break_shortcut?: boolean;
1669
+ /**
1670
+ * Whether tracked time is eligible for prevailing-wage (PWA) calculations. Cannot be true when restricted_to is non_job.
1224
1671
  */
1225
- effective_to?: string;
1226
- name: string;
1227
- description?: string | null;
1228
- description_is_required?: boolean;
1229
- billable?: boolean;
1230
- overtime_eligible?: boolean;
1231
- unpaid?: boolean;
1232
- holiday?: boolean;
1233
- pto?: boolean;
1234
- safety?: boolean;
1235
- lunch_shortcut?: boolean;
1236
- break_shortcut?: boolean;
1237
1672
  pwa?: boolean;
1673
+ /**
1674
+ * Whether the timecode represents rest-and-recovery time.
1675
+ */
1238
1676
  rest_and_recovery?: boolean;
1677
+ /**
1678
+ * Whether tracked time is eligible for incentive (holiday) pay.
1679
+ */
1239
1680
  incentive_pay_eligible?: boolean;
1681
+ /**
1682
+ * Where the timecode may be applied: none, job, non_job, or job_with_timecode.
1683
+ */
1240
1684
  restricted_to?: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1241
1685
  };
1686
+ /**
1687
+ * 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.
1688
+ */
1242
1689
  export type TimecodeGenesisParameters = {
1243
1690
  /**
1244
- * The timeline's new start. Moving it earlier extends the first version back to it; moving it later drops the coverage before it, and is refused with `422` when a time entry recorded against this timecode starts earlier, or when the new start would leave no coverage at all.
1691
+ * The new beginning of the timecode's valid-time timeline. Required; the shift is refused if it would orphan recorded time or leave no coverage.
1245
1692
  */
1246
1693
  effective_date: string;
1247
1694
  };
@@ -1587,11 +2034,11 @@ export type PerDiemResponseObject = {
1587
2034
  updated_at: string;
1588
2035
  };
1589
2036
  /**
1590
- * Fields for creating or updating a per diem.
2037
+ * Request body for creating a per diem. name, currency, and rate_cents are required.
1591
2038
  */
1592
2039
  export type PerDiemParameters = {
1593
2040
  /**
1594
- * Human-readable name, e.g. "Travel Meals".
2041
+ * Human-readable name, e.g. "Travel Meals". Required.
1595
2042
  */
1596
2043
  name: string;
1597
2044
  /**
@@ -1599,11 +2046,11 @@ export type PerDiemParameters = {
1599
2046
  */
1600
2047
  description?: string | null;
1601
2048
  /**
1602
- * Allowance amount in cents, as a string (e.g. "7500" is $75.00).
2049
+ * Allowance amount in cents, as a string (e.g. "7500" is $75.00). Required.
1603
2050
  */
1604
2051
  rate_cents: string;
1605
2052
  /**
1606
- * ISO 4217 currency code, e.g. "USD".
2053
+ * ISO 4217 currency code, e.g. "USD". Required.
1607
2054
  */
1608
2055
  currency: string;
1609
2056
  /**
@@ -1628,13 +2075,54 @@ export type PerDiemParameters = {
1628
2075
  timekeeping_timecode_ids?: Array<string>;
1629
2076
  };
1630
2077
  /**
1631
- * The product's filled attribute values — one entry per attribute assigned to its category.
2078
+ * Request body for updating a per diem. Send only the fields to change.
1632
2079
  */
1633
- export type AssetsAttributeValueObjects = Array<{
2080
+ export type PerDiemUpdateParameters = {
1634
2081
  /**
1635
- * ID of the attribute definition.
2082
+ * Human-readable name, e.g. "Travel Meals". Omit to leave it unchanged.
1636
2083
  */
1637
- assets_attribute_id: string;
2084
+ name?: string;
2085
+ /**
2086
+ * Optional free-text notes; omit to leave them unchanged, or send null to clear them.
2087
+ */
2088
+ description?: string | null;
2089
+ /**
2090
+ * Allowance amount in cents, as a string (e.g. "7500" is $75.00). Omit to leave it unchanged.
2091
+ */
2092
+ rate_cents?: string;
2093
+ /**
2094
+ * ISO 4217 currency code, e.g. "USD". Omit to leave it unchanged.
2095
+ */
2096
+ currency?: string;
2097
+ /**
2098
+ * Whether the allowance is treated as taxable income. Omit to leave it unchanged.
2099
+ */
2100
+ taxable?: boolean;
2101
+ /**
2102
+ * Whether this should become the company default per diem. Omit to leave it unchanged.
2103
+ */
2104
+ default?: boolean | null;
2105
+ /**
2106
+ * Whether the per diem is active and available to use. Omit to leave it unchanged.
2107
+ */
2108
+ active?: boolean | null;
2109
+ /**
2110
+ * Complete set of work type IDs this per diem applies to. Omit to leave it unchanged.
2111
+ */
2112
+ work_type_ids?: Array<string>;
2113
+ /**
2114
+ * Complete set of timecode IDs this per diem applies to. Omit to leave it unchanged.
2115
+ */
2116
+ timekeeping_timecode_ids?: Array<string>;
2117
+ };
2118
+ /**
2119
+ * The product's filled attribute values — one entry per attribute assigned to its category.
2120
+ */
2121
+ export type AssetsAttributeValueObjects = Array<{
2122
+ /**
2123
+ * ID of the attribute definition.
2124
+ */
2125
+ assets_attribute_id: string;
1638
2126
  /**
1639
2127
  * The entered value for a non-select attribute (text, number, date, or boolean as a string); null for a select attribute or when unfilled.
1640
2128
  */
@@ -1724,6 +2212,40 @@ export type AssetsAttributeParameters = {
1724
2212
  _destroy?: boolean;
1725
2213
  }>;
1726
2214
  };
2215
+ /**
2216
+ * 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.
2217
+ */
2218
+ export type AssetsAttributeUpdateParameters = {
2219
+ /**
2220
+ * The attribute's name.
2221
+ */
2222
+ name?: string;
2223
+ /**
2224
+ * Kind of value the attribute holds: one of text, number, date, boolean, or select. A select attribute takes its value from a predefined option; the others store a typed literal.
2225
+ */
2226
+ data_type?: 'text' | 'number' | 'date' | 'boolean' | 'select';
2227
+ /**
2228
+ * Choices for a select attribute, ignored for other data types. Include id to update an existing option, omit id to add one, or set _destroy to remove one.
2229
+ */
2230
+ options?: Array<{
2231
+ /**
2232
+ * Unique identifier.
2233
+ */
2234
+ id?: string;
2235
+ /**
2236
+ * The option's label.
2237
+ */
2238
+ value?: string;
2239
+ /**
2240
+ * Display order within the list (0-based).
2241
+ */
2242
+ position?: number;
2243
+ /**
2244
+ * Set true to remove this entry.
2245
+ */
2246
+ _destroy?: boolean;
2247
+ }>;
2248
+ };
1727
2249
  /**
1728
2250
  * 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.
1729
2251
  */
@@ -1824,6 +2346,48 @@ export type AssetsCategoryParameters = {
1824
2346
  _destroy?: boolean;
1825
2347
  }>;
1826
2348
  };
2349
+ /**
2350
+ * Update a category. All fields are optional — send only what changes. `category_attributes` sets this category's direct attribute assignments.
2351
+ */
2352
+ export type AssetsCategoryUpdateParameters = {
2353
+ /**
2354
+ * The category's name.
2355
+ */
2356
+ name?: string;
2357
+ /**
2358
+ * ID of the parent category; null for a root category.
2359
+ */
2360
+ parent_id?: string | null;
2361
+ /**
2362
+ * Attribute assignments for this category. Include id to update an existing assignment, omit id to add one, or set _destroy to remove one.
2363
+ */
2364
+ category_attributes?: Array<{
2365
+ /**
2366
+ * Unique identifier.
2367
+ */
2368
+ id?: string;
2369
+ /**
2370
+ * ID of the attribute definition.
2371
+ */
2372
+ assets_attribute_id: string;
2373
+ /**
2374
+ * Where this attribute is filled in for the category: product (on the catalog product) or item (on each individual item).
2375
+ */
2376
+ fillable_on: 'product' | 'item';
2377
+ /**
2378
+ * Whether a value for this attribute must be provided.
2379
+ */
2380
+ required?: boolean;
2381
+ /**
2382
+ * Display order within the list (0-based).
2383
+ */
2384
+ position?: number;
2385
+ /**
2386
+ * Set true to remove this entry.
2387
+ */
2388
+ _destroy?: boolean;
2389
+ }>;
2390
+ };
1827
2391
  /**
1828
2392
  * A company department that workers can be assigned to.
1829
2393
  */
@@ -1854,7 +2418,7 @@ export type DepartmentResponseObject = {
1854
2418
  updated_at: string;
1855
2419
  };
1856
2420
  /**
1857
- * Request body for creating or updating a department.
2421
+ * Request body for creating a department.
1858
2422
  */
1859
2423
  export type DepartmentParameters = {
1860
2424
  /**
@@ -1866,6 +2430,19 @@ export type DepartmentParameters = {
1866
2430
  */
1867
2431
  description?: string | null;
1868
2432
  };
2433
+ /**
2434
+ * Request body for updating a department. Send only the fields to change.
2435
+ */
2436
+ export type DepartmentUpdateParameters = {
2437
+ /**
2438
+ * Department name; unique within the company. Omit to leave it unchanged.
2439
+ */
2440
+ name?: string;
2441
+ /**
2442
+ * Optional free-text description; null clears it.
2443
+ */
2444
+ description?: string | null;
2445
+ };
1869
2446
  /**
1870
2447
  * 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.
1871
2448
  */
@@ -1912,7 +2489,7 @@ export type TimeCardPerDiemResponseObject = {
1912
2489
  updated_at: string;
1913
2490
  };
1914
2491
  /**
1915
- * 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.
2492
+ * 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.
1916
2493
  */
1917
2494
  export type TimeCardPerDiemParameters = {
1918
2495
  /**
@@ -1924,9 +2501,26 @@ export type TimeCardPerDiemParameters = {
1924
2501
  */
1925
2502
  approver_user_id: string;
1926
2503
  /**
1927
- * ID of the catalog per diem to record; its rate, currency, and taxable flag are copied onto the entry. Required.
2504
+ * Optional ID of the catalog per diem to record; its rate, currency, and taxable flag are copied onto the entry.
2505
+ */
2506
+ per_diem_id?: string;
2507
+ };
2508
+ /**
2509
+ * 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.
2510
+ */
2511
+ export type TimeCardPerDiemUpdateParameters = {
2512
+ /**
2513
+ * Calendar date (YYYY-MM-DD) the per diem applies to; must fall within the card's pay period. Omit to leave it unchanged.
2514
+ */
2515
+ date?: string;
2516
+ /**
2517
+ * ID of the user recorded as approving the per diem. Omit to leave it unchanged.
2518
+ */
2519
+ approver_user_id?: string;
2520
+ /**
2521
+ * ID of the catalog per diem to record; its rate, currency, and taxable flag are copied onto the entry. Omit to leave it unchanged.
1928
2522
  */
1929
- per_diem_id: string;
2523
+ per_diem_id?: string;
1930
2524
  };
1931
2525
  /**
1932
2526
  * 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.
@@ -2177,7 +2771,7 @@ export type PayPeriodConfigHistoryVersionObject = {
2177
2771
  corrections: Array<PayPeriodConfigHistoryCorrectionObject>;
2178
2772
  };
2179
2773
  /**
2180
- * 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).
2774
+ * 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.
2181
2775
  */
2182
2776
  export type HolidayParameters = {
2183
2777
  /**
@@ -2229,6 +2823,59 @@ export type HolidayParameters = {
2229
2823
  */
2230
2824
  count_hours_for_overtime?: boolean;
2231
2825
  };
2826
+ /**
2827
+ * Update a holiday on a pay schedule. Send only the fields to change; the resulting fixed or floating definition must remain complete.
2828
+ */
2829
+ export type HolidayUpdateParameters = {
2830
+ /**
2831
+ * The holiday's human-readable label (e.g. "Thanksgiving"). Omit to leave it unchanged.
2832
+ */
2833
+ name?: string;
2834
+ /**
2835
+ * Calendar date (YYYY-MM-DD) the holiday falls on. Omit to let the definition calculate it or to leave the calculated date unchanged.
2836
+ */
2837
+ date?: string;
2838
+ /**
2839
+ * `fixed` holidays use month + mday; `floating` holidays use month + week + wday. Omit to leave it unchanged.
2840
+ */
2841
+ holiday_type?: 'fixed' | 'floating';
2842
+ /**
2843
+ * Month 1-12. Omit to leave it unchanged.
2844
+ */
2845
+ month?: number;
2846
+ /**
2847
+ * Day of month for a fixed holiday. Omit to leave it unchanged.
2848
+ */
2849
+ mday?: number;
2850
+ /**
2851
+ * Weekday 0-6 (Sunday=0) for a floating holiday. Omit to leave it unchanged.
2852
+ */
2853
+ wday?: number;
2854
+ /**
2855
+ * Nth weekday of the month for a floating holiday. Omit to leave it unchanged.
2856
+ */
2857
+ week?: number;
2858
+ /**
2859
+ * Anchor year for date calculation. Omit to leave it unchanged.
2860
+ */
2861
+ year?: number;
2862
+ /**
2863
+ * Observe on the nearest weekday when it falls on a weekend. Omit to leave it unchanged.
2864
+ */
2865
+ move_to_weekday?: boolean;
2866
+ /**
2867
+ * Whether overtime rules targeting holidays automatically apply. Omit to leave it unchanged.
2868
+ */
2869
+ overtime?: boolean;
2870
+ /**
2871
+ * Whether this is a banking holiday. Omit to leave it unchanged.
2872
+ */
2873
+ banking?: boolean;
2874
+ /**
2875
+ * Whether worked hours count toward overtime; false unless overtime is true. Omit to leave it unchanged.
2876
+ */
2877
+ count_hours_for_overtime?: boolean;
2878
+ };
2232
2879
  /**
2233
2880
  * 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.
2234
2881
  */
@@ -2331,17 +2978,102 @@ export type PwaCompanyUserDetailsResponseObject = {
2331
2978
  or_boli_race: Array<'american_indian_or_alaska_native' | 'asian' | 'hispanic_or_latino' | 'black_or_african_american' | 'native_hawaiian_or_pacific_islander' | 'white' | 'portuguese_or_brazilian'> | null;
2332
2979
  };
2333
2980
  /**
2334
- * 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.
2981
+ * 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.
2335
2982
  */
2336
2983
  export type PwaCompanyUserDetailsParameters = {
2337
2984
  /**
2338
- * ID of the company the compliance details belong to; required on create, ignored on update (the company cannot be changed afterward).
2985
+ * ID of the worker the compliance details belong to. Required on create; rejected on update — the details cannot be moved to another worker, so PATCH refuses the key rather than accepting and ignoring it.
2339
2986
  */
2340
- company_id: string;
2987
+ user_id: string;
2341
2988
  /**
2342
- * ID of the worker the compliance details belong to; required on create, ignored on update (the worker cannot be changed afterward).
2989
+ * Home street address line 1, for certified-payroll reporting; required together with city, state, and zip when any home-address field is set.
2343
2990
  */
2344
- user_id: string;
2991
+ address1?: string | null;
2992
+ /**
2993
+ * Home street address line 2.
2994
+ */
2995
+ address2?: string | null;
2996
+ /**
2997
+ * Home address city; required together with address1 when any home-address field is set.
2998
+ */
2999
+ city?: string | null;
3000
+ /**
3001
+ * Home address two-letter US state code; required together with address1 when any home-address field is set.
3002
+ */
3003
+ state?: string | null;
3004
+ /**
3005
+ * Home address ZIP code; required together with address1 when any home-address field is set.
3006
+ */
3007
+ zip?: string | null;
3008
+ /**
3009
+ * Worker race for demographic reporting, as an array of codes (e.g. CAUCASIAN, AFRICAN_AMERICAN, ASIAN, NATIVE_AMERICAN, OTHER, NOT_SPECIFIED).
3010
+ */
3011
+ race?: Array<'AFRICAN_AMERICAN' | 'ASIAN' | 'CAUCASIAN' | 'NATIVE_AMERICAN' | 'NOT_SPECIFIED' | 'OTHER'> | null;
3012
+ /**
3013
+ * Worker sex for demographic reporting: one of female, male, non_binary, or not_specified.
3014
+ */
3015
+ sex?: 'female' | 'male' | 'non_binary' | 'not_specified' | null;
3016
+ /**
3017
+ * Local business license number, when a jurisdiction requires it on certified payroll.
3018
+ */
3019
+ local_business_license?: string | null;
3020
+ /**
3021
+ * Two-letter US state that issued the worker's driver's license.
3022
+ */
3023
+ drivers_license_state?: string | null;
3024
+ /**
3025
+ * Worker's driver's license number (stored encrypted).
3026
+ */
3027
+ drivers_license_number?: string | null;
3028
+ /**
3029
+ * Worker Social Security Number (nine digits, stored encrypted), required on certified payroll in some jurisdictions.
3030
+ */
3031
+ ssn?: string | null;
3032
+ /**
3033
+ * Veteran status per US Census definitions: one of protected_veteran, not_protected_veteran, reserves, guard, or not_specified.
3034
+ */
3035
+ veteran_status?: 'protected_veteran' | 'not_protected_veteran' | 'reserves' | 'guard' | 'not_specified' | null;
3036
+ /**
3037
+ * Whether the worker is of Hispanic origin per US Census definitions: one of yes, no, or not_specified.
3038
+ */
3039
+ hispanic_origin?: 'yes' | 'no' | 'not_specified' | null;
3040
+ /**
3041
+ * Number of payroll withholding exemptions reported on California DIR certified payroll (eCPR), 0 to 99.
3042
+ */
3043
+ ca_dir_withholding_exemptions?: number | null;
3044
+ /**
3045
+ * Whether the worker has a disability, for demographic reporting.
3046
+ */
3047
+ disabled?: boolean;
3048
+ /**
3049
+ * Illinois DOL race classification for Illinois prevailing-wage reporting, as a single code (e.g. white, black, hispanic_or_latino). See the schema enum for the full set.
3050
+ */
3051
+ il_dol_race?: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other' | null;
3052
+ /**
3053
+ * Illinois SHINES employment type: one of part_time, full_time, seasonal_temporary, or independent_contract.
3054
+ */
3055
+ il_shines_employment_type?: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract' | null;
3056
+ /**
3057
+ * Illinois SHINES Equity Eligible Person (EEP) qualifiers for the worker, as an array of codes (e.g. eep_program_completed, foster_care, formerly_incarcerated). See the schema enum for the full set.
3058
+ */
3059
+ il_shines_eep_qualifiers?: Array<'eep_program_completed' | 'foster_care' | 'formerly_incarcerated' | 'equity_investment_eligible_community' | 'self_registered_or_unknown'> | null;
3060
+ /**
3061
+ * Illinois SHINES workforce-program participation, as an array of program codes (e.g. solar_training_pipeline_program, craft_apprenticeship_program). See the schema enum for the full set.
3062
+ */
3063
+ il_shines_other_programs?: Array<'solar_training_pipeline_program' | 'craft_apprenticeship_program' | 'multi_cultural_jobs_program' | 'clean_jobs_workforce_network_program' | 'illinois_climate_works_prep_apprenticeship_program' | 'returning_residents_clean_jobs_training_program' | 'other'> | null;
3064
+ /**
3065
+ * Oregon BOLI workweek schedule: five_eight (five eight-hour days) or four_ten (four ten-hour days).
3066
+ */
3067
+ or_boli_schedule_type?: 'five_eight' | 'four_ten' | null;
3068
+ /**
3069
+ * Oregon BOLI race classification, as an array of codes (e.g. white, asian, hispanic_or_latino, black_or_african_american).
3070
+ */
3071
+ or_boli_race?: Array<'american_indian_or_alaska_native' | 'asian' | 'hispanic_or_latino' | 'black_or_african_american' | 'native_hawaiian_or_pacific_islander' | 'white' | 'portuguese_or_brazilian'> | null;
3072
+ };
3073
+ /**
3074
+ * 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.
3075
+ */
3076
+ export type PwaCompanyUserDetailsUpdateParameters = {
2345
3077
  /**
2346
3078
  * Home street address line 1, for certified-payroll reporting; required together with city, state, and zip when any home-address field is set.
2347
3079
  */
@@ -2729,6 +3461,10 @@ export type JobResponseObject = {
2729
3461
  * Whether time entries on this job are capped at one feature allocation.
2730
3462
  */
2731
3463
  max_one_feature_allocation: boolean;
3464
+ /**
3465
+ * How this job records production completions: one of none (opts out), feature (per site feature, e.g. a turbine), or quantity (a unit count, e.g. modules). Locked once any completion exists.
3466
+ */
3467
+ production_tracking_kind: 'none' | 'feature' | 'quantity';
2732
3468
  [key: string]: unknown;
2733
3469
  };
2734
3470
  /**
@@ -2889,6 +3625,10 @@ export type JobParameters = {
2889
3625
  * Whether time entries on this job are capped at one feature allocation; null when unset.
2890
3626
  */
2891
3627
  max_one_feature_allocation?: boolean | null;
3628
+ /**
3629
+ * How this job records production completions: one of none (opts out), feature (per site feature, e.g. a turbine), or quantity (a unit count, e.g. modules). Locked once any completion exists. Omit the field to leave the current value unchanged.
3630
+ */
3631
+ production_tracking_kind?: 'none' | 'feature' | 'quantity';
2892
3632
  /**
2893
3633
  * Work types (trade or scope categories) to associate with the job; null when none.
2894
3634
  */
@@ -3087,7 +3827,7 @@ export type GroupResponseObject = {
3087
3827
  updated_at: string;
3088
3828
  };
3089
3829
  /**
3090
- * Request body for creating or updating a group.
3830
+ * Request body for creating a group.
3091
3831
  */
3092
3832
  export type GroupParameters = {
3093
3833
  /**
@@ -3095,6 +3835,15 @@ export type GroupParameters = {
3095
3835
  */
3096
3836
  name: string;
3097
3837
  };
3838
+ /**
3839
+ * Request body for updating a group. Send only the fields to change.
3840
+ */
3841
+ export type GroupUpdateParameters = {
3842
+ /**
3843
+ * The group's display name; unique within the company. Omit to leave it unchanged.
3844
+ */
3845
+ name?: string;
3846
+ };
3098
3847
  /**
3099
3848
  * A worker as your company sees them: the cross-company person merged with their employment record at your company (title, pay, benefits, and accruals), their roles at your company, and optional prevailing-wage compliance details. Your company sees everyone it employs, everyone it has granted a role, and everyone it has invited, which is the same set the web app shows. A role holder or an invitee your company does not employ has no employment record to merge, so the employment fields (employment_id through employment_window, plus manager_user_id) are null for them, no employment custom fields are published for them, and employment_state reads none. There is no delete — removing a worker terminates their employment at the company (see the user-company endpoints), which sets termination_date and drops them from the default list.
3100
3849
  */
@@ -4250,7 +4999,7 @@ export type PositionFunctionResponseObject = {
4250
4999
  updated_at: string;
4251
5000
  };
4252
5001
  /**
4253
- * Request body for creating or updating a position function.
5002
+ * Request body for creating a position function.
4254
5003
  */
4255
5004
  export type PositionFunctionParameters = {
4256
5005
  /**
@@ -4262,6 +5011,19 @@ export type PositionFunctionParameters = {
4262
5011
  */
4263
5012
  description: string;
4264
5013
  };
5014
+ /**
5015
+ * Request body for updating a position function. Send only the fields to change.
5016
+ */
5017
+ export type PositionFunctionUpdateParameters = {
5018
+ /**
5019
+ * The function name (e.g. "Electrician", "Foreman"). Omit to leave it unchanged.
5020
+ */
5021
+ value?: string;
5022
+ /**
5023
+ * What the function covers. Omit to leave it unchanged.
5024
+ */
5025
+ description?: string;
5026
+ };
4265
5027
  export type CompanyResponseObject = {
4266
5028
  id: string;
4267
5029
  name: string;
@@ -5341,6 +6103,54 @@ export type TimeCardsResponseObject = {
5341
6103
  */
5342
6104
  data: Array<TimeCardResponseObject>;
5343
6105
  };
6106
+ /**
6107
+ * 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.
6108
+ */
6109
+ export type TimeSessionResponseObject = {
6110
+ /**
6111
+ * Unique identifier.
6112
+ */
6113
+ id: string;
6114
+ /**
6115
+ * ID of the worker (user) who clocked in.
6116
+ */
6117
+ user_id: string;
6118
+ /**
6119
+ * ID of the job the worker clocked in against; null when they clocked in without a job.
6120
+ */
6121
+ job_id: string | null;
6122
+ /**
6123
+ * ID of the timecode the worker clocked in under; null when none was chosen.
6124
+ */
6125
+ timekeeping_timecode_id: string | null;
6126
+ /**
6127
+ * Whether the worker is still clocked in on this session. `false` once they clock out; the session keeps its start_time as history.
6128
+ */
6129
+ active: boolean;
6130
+ /**
6131
+ * When the worker clocked in (ISO 8601).
6132
+ */
6133
+ start_time: string;
6134
+ /**
6135
+ * When the record was created (ISO 8601).
6136
+ */
6137
+ created_at: string;
6138
+ /**
6139
+ * When the record was last updated (ISO 8601).
6140
+ */
6141
+ updated_at: string;
6142
+ };
6143
+ /**
6144
+ * A page of time sessions, with pagination metadata and navigation links.
6145
+ */
6146
+ export type TimeSessionsResponseObject = {
6147
+ meta: Meta;
6148
+ links: Links;
6149
+ /**
6150
+ * The page of time sessions.
6151
+ */
6152
+ data: Array<TimeSessionResponseObject>;
6153
+ };
5344
6154
  /**
5345
6155
  * Request body for locking or unlocking a time card.
5346
6156
  */
@@ -5480,7 +6290,7 @@ export type PayrollFringeBenefitPlanResponseObject = {
5480
6290
  updated_at: string;
5481
6291
  };
5482
6292
  /**
5483
- * Request body for creating or updating a fringe-benefit plan. timekeeping_pay_period_config_id, name, plan_number, and benefit_category are required.
6293
+ * Request body for creating a fringe-benefit plan. timekeeping_pay_period_config_id, name, plan_number, and benefit_category are required.
5484
6294
  */
5485
6295
  export type PayrollFringeBenefitPlanParameters = {
5486
6296
  /**
@@ -5540,6 +6350,67 @@ export type PayrollFringeBenefitPlanParameters = {
5540
6350
  */
5541
6351
  il_admin_name?: string | null;
5542
6352
  };
6353
+ /**
6354
+ * Request body for updating a fringe-benefit plan. Send only the fields to change.
6355
+ */
6356
+ export type PayrollFringeBenefitPlanUpdateParameters = {
6357
+ /**
6358
+ * ID of the pay schedule that owns the plan, stable across all of its versions. Omit to leave it unchanged.
6359
+ */
6360
+ timekeeping_pay_period_config_id?: string;
6361
+ /**
6362
+ * Human-readable name of the plan. Omit to leave it unchanged.
6363
+ */
6364
+ name?: string;
6365
+ /**
6366
+ * Three-digit plan number, reported together with the company EIN. Omit to leave it unchanged.
6367
+ */
6368
+ plan_number?: string;
6369
+ /**
6370
+ * Whether contributions are paid into a bona-fide benefit plan. Omit to leave it unchanged.
6371
+ */
6372
+ funded?: boolean;
6373
+ /**
6374
+ * Which employer contribution the plan covers. Omit to leave it unchanged.
6375
+ */
6376
+ benefit_category?: 'employer_combined_health' | 'employer_combined_savings' | 'employer_combined_holiday_pto' | 'employer_training' | 'employer_other_contributions';
6377
+ /**
6378
+ * Whether this is a jointly-managed (Taft-Hartley) fund. Omit to leave it unchanged.
6379
+ */
6380
+ il_jointly_managed?: boolean;
6381
+ /**
6382
+ * Illinois certified-payroll fund name; omit to leave it unchanged. The resulting value must be present for a non-jointly-managed Illinois plan; send null only when it is not required.
6383
+ */
6384
+ il_fund_name?: string | null;
6385
+ /**
6386
+ * Illinois fund street address line 1; omit to leave it unchanged. The resulting value must be present for a non-jointly-managed Illinois plan; send null only when it is not required.
6387
+ */
6388
+ il_fund_address1?: string | null;
6389
+ /**
6390
+ * Illinois fund street address line 2; omit to leave it unchanged, or send null to clear it.
6391
+ */
6392
+ il_fund_address2?: string | null;
6393
+ /**
6394
+ * Illinois fund city; omit to leave it unchanged. The resulting value must be present for a non-jointly-managed Illinois plan; send null only when it is not required.
6395
+ */
6396
+ il_fund_city?: string | null;
6397
+ /**
6398
+ * Illinois fund two-letter US state code; omit to leave it unchanged. The resulting value must be present for a non-jointly-managed Illinois plan; send null only when it is not required.
6399
+ */
6400
+ il_fund_state?: string | null;
6401
+ /**
6402
+ * Illinois fund ZIP code; omit to leave it unchanged. The resulting value must be present for a non-jointly-managed Illinois plan; send null only when it is not required.
6403
+ */
6404
+ il_fund_zip?: string | null;
6405
+ /**
6406
+ * Illinois fund sponsor name; omit to leave it unchanged, or send null to clear it.
6407
+ */
6408
+ il_sponsor_name?: string | null;
6409
+ /**
6410
+ * Illinois fund administrator name; omit to leave it unchanged. The resulting value must be present for a non-jointly-managed Illinois plan; send null only when it is not required.
6411
+ */
6412
+ il_admin_name?: string | null;
6413
+ };
5543
6414
  /**
5544
6415
  * 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).
5545
6416
  */
@@ -5701,11 +6572,11 @@ export type PayrollRunResponseObject = {
5701
6572
  updated_at: string;
5702
6573
  };
5703
6574
  /**
5704
- * 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.
6575
+ * 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.
5705
6576
  */
5706
6577
  export type PayrollRunParameters = {
5707
6578
  /**
5708
- * ID of the company the run belongs to. Required.
6579
+ * ID of the company the run belongs to. Required on create; rejected on update — a run cannot be moved to another company, so PATCH refuses the key rather than accepting and ignoring it.
5709
6580
  */
5710
6581
  company_id: string;
5711
6582
  /**
@@ -5729,6 +6600,31 @@ export type PayrollRunParameters = {
5729
6600
  */
5730
6601
  external_id?: string | null;
5731
6602
  };
6603
+ /**
6604
+ * 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.
6605
+ */
6606
+ export type PayrollRunUpdateParameters = {
6607
+ /**
6608
+ * ID of the pay period the run is for; required for an on-cycle run, omitted for an off-cycle run.
6609
+ */
6610
+ timekeeping_pay_period_id?: string | null;
6611
+ /**
6612
+ * ID of the payroll-system credential that sourced the run.
6613
+ */
6614
+ payrolls_credential_id?: string | null;
6615
+ /**
6616
+ * Kind of payroll run (uppercase): one of CORRECTION, ON_CYCLE, OFF_CYCLE, RECONCILIATION, SIGN_ON_BONUS, or TERMINATION.
6617
+ */
6618
+ run_type?: 'CORRECTION' | 'ON_CYCLE' | 'OFF_CYCLE' | 'RECONCILIATION' | 'SIGN_ON_BONUS' | 'TERMINATION';
6619
+ /**
6620
+ * Check date of the run (YYYY-MM-DD). For a self-reported run (off-cycle with no payrolls_credential_id), at most 3 days after the current date — later dates fail validation.
6621
+ */
6622
+ run_date?: string;
6623
+ /**
6624
+ * ID of the run in the external payroll system.
6625
+ */
6626
+ external_id?: string | null;
6627
+ };
5732
6628
  /**
5733
6629
  * 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.
5734
6630
  */
@@ -5883,35 +6779,35 @@ export type ProjectParameters = {
5883
6779
  */
5884
6780
  region?: string | null;
5885
6781
  /**
5886
- * Gates IRA tax-credit checks. Forced to `false` while `federal_pwa_mode` is `none`.
6782
+ * Gates IRA tax-credit checks. Applies only while `federal_pwa_mode` is not `none` — sending `true` or null while federal tracking is off returns 422, and switching to `none` sets it back to `false`.
5887
6783
  */
5888
6784
  asset_owner?: boolean;
5889
6785
  /**
5890
- * Name of the project administrator; ignored while federal_pwa_mode is `none`.
6786
+ * Name of the project administrator. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5891
6787
  */
5892
6788
  administrator_name?: string | null;
5893
6789
  /**
5894
- * Email of the project administrator; ignored while federal_pwa_mode is `none`.
6790
+ * Email of the project administrator. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5895
6791
  */
5896
6792
  administrator_email?: string | null;
5897
6793
  /**
5898
- * Phone of the project administrator, normalized to E.164; ignored while federal_pwa_mode is `none`.
6794
+ * Phone of the project administrator, normalized to E.164. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5899
6795
  */
5900
6796
  administrator_phone?: string | null;
5901
6797
  /**
5902
- * Decimal string (e.g. "5000.0"). Ignored while `federal_pwa_mode` is `none`, as are the administrator fields and IRA dates.
6798
+ * Decimal string (e.g. "5000.0"). Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5903
6799
  */
5904
6800
  budget?: string;
5905
6801
  /**
5906
- * Prevailing-wage lock-in date as an ISO8601 date; ignored while federal_pwa_mode is `none`.
6802
+ * Prevailing-wage lock-in date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5907
6803
  */
5908
6804
  prevailing_wage_lock_in_date?: string | null;
5909
6805
  /**
5910
- * IRA beginning-of-construction date as an ISO8601 date; ignored while federal_pwa_mode is `none`.
6806
+ * IRA beginning-of-construction date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5911
6807
  */
5912
6808
  beginning_of_construction_date?: string | null;
5913
6809
  /**
5914
- * IRA placed-in-service date as an ISO8601 date; ignored while federal_pwa_mode is `none`.
6810
+ * IRA placed-in-service date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
5915
6811
  */
5916
6812
  placed_in_service_date?: string | null;
5917
6813
  };
@@ -5933,7 +6829,7 @@ export type SiteCheckInResponseObject = {
5933
6829
  /**
5934
6830
  * How the check-in was captured.
5935
6831
  */
5936
- source: 'manual' | 'auto';
6832
+ source: 'manual' | 'auto' | 'public_form';
5937
6833
  nerc_check_in: boolean;
5938
6834
  cip_exceptional: boolean;
5939
6835
  created_by_user_id: string | null;
@@ -6530,7 +7426,7 @@ export type PaystubResponseObject = {
6530
7426
  updated_at: string;
6531
7427
  };
6532
7428
  /**
6533
- * 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.
7429
+ * 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.
6534
7430
  */
6535
7431
  export type PaystubParameters = {
6536
7432
  /**
@@ -6554,6 +7450,31 @@ export type PaystubParameters = {
6554
7450
  */
6555
7451
  check_number?: string | null;
6556
7452
  };
7453
+ /**
7454
+ * Request body for updating a paystub. Send only the fields to change; the resulting paystub must still match its payroll run type.
7455
+ */
7456
+ export type PaystubUpdateParameters = {
7457
+ /**
7458
+ * ID of the payroll run this paystub belongs to. Omit to leave it unchanged.
7459
+ */
7460
+ payrolls_payroll_run_id?: string;
7461
+ /**
7462
+ * ID of the worker who received the payment. Omit to leave it unchanged.
7463
+ */
7464
+ user_id?: string;
7465
+ /**
7466
+ * ID of the time card this paystub is for. Omit to leave it unchanged; the resulting paystub must have one for an on-cycle run and must not have one for an off-cycle run.
7467
+ */
7468
+ timekeeping_time_card_id?: string | null;
7469
+ /**
7470
+ * ID of the paystub in the external payroll system; unique within its payroll run. Omit to leave it unchanged.
7471
+ */
7472
+ external_id?: string | null;
7473
+ /**
7474
+ * Payment reference from the payroll provider; omit to leave it unchanged, or send null to clear it.
7475
+ */
7476
+ check_number?: string | null;
7477
+ };
6557
7478
  /**
6558
7479
  * A page of paystub line items, with pagination metadata and navigation links.
6559
7480
  */
@@ -7030,7 +7951,7 @@ export type PaystubLineItemResponseObject = {
7030
7951
  updated_at: string;
7031
7952
  };
7032
7953
  /**
7033
- * Request body for creating or updating a paystub line item. All four fields are required.
7954
+ * Request body for creating a paystub line item. All four fields are required.
7034
7955
  */
7035
7956
  export type PaystubLineItemParameters = {
7036
7957
  /**
@@ -7050,6 +7971,27 @@ export type PaystubLineItemParameters = {
7050
7971
  */
7051
7972
  payrolls_external_map_id: string;
7052
7973
  };
7974
+ /**
7975
+ * Request body for updating a paystub line item. Send only the fields to change.
7976
+ */
7977
+ export type PaystubLineItemUpdateParameters = {
7978
+ /**
7979
+ * ID of the paystub this line item belongs to. Omit to leave it unchanged.
7980
+ */
7981
+ payrolls_paystub_id?: string;
7982
+ /**
7983
+ * Amount of this line, in cents as a decimal string (e.g. "5000.0" is $50.00). Omit to leave it unchanged.
7984
+ */
7985
+ amount_cents?: string;
7986
+ /**
7987
+ * Who contributes this amount: employee or employer. Omit to leave it unchanged.
7988
+ */
7989
+ contributor?: 'employee' | 'employer';
7990
+ /**
7991
+ * ID of the external map defining which compensation element this line item represents. Omit to leave it unchanged.
7992
+ */
7993
+ payrolls_external_map_id?: string;
7994
+ };
7053
7995
  /**
7054
7996
  * 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.
7055
7997
  */
@@ -7516,7 +8458,7 @@ export type FormAssignmentTaskResponseObject = Array<{
7516
8458
  }>;
7517
8459
  }>;
7518
8460
  /**
7519
- * 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.
8461
+ * 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.
7520
8462
  */
7521
8463
  export type CertificationParameters = {
7522
8464
  /**
@@ -7540,6 +8482,31 @@ export type CertificationParameters = {
7540
8482
  */
7541
8483
  duration?: string | null;
7542
8484
  };
8485
+ /**
8486
+ * 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.
8487
+ */
8488
+ export type CertificationUpdateParameters = {
8489
+ /**
8490
+ * Id of the company that owns the certification. It must match the company that owns the API key; updates cannot move a certification between companies.
8491
+ */
8492
+ company_id?: string;
8493
+ /**
8494
+ * Name of the certification (for example "OSHA 30" or a GWO training module). Unique within the company.
8495
+ */
8496
+ name?: string;
8497
+ /**
8498
+ * Optional free-text description of the certification; omit to leave it unchanged, or send null to clear it.
8499
+ */
8500
+ description?: string | null;
8501
+ /**
8502
+ * Whether this is a recognized, vetted credential type. This is a property of the certification definition, distinct from the verified flag on a certification a worker holds.
8503
+ */
8504
+ verified?: boolean;
8505
+ /**
8506
+ * How long the certification stays valid, as an ISO 8601 duration (for example "P1Y" for one year or "P6M" for six months). Drives expiry reminders on held certifications; null when the certification does not expire.
8507
+ */
8508
+ duration?: string | null;
8509
+ };
7543
8510
  /**
7544
8511
  * A page of certifications — your company's own plus all global (platform) certifications.
7545
8512
  */
@@ -7593,7 +8560,7 @@ export type CertificationPackageResponseObject = {
7593
8560
  updated_at: string;
7594
8561
  };
7595
8562
  /**
7596
- * Request body for creating or updating a certification package — a named set of certifications a company requires together.
8563
+ * Request body for creating a certification package — a named set of certifications a company requires together.
7597
8564
  */
7598
8565
  export type CertificationPackageParameters = {
7599
8566
  /**
@@ -7613,6 +8580,27 @@ export type CertificationPackageParameters = {
7613
8580
  */
7614
8581
  performed_by_user_id: string;
7615
8582
  };
8583
+ /**
8584
+ * Request body for updating a certification package — a named set of certifications a company requires together. Include only the fields to change.
8585
+ */
8586
+ export type CertificationPackageUpdateParameters = {
8587
+ /**
8588
+ * Name of the package. Unique within the company; omit to leave it unchanged.
8589
+ */
8590
+ name?: string;
8591
+ /**
8592
+ * Optional free-text description of the package; omit to leave it unchanged.
8593
+ */
8594
+ description?: string | null;
8595
+ /**
8596
+ * Ids of the certifications in the package; global and your company's own may be mixed. Providing this replaces the entire membership.
8597
+ */
8598
+ certification_ids?: Array<string>;
8599
+ /**
8600
+ * Id of the company member recorded as updating the package. Required, and must belong to the company that owns the API key.
8601
+ */
8602
+ performed_by_user_id: string;
8603
+ };
7616
8604
  /**
7617
8605
  * A certification — a named qualification a worker can hold, either owned by your company or a global (platform) credential type (company_id null).
7618
8606
  */
@@ -7802,138 +8790,382 @@ export type PositionFunction = {
7802
8790
  */
7803
8791
  export type UserRoleRequest = {
7804
8792
  /**
7805
- * ID of the user to grant the role to. Must be someone your company can already see — a worker it employs, a holder of one of its roles, or someone it has invited.
8793
+ * ID of the user to grant the role to. Must be someone your company can already see — a worker it employs, a holder of one of its roles, or someone it has invited.
8794
+ */
8795
+ user_id?: string;
8796
+ /**
8797
+ * ID of the company the role is scoped to.
8798
+ */
8799
+ company_id?: string;
8800
+ /**
8801
+ * The role to grant: one of TECHNICIAN, FIELD_LEAD, MANAGER, SAFETY_MANAGER, or ADMIN.
8802
+ */
8803
+ role?: 'TECHNICIAN' | 'FIELD_LEAD' | 'MANAGER' | 'SAFETY_MANAGER' | 'ADMIN';
8804
+ };
8805
+ /**
8806
+ * A role granted to a user within a company's scope — the permissions the user has there. A user can hold several distinct roles per company.
8807
+ */
8808
+ export type UserRoleResponse = {
8809
+ /**
8810
+ * Unique identifier.
8811
+ */
8812
+ id: string;
8813
+ /**
8814
+ * ID of the user who holds the role.
8815
+ */
8816
+ user_id: string;
8817
+ /**
8818
+ * ID of the company the role is scoped to.
8819
+ */
8820
+ company_id: string;
8821
+ /**
8822
+ * The granted role: one of TECHNICIAN, FIELD_LEAD, MANAGER, SAFETY_MANAGER, or ADMIN.
8823
+ */
8824
+ role: 'TECHNICIAN' | 'FIELD_LEAD' | 'MANAGER' | 'SAFETY_MANAGER' | 'ADMIN';
8825
+ };
8826
+ /**
8827
+ * Employment classification of a worker at a company: EMPLOYEE (W-2) or CONTRACTOR (1099). Null when unset.
8828
+ */
8829
+ export type UserCompanyType = 'EMPLOYEE' | 'CONTRACTOR' | null;
8830
+ /**
8831
+ * Keyset pagination cursors for the collection.
8832
+ */
8833
+ export type Page = {
8834
+ /**
8835
+ * Opaque cursor to send back as `page[cursor]` to fetch the next page; null when there are no more pages.
8836
+ */
8837
+ next_cursor: string | null;
8838
+ /**
8839
+ * Opaque cursor for the page just returned; null on the first page.
8840
+ */
8841
+ current_cursor: string | null;
8842
+ };
8843
+ /**
8844
+ * Pagination metadata for a paged collection, holding the keyset cursors under `page`.
8845
+ */
8846
+ export type Meta = {
8847
+ page: Page;
8848
+ };
8849
+ /**
8850
+ * Pagination metadata for a change-feed page, with the feed's safe polling watermark.
8851
+ */
8852
+ export type DeltaMeta = {
8853
+ page: Page;
8854
+ /**
8855
+ * The instant the feed is guaranteed complete through. Advance your polling watermark to this value, never to the newest event timestamp you received.
8856
+ */
8857
+ complete_through: string;
8858
+ };
8859
+ /**
8860
+ * Pagination links for navigating a paged collection.
8861
+ */
8862
+ export type Links = {
8863
+ /**
8864
+ * URL of the current request, echoing the path and query that produced this page.
8865
+ */
8866
+ self: string;
8867
+ /**
8868
+ * URL of the collection's first page.
8869
+ */
8870
+ first: string | null;
8871
+ /**
8872
+ * URL of the next page, already carrying its `page[cursor]`; null when this is the last page.
8873
+ */
8874
+ next: string | null;
8875
+ };
8876
+ /**
8877
+ * A timestamp range filter on a date/time field, supplied as `filter[field][gte]` and/or `filter[field][lte]`; omit or null a bound for an open-ended range.
8878
+ */
8879
+ export type DateTimeFilter = {
8880
+ /**
8881
+ * Inclusive lower bound — matches records whose timestamp is at or after this ISO 8601 value.
8882
+ */
8883
+ gte?: string | null;
8884
+ /**
8885
+ * Inclusive upper bound — matches records whose timestamp is at or before this ISO 8601 value.
8886
+ */
8887
+ lte?: string | null;
8888
+ } | null;
8889
+ /**
8890
+ * A Davis-Bacon prevailing-wage determination DOL has issued for a general decision number — the government reference record itself, not a job- or project-scoped application of it. Global DOL reference data, visible to every company and not company-owned.
8891
+ */
8892
+ export type WageDeterminationResponseObject = {
8893
+ /**
8894
+ * Identifier of this determination record — permanent, because the record is an immutable DOL publication; a DOL revision arrives as a new record linked through superseded_by_wage_determination_id, not a rewrite of this one.
8895
+ */
8896
+ id: string;
8897
+ /**
8898
+ * DOL general decision number identifying this determination (e.g. "CA20240001"); combine with modification_number for the full versioned identifier (e.g. "CA20240001/1").
8899
+ */
8900
+ general_decision_number: string;
8901
+ /**
8902
+ * DOL revision number for this general decision; increments each time DOL reissues the determination.
8903
+ */
8904
+ modification_number: number;
8905
+ /**
8906
+ * ID of the wage determination that supersedes this one; null when it is current or was never superseded.
8907
+ */
8908
+ superseded_by_wage_determination_id: string | null;
8909
+ /**
8910
+ * Date DOL made this determination publicly available.
8911
+ */
8912
+ publication_date: string;
8913
+ /**
8914
+ * ID of the region (state) this determination is domiciled in; not necessarily the exact geographic area where it applies.
8915
+ */
8916
+ boundaries_region_id: string;
8917
+ /**
8918
+ * When this version of the determination took effect (ISO 8601).
8919
+ */
8920
+ valid_from: string;
8921
+ /**
8922
+ * When this version stopped applying (ISO 8601); null while it is still current.
8923
+ */
8924
+ valid_to: string | null;
8925
+ /**
8926
+ * When the record was created (ISO 8601).
8927
+ */
8928
+ created_at: string;
8929
+ /**
8930
+ * When the record was last updated (ISO 8601).
8931
+ */
8932
+ updated_at: string;
8933
+ };
8934
+ /**
8935
+ * A page of wage determinations, with pagination metadata and navigation links.
8936
+ */
8937
+ export type WageDeterminationsResponseObject = {
8938
+ meta: Meta;
8939
+ links: Links;
8940
+ /**
8941
+ * The page of wage determinations.
8942
+ */
8943
+ data: Array<WageDeterminationResponseObject>;
8944
+ };
8945
+ /**
8946
+ * A single labor rate within a wage determination — a DOL-issued labor classification and its base wage plus fringe rates. Money values are decimal strings of cents.
8947
+ */
8948
+ export type LaborRateResponseObject = {
8949
+ /**
8950
+ * Unique identifier.
8951
+ */
8952
+ id: string;
8953
+ /**
8954
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
8955
+ */
8956
+ classification: string;
8957
+ /**
8958
+ * Ordered breadcrumb of the classification's parts, broadest to most specific; null when there is no further breakdown beyond classification.
8959
+ */
8960
+ classification_hierarchy: Array<string> | null;
8961
+ /**
8962
+ * ID of the wage classification (labor-classification bucket) this rate belongs to.
8963
+ */
8964
+ wage_classification_id: string;
8965
+ /**
8966
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
8967
+ */
8968
+ wage_pay_base_rate_cents: string;
8969
+ /**
8970
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00); null when fringe is expressed as a percentage or a weekly or monthly amount instead.
8971
+ */
8972
+ fringe_rate_cents: string | null;
8973
+ /**
8974
+ * Fringe rate as a percentage of the base wage, as a decimal string (e.g. "15.00" is 15%); null when fringe is a flat hourly amount instead.
8975
+ */
8976
+ fringe_percentage_rate: string | null;
8977
+ /**
8978
+ * Fringe benefit expressed as a weekly amount, in cents as a decimal string; null when fringe is expressed hourly or as a percentage instead.
8979
+ */
8980
+ fringe_benefit_weekly_rate_cents: string | null;
8981
+ /**
8982
+ * Fringe benefit expressed as a monthly amount, in cents as a decimal string; null when fringe is expressed hourly or as a percentage instead.
8983
+ */
8984
+ fringe_benefit_monthly_rate_cents: string | null;
8985
+ /**
8986
+ * IDs of the reference items this rate cites, in the order their letter tokens appear in the source fringe expression.
8987
+ */
8988
+ reference_item_ids: Array<string>;
8989
+ /**
8990
+ * When the record was created (ISO 8601).
8991
+ */
8992
+ created_at: string;
8993
+ /**
8994
+ * When the record was last updated (ISO 8601).
8995
+ */
8996
+ updated_at: string;
8997
+ };
8998
+ /**
8999
+ * A page of a wage determination's labor rates, with pagination metadata and navigation links.
9000
+ */
9001
+ export type LaborRatesResponseObject = {
9002
+ meta: Meta;
9003
+ links: Links;
9004
+ /**
9005
+ * The page of labor rates.
9006
+ */
9007
+ data: Array<LaborRateResponseObject>;
9008
+ };
9009
+ /**
9010
+ * A DOL labor-classification schedule within one wage determination; its labor rates and reference items share this schedule boundary.
9011
+ */
9012
+ export type WageClassificationResponseObject = {
9013
+ /**
9014
+ * Unique identifier.
9015
+ */
9016
+ id: string;
9017
+ /**
9018
+ * ID of the wage determination that owns this classification schedule.
9019
+ */
9020
+ wage_determination_id: string;
9021
+ /**
9022
+ * DOL alphanumeric classification identifier, such as ELEC0145-004.
9023
+ */
9024
+ identifier: string;
9025
+ /**
9026
+ * Date the underlying classification agreement originated.
9027
+ */
9028
+ date: string;
9029
+ /**
9030
+ * Verbatim schedule-level footnote text; null when none was printed.
9031
+ */
9032
+ footnote: string | null;
9033
+ /**
9034
+ * Verbatim schedule subheader; null when none was printed.
9035
+ */
9036
+ subheader: string | null;
9037
+ /**
9038
+ * When the record was created (ISO 8601).
7806
9039
  */
7807
- user_id?: string;
9040
+ created_at: string;
7808
9041
  /**
7809
- * ID of the company the role is scoped to.
9042
+ * When the record was last updated (ISO 8601).
7810
9043
  */
7811
- company_id?: string;
9044
+ updated_at: string;
9045
+ };
9046
+ /**
9047
+ * A page of a wage determination's classification schedules, with pagination metadata and navigation links.
9048
+ */
9049
+ export type WageClassificationsResponseObject = {
9050
+ meta: Meta;
9051
+ links: Links;
7812
9052
  /**
7813
- * The role to grant: one of TECHNICIAN, FIELD_LEAD, MANAGER, SAFETY_MANAGER, or ADMIN.
9053
+ * The page of wage classifications.
7814
9054
  */
7815
- role?: 'TECHNICIAN' | 'FIELD_LEAD' | 'MANAGER' | 'SAFETY_MANAGER' | 'ADMIN';
9055
+ data: Array<WageClassificationResponseObject>;
7816
9056
  };
7817
9057
  /**
7818
- * A role granted to a user within a company's scope — the permissions the user has there. A user can hold several distinct roles per company.
9058
+ * A Davis-Bacon construction category assigned to one wage determination.
7819
9059
  */
7820
- export type UserRoleResponse = {
9060
+ export type ConstructionTypeResponseObject = {
7821
9061
  /**
7822
9062
  * Unique identifier.
7823
9063
  */
7824
9064
  id: string;
7825
9065
  /**
7826
- * ID of the user who holds the role.
9066
+ * ID of the wage determination carrying this construction category.
7827
9067
  */
7828
- user_id: string;
9068
+ wage_determination_id: string;
7829
9069
  /**
7830
- * ID of the company the role is scoped to.
9070
+ * Davis-Bacon base construction category: BUILDING, HEAVY, HIGHWAY, or RESIDENTIAL.
7831
9071
  */
7832
- company_id: string;
9072
+ construction_type: 'BUILDING' | 'HEAVY' | 'HIGHWAY' | 'RESIDENTIAL';
7833
9073
  /**
7834
- * The granted role: one of TECHNICIAN, FIELD_LEAD, MANAGER, SAFETY_MANAGER, or ADMIN.
9074
+ * When the record was created (ISO 8601).
7835
9075
  */
7836
- role: 'TECHNICIAN' | 'FIELD_LEAD' | 'MANAGER' | 'SAFETY_MANAGER' | 'ADMIN';
9076
+ created_at: string;
9077
+ /**
9078
+ * When the record was last updated (ISO 8601).
9079
+ */
9080
+ updated_at: string;
7837
9081
  };
7838
9082
  /**
7839
- * Employment classification of a worker at a company: EMPLOYEE (W-2) or CONTRACTOR (1099). Null when unset.
9083
+ * A page of a wage determination's construction categories, with pagination metadata and navigation links.
7840
9084
  */
7841
- export type UserCompanyType = 'EMPLOYEE' | 'CONTRACTOR' | null;
9085
+ export type ConstructionTypesResponseObject = {
9086
+ meta: Meta;
9087
+ links: Links;
9088
+ /**
9089
+ * The page of construction types.
9090
+ */
9091
+ data: Array<ConstructionTypeResponseObject>;
9092
+ };
7842
9093
  /**
7843
- * Keyset pagination cursors for the collection.
9094
+ * A DOL project-type tag attached directly to one wage determination.
7844
9095
  */
7845
- export type Page = {
9096
+ export type ProjectTypeResponseObject = {
7846
9097
  /**
7847
- * Opaque cursor to send back as `page[cursor]` to fetch the next page; null when there are no more pages.
9098
+ * Unique identifier.
7848
9099
  */
7849
- next_cursor: string | null;
9100
+ id: string;
7850
9101
  /**
7851
- * Opaque cursor for the page just returned; null on the first page.
9102
+ * ID of the wage determination carrying this project-type tag.
7852
9103
  */
7853
- current_cursor: string | null;
7854
- };
7855
- /**
7856
- * Pagination metadata for a paged collection, holding the keyset cursors under `page`.
7857
- */
7858
- export type Meta = {
7859
- page: Page;
7860
- };
7861
- /**
7862
- * Pagination metadata for a change-feed page, with the feed's safe polling watermark.
7863
- */
7864
- export type DeltaMeta = {
7865
- page: Page;
9104
+ wage_determination_id: string;
7866
9105
  /**
7867
- * The instant the feed is guaranteed complete through. Advance your polling watermark to this value, never to the newest event timestamp you received.
9106
+ * DOL project categorization code used to narrow the work the determination covers.
7868
9107
  */
7869
- complete_through: string;
7870
- };
7871
- /**
7872
- * Pagination links for navigating a paged collection.
7873
- */
7874
- export type Links = {
9108
+ project_type: string;
7875
9109
  /**
7876
- * URL of the current request, echoing the path and query that produced this page.
9110
+ * Additional verbatim qualification printed beside the project type; null when absent.
7877
9111
  */
7878
- self: string;
9112
+ project_type_subtext: string | null;
7879
9113
  /**
7880
- * URL of the collection's first page.
9114
+ * When the record was created (ISO 8601).
7881
9115
  */
7882
- first: string | null;
9116
+ created_at: string;
7883
9117
  /**
7884
- * URL of the next page, already carrying its `page[cursor]`; null when this is the last page.
9118
+ * When the record was last updated (ISO 8601).
7885
9119
  */
7886
- next: string | null;
9120
+ updated_at: string;
7887
9121
  };
7888
9122
  /**
7889
- * A timestamp range filter on a date/time field, supplied as `filter[field][gte]` and/or `filter[field][lte]`; omit or null a bound for an open-ended range.
9123
+ * A page of project-type tags attached directly to a wage determination, with pagination metadata and navigation links.
7890
9124
  */
7891
- export type DateTimeFilter = {
7892
- /**
7893
- * Inclusive lower bound — matches records whose timestamp is at or after this ISO 8601 value.
7894
- */
7895
- gte?: string | null;
9125
+ export type ProjectTypesResponseObject = {
9126
+ meta: Meta;
9127
+ links: Links;
7896
9128
  /**
7897
- * Inclusive upper bound — matches records whose timestamp is at or before this ISO 8601 value.
9129
+ * The page of project types.
7898
9130
  */
7899
- lte?: string | null;
7900
- } | null;
9131
+ data: Array<ProjectTypeResponseObject>;
9132
+ };
7901
9133
  /**
7902
- * A Davis-Bacon prevailing-wage determination DOL has issued for a general decision number — the government reference record itself, not a job- or project-scoped application of it. Global DOL reference data, visible to every company and not company-owned.
9134
+ * A link between a wage determination and one geographic boundary where it applies. Includes stable boundary identity metadata but never geometry.
7903
9135
  */
7904
- export type WageDeterminationResponseObject = {
9136
+ export type WageDeterminationBoundaryResponseObject = {
7905
9137
  /**
7906
- * Identifier of this determination record — permanent, because the record is an immutable DOL publication; a DOL revision arrives as a new record linked through superseded_by_wage_determination_id, not a rewrite of this one.
9138
+ * Unique identifier.
7907
9139
  */
7908
9140
  id: string;
7909
9141
  /**
7910
- * DOL general decision number identifying this determination (e.g. "CA20240001"); combine with modification_number for the full versioned identifier (e.g. "CA20240001/1").
9142
+ * ID of the wage determination whose applicability includes this boundary.
7911
9143
  */
7912
- general_decision_number: string;
9144
+ wage_determination_id: string;
7913
9145
  /**
7914
- * DOL revision number for this general decision; increments each time DOL reissues the determination.
9146
+ * Stable ID of the linked geographic boundary.
7915
9147
  */
7916
- modification_number: number;
9148
+ boundary_id: string;
7917
9149
  /**
7918
- * ID of the wage determination that supersedes this one; null when it is current or was never superseded.
9150
+ * Fully qualified boundary kind, such as Boundaries::Region or Boundaries::Subregion.
7919
9151
  */
7920
- superseded_by_wage_determination_id: string | null;
9152
+ boundary_type: string;
7921
9153
  /**
7922
- * Date DOL made this determination publicly available.
9154
+ * Government-published name of the linked boundary.
7923
9155
  */
7924
- publication_date: string;
9156
+ name: string;
7925
9157
  /**
7926
- * ID of the region (state) this determination is domiciled in; not necessarily the exact geographic area where it applies.
9158
+ * Administrative-unit identifier in the source system; null when unavailable and not necessarily globally unique.
7927
9159
  */
7928
- boundaries_region_id: string;
9160
+ source_boundary_id: string | null;
7929
9161
  /**
7930
- * When this version of the determination took effect (ISO 8601).
9162
+ * Geographic identifier unique within the authoritative source; null when unavailable.
7931
9163
  */
7932
- valid_from: string;
9164
+ source_geo_id: string | null;
7933
9165
  /**
7934
- * When this version stopped applying (ISO 8601); null while it is still current.
9166
+ * Versioned or national stable geographic identifier from the authoritative source; null when unavailable.
7935
9167
  */
7936
- valid_to: string | null;
9168
+ source_unique_id: string | null;
7937
9169
  /**
7938
9170
  * When the record was created (ISO 8601).
7939
9171
  */
@@ -7944,56 +9176,44 @@ export type WageDeterminationResponseObject = {
7944
9176
  updated_at: string;
7945
9177
  };
7946
9178
  /**
7947
- * A page of wage determinations, with pagination metadata and navigation links.
9179
+ * A page of a wage determination's geographic applicability links, with pagination metadata and navigation links.
7948
9180
  */
7949
- export type WageDeterminationsResponseObject = {
9181
+ export type WageDeterminationBoundariesResponseObject = {
7950
9182
  meta: Meta;
7951
9183
  links: Links;
7952
9184
  /**
7953
- * The page of wage determinations.
9185
+ * The page of boundary links.
7954
9186
  */
7955
- data: Array<WageDeterminationResponseObject>;
9187
+ data: Array<WageDeterminationBoundaryResponseObject>;
7956
9188
  };
7957
9189
  /**
7958
- * A single labor rate within a wage determination — a DOL-issued labor classification and its base wage plus fringe rates. Money values are decimal strings of cents.
9190
+ * One ordered, lettered item of verbatim fringe-reference prose within a wage-classification schedule.
7959
9191
  */
7960
- export type LaborRateResponseObject = {
9192
+ export type ReferenceItemResponseObject = {
7961
9193
  /**
7962
9194
  * Unique identifier.
7963
9195
  */
7964
9196
  id: string;
7965
9197
  /**
7966
- * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
7967
- */
7968
- classification: string;
7969
- /**
7970
- * Ordered breadcrumb of the classification's parts, broadest to most specific; null when there is no further breakdown beyond classification.
7971
- */
7972
- classification_hierarchy: Array<string> | null;
7973
- /**
7974
- * ID of the wage classification (labor-classification bucket) this rate belongs to.
9198
+ * ID of the wage-classification schedule that owns this reference item.
7975
9199
  */
7976
9200
  wage_classification_id: string;
7977
9201
  /**
7978
- * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
7979
- */
7980
- wage_pay_base_rate_cents: string;
7981
- /**
7982
- * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00); null when fringe is expressed as a percentage or a weekly or monthly amount instead.
9202
+ * Zero-based document order within the classification schedule.
7983
9203
  */
7984
- fringe_rate_cents: string | null;
9204
+ position: number;
7985
9205
  /**
7986
- * Fringe rate as a percentage of the base wage, as a decimal string (e.g. "15.00" is 15%); null when fringe is a flat hourly amount instead.
9206
+ * Lowercase source token a labor rate cites, such as a or b.
7987
9207
  */
7988
- fringe_percentage_rate: string | null;
9208
+ letter: string;
7989
9209
  /**
7990
- * Fringe benefit expressed as a weekly amount, in cents as a decimal string; null when fringe is expressed hourly or as a percentage instead.
9210
+ * Source heading under which the item was printed: footnote, premium_pay, holidays, or zone_pay.
7991
9211
  */
7992
- fringe_benefit_weekly_rate_cents: string | null;
9212
+ container_type: 'footnote' | 'premium_pay' | 'holidays' | 'zone_pay';
7993
9213
  /**
7994
- * Fringe benefit expressed as a monthly amount, in cents as a decimal string; null when fringe is expressed hourly or as a percentage instead.
9214
+ * Verbatim reference-item prose from the DOL source document.
7995
9215
  */
7996
- fringe_benefit_monthly_rate_cents: string | null;
9216
+ text: string;
7997
9217
  /**
7998
9218
  * When the record was created (ISO 8601).
7999
9219
  */
@@ -8004,15 +9224,15 @@ export type LaborRateResponseObject = {
8004
9224
  updated_at: string;
8005
9225
  };
8006
9226
  /**
8007
- * A page of a wage determination's labor rates, with pagination metadata and navigation links.
9227
+ * A page of reference items flattened across every classification schedule in a wage determination, with pagination metadata and navigation links.
8008
9228
  */
8009
- export type LaborRatesResponseObject = {
9229
+ export type ReferenceItemsResponseObject = {
8010
9230
  meta: Meta;
8011
9231
  links: Links;
8012
9232
  /**
8013
- * The page of labor rates.
9233
+ * The page of reference items.
8014
9234
  */
8015
- data: Array<LaborRateResponseObject>;
9235
+ data: Array<ReferenceItemResponseObject>;
8016
9236
  };
8017
9237
  /**
8018
9238
  * A wage determination applied to a job — the prevailing-wage and fringe rates for one labor classification. The type discriminator selects the Federal or Regional representation.
@@ -9094,7 +10314,20 @@ export type AssetsVendorParameters = {
9094
10314
  */
9095
10315
  name: string;
9096
10316
  /**
9097
- * A signed_id from POST /api/v1/direct_uploads for a logo image to attach to the vendor.
10317
+ * A signed_id from POST /api/v1/direct_uploads registered for assets.vendors. The logo must be a readable PNG, JPEG, GIF, or HEIC image, at most 10 MiB, 20,000 pixels per side, and 50 megapixels total. An invalid logo rejects the entire create or update; the existing vendor and logo remain unchanged.
10318
+ */
10319
+ logo_signed_id?: string;
10320
+ };
10321
+ /**
10322
+ * Update a vendor. All fields are optional — send only what changes.
10323
+ */
10324
+ export type AssetsVendorUpdateParameters = {
10325
+ /**
10326
+ * The vendor's name; unique within the company (case-insensitive).
10327
+ */
10328
+ name?: string;
10329
+ /**
10330
+ * A signed_id from POST /api/v1/direct_uploads registered for assets.vendors. The logo must be a readable PNG, JPEG, GIF, or HEIC image, at most 10 MiB, 20,000 pixels per side, and 50 megapixels total. An invalid logo rejects the entire update; the existing vendor and logo remain unchanged.
9098
10331
  */
9099
10332
  logo_signed_id?: string;
9100
10333
  };
@@ -9159,9 +10392,21 @@ export type AssetsSiteParameters = ({
9159
10392
  */
9160
10393
  name?: string | null;
9161
10394
  };
10395
+ /**
10396
+ * 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`.
10397
+ */
9162
10398
  export type AssetsSiteUpdateParameters = {
10399
+ /**
10400
+ * Location type: warehouse or yard.
10401
+ */
9163
10402
  kind?: 'warehouse' | 'yard';
10403
+ /**
10404
+ * ID of the Atlas map site to back this location. `null` removes the backing site when a name remains available.
10405
+ */
9164
10406
  site_id?: string | null;
10407
+ /**
10408
+ * Display name for the location. `null` clears the direct name when a backing `site_id` supplies the display name.
10409
+ */
9165
10410
  name?: string | null;
9166
10411
  };
9167
10412
  /**
@@ -10315,6 +11560,125 @@ export type ListApiKeyScopesResponses = {
10315
11560
  };
10316
11561
  };
10317
11562
  export type ListApiKeyScopesResponse = ListApiKeyScopesResponses[keyof ListApiKeyScopesResponses];
11563
+ export type ListAllocationsData = {
11564
+ body?: never;
11565
+ path: {
11566
+ apprentice_id: string;
11567
+ };
11568
+ query?: {
11569
+ 'filter[allocated_at][gte]'?: string;
11570
+ 'filter[allocated_at][lte]'?: string;
11571
+ 'filter[created_at][gte]'?: string;
11572
+ 'filter[created_at][lte]'?: string;
11573
+ 'filter[updated_at][gte]'?: string;
11574
+ 'filter[updated_at][lte]'?: string;
11575
+ filter?: string;
11576
+ 'filter[unexpected]'?: string;
11577
+ /**
11578
+ * This pagination cursor corresponds to the cursor value found in the response in
11579
+ * `meta.page.next_cursor`.
11580
+ */
11581
+ 'page[cursor]'?: string;
11582
+ /**
11583
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
11584
+ */
11585
+ 'page[limit]'?: number;
11586
+ page?: string;
11587
+ };
11588
+ url: '/api/v1/apprenticeship/apprentices/{apprentice_id}/allocations';
11589
+ };
11590
+ export type ListAllocationsErrors = {
11591
+ /**
11592
+ * Bad Request
11593
+ */
11594
+ 400: Problem;
11595
+ /**
11596
+ * Forbidden
11597
+ */
11598
+ 403: Problem;
11599
+ /**
11600
+ * Not Found
11601
+ */
11602
+ 404: Problem;
11603
+ /**
11604
+ * Unprocessable Content
11605
+ */
11606
+ 422: Problem;
11607
+ };
11608
+ export type ListAllocationsError = ListAllocationsErrors[keyof ListAllocationsErrors];
11609
+ export type ListAllocationsResponses = {
11610
+ /**
11611
+ * Success
11612
+ */
11613
+ 200: {
11614
+ meta: Meta;
11615
+ links: Links;
11616
+ data: Array<ApprenticeshipAllocationResponseObject>;
11617
+ };
11618
+ };
11619
+ export type ListAllocationsResponse = ListAllocationsResponses[keyof ListAllocationsResponses];
11620
+ export type GetAllocationData = {
11621
+ body?: never;
11622
+ path: {
11623
+ apprentice_id: string;
11624
+ id: string;
11625
+ };
11626
+ query?: never;
11627
+ url: '/api/v1/apprenticeship/apprentices/{apprentice_id}/allocations/{id}';
11628
+ };
11629
+ export type GetAllocationErrors = {
11630
+ /**
11631
+ * Forbidden
11632
+ */
11633
+ 403: Problem;
11634
+ /**
11635
+ * Not Found
11636
+ */
11637
+ 404: Problem;
11638
+ };
11639
+ export type GetAllocationError = GetAllocationErrors[keyof GetAllocationErrors];
11640
+ export type GetAllocationResponses = {
11641
+ /**
11642
+ * Success
11643
+ */
11644
+ 200: ApprenticeshipAllocationResponseObject;
11645
+ };
11646
+ export type GetAllocationResponse = GetAllocationResponses[keyof GetAllocationResponses];
11647
+ export type UpdateAllocationData = {
11648
+ body: ApprenticeshipAllocationUpdateParameters;
11649
+ path: {
11650
+ apprentice_id: string;
11651
+ id: string;
11652
+ };
11653
+ query?: never;
11654
+ url: '/api/v1/apprenticeship/apprentices/{apprentice_id}/allocations/{id}';
11655
+ };
11656
+ export type UpdateAllocationErrors = {
11657
+ /**
11658
+ * Bad Request
11659
+ */
11660
+ 400: Problem;
11661
+ /**
11662
+ * Forbidden
11663
+ */
11664
+ 403: Problem;
11665
+ /**
11666
+ * Not Found
11667
+ */
11668
+ 404: Problem;
11669
+ /**
11670
+ * Unprocessable Content
11671
+ */
11672
+ 422: Problem;
11673
+ };
11674
+ export type UpdateAllocationError = UpdateAllocationErrors[keyof UpdateAllocationErrors];
11675
+ export type UpdateAllocationResponses = {
11676
+ /**
11677
+ * Success
11678
+ */
11679
+ 200: ApprenticeshipAllocationResponseObject;
11680
+ };
11681
+ export type UpdateAllocationResponse = UpdateAllocationResponses[keyof UpdateAllocationResponses];
10318
11682
  export type ListApprenticesData = {
10319
11683
  body?: never;
10320
11684
  path: {
@@ -10499,7 +11863,7 @@ export type CreateOccupationResponses = {
10499
11863
  };
10500
11864
  export type CreateOccupationResponse = CreateOccupationResponses[keyof CreateOccupationResponses];
10501
11865
  export type UpdateOccupationData = {
10502
- body?: ApprenticeshipOccupationParameters;
11866
+ body?: ApprenticeshipOccupationUpdateParameters;
10503
11867
  path: {
10504
11868
  program_id: string;
10505
11869
  id: string;
@@ -10634,7 +11998,7 @@ export type DeleteEmployerResponses = {
10634
11998
  };
10635
11999
  export type DeleteEmployerResponse = DeleteEmployerResponses[keyof DeleteEmployerResponses];
10636
12000
  export type UpdateEmployerData = {
10637
- body?: ApprenticeshipProgramEmployerParameters;
12001
+ body?: ApprenticeshipProgramEmployerUpdateParameters;
10638
12002
  path: {
10639
12003
  program_id: string;
10640
12004
  id: string;
@@ -10734,7 +12098,7 @@ export type CreateProgramResponses = {
10734
12098
  };
10735
12099
  export type CreateProgramResponse = CreateProgramResponses[keyof CreateProgramResponses];
10736
12100
  export type UpdateProgramData = {
10737
- body?: ApprenticeshipProgramParameters;
12101
+ body?: ApprenticeshipProgramUpdateParameters;
10738
12102
  path: {
10739
12103
  id: string;
10740
12104
  };
@@ -10841,7 +12205,7 @@ export type CreatePeriodResponses = {
10841
12205
  };
10842
12206
  export type CreatePeriodResponse = CreatePeriodResponses[keyof CreatePeriodResponses];
10843
12207
  export type UpdatePeriodData = {
10844
- body?: ApprenticeshipWageSchedulePeriodParameters;
12208
+ body?: ApprenticeshipWageSchedulePeriodUpdateParameters;
10845
12209
  path: {
10846
12210
  wage_schedule_id: string;
10847
12211
  id: string;
@@ -10949,7 +12313,7 @@ export type CreateWageScheduleResponses = {
10949
12313
  };
10950
12314
  export type CreateWageScheduleResponse = CreateWageScheduleResponses[keyof CreateWageScheduleResponses];
10951
12315
  export type UpdateWageScheduleData = {
10952
- body?: ApprenticeshipWageScheduleParameters;
12316
+ body?: ApprenticeshipWageScheduleUpdateParameters;
10953
12317
  path: {
10954
12318
  occupation_id: string;
10955
12319
  id: string;
@@ -11115,7 +12479,7 @@ export type GetAttributeResponses = {
11115
12479
  };
11116
12480
  export type GetAttributeResponse = GetAttributeResponses[keyof GetAttributeResponses];
11117
12481
  export type UpdateAttributeData = {
11118
- body?: AssetsAttributeParameters;
12482
+ body?: AssetsAttributeUpdateParameters;
11119
12483
  path: {
11120
12484
  id: string;
11121
12485
  };
@@ -11274,7 +12638,7 @@ export type GetCategoryResponses = {
11274
12638
  };
11275
12639
  export type GetCategoryResponse = GetCategoryResponses[keyof GetCategoryResponses];
11276
12640
  export type UpdateCategoryData = {
11277
- body?: AssetsCategoryParameters;
12641
+ body?: AssetsCategoryUpdateParameters;
11278
12642
  path: {
11279
12643
  id: string;
11280
12644
  };
@@ -13396,7 +14760,7 @@ export type CreateVendorErrors = {
13396
14760
  */
13397
14761
  403: Problem;
13398
14762
  /**
13399
- * Unprocessable Content (non-image logo)
14763
+ * Unprocessable Content (invalid image)
13400
14764
  */
13401
14765
  422: Problem;
13402
14766
  };
@@ -13453,7 +14817,7 @@ export type GetVendorResponses = {
13453
14817
  };
13454
14818
  export type GetVendorResponse = GetVendorResponses[keyof GetVendorResponses];
13455
14819
  export type UpdateVendorData = {
13456
- body: AssetsVendorParameters;
14820
+ body: AssetsVendorUpdateParameters;
13457
14821
  path: {
13458
14822
  id: string;
13459
14823
  };
@@ -13465,6 +14829,10 @@ export type UpdateVendorErrors = {
13465
14829
  * Forbidden
13466
14830
  */
13467
14831
  403: Problem;
14832
+ /**
14833
+ * Unprocessable Content (invalid logo replacement)
14834
+ */
14835
+ 422: Problem;
13468
14836
  };
13469
14837
  export type UpdateVendorError = UpdateVendorErrors[keyof UpdateVendorErrors];
13470
14838
  export type UpdateVendorResponses = {
@@ -13802,7 +15170,7 @@ export type GetPackageResponses = {
13802
15170
  };
13803
15171
  export type GetPackageResponse = GetPackageResponses[keyof GetPackageResponses];
13804
15172
  export type UpdatePackageData = {
13805
- body?: CertificationPackageParameters;
15173
+ body?: CertificationPackageUpdateParameters;
13806
15174
  path: {
13807
15175
  id: string;
13808
15176
  };
@@ -14098,7 +15466,7 @@ export type GetCertificationResponses = {
14098
15466
  };
14099
15467
  export type GetCertificationResponse = GetCertificationResponses[keyof GetCertificationResponses];
14100
15468
  export type UpdateCertificationData = {
14101
- body?: CertificationParameters;
15469
+ body?: CertificationUpdateParameters;
14102
15470
  path: {
14103
15471
  id: string;
14104
15472
  };
@@ -14197,7 +15565,7 @@ export type CreateDepartmentResponses = {
14197
15565
  };
14198
15566
  export type CreateDepartmentResponse = CreateDepartmentResponses[keyof CreateDepartmentResponses];
14199
15567
  export type UpdateDepartmentData = {
14200
- body: DepartmentParameters;
15568
+ body: DepartmentUpdateParameters;
14201
15569
  path: {
14202
15570
  id: string;
14203
15571
  };
@@ -15089,7 +16457,7 @@ export type GetGroupResponses = {
15089
16457
  };
15090
16458
  export type GetGroupResponse = GetGroupResponses[keyof GetGroupResponses];
15091
16459
  export type UpdateGroupData = {
15092
- body?: GroupParameters;
16460
+ body?: GroupUpdateParameters;
15093
16461
  path: {
15094
16462
  id: string;
15095
16463
  };
@@ -16007,6 +17375,10 @@ export type ListJobsData = {
16007
17375
  * Returns jobs whose status is any of the given values. Comma-separate to match multiple (e.g. `ready,completed`). Accepts each concrete status (pending_provider, pending_schedule, pending_workers, ready, disputed, completed, cancelled) plus the aggregates `pending` (any pending_* status) and `active` (ready or disputed).
16008
17376
  */
16009
17377
  'filter[status]'?: string;
17378
+ /**
17379
+ * Returns jobs whose production_tracking_kind matches. One of `none`, `feature`, or `quantity`.
17380
+ */
17381
+ 'filter[production_tracking_kind]'?: 'none' | 'feature' | 'quantity';
16010
17382
  /**
16011
17383
  * This pagination cursor corresponds to the cursor value found in the response in
16012
17384
  * `meta.page.next_cursor`.
@@ -17543,7 +18915,7 @@ export type GetFringeBenefitPlanResponses = {
17543
18915
  };
17544
18916
  export type GetFringeBenefitPlanResponse = GetFringeBenefitPlanResponses[keyof GetFringeBenefitPlanResponses];
17545
18917
  export type UpdateFringeBenefitPlanData = {
17546
- body?: PayrollFringeBenefitPlanParameters;
18918
+ body?: PayrollFringeBenefitPlanUpdateParameters;
17547
18919
  path: {
17548
18920
  id: string;
17549
18921
  };
@@ -17559,6 +18931,10 @@ export type UpdateFringeBenefitPlanErrors = {
17559
18931
  * Not Found
17560
18932
  */
17561
18933
  404: Problem;
18934
+ /**
18935
+ * Unprocessable Content
18936
+ */
18937
+ 422: Problem;
17562
18938
  };
17563
18939
  export type UpdateFringeBenefitPlanError = UpdateFringeBenefitPlanErrors[keyof UpdateFringeBenefitPlanErrors];
17564
18940
  export type UpdateFringeBenefitPlanResponses = {
@@ -17762,6 +19138,10 @@ export type CreatePayrollRunData = {
17762
19138
  url: '/api/v1/payrolls/payroll_runs';
17763
19139
  };
17764
19140
  export type CreatePayrollRunErrors = {
19141
+ /**
19142
+ * Bad Request
19143
+ */
19144
+ 400: Problem;
17765
19145
  /**
17766
19146
  * Forbidden
17767
19147
  */
@@ -17836,7 +19216,7 @@ export type GetPayrollRunResponses = {
17836
19216
  };
17837
19217
  export type GetPayrollRunResponse = GetPayrollRunResponses[keyof GetPayrollRunResponses];
17838
19218
  export type UpdatePayrollRunData = {
17839
- body?: PayrollRunParameters;
19219
+ body?: PayrollRunUpdateParameters;
17840
19220
  path: {
17841
19221
  id: string;
17842
19222
  };
@@ -17844,6 +19224,10 @@ export type UpdatePayrollRunData = {
17844
19224
  url: '/api/v1/payrolls/payroll_runs/{id}';
17845
19225
  };
17846
19226
  export type UpdatePayrollRunErrors = {
19227
+ /**
19228
+ * Bad Request
19229
+ */
19230
+ 400: Problem;
17847
19231
  /**
17848
19232
  * Forbidden
17849
19233
  */
@@ -17989,7 +19373,7 @@ export type GetPaystubLineItemResponses = {
17989
19373
  };
17990
19374
  export type GetPaystubLineItemResponse = GetPaystubLineItemResponses[keyof GetPaystubLineItemResponses];
17991
19375
  export type UpdatePaystubLineItemData = {
17992
- body?: PaystubLineItemParameters;
19376
+ body?: PaystubLineItemUpdateParameters;
17993
19377
  path: {
17994
19378
  /**
17995
19379
  * Paystub Line Item ID
@@ -18157,7 +19541,7 @@ export type GetPaystubResponses = {
18157
19541
  };
18158
19542
  export type GetPaystubResponse = GetPaystubResponses[keyof GetPaystubResponses];
18159
19543
  export type UpdatePaystubData = {
18160
- body: PaystubParameters;
19544
+ body: PaystubUpdateParameters;
18161
19545
  path: {
18162
19546
  /**
18163
19547
  * Paystub ID
@@ -18189,6 +19573,191 @@ export type UpdatePaystubResponses = {
18189
19573
  200: PaystubResponseObject;
18190
19574
  };
18191
19575
  export type UpdatePaystubResponse = UpdatePaystubResponses[keyof UpdatePaystubResponses];
19576
+ export type ListEmploymentHistoryData = {
19577
+ body?: never;
19578
+ path: {
19579
+ employment_id: string;
19580
+ };
19581
+ query?: {
19582
+ 'as_of[valid]'?: string;
19583
+ 'as_of[transaction]'?: string;
19584
+ /**
19585
+ * This pagination cursor corresponds to the cursor value found in the response in
19586
+ * `meta.page.next_cursor`.
19587
+ */
19588
+ 'page[cursor]'?: string;
19589
+ /**
19590
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
19591
+ */
19592
+ 'page[limit]'?: number;
19593
+ page?: string;
19594
+ };
19595
+ url: '/api/v1/people/employments/{employment_id}/history';
19596
+ };
19597
+ export type ListEmploymentHistoryErrors = {
19598
+ /**
19599
+ * Bad Request
19600
+ */
19601
+ 400: Problem;
19602
+ /**
19603
+ * Forbidden
19604
+ */
19605
+ 403: Problem;
19606
+ /**
19607
+ * Not Found for an unknown employment
19608
+ */
19609
+ 404: Problem;
19610
+ };
19611
+ export type ListEmploymentHistoryError = ListEmploymentHistoryErrors[keyof ListEmploymentHistoryErrors];
19612
+ export type ListEmploymentHistoryResponses = {
19613
+ /**
19614
+ * Success
19615
+ */
19616
+ 200: {
19617
+ meta: Meta;
19618
+ links: Links;
19619
+ data: Array<PeopleEmploymentHistoryVersionObject>;
19620
+ };
19621
+ };
19622
+ export type ListEmploymentHistoryResponse = ListEmploymentHistoryResponses[keyof ListEmploymentHistoryResponses];
19623
+ export type ListEmploymentsHistoryData = {
19624
+ body?: never;
19625
+ path?: never;
19626
+ query?: {
19627
+ /**
19628
+ * Return history for this user ID.
19629
+ */
19630
+ 'filter[user_id]'?: string;
19631
+ 'as_of[valid]'?: string;
19632
+ 'as_of[transaction]'?: string;
19633
+ filter?: string;
19634
+ 'filter[unexpected]'?: string;
19635
+ /**
19636
+ * This pagination cursor corresponds to the cursor value found in the response in
19637
+ * `meta.page.next_cursor`.
19638
+ */
19639
+ 'page[cursor]'?: string;
19640
+ /**
19641
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
19642
+ */
19643
+ 'page[limit]'?: number;
19644
+ page?: string;
19645
+ };
19646
+ url: '/api/v1/people/employments/history';
19647
+ };
19648
+ export type ListEmploymentsHistoryErrors = {
19649
+ /**
19650
+ * Bad Request
19651
+ */
19652
+ 400: Problem;
19653
+ /**
19654
+ * Forbidden
19655
+ */
19656
+ 403: Problem;
19657
+ };
19658
+ export type ListEmploymentsHistoryError = ListEmploymentsHistoryErrors[keyof ListEmploymentsHistoryErrors];
19659
+ export type ListEmploymentsHistoryResponses = {
19660
+ /**
19661
+ * Success
19662
+ */
19663
+ 200: {
19664
+ meta: Meta;
19665
+ links: Links;
19666
+ data: Array<PeopleEmploymentHistoryVersionObject>;
19667
+ };
19668
+ };
19669
+ export type ListEmploymentsHistoryResponse = ListEmploymentsHistoryResponses[keyof ListEmploymentsHistoryResponses];
19670
+ export type ListEmploymentsData = {
19671
+ body?: never;
19672
+ path?: never;
19673
+ query?: {
19674
+ /**
19675
+ * Return employments for this user ID.
19676
+ */
19677
+ 'filter[user_id]'?: string;
19678
+ filter?: string;
19679
+ 'filter[unexpected]'?: string;
19680
+ /**
19681
+ * Read the version valid at this point in time. Defaults to now.
19682
+ */
19683
+ 'as_of[valid]'?: string;
19684
+ as_of?: string;
19685
+ 'as_of[bogus_axis]'?: string;
19686
+ 'as_of[valid][gte]'?: string;
19687
+ 'as_of[transaction]'?: string;
19688
+ /**
19689
+ * This pagination cursor corresponds to the cursor value found in the response in
19690
+ * `meta.page.next_cursor`.
19691
+ */
19692
+ 'page[cursor]'?: string;
19693
+ /**
19694
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
19695
+ */
19696
+ 'page[limit]'?: number;
19697
+ page?: string;
19698
+ };
19699
+ url: '/api/v1/people/employments';
19700
+ };
19701
+ export type ListEmploymentsErrors = {
19702
+ /**
19703
+ * Bad Request
19704
+ */
19705
+ 400: Problem;
19706
+ /**
19707
+ * Forbidden
19708
+ */
19709
+ 403: Problem;
19710
+ /**
19711
+ * Unprocessable Content
19712
+ */
19713
+ 422: Problem;
19714
+ };
19715
+ export type ListEmploymentsError = ListEmploymentsErrors[keyof ListEmploymentsErrors];
19716
+ export type ListEmploymentsResponses = {
19717
+ /**
19718
+ * Success in a gap between employment stints
19719
+ */
19720
+ 200: {
19721
+ meta: Meta;
19722
+ links: Links;
19723
+ data: Array<PeopleEmploymentResponseObject>;
19724
+ };
19725
+ };
19726
+ export type ListEmploymentsResponse = ListEmploymentsResponses[keyof ListEmploymentsResponses];
19727
+ export type GetEmploymentData = {
19728
+ body?: never;
19729
+ path: {
19730
+ /**
19731
+ * The employment stint identity returned as `id`.
19732
+ */
19733
+ id: string;
19734
+ };
19735
+ query?: {
19736
+ /**
19737
+ * Read the version valid at this point.
19738
+ */
19739
+ 'as_of[valid]'?: string;
19740
+ };
19741
+ url: '/api/v1/people/employments/{id}';
19742
+ };
19743
+ export type GetEmploymentErrors = {
19744
+ /**
19745
+ * Forbidden
19746
+ */
19747
+ 403: Problem;
19748
+ /**
19749
+ * Not Found in an employment gap
19750
+ */
19751
+ 404: Problem;
19752
+ };
19753
+ export type GetEmploymentError = GetEmploymentErrors[keyof GetEmploymentErrors];
19754
+ export type GetEmploymentResponses = {
19755
+ /**
19756
+ * Success
19757
+ */
19758
+ 200: PeopleEmploymentResponseObject;
19759
+ };
19760
+ export type GetEmploymentResponse = GetEmploymentResponses[keyof GetEmploymentResponses];
18192
19761
  export type ListPerDiemsData = {
18193
19762
  body?: never;
18194
19763
  path?: never;
@@ -18341,7 +19910,7 @@ export type GetPerDiemResponses = {
18341
19910
  };
18342
19911
  export type GetPerDiemResponse = GetPerDiemResponses[keyof GetPerDiemResponses];
18343
19912
  export type UpdatePerDiemData = {
18344
- body?: PerDiemParameters;
19913
+ body?: PerDiemUpdateParameters;
18345
19914
  path: {
18346
19915
  /**
18347
19916
  * Unique identifier of the per diem.
@@ -18497,7 +20066,7 @@ export type GetPositionFunctionResponses = {
18497
20066
  };
18498
20067
  export type GetPositionFunctionResponse = GetPositionFunctionResponses[keyof GetPositionFunctionResponses];
18499
20068
  export type UpdatePositionFunctionData = {
18500
- body?: PositionFunctionParameters;
20069
+ body?: PositionFunctionUpdateParameters;
18501
20070
  path: {
18502
20071
  id: string;
18503
20072
  };
@@ -18901,7 +20470,7 @@ export type CreateCompanyUserDetailResponses = {
18901
20470
  };
18902
20471
  export type CreateCompanyUserDetailResponse = CreateCompanyUserDetailResponses[keyof CreateCompanyUserDetailResponses];
18903
20472
  export type UpdateCompanyUserDetailData = {
18904
- body: PwaCompanyUserDetailsParameters;
20473
+ body: PwaCompanyUserDetailsUpdateParameters;
18905
20474
  path: {
18906
20475
  id: string;
18907
20476
  };
@@ -18909,6 +20478,10 @@ export type UpdateCompanyUserDetailData = {
18909
20478
  url: '/api/v1/pwa/company_user_details/{id}';
18910
20479
  };
18911
20480
  export type UpdateCompanyUserDetailErrors = {
20481
+ /**
20482
+ * Bad Request
20483
+ */
20484
+ 400: Problem;
18912
20485
  /**
18913
20486
  * Forbidden
18914
20487
  */
@@ -19678,7 +21251,7 @@ export type DeleteTimeCardPerDiemResponses = {
19678
21251
  };
19679
21252
  export type DeleteTimeCardPerDiemResponse = DeleteTimeCardPerDiemResponses[keyof DeleteTimeCardPerDiemResponses];
19680
21253
  export type UpdateTimeCardPerDiemData = {
19681
- body: TimeCardPerDiemParameters;
21254
+ body: TimeCardPerDiemUpdateParameters;
19682
21255
  path: {
19683
21256
  time_card_id: string;
19684
21257
  id: number;
@@ -21082,7 +22655,7 @@ export type DeleteHolidayResponses = {
21082
22655
  };
21083
22656
  export type DeleteHolidayResponse = DeleteHolidayResponses[keyof DeleteHolidayResponses];
21084
22657
  export type UpdateHolidayData = {
21085
- body: HolidayParameters;
22658
+ body: HolidayUpdateParameters;
21086
22659
  path: {
21087
22660
  /**
21088
22661
  * ID of the pay schedule
@@ -21177,9 +22750,88 @@ export type GetPayPeriodConfigData = {
21177
22750
  */
21178
22751
  'as_of[valid]'?: string;
21179
22752
  };
21180
- url: '/api/v1/timekeeping/pay_period_configs/{id}';
22753
+ url: '/api/v1/timekeeping/pay_period_configs/{id}';
22754
+ };
22755
+ export type GetPayPeriodConfigErrors = {
22756
+ /**
22757
+ * Forbidden
22758
+ */
22759
+ 403: Problem;
22760
+ /**
22761
+ * Not Found
22762
+ */
22763
+ 404: Problem;
22764
+ };
22765
+ export type GetPayPeriodConfigError = GetPayPeriodConfigErrors[keyof GetPayPeriodConfigErrors];
22766
+ export type GetPayPeriodConfigResponses = {
22767
+ /**
22768
+ * Success
22769
+ */
22770
+ 200: PayPeriodConfigResponseObject;
22771
+ };
22772
+ export type GetPayPeriodConfigResponse = GetPayPeriodConfigResponses[keyof GetPayPeriodConfigResponses];
22773
+ export type ListTimeCardActualsData = {
22774
+ body?: never;
22775
+ path?: never;
22776
+ query?: {
22777
+ /**
22778
+ * Filter by parent time card
22779
+ */
22780
+ 'filter[timekeeping_time_card_id]'?: string;
22781
+ 'filter[created_at][gte]'?: string;
22782
+ 'filter[created_at][lte]'?: string;
22783
+ 'filter[updated_at][gte]'?: string;
22784
+ 'filter[updated_at][lte]'?: string;
22785
+ filter?: string;
22786
+ 'filter[unexpected]'?: string;
22787
+ /**
22788
+ * This pagination cursor corresponds to the cursor value found in the response in
22789
+ * `meta.page.next_cursor`.
22790
+ */
22791
+ 'page[cursor]'?: string;
22792
+ /**
22793
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
22794
+ */
22795
+ 'page[limit]'?: number;
22796
+ page?: string;
22797
+ };
22798
+ url: '/api/v1/timekeeping/time_card_actuals';
22799
+ };
22800
+ export type ListTimeCardActualsErrors = {
22801
+ /**
22802
+ * Bad Request
22803
+ */
22804
+ 400: Problem;
22805
+ /**
22806
+ * Forbidden
22807
+ */
22808
+ 403: Problem;
22809
+ /**
22810
+ * Unprocessable Content
22811
+ */
22812
+ 422: Problem;
22813
+ };
22814
+ export type ListTimeCardActualsError = ListTimeCardActualsErrors[keyof ListTimeCardActualsErrors];
22815
+ export type ListTimeCardActualsResponses = {
22816
+ /**
22817
+ * Success
22818
+ */
22819
+ 200: {
22820
+ meta: Meta;
22821
+ links: Links;
22822
+ data: Array<TimeCardActualsResponseObject>;
22823
+ };
22824
+ };
22825
+ export type ListTimeCardActualsResponse = ListTimeCardActualsResponses[keyof ListTimeCardActualsResponses];
22826
+ export type GetTimeCardActualData = {
22827
+ body?: never;
22828
+ path: {
22829
+ id: string;
22830
+ };
22831
+ query?: never;
22832
+ url: '/api/v1/timekeeping/time_card_actuals/{id}';
21181
22833
  };
21182
- export type GetPayPeriodConfigErrors = {
22834
+ export type GetTimeCardActualErrors = {
21183
22835
  /**
21184
22836
  * Forbidden
21185
22837
  */
@@ -21189,22 +22841,36 @@ export type GetPayPeriodConfigErrors = {
21189
22841
  */
21190
22842
  404: Problem;
21191
22843
  };
21192
- export type GetPayPeriodConfigError = GetPayPeriodConfigErrors[keyof GetPayPeriodConfigErrors];
21193
- export type GetPayPeriodConfigResponses = {
22844
+ export type GetTimeCardActualError = GetTimeCardActualErrors[keyof GetTimeCardActualErrors];
22845
+ export type GetTimeCardActualResponses = {
21194
22846
  /**
21195
22847
  * Success
21196
22848
  */
21197
- 200: PayPeriodConfigResponseObject;
22849
+ 200: TimeCardActualsResponseObject;
21198
22850
  };
21199
- export type GetPayPeriodConfigResponse = GetPayPeriodConfigResponses[keyof GetPayPeriodConfigResponses];
21200
- export type ListTimeCardActualsData = {
22851
+ export type GetTimeCardActualResponse = GetTimeCardActualResponses[keyof GetTimeCardActualResponses];
22852
+ export type ListTimeSessionsData = {
21201
22853
  body?: never;
21202
22854
  path?: never;
21203
22855
  query?: {
21204
22856
  /**
21205
- * Filter by parent time card
22857
+ * Returns only sessions for this worker.
21206
22858
  */
21207
- 'filter[timekeeping_time_card_id]'?: string;
22859
+ 'filter[user_id]'?: string;
22860
+ /**
22861
+ * Returns only sessions clocked in against this job.
22862
+ */
22863
+ 'filter[job_id]'?: string;
22864
+ /**
22865
+ * `true` returns only sessions with no job, `false` only those with a job. Cannot be combined with `filter[job_id]`.
22866
+ */
22867
+ 'filter[job_id][null]'?: boolean;
22868
+ /**
22869
+ * `true` returns only open sessions — the workers clocked in right now; `false` only sessions that have ended.
22870
+ */
22871
+ 'filter[active]'?: boolean;
22872
+ 'filter[start_time][gte]'?: string;
22873
+ 'filter[start_time][lte]'?: string;
21208
22874
  'filter[created_at][gte]'?: string;
21209
22875
  'filter[created_at][lte]'?: string;
21210
22876
  'filter[updated_at][gte]'?: string;
@@ -21222,9 +22888,9 @@ export type ListTimeCardActualsData = {
21222
22888
  'page[limit]'?: number;
21223
22889
  page?: string;
21224
22890
  };
21225
- url: '/api/v1/timekeeping/time_card_actuals';
22891
+ url: '/api/v1/timekeeping/time_sessions';
21226
22892
  };
21227
- export type ListTimeCardActualsErrors = {
22893
+ export type ListTimeSessionsErrors = {
21228
22894
  /**
21229
22895
  * Bad Request
21230
22896
  */
@@ -21238,27 +22904,23 @@ export type ListTimeCardActualsErrors = {
21238
22904
  */
21239
22905
  422: Problem;
21240
22906
  };
21241
- export type ListTimeCardActualsError = ListTimeCardActualsErrors[keyof ListTimeCardActualsErrors];
21242
- export type ListTimeCardActualsResponses = {
22907
+ export type ListTimeSessionsError = ListTimeSessionsErrors[keyof ListTimeSessionsErrors];
22908
+ export type ListTimeSessionsResponses = {
21243
22909
  /**
21244
22910
  * Success
21245
22911
  */
21246
- 200: {
21247
- meta: Meta;
21248
- links: Links;
21249
- data: Array<TimeCardActualsResponseObject>;
21250
- };
22912
+ 200: TimeSessionsResponseObject;
21251
22913
  };
21252
- export type ListTimeCardActualsResponse = ListTimeCardActualsResponses[keyof ListTimeCardActualsResponses];
21253
- export type GetTimeCardActualData = {
22914
+ export type ListTimeSessionsResponse = ListTimeSessionsResponses[keyof ListTimeSessionsResponses];
22915
+ export type GetTimeSessionData = {
21254
22916
  body?: never;
21255
22917
  path: {
21256
22918
  id: string;
21257
22919
  };
21258
22920
  query?: never;
21259
- url: '/api/v1/timekeeping/time_card_actuals/{id}';
22921
+ url: '/api/v1/timekeeping/time_sessions/{id}';
21260
22922
  };
21261
- export type GetTimeCardActualErrors = {
22923
+ export type GetTimeSessionErrors = {
21262
22924
  /**
21263
22925
  * Forbidden
21264
22926
  */
@@ -21268,14 +22930,14 @@ export type GetTimeCardActualErrors = {
21268
22930
  */
21269
22931
  404: Problem;
21270
22932
  };
21271
- export type GetTimeCardActualError = GetTimeCardActualErrors[keyof GetTimeCardActualErrors];
21272
- export type GetTimeCardActualResponses = {
22933
+ export type GetTimeSessionError = GetTimeSessionErrors[keyof GetTimeSessionErrors];
22934
+ export type GetTimeSessionResponses = {
21273
22935
  /**
21274
22936
  * Success
21275
22937
  */
21276
- 200: TimeCardActualsResponseObject;
22938
+ 200: TimeSessionResponseObject;
21277
22939
  };
21278
- export type GetTimeCardActualResponse = GetTimeCardActualResponses[keyof GetTimeCardActualResponses];
22940
+ export type GetTimeSessionResponse = GetTimeSessionResponses[keyof GetTimeSessionResponses];
21279
22941
  export type ListTodoInboxData = {
21280
22942
  body?: never;
21281
22943
  path?: never;
@@ -21509,6 +23171,10 @@ export type UpdateScheduledChangeData = {
21509
23171
  url: '/api/v1/users/{user_id}/companies/{company_id}/scheduled_changes/{id}';
21510
23172
  };
21511
23173
  export type UpdateScheduledChangeErrors = {
23174
+ /**
23175
+ * Bad Request
23176
+ */
23177
+ 400: Problem;
21512
23178
  /**
21513
23179
  * Forbidden
21514
23180
  */
@@ -21548,6 +23214,10 @@ export type CreateScheduledTerminationErrors = {
21548
23214
  * Forbidden
21549
23215
  */
21550
23216
  403: Problem;
23217
+ /**
23218
+ * Not Found
23219
+ */
23220
+ 404: Problem;
21551
23221
  /**
21552
23222
  * Unprocessable Content
21553
23223
  */
@@ -21824,6 +23494,113 @@ export type UpdateUserResponses = {
21824
23494
  200: UserResponseObject;
21825
23495
  };
21826
23496
  export type UpdateUserResponse = UpdateUserResponses[keyof UpdateUserResponses];
23497
+ export type ListBoundariesData = {
23498
+ body?: never;
23499
+ path: {
23500
+ wage_determination_id: string;
23501
+ };
23502
+ query?: {
23503
+ 'filter[id]'?: string;
23504
+ 'filter[boundary_id]'?: string;
23505
+ 'filter[name]'?: string;
23506
+ 'filter[boundary_type]'?: string;
23507
+ 'filter[source_boundary_id]'?: string;
23508
+ 'filter[source_geo_id]'?: string;
23509
+ 'filter[source_unique_id]'?: string;
23510
+ filter?: string;
23511
+ 'filter[unexpected]'?: string;
23512
+ /**
23513
+ * This pagination cursor corresponds to the cursor value found in the response in
23514
+ * `meta.page.next_cursor`.
23515
+ */
23516
+ 'page[cursor]'?: string;
23517
+ /**
23518
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
23519
+ */
23520
+ 'page[limit]'?: number;
23521
+ page?: string;
23522
+ };
23523
+ url: '/api/v1/wage_determinations/{wage_determination_id}/boundaries';
23524
+ };
23525
+ export type ListBoundariesErrors = {
23526
+ /**
23527
+ * Bad Request
23528
+ */
23529
+ 400: Problem;
23530
+ /**
23531
+ * Forbidden
23532
+ */
23533
+ 403: Problem;
23534
+ /**
23535
+ * Not Found
23536
+ */
23537
+ 404: Problem;
23538
+ };
23539
+ export type ListBoundariesError = ListBoundariesErrors[keyof ListBoundariesErrors];
23540
+ export type ListBoundariesResponses = {
23541
+ /**
23542
+ * Success
23543
+ */
23544
+ 200: WageDeterminationBoundariesResponseObject;
23545
+ };
23546
+ export type ListBoundariesResponse = ListBoundariesResponses[keyof ListBoundariesResponses];
23547
+ export type ListConstructionTypesData = {
23548
+ body?: never;
23549
+ path: {
23550
+ wage_determination_id: string;
23551
+ };
23552
+ query?: {
23553
+ 'filter[id]'?: string;
23554
+ /**
23555
+ * :
23556
+ * * `BUILDING`
23557
+ * * `HEAVY`
23558
+ * * `HIGHWAY`
23559
+ * * `RESIDENTIAL`
23560
+ *
23561
+ */
23562
+ 'filter[construction_type]'?: string;
23563
+ filter?: string;
23564
+ 'filter[unexpected]'?: string;
23565
+ /**
23566
+ * This pagination cursor corresponds to the cursor value found in the response in
23567
+ * `meta.page.next_cursor`.
23568
+ */
23569
+ 'page[cursor]'?: string;
23570
+ /**
23571
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
23572
+ */
23573
+ 'page[limit]'?: number;
23574
+ page?: string;
23575
+ };
23576
+ url: '/api/v1/wage_determinations/{wage_determination_id}/construction_types';
23577
+ };
23578
+ export type ListConstructionTypesErrors = {
23579
+ /**
23580
+ * Bad Request
23581
+ */
23582
+ 400: Problem;
23583
+ /**
23584
+ * Forbidden
23585
+ */
23586
+ 403: Problem;
23587
+ /**
23588
+ * Not Found
23589
+ */
23590
+ 404: Problem;
23591
+ /**
23592
+ * Unsupported construction_type filter
23593
+ */
23594
+ 422: Problem;
23595
+ };
23596
+ export type ListConstructionTypesError = ListConstructionTypesErrors[keyof ListConstructionTypesErrors];
23597
+ export type ListConstructionTypesResponses = {
23598
+ /**
23599
+ * Success
23600
+ */
23601
+ 200: ConstructionTypesResponseObject;
23602
+ };
23603
+ export type ListConstructionTypesResponse = ListConstructionTypesResponses[keyof ListConstructionTypesResponses];
21827
23604
  export type ListLaborRatesData = {
21828
23605
  body?: never;
21829
23606
  path: {
@@ -21871,6 +23648,162 @@ export type ListLaborRatesResponses = {
21871
23648
  200: LaborRatesResponseObject;
21872
23649
  };
21873
23650
  export type ListLaborRatesResponse = ListLaborRatesResponses[keyof ListLaborRatesResponses];
23651
+ export type ListProjectTypesData = {
23652
+ body?: never;
23653
+ path: {
23654
+ wage_determination_id: string;
23655
+ };
23656
+ query?: {
23657
+ 'filter[id]'?: string;
23658
+ 'filter[project_type]'?: string;
23659
+ 'filter[project_type_subtext]'?: string;
23660
+ filter?: string;
23661
+ 'filter[unexpected]'?: string;
23662
+ /**
23663
+ * This pagination cursor corresponds to the cursor value found in the response in
23664
+ * `meta.page.next_cursor`.
23665
+ */
23666
+ 'page[cursor]'?: string;
23667
+ /**
23668
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
23669
+ */
23670
+ 'page[limit]'?: number;
23671
+ page?: string;
23672
+ };
23673
+ url: '/api/v1/wage_determinations/{wage_determination_id}/project_types';
23674
+ };
23675
+ export type ListProjectTypesErrors = {
23676
+ /**
23677
+ * Bad Request
23678
+ */
23679
+ 400: Problem;
23680
+ /**
23681
+ * Forbidden
23682
+ */
23683
+ 403: Problem;
23684
+ /**
23685
+ * Not Found
23686
+ */
23687
+ 404: Problem;
23688
+ };
23689
+ export type ListProjectTypesError = ListProjectTypesErrors[keyof ListProjectTypesErrors];
23690
+ export type ListProjectTypesResponses = {
23691
+ /**
23692
+ * Success
23693
+ */
23694
+ 200: ProjectTypesResponseObject;
23695
+ };
23696
+ export type ListProjectTypesResponse = ListProjectTypesResponses[keyof ListProjectTypesResponses];
23697
+ export type ListReferenceItemsData = {
23698
+ body?: never;
23699
+ path: {
23700
+ wage_determination_id: string;
23701
+ };
23702
+ query?: {
23703
+ 'filter[id]'?: string;
23704
+ 'filter[wage_classification_id]'?: string;
23705
+ 'filter[position]'?: number;
23706
+ 'filter[letter]'?: string;
23707
+ /**
23708
+ * :
23709
+ * * `footnote`
23710
+ * * `premium_pay`
23711
+ * * `holidays`
23712
+ * * `zone_pay`
23713
+ *
23714
+ */
23715
+ 'filter[container_type]'?: string;
23716
+ filter?: string;
23717
+ 'filter[unexpected]'?: string;
23718
+ /**
23719
+ * This pagination cursor corresponds to the cursor value found in the response in
23720
+ * `meta.page.next_cursor`.
23721
+ */
23722
+ 'page[cursor]'?: string;
23723
+ /**
23724
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
23725
+ */
23726
+ 'page[limit]'?: number;
23727
+ page?: string;
23728
+ };
23729
+ url: '/api/v1/wage_determinations/{wage_determination_id}/reference_items';
23730
+ };
23731
+ export type ListReferenceItemsErrors = {
23732
+ /**
23733
+ * Bad Request
23734
+ */
23735
+ 400: Problem;
23736
+ /**
23737
+ * Forbidden
23738
+ */
23739
+ 403: Problem;
23740
+ /**
23741
+ * Not Found
23742
+ */
23743
+ 404: Problem;
23744
+ /**
23745
+ * Unsupported container_type filter
23746
+ */
23747
+ 422: Problem;
23748
+ };
23749
+ export type ListReferenceItemsError = ListReferenceItemsErrors[keyof ListReferenceItemsErrors];
23750
+ export type ListReferenceItemsResponses = {
23751
+ /**
23752
+ * Success
23753
+ */
23754
+ 200: ReferenceItemsResponseObject;
23755
+ };
23756
+ export type ListReferenceItemsResponse = ListReferenceItemsResponses[keyof ListReferenceItemsResponses];
23757
+ export type ListWageClassificationsData = {
23758
+ body?: never;
23759
+ path: {
23760
+ wage_determination_id: string;
23761
+ };
23762
+ query?: {
23763
+ 'filter[id]'?: string;
23764
+ 'filter[identifier]'?: string;
23765
+ 'filter[date]'?: string;
23766
+ filter?: string;
23767
+ 'filter[unexpected]'?: string;
23768
+ /**
23769
+ * This pagination cursor corresponds to the cursor value found in the response in
23770
+ * `meta.page.next_cursor`.
23771
+ */
23772
+ 'page[cursor]'?: string;
23773
+ /**
23774
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
23775
+ */
23776
+ 'page[limit]'?: number;
23777
+ page?: string;
23778
+ };
23779
+ url: '/api/v1/wage_determinations/{wage_determination_id}/wage_classifications';
23780
+ };
23781
+ export type ListWageClassificationsErrors = {
23782
+ /**
23783
+ * Bad Request
23784
+ */
23785
+ 400: Problem;
23786
+ /**
23787
+ * Forbidden
23788
+ */
23789
+ 403: Problem;
23790
+ /**
23791
+ * Not Found
23792
+ */
23793
+ 404: Problem;
23794
+ /**
23795
+ * Unprocessable Content
23796
+ */
23797
+ 422: Problem;
23798
+ };
23799
+ export type ListWageClassificationsError = ListWageClassificationsErrors[keyof ListWageClassificationsErrors];
23800
+ export type ListWageClassificationsResponses = {
23801
+ /**
23802
+ * Success
23803
+ */
23804
+ 200: WageClassificationsResponseObject;
23805
+ };
23806
+ export type ListWageClassificationsResponse = ListWageClassificationsResponses[keyof ListWageClassificationsResponses];
21874
23807
  export type ListWageDeterminationsData = {
21875
23808
  body?: never;
21876
23809
  path?: never;