@dsptch-work/api-client 0.36.0 → 0.38.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.
- package/CHANGELOG.md +269 -0
- package/dist/gen/index.d.ts +2 -2
- package/dist/gen/index.js +1 -1
- package/dist/gen/sdk.gen.d.ts +187 -31
- package/dist/gen/sdk.gen.js +257 -34
- package/dist/gen/types.gen.d.ts +1032 -362
- package/dist/gen/zod.gen.d.ts +1292 -948
- package/dist/gen/zod.gen.js +715 -456
- package/package.json +1 -1
package/dist/gen/zod.gen.js
CHANGED
|
@@ -262,7 +262,7 @@ export const zProblem = z.object({
|
|
|
262
262
|
*
|
|
263
263
|
* **Unparseable Date Value**
|
|
264
264
|
*
|
|
265
|
-
* A date-time value cannot be parsed,
|
|
265
|
+
* A date-time value cannot be parsed, falls outside the storable range, or has no UTC offset where one is required. Format values as ISO 8601 (for example `2026-08-05` or `2026-08-05T14:30`); a time entry's `start_time` and `end_time`, a timestamp filter bound, and an `as_of[]` coordinate need an offset (for example `2026-08-05T14:30:00-04:00` or `2026-08-05T18:30:00Z`).
|
|
266
266
|
*
|
|
267
267
|
* ### invalid_filter_value
|
|
268
268
|
*
|
|
@@ -288,12 +288,6 @@ export const zProblem = z.object({
|
|
|
288
288
|
*
|
|
289
289
|
* An attachment signed id names no upload this endpoint can read. A signed id is issued for one `resource` and verifies only there, so an id for a different resource is indistinguishable from one that is malformed, expired, or tampered with, and all of them answer alike. The message names the resource the upload needed; upload the file again to the direct-uploads endpoint naming it, and pass the signed id that call returns.
|
|
290
290
|
*
|
|
291
|
-
* ### non_numeric_cents
|
|
292
|
-
*
|
|
293
|
-
* **Non-Numeric Money Value**
|
|
294
|
-
*
|
|
295
|
-
* A money parameter is not a numeric value in cents. Send money as a numeric cents value.
|
|
296
|
-
*
|
|
297
291
|
* ### nothing_to_cancel
|
|
298
292
|
*
|
|
299
293
|
* **Nothing To Cancel**
|
|
@@ -418,7 +412,6 @@ export const zProblemTypeCatalog = z.enum([
|
|
|
418
412
|
'invalid_iso8601_duration',
|
|
419
413
|
'invalid_placement_move',
|
|
420
414
|
'invalid_signed_id',
|
|
421
|
-
'non_numeric_cents',
|
|
422
415
|
'nothing_to_cancel',
|
|
423
416
|
'pagination_failed',
|
|
424
417
|
'subtype_foreign_keys',
|
|
@@ -457,6 +450,7 @@ export const zDirectUploadParameters = z.object({
|
|
|
457
450
|
'internal.company_todos',
|
|
458
451
|
'internal.job_todos',
|
|
459
452
|
'internal.project_todos',
|
|
453
|
+
'jobs.documents',
|
|
460
454
|
'pay_periods.imports.aggregate_times',
|
|
461
455
|
'pay_periods.imports.dsptch_cprs',
|
|
462
456
|
'pay_periods.imports.time_entries',
|
|
@@ -605,7 +599,7 @@ export const zCompetencyCriterionResponseObject = z.object({
|
|
|
605
599
|
number: z.string().nullable(),
|
|
606
600
|
body: z.string().nullable(),
|
|
607
601
|
evidence_note: z.string().nullable(),
|
|
608
|
-
|
|
602
|
+
assessment_methods: z.array(z.enum([
|
|
609
603
|
'direct_observation',
|
|
610
604
|
'simulation',
|
|
611
605
|
'oral_questioning',
|
|
@@ -614,7 +608,7 @@ export const zCompetencyCriterionResponseObject = z.object({
|
|
|
614
608
|
'recognized_prior_learning',
|
|
615
609
|
'witness_testimony',
|
|
616
610
|
'other'
|
|
617
|
-
])
|
|
611
|
+
])),
|
|
618
612
|
created_at: z.iso.datetime(),
|
|
619
613
|
updated_at: z.iso.datetime()
|
|
620
614
|
});
|
|
@@ -625,7 +619,7 @@ export const zCompetencyCriterionParameters = z.object({
|
|
|
625
619
|
number: z.string().nullish(),
|
|
626
620
|
body: z.string().nullish(),
|
|
627
621
|
evidence_note: z.string().nullish(),
|
|
628
|
-
|
|
622
|
+
assessment_methods: z.array(z.enum([
|
|
629
623
|
'direct_observation',
|
|
630
624
|
'simulation',
|
|
631
625
|
'oral_questioning',
|
|
@@ -634,7 +628,7 @@ export const zCompetencyCriterionParameters = z.object({
|
|
|
634
628
|
'recognized_prior_learning',
|
|
635
629
|
'witness_testimony',
|
|
636
630
|
'other'
|
|
637
|
-
]).
|
|
631
|
+
])).optional()
|
|
638
632
|
});
|
|
639
633
|
/**
|
|
640
634
|
* Swap a draft catalog row with its neighbor. The row cannot move past either end of the list.
|
|
@@ -721,12 +715,12 @@ export const zCompetencyAssessmentResponseObject = z.object({
|
|
|
721
715
|
updated_at: z.iso.datetime()
|
|
722
716
|
});
|
|
723
717
|
/**
|
|
724
|
-
* One
|
|
718
|
+
* One criterion line on an assessment. decision and qa_feedback are omitted, not null, when the caller is the candidate and the package is not yet decided.
|
|
725
719
|
*/
|
|
726
|
-
export const
|
|
720
|
+
export const zCompetencyAssessmentCriterionResponseObject = z.object({
|
|
727
721
|
id: z.string(),
|
|
728
722
|
competencies_assessment_id: z.string(),
|
|
729
|
-
|
|
723
|
+
competencies_criterion_id: z.string(),
|
|
730
724
|
assessment_methods: z.array(z.enum([
|
|
731
725
|
'direct_observation',
|
|
732
726
|
'simulation',
|
|
@@ -757,7 +751,7 @@ export const zCompetencyAssessmentKeyActivityResponseObject = z.object({
|
|
|
757
751
|
*/
|
|
758
752
|
export const zCompetencyEvidenceItemResponseObject = z.object({
|
|
759
753
|
id: z.string(),
|
|
760
|
-
|
|
754
|
+
competencies_assessment_criterion_id: z.string(),
|
|
761
755
|
kind: z.enum([
|
|
762
756
|
'upload',
|
|
763
757
|
'form_submission',
|
|
@@ -1040,7 +1034,7 @@ export const zApprenticeshipProgramEmployerUpdateParameters = z.object({
|
|
|
1040
1034
|
require_timecard_allocation: z.boolean().optional()
|
|
1041
1035
|
});
|
|
1042
1036
|
/**
|
|
1043
|
-
* Create a period on a wage schedule; the wage schedule is taken from the URL path.
|
|
1037
|
+
* Create a period on a wage schedule; the wage schedule is taken from the URL path. wage_percent and fringe_percent are sent as decimal strings (e.g. "62.5"), and wage_cents and fringe_cents as cents in a decimal string (e.g. "2800" or "2800.0"). Omitting period_number, wage_percent, or wage_cents answers 400. A wrong JSON type, a negative number, or a null for any field but min_minutes, max_minutes, num_competencies, description, fringe_percent, and fringe_cents answers 422 at that field; a null in one of those leaves it unset, but a period with none of min_minutes, max_minutes, or num_competencies answers 422.
|
|
1044
1038
|
*/
|
|
1045
1039
|
export const zApprenticeshipWageSchedulePeriodParameters = z.object({
|
|
1046
1040
|
period_number: z.int().gte(0),
|
|
@@ -1048,13 +1042,13 @@ export const zApprenticeshipWageSchedulePeriodParameters = z.object({
|
|
|
1048
1042
|
max_minutes: z.int().gte(0).nullish(),
|
|
1049
1043
|
num_competencies: z.int().gte(0).nullish(),
|
|
1050
1044
|
description: z.string().nullish(),
|
|
1051
|
-
wage_percent: z.
|
|
1052
|
-
wage_cents: z.
|
|
1053
|
-
fringe_percent: z.
|
|
1054
|
-
fringe_cents: z.
|
|
1045
|
+
wage_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
1046
|
+
wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
1047
|
+
fringe_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1048
|
+
fringe_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
1055
1049
|
});
|
|
1056
1050
|
/**
|
|
1057
|
-
* 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 and fringe_cents
|
|
1051
|
+
* Update a period on a wage schedule. Send only the fields to change; the wage schedule is taken from the URL path, wage_percent and fringe_percent are sent as decimal strings (e.g. "62.5"), and wage_cents and fringe_cents as cents in a decimal string (e.g. "2800" or "2800.0"). A wrong JSON type, a negative number, or a null for any field but min_minutes, max_minutes, num_competencies, description, fringe_percent, and fringe_cents answers 422 at that field; a null in one of those clears it, but a period left with none of min_minutes, max_minutes, or num_competencies answers 422.
|
|
1058
1052
|
*/
|
|
1059
1053
|
export const zApprenticeshipWageSchedulePeriodUpdateParameters = z.object({
|
|
1060
1054
|
period_number: z.int().gte(0).optional(),
|
|
@@ -1062,13 +1056,13 @@ export const zApprenticeshipWageSchedulePeriodUpdateParameters = z.object({
|
|
|
1062
1056
|
max_minutes: z.int().gte(0).nullish(),
|
|
1063
1057
|
num_competencies: z.int().gte(0).nullish(),
|
|
1064
1058
|
description: z.string().nullish(),
|
|
1065
|
-
wage_percent: z.
|
|
1066
|
-
wage_cents: z.
|
|
1067
|
-
fringe_percent: z.
|
|
1068
|
-
fringe_cents: z.
|
|
1059
|
+
wage_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1060
|
+
wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1061
|
+
fringe_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1062
|
+
fringe_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
1069
1063
|
});
|
|
1070
1064
|
/**
|
|
1071
|
-
* Create a wage schedule for an occupation; the occupation is taken from the URL path. Money is sent as
|
|
1065
|
+
* Create a wage schedule for an occupation; the occupation is taken from the URL path. Money is sent as cents in a decimal string (e.g. "2800" or "2800.0"); periods may be created inline via periods_attributes. Omitting name, wage_unit, journeyworker_wage_unit, or period_unit answers 400. A blank name, a unit outside its listed values, a wrong JSON type, or a null for any field but description and journeyworker_fringe_cents answers 422; a null in either of those leaves the field unset.
|
|
1072
1066
|
*/
|
|
1073
1067
|
export const zApprenticeshipWageScheduleParameters = z.object({
|
|
1074
1068
|
name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
@@ -1097,9 +1091,9 @@ export const zApprenticeshipWageScheduleParameters = z.object({
|
|
|
1097
1091
|
'semi_annual',
|
|
1098
1092
|
'year'
|
|
1099
1093
|
]),
|
|
1100
|
-
journeyworker_wage_cents: z.
|
|
1101
|
-
journeyworker_fringe_cents: z.
|
|
1102
|
-
end_wage_cents: z.
|
|
1094
|
+
journeyworker_wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1095
|
+
journeyworker_fringe_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1096
|
+
end_wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1103
1097
|
periods_attributes: z.array(z.object({
|
|
1104
1098
|
id: z.string().optional(),
|
|
1105
1099
|
period_number: z.int().gte(0).optional(),
|
|
@@ -1107,15 +1101,15 @@ export const zApprenticeshipWageScheduleParameters = z.object({
|
|
|
1107
1101
|
max_minutes: z.int().gte(0).nullish(),
|
|
1108
1102
|
num_competencies: z.int().gte(0).nullish(),
|
|
1109
1103
|
description: z.string().nullish(),
|
|
1110
|
-
wage_percent: z.
|
|
1111
|
-
wage_cents: z.
|
|
1112
|
-
fringe_percent: z.
|
|
1113
|
-
fringe_cents: z.
|
|
1104
|
+
wage_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1105
|
+
wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1106
|
+
fringe_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1107
|
+
fringe_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1114
1108
|
_destroy: z.boolean().optional()
|
|
1115
1109
|
})).optional()
|
|
1116
1110
|
});
|
|
1117
1111
|
/**
|
|
1118
|
-
* Update a wage schedule for an occupation. Send only the fields to change; money is sent as
|
|
1112
|
+
* Update a wage schedule for an occupation. Send only the fields to change; money is sent as cents in a decimal string (e.g. "2800" or "2800.0") and periods may be created, updated, or removed inline via periods_attributes. A blank name, a unit outside its listed values, a wrong JSON type, or a null for any field but description and journeyworker_fringe_cents answers 422; a null in either of those clears the field.
|
|
1119
1113
|
*/
|
|
1120
1114
|
export const zApprenticeshipWageScheduleUpdateParameters = z.object({
|
|
1121
1115
|
name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
@@ -1144,9 +1138,9 @@ export const zApprenticeshipWageScheduleUpdateParameters = z.object({
|
|
|
1144
1138
|
'semi_annual',
|
|
1145
1139
|
'year'
|
|
1146
1140
|
]).optional(),
|
|
1147
|
-
journeyworker_wage_cents: z.
|
|
1148
|
-
journeyworker_fringe_cents: z.
|
|
1149
|
-
end_wage_cents: z.
|
|
1141
|
+
journeyworker_wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1142
|
+
journeyworker_fringe_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1143
|
+
end_wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1150
1144
|
periods_attributes: z.array(z.object({
|
|
1151
1145
|
id: z.string().optional(),
|
|
1152
1146
|
period_number: z.int().gte(0).optional(),
|
|
@@ -1154,10 +1148,10 @@ export const zApprenticeshipWageScheduleUpdateParameters = z.object({
|
|
|
1154
1148
|
max_minutes: z.int().gte(0).nullish(),
|
|
1155
1149
|
num_competencies: z.int().gte(0).nullish(),
|
|
1156
1150
|
description: z.string().nullish(),
|
|
1157
|
-
wage_percent: z.
|
|
1158
|
-
wage_cents: z.
|
|
1159
|
-
fringe_percent: z.
|
|
1160
|
-
fringe_cents: z.
|
|
1151
|
+
wage_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1152
|
+
wage_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1153
|
+
fringe_percent: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1154
|
+
fringe_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1161
1155
|
_destroy: z.boolean().optional()
|
|
1162
1156
|
})).optional()
|
|
1163
1157
|
});
|
|
@@ -1238,16 +1232,16 @@ export const zPeopleEmploymentCreateParameters = z.object({
|
|
|
1238
1232
|
payroll_id: z.string().nullish(),
|
|
1239
1233
|
enrolled_in_t_and_a: z.boolean().optional(),
|
|
1240
1234
|
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
1241
|
-
hourly_rate_cents: z.string().nullish(),
|
|
1235
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1242
1236
|
overtime_eligible: z.boolean().nullish(),
|
|
1243
1237
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
1244
1238
|
worked_annual_minutes: z.int().nullish(),
|
|
1245
1239
|
pto_annual_minutes: z.int().nullish(),
|
|
1246
1240
|
holiday_annual_minutes: z.int().nullish(),
|
|
1247
1241
|
training_annual_minutes: z.int().nullish(),
|
|
1248
|
-
training_annual_amount_cents: z.string().nullish(),
|
|
1249
|
-
employer_combined_health_amount_cents: z.string().nullish(),
|
|
1250
|
-
employer_combined_savings_cents: z.string().nullish()
|
|
1242
|
+
training_annual_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1243
|
+
employer_combined_health_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1244
|
+
employer_combined_savings_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
1251
1245
|
});
|
|
1252
1246
|
/**
|
|
1253
1247
|
* Request body for creating one employment boundary. effective_date is required and is interpreted at midnight in the credential company's time zone. Today and past dates must fall inside the family's latest version, before its termination; future dates retain scheduling behavior. Send at least one value to change; omitted values carry forward from the version immediately before the new boundary.
|
|
@@ -1255,16 +1249,16 @@ export const zPeopleEmploymentCreateParameters = z.object({
|
|
|
1255
1249
|
export const zPeopleEmploymentScheduledChangeCreateParameters = z.object({
|
|
1256
1250
|
effective_date: z.iso.date(),
|
|
1257
1251
|
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
1258
|
-
hourly_rate_cents: z.string().nullish(),
|
|
1252
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1259
1253
|
overtime_eligible: z.boolean().nullish(),
|
|
1260
1254
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
1261
1255
|
worked_annual_minutes: z.int().nullish(),
|
|
1262
1256
|
pto_annual_minutes: z.int().nullish(),
|
|
1263
1257
|
holiday_annual_minutes: z.int().nullish(),
|
|
1264
1258
|
training_annual_minutes: z.int().nullish(),
|
|
1265
|
-
training_annual_amount_cents: z.string().nullish(),
|
|
1266
|
-
employer_combined_health_amount_cents: z.string().nullish(),
|
|
1267
|
-
employer_combined_savings_cents: z.string().nullish(),
|
|
1259
|
+
training_annual_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1260
|
+
employer_combined_health_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1261
|
+
employer_combined_savings_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1268
1262
|
companies_department_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish()
|
|
1269
1263
|
});
|
|
1270
1264
|
/**
|
|
@@ -1272,16 +1266,16 @@ export const zPeopleEmploymentScheduledChangeCreateParameters = z.object({
|
|
|
1272
1266
|
*/
|
|
1273
1267
|
export const zPeopleEmploymentScheduledChangeUpdateParameters = z.object({
|
|
1274
1268
|
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
1275
|
-
hourly_rate_cents: z.string().nullish(),
|
|
1269
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1276
1270
|
overtime_eligible: z.boolean().nullish(),
|
|
1277
1271
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
1278
1272
|
worked_annual_minutes: z.int().nullish(),
|
|
1279
1273
|
pto_annual_minutes: z.int().nullish(),
|
|
1280
1274
|
holiday_annual_minutes: z.int().nullish(),
|
|
1281
1275
|
training_annual_minutes: z.int().nullish(),
|
|
1282
|
-
training_annual_amount_cents: z.string().nullish(),
|
|
1283
|
-
employer_combined_health_amount_cents: z.string().nullish(),
|
|
1284
|
-
employer_combined_savings_cents: z.string().nullish(),
|
|
1276
|
+
training_annual_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1277
|
+
employer_combined_health_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1278
|
+
employer_combined_savings_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
1285
1279
|
companies_department_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish()
|
|
1286
1280
|
});
|
|
1287
1281
|
/**
|
|
@@ -1449,7 +1443,7 @@ export const zTimecodeHistoryVersionObject = z.object({
|
|
|
1449
1443
|
* 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.
|
|
1450
1444
|
*/
|
|
1451
1445
|
export const zTimecodeParameters = z.object({
|
|
1452
|
-
effective_date: z.
|
|
1446
|
+
effective_date: z.iso.date().optional(),
|
|
1453
1447
|
name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
1454
1448
|
description: z.string().nullish(),
|
|
1455
1449
|
description_is_required: z.boolean().optional(),
|
|
@@ -1475,8 +1469,8 @@ export const zTimecodeParameters = z.object({
|
|
|
1475
1469
|
* 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.
|
|
1476
1470
|
*/
|
|
1477
1471
|
export const zTimecodeCorrectionParameters = z.object({
|
|
1478
|
-
effective_from: z.
|
|
1479
|
-
effective_to: z.
|
|
1472
|
+
effective_from: z.iso.datetime().optional(),
|
|
1473
|
+
effective_to: z.iso.datetime().optional(),
|
|
1480
1474
|
name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
1481
1475
|
description: z.string().nullish(),
|
|
1482
1476
|
description_is_required: z.boolean().optional(),
|
|
@@ -1502,7 +1496,7 @@ export const zTimecodeCorrectionParameters = z.object({
|
|
|
1502
1496
|
* 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.
|
|
1503
1497
|
*/
|
|
1504
1498
|
export const zTimecodeGenesisParameters = z.object({
|
|
1505
|
-
effective_date: z.
|
|
1499
|
+
effective_date: z.iso.date()
|
|
1506
1500
|
});
|
|
1507
1501
|
/**
|
|
1508
1502
|
* Request body for scheduling a timecode's termination: the date from which it stops being valid. The body is required — the endpoint reads effective_date with `params.expect`, so a request omitting it is refused with `400`.
|
|
@@ -1514,7 +1508,7 @@ export const zTimecodeScheduledTerminationParameters = z.object({
|
|
|
1514
1508
|
* Request body for scheduling a future change to a timecode: an effective_date paired with the attribute values to apply from that date. Only `effective_date` is required; omitted attributes inherit the current version's values.
|
|
1515
1509
|
*/
|
|
1516
1510
|
export const zTimecodeScheduledChangeParameters = z.object({
|
|
1517
|
-
effective_date: z.
|
|
1511
|
+
effective_date: z.iso.date(),
|
|
1518
1512
|
name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
1519
1513
|
description: z.string().nullish(),
|
|
1520
1514
|
description_is_required: z.boolean().optional(),
|
|
@@ -1619,7 +1613,7 @@ export const zPerDiemResponseObject = z.object({
|
|
|
1619
1613
|
export const zPerDiemParameters = z.object({
|
|
1620
1614
|
name: z.string(),
|
|
1621
1615
|
description: z.string().nullish(),
|
|
1622
|
-
rate_cents: z.string(),
|
|
1616
|
+
rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
1623
1617
|
currency: z.string(),
|
|
1624
1618
|
taxable: z.boolean().optional(),
|
|
1625
1619
|
default: z.boolean().optional(),
|
|
@@ -1633,7 +1627,7 @@ export const zPerDiemParameters = z.object({
|
|
|
1633
1627
|
export const zPerDiemUpdateParameters = z.object({
|
|
1634
1628
|
name: z.string().optional(),
|
|
1635
1629
|
description: z.string().nullish(),
|
|
1636
|
-
rate_cents: z.string().optional(),
|
|
1630
|
+
rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
1637
1631
|
currency: z.string().optional(),
|
|
1638
1632
|
taxable: z.boolean().optional(),
|
|
1639
1633
|
default: z.boolean().optional(),
|
|
@@ -2397,6 +2391,183 @@ export const zPwaJobDetailsResponseObject = z.object({
|
|
|
2397
2391
|
il_shines_project_id: z.string().nullish(),
|
|
2398
2392
|
ny_dol_prc_number: z.string().nullish()
|
|
2399
2393
|
}).nullable();
|
|
2394
|
+
/**
|
|
2395
|
+
* Parameters for creating a job. Sets the job's schedule, work types, address, custom-field values, and optional Prevailing Wage / Apprenticeship (PWA) compliance. `requested_by_company_id` and `created_by_user_id` are required unless `template_id` names a template, whose copy keeps both. Undeclared body keys return 400, and a null for a field that is not nullable or a wrongly typed value returns 422 at its pointer, before any job or relationship is saved.
|
|
2396
|
+
*/
|
|
2397
|
+
export const zJobCreateParameters = z.object({
|
|
2398
|
+
created_by_user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
2399
|
+
template_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2400
|
+
name: z.string().nullish(),
|
|
2401
|
+
description: z.string().optional(),
|
|
2402
|
+
requested_by_company_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
2403
|
+
purchase_order_number: z.string().nullish(),
|
|
2404
|
+
project_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2405
|
+
companies_department_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2406
|
+
federal_pwa_mode: z.enum([
|
|
2407
|
+
'all',
|
|
2408
|
+
'pw_only',
|
|
2409
|
+
'ap_only',
|
|
2410
|
+
'none'
|
|
2411
|
+
]).optional(),
|
|
2412
|
+
regional_pwa_mode: z.enum([
|
|
2413
|
+
'all',
|
|
2414
|
+
'pw_only',
|
|
2415
|
+
'ap_only',
|
|
2416
|
+
'none'
|
|
2417
|
+
]).optional(),
|
|
2418
|
+
region: z.string().nullish(),
|
|
2419
|
+
start_time: z.string().nullish(),
|
|
2420
|
+
end_time: z.string().nullish(),
|
|
2421
|
+
tz_name: z.string().optional(),
|
|
2422
|
+
time_card_start_day: z.int().gte(0).lte(6).optional(),
|
|
2423
|
+
clock_in_requirement: z.enum([
|
|
2424
|
+
'none',
|
|
2425
|
+
'warning',
|
|
2426
|
+
'required'
|
|
2427
|
+
]).optional(),
|
|
2428
|
+
send_geofence_reminders: z.boolean().nullish(),
|
|
2429
|
+
allow_customer_access: z.boolean().optional(),
|
|
2430
|
+
tracks_feature_allocations: z.boolean().optional(),
|
|
2431
|
+
requires_feature_allocation: z.boolean().optional(),
|
|
2432
|
+
max_one_feature_allocation: z.boolean().optional(),
|
|
2433
|
+
production_tracking_kind: z.enum([
|
|
2434
|
+
'none',
|
|
2435
|
+
'feature',
|
|
2436
|
+
'quantity'
|
|
2437
|
+
]).optional(),
|
|
2438
|
+
manager_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2439
|
+
timekeeping_timecode_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2440
|
+
job_work_types_attributes: z.array(z.object({
|
|
2441
|
+
primary: z.boolean().optional(),
|
|
2442
|
+
work_type_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional()
|
|
2443
|
+
})).optional(),
|
|
2444
|
+
job_address_attributes: z.object({
|
|
2445
|
+
id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2446
|
+
sub_address_number: z.string().nullish(),
|
|
2447
|
+
address_number: z.string().nullish(),
|
|
2448
|
+
neighborhood: z.string().nullish(),
|
|
2449
|
+
municipality: z.string().nullish(),
|
|
2450
|
+
sub_region: z.string().nullish(),
|
|
2451
|
+
region: z.string().nullish(),
|
|
2452
|
+
postal_code: z.string().nullish(),
|
|
2453
|
+
country: z.string().nullish(),
|
|
2454
|
+
timezone: z.string().nullish(),
|
|
2455
|
+
verified: z.boolean().optional(),
|
|
2456
|
+
label: z.string().nullish()
|
|
2457
|
+
}).optional(),
|
|
2458
|
+
custom_fields: z.array(z.object({
|
|
2459
|
+
custom_field_config_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
2460
|
+
value: z.string().nullable()
|
|
2461
|
+
})).optional(),
|
|
2462
|
+
pwa_details: z.object({
|
|
2463
|
+
contractor_type: z.enum(['prime_contractor', 'sub_contractor']).nullish(),
|
|
2464
|
+
pay_full_cash_fringe_by_default: z.boolean().optional(),
|
|
2465
|
+
dir_awarding_body_id: z.string().nullish(),
|
|
2466
|
+
dir_project_id: z.string().nullish(),
|
|
2467
|
+
dir_project_name: z.string().nullish(),
|
|
2468
|
+
dir_contract_id: z.string().nullish(),
|
|
2469
|
+
dir_project_awarding_body_name: z.string().nullish(),
|
|
2470
|
+
dir_project_number: z.string().nullish(),
|
|
2471
|
+
il_dol_project_id: z.string().nullish(),
|
|
2472
|
+
il_dol_state_capital_funds: z.boolean().nullish(),
|
|
2473
|
+
il_dol_public_body_name: z.string().nullish(),
|
|
2474
|
+
il_dol_public_body_contact_id: z.string().nullish(),
|
|
2475
|
+
il_dol_public_body_address_id: z.string().nullish(),
|
|
2476
|
+
il_dol_contract_number: z.string().nullish(),
|
|
2477
|
+
il_shines_project_id: z.string().nullish(),
|
|
2478
|
+
ny_dol_prc_number: z.string().nullish()
|
|
2479
|
+
}).optional()
|
|
2480
|
+
});
|
|
2481
|
+
/**
|
|
2482
|
+
* Parameters for updating an existing job. Every field is optional; omit a field to preserve its current value. The resulting job must still satisfy schedule and PWA validation rules. Accepts every shared job field plus a directly settable status and custom-field changes. Sending `created_by_user_id` returns 400 unknown_key, including when it matches the existing creator or is null. Undeclared body keys return 400, and a null for a field that is not nullable or a wrongly typed value returns 422 at its pointer, before any job or relationship changes.
|
|
2483
|
+
*/
|
|
2484
|
+
export const zJobUpdateParameters = z.object({
|
|
2485
|
+
name: z.string().nullish(),
|
|
2486
|
+
description: z.string().optional(),
|
|
2487
|
+
requested_by_company_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
2488
|
+
purchase_order_number: z.string().nullish(),
|
|
2489
|
+
project_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2490
|
+
companies_department_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2491
|
+
federal_pwa_mode: z.enum([
|
|
2492
|
+
'all',
|
|
2493
|
+
'pw_only',
|
|
2494
|
+
'ap_only',
|
|
2495
|
+
'none'
|
|
2496
|
+
]).optional(),
|
|
2497
|
+
regional_pwa_mode: z.enum([
|
|
2498
|
+
'all',
|
|
2499
|
+
'pw_only',
|
|
2500
|
+
'ap_only',
|
|
2501
|
+
'none'
|
|
2502
|
+
]).optional(),
|
|
2503
|
+
region: z.string().nullish(),
|
|
2504
|
+
start_time: z.string().nullish(),
|
|
2505
|
+
end_time: z.string().nullish(),
|
|
2506
|
+
tz_name: z.string().optional(),
|
|
2507
|
+
time_card_start_day: z.int().gte(0).lte(6).optional(),
|
|
2508
|
+
clock_in_requirement: z.enum([
|
|
2509
|
+
'none',
|
|
2510
|
+
'warning',
|
|
2511
|
+
'required'
|
|
2512
|
+
]).optional(),
|
|
2513
|
+
send_geofence_reminders: z.boolean().nullish(),
|
|
2514
|
+
allow_customer_access: z.boolean().optional(),
|
|
2515
|
+
tracks_feature_allocations: z.boolean().optional(),
|
|
2516
|
+
requires_feature_allocation: z.boolean().optional(),
|
|
2517
|
+
max_one_feature_allocation: z.boolean().optional(),
|
|
2518
|
+
production_tracking_kind: z.enum([
|
|
2519
|
+
'none',
|
|
2520
|
+
'feature',
|
|
2521
|
+
'quantity'
|
|
2522
|
+
]).optional(),
|
|
2523
|
+
manager_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2524
|
+
timekeeping_timecode_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2525
|
+
job_work_types_attributes: z.array(z.object({
|
|
2526
|
+
primary: z.boolean().optional(),
|
|
2527
|
+
work_type_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional()
|
|
2528
|
+
})).optional(),
|
|
2529
|
+
job_address_attributes: z.object({
|
|
2530
|
+
id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2531
|
+
sub_address_number: z.string().nullish(),
|
|
2532
|
+
address_number: z.string().nullish(),
|
|
2533
|
+
neighborhood: z.string().nullish(),
|
|
2534
|
+
municipality: z.string().nullish(),
|
|
2535
|
+
sub_region: z.string().nullish(),
|
|
2536
|
+
region: z.string().nullish(),
|
|
2537
|
+
postal_code: z.string().nullish(),
|
|
2538
|
+
country: z.string().nullish(),
|
|
2539
|
+
timezone: z.string().nullish(),
|
|
2540
|
+
verified: z.boolean().optional(),
|
|
2541
|
+
label: z.string().nullish()
|
|
2542
|
+
}).optional(),
|
|
2543
|
+
custom_fields: z.array(z.object({
|
|
2544
|
+
custom_field_config_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
2545
|
+
value: z.string().nullable()
|
|
2546
|
+
})).optional(),
|
|
2547
|
+
pwa_details: z.object({
|
|
2548
|
+
contractor_type: z.enum(['prime_contractor', 'sub_contractor']).nullish(),
|
|
2549
|
+
pay_full_cash_fringe_by_default: z.boolean().optional(),
|
|
2550
|
+
dir_awarding_body_id: z.string().nullish(),
|
|
2551
|
+
dir_project_id: z.string().nullish(),
|
|
2552
|
+
dir_project_name: z.string().nullish(),
|
|
2553
|
+
dir_contract_id: z.string().nullish(),
|
|
2554
|
+
dir_project_awarding_body_name: z.string().nullish(),
|
|
2555
|
+
dir_project_number: z.string().nullish(),
|
|
2556
|
+
il_dol_project_id: z.string().nullish(),
|
|
2557
|
+
il_dol_state_capital_funds: z.boolean().nullish(),
|
|
2558
|
+
il_dol_public_body_name: z.string().nullish(),
|
|
2559
|
+
il_dol_public_body_contact_id: z.string().nullish(),
|
|
2560
|
+
il_dol_public_body_address_id: z.string().nullish(),
|
|
2561
|
+
il_dol_contract_number: z.string().nullish(),
|
|
2562
|
+
il_shines_project_id: z.string().nullish(),
|
|
2563
|
+
ny_dol_prc_number: z.string().nullish()
|
|
2564
|
+
}).optional(),
|
|
2565
|
+
status: z.enum([
|
|
2566
|
+
'completed',
|
|
2567
|
+
'cancelled',
|
|
2568
|
+
'disputed'
|
|
2569
|
+
]).optional()
|
|
2570
|
+
});
|
|
2400
2571
|
/**
|
|
2401
2572
|
* A reusable job template — a saved job pattern for quickly creating new jobs with the same setup. Read-only through the API (listing only).
|
|
2402
2573
|
*/
|
|
@@ -2443,6 +2614,140 @@ export const zUserUpdateParameters = z.object({
|
|
|
2443
2614
|
dol_apprentice_no: z.string().nullish(),
|
|
2444
2615
|
avatar_signed_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish()
|
|
2445
2616
|
});
|
|
2617
|
+
/**
|
|
2618
|
+
* Request body for onboarding a worker into your company. In one call it creates the person (if new), their employment record and its custom-field values, roles, group memberships, an optional invite, and optional compliance details. first_name and last_name are required, and omitting either answers 400. Unless skip_invite is true, the invite needs a work email or a phone number, and a request with neither answers 422 at both fields. An unlisted key answers 400. A value of the wrong JSON type, a null for a field that is not nullable, or a value outside a listed set answers 422 at its pointer, and nothing is written.
|
|
2619
|
+
*/
|
|
2620
|
+
export const zUserParameters = z.object({
|
|
2621
|
+
email: z.string().nullish(),
|
|
2622
|
+
personal_email: z.string().nullish(),
|
|
2623
|
+
phone_number: z.string().nullish(),
|
|
2624
|
+
first_name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
2625
|
+
last_name: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
2626
|
+
preferred_first_name: z.string().nullish(),
|
|
2627
|
+
preferred_last_name: z.string().nullish(),
|
|
2628
|
+
city: z.string().nullish(),
|
|
2629
|
+
state: z.string().nullish(),
|
|
2630
|
+
birth_date: z.iso.date().nullish(),
|
|
2631
|
+
dol_apprentice_no: z.string().nullish(),
|
|
2632
|
+
winda_id: z.string().nullish(),
|
|
2633
|
+
linkedin_url: z.string().nullish(),
|
|
2634
|
+
roles: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2635
|
+
avatar_signed_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2636
|
+
created_by_user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2637
|
+
last_sent_by_user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2638
|
+
skip_notify: z.boolean().optional(),
|
|
2639
|
+
skip_invite: z.boolean().optional(),
|
|
2640
|
+
hire_date: z.string().optional(),
|
|
2641
|
+
type: z.enum(['EMPLOYEE', 'CONTRACTOR']).optional(),
|
|
2642
|
+
title: z.string().nullish(),
|
|
2643
|
+
manager_user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2644
|
+
payroll_id: z.string().nullish(),
|
|
2645
|
+
enrolled_in_t_and_a: z.boolean().optional(),
|
|
2646
|
+
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
2647
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2648
|
+
training_annual_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2649
|
+
employer_combined_health_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2650
|
+
employer_combined_savings_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2651
|
+
overtime_eligible: z.boolean().optional(),
|
|
2652
|
+
worked_annual_minutes: z.int().nullish(),
|
|
2653
|
+
pto_annual_minutes: z.int().nullish(),
|
|
2654
|
+
holiday_annual_minutes: z.int().nullish(),
|
|
2655
|
+
training_annual_minutes: z.int().nullish(),
|
|
2656
|
+
custom_fields: z.array(z.object({
|
|
2657
|
+
custom_field_config_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
2658
|
+
value: z.string().nullable()
|
|
2659
|
+
})).optional(),
|
|
2660
|
+
group_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2661
|
+
company_user_pwa_info: z.object({
|
|
2662
|
+
address1: z.string().nullish(),
|
|
2663
|
+
address2: z.string().nullish(),
|
|
2664
|
+
city: z.string().nullish(),
|
|
2665
|
+
state: z.string().nullish(),
|
|
2666
|
+
zip: z.string().nullish(),
|
|
2667
|
+
race: z.array(z.enum([
|
|
2668
|
+
'AFRICAN_AMERICAN',
|
|
2669
|
+
'ASIAN',
|
|
2670
|
+
'CAUCASIAN',
|
|
2671
|
+
'NATIVE_AMERICAN',
|
|
2672
|
+
'NOT_SPECIFIED',
|
|
2673
|
+
'OTHER'
|
|
2674
|
+
])).optional(),
|
|
2675
|
+
sex: z.enum([
|
|
2676
|
+
'female',
|
|
2677
|
+
'male',
|
|
2678
|
+
'non_binary',
|
|
2679
|
+
'not_specified'
|
|
2680
|
+
]).nullish(),
|
|
2681
|
+
local_business_license: z.string().nullish(),
|
|
2682
|
+
drivers_license_state: z.string().nullish(),
|
|
2683
|
+
drivers_license_number: z.string().nullish(),
|
|
2684
|
+
ssn: z.string().nullish(),
|
|
2685
|
+
veteran_status: z.enum([
|
|
2686
|
+
'protected_veteran',
|
|
2687
|
+
'not_protected_veteran',
|
|
2688
|
+
'reserves',
|
|
2689
|
+
'guard',
|
|
2690
|
+
'not_specified'
|
|
2691
|
+
]).nullish(),
|
|
2692
|
+
hispanic_origin: z.enum([
|
|
2693
|
+
'yes',
|
|
2694
|
+
'no',
|
|
2695
|
+
'not_specified'
|
|
2696
|
+
]).nullish(),
|
|
2697
|
+
ca_dir_withholding_exemptions: z.int().nullish(),
|
|
2698
|
+
disabled: z.boolean().optional(),
|
|
2699
|
+
il_dol_race: z.enum([
|
|
2700
|
+
'white',
|
|
2701
|
+
'black',
|
|
2702
|
+
'hispanic_or_latino',
|
|
2703
|
+
'american_indian_or_alaska_native',
|
|
2704
|
+
'chinese',
|
|
2705
|
+
'filipino',
|
|
2706
|
+
'asian_india',
|
|
2707
|
+
'vietnamese',
|
|
2708
|
+
'korean',
|
|
2709
|
+
'japanese',
|
|
2710
|
+
'native_hawaiian',
|
|
2711
|
+
'samoan',
|
|
2712
|
+
'chamorro',
|
|
2713
|
+
'other_asian',
|
|
2714
|
+
'other_pacific_islander',
|
|
2715
|
+
'other'
|
|
2716
|
+
]).nullish(),
|
|
2717
|
+
il_shines_employment_type: z.enum([
|
|
2718
|
+
'part_time',
|
|
2719
|
+
'full_time',
|
|
2720
|
+
'seasonal_temporary',
|
|
2721
|
+
'independent_contract'
|
|
2722
|
+
]).nullish(),
|
|
2723
|
+
il_shines_eep_qualifiers: z.array(z.enum([
|
|
2724
|
+
'eep_program_completed',
|
|
2725
|
+
'foster_care',
|
|
2726
|
+
'formerly_incarcerated',
|
|
2727
|
+
'equity_investment_eligible_community',
|
|
2728
|
+
'self_registered_or_unknown'
|
|
2729
|
+
])).optional(),
|
|
2730
|
+
il_shines_other_programs: z.array(z.enum([
|
|
2731
|
+
'solar_training_pipeline_program',
|
|
2732
|
+
'craft_apprenticeship_program',
|
|
2733
|
+
'multi_cultural_jobs_program',
|
|
2734
|
+
'clean_jobs_workforce_network_program',
|
|
2735
|
+
'illinois_climate_works_prep_apprenticeship_program',
|
|
2736
|
+
'returning_residents_clean_jobs_training_program',
|
|
2737
|
+
'other'
|
|
2738
|
+
])).optional(),
|
|
2739
|
+
or_boli_schedule_type: z.enum(['five_eight', 'four_ten']).nullish(),
|
|
2740
|
+
or_boli_race: z.array(z.enum([
|
|
2741
|
+
'american_indian_or_alaska_native',
|
|
2742
|
+
'asian',
|
|
2743
|
+
'hispanic_or_latino',
|
|
2744
|
+
'black_or_african_american',
|
|
2745
|
+
'native_hawaiian_or_pacific_islander',
|
|
2746
|
+
'white',
|
|
2747
|
+
'portuguese_or_brazilian'
|
|
2748
|
+
])).optional()
|
|
2749
|
+
}).optional()
|
|
2750
|
+
});
|
|
2446
2751
|
/**
|
|
2447
2752
|
* A single time entry: one atomic block of tracked work with its start/end times, optional timecode classification, optional job, pay rate, and manager approval status.
|
|
2448
2753
|
*/
|
|
@@ -2512,13 +2817,13 @@ export const zManagerTimeEntryApprovalParameters = z.object({
|
|
|
2512
2817
|
*/
|
|
2513
2818
|
export const zTimeEntryCreateParameters = z.object({
|
|
2514
2819
|
timekeeping_time_card_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
2515
|
-
start_time: z.
|
|
2516
|
-
end_time: z.
|
|
2820
|
+
start_time: z.iso.datetime(),
|
|
2821
|
+
end_time: z.iso.datetime(),
|
|
2517
2822
|
job_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2518
2823
|
timekeeping_timecode_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2519
2824
|
state: z.string().nullish(),
|
|
2520
2825
|
description: z.string().nullish(),
|
|
2521
|
-
hourly_rate_cents: z.string().nullish(),
|
|
2826
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2522
2827
|
feature_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2523
2828
|
feature_allocation_acknowledged: z.boolean().optional()
|
|
2524
2829
|
});
|
|
@@ -2526,13 +2831,13 @@ export const zTimeEntryCreateParameters = z.object({
|
|
|
2526
2831
|
* Request body for updating a time entry. Every field is optional, and an omitted field keeps its value.
|
|
2527
2832
|
*/
|
|
2528
2833
|
export const zTimeEntryUpdateParameters = z.object({
|
|
2529
|
-
start_time: z.
|
|
2530
|
-
end_time: z.
|
|
2834
|
+
start_time: z.iso.datetime().optional(),
|
|
2835
|
+
end_time: z.iso.datetime().optional(),
|
|
2531
2836
|
job_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2532
2837
|
timekeeping_timecode_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
2533
2838
|
state: z.string().nullish(),
|
|
2534
2839
|
description: z.string().nullish(),
|
|
2535
|
-
hourly_rate_cents: z.string().nullish(),
|
|
2840
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2536
2841
|
feature_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2537
2842
|
confirm_allocation_conflict: z.boolean().optional()
|
|
2538
2843
|
});
|
|
@@ -2554,12 +2859,14 @@ export const zFormDefinitionObject = z.object({
|
|
|
2554
2859
|
allow_carry_forward: z.boolean(),
|
|
2555
2860
|
current_revision: z.int().nullable(),
|
|
2556
2861
|
json: z.record(z.string(), z.unknown()),
|
|
2862
|
+
submission_shape: z.record(z.string(), z.unknown()),
|
|
2557
2863
|
created_at: z.iso.datetime()
|
|
2558
2864
|
});
|
|
2559
2865
|
/**
|
|
2560
2866
|
* A single form submission — a user's completed SurveyJS form with the resolved answers (the fuller show representation). Read-only; submissions are created in the app.
|
|
2561
2867
|
*/
|
|
2562
2868
|
export const zFormSubmissionResponseObject = z.object({
|
|
2869
|
+
id: z.string(),
|
|
2563
2870
|
user: z.object({
|
|
2564
2871
|
id: z.string(),
|
|
2565
2872
|
name: z.string()
|
|
@@ -2599,11 +2906,11 @@ export const zUserCompanyCreateParameters = z.object({
|
|
|
2599
2906
|
payroll_id: z.string().nullish(),
|
|
2600
2907
|
enrolled_in_t_and_a: z.boolean().optional(),
|
|
2601
2908
|
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
2602
|
-
|
|
2909
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2910
|
+
training_annual_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2911
|
+
employer_combined_health_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2912
|
+
employer_combined_savings_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2603
2913
|
overtime_eligible: z.boolean().optional(),
|
|
2604
|
-
training_annual_amount: z.string().nullish(),
|
|
2605
|
-
employer_combined_health_amount: z.string().nullish(),
|
|
2606
|
-
employer_combined_savings: z.string().nullish(),
|
|
2607
2914
|
worked_annual_minutes: z.int().nullish(),
|
|
2608
2915
|
pto_annual_minutes: z.int().nullish(),
|
|
2609
2916
|
holiday_annual_minutes: z.int().nullish(),
|
|
@@ -2618,12 +2925,12 @@ export const zUserCompanyCreateParameters = z.object({
|
|
|
2618
2925
|
*/
|
|
2619
2926
|
export const zUserCompanyScheduledChangesParameters = z.object({
|
|
2620
2927
|
effective_date: z.iso.date(),
|
|
2621
|
-
|
|
2928
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2929
|
+
training_annual_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2930
|
+
employer_combined_health_amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2931
|
+
employer_combined_savings_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
2622
2932
|
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
2623
2933
|
overtime_eligible: z.boolean().optional(),
|
|
2624
|
-
training_annual_amount: z.string().nullish(),
|
|
2625
|
-
employer_combined_health_amount: z.string().nullish(),
|
|
2626
|
-
employer_combined_savings: z.string().nullish(),
|
|
2627
2934
|
worked_annual_minutes: z.int().nullish(),
|
|
2628
2935
|
pto_annual_minutes: z.int().nullish(),
|
|
2629
2936
|
holiday_annual_minutes: z.int().nullish(),
|
|
@@ -2830,129 +3137,23 @@ export const zTimeCardStartDay = z.union([
|
|
|
2830
3137
|
z.literal(0),
|
|
2831
3138
|
z.literal(1),
|
|
2832
3139
|
z.literal(2),
|
|
2833
|
-
z.literal(3),
|
|
2834
|
-
z.literal(4),
|
|
2835
|
-
z.literal(5),
|
|
2836
|
-
z.literal(6)
|
|
2837
|
-
]);
|
|
2838
|
-
/**
|
|
2839
|
-
* Fields shared by job creation and updates. Updates may omit any field to preserve its current value. The resulting job must still satisfy its schedule and PWA validation rules.
|
|
2840
|
-
*/
|
|
2841
|
-
export const zJobParameters = z.object({
|
|
2842
|
-
name: z.string().nullish(),
|
|
2843
|
-
description: z.string().optional(),
|
|
2844
|
-
requested_by_company_id: z.string().optional(),
|
|
2845
|
-
manager_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2846
|
-
purchase_order_number: z.string().nullish(),
|
|
2847
|
-
project_id: z.string().nullish(),
|
|
2848
|
-
companies_department_id: z.string().nullish(),
|
|
2849
|
-
federal_pwa_mode: z.enum([
|
|
2850
|
-
'all',
|
|
2851
|
-
'pw_only',
|
|
2852
|
-
'ap_only',
|
|
2853
|
-
'none'
|
|
2854
|
-
]).optional(),
|
|
2855
|
-
regional_pwa_mode: z.enum([
|
|
2856
|
-
'all',
|
|
2857
|
-
'pw_only',
|
|
2858
|
-
'ap_only',
|
|
2859
|
-
'none'
|
|
2860
|
-
]).optional(),
|
|
2861
|
-
region: z.string().optional(),
|
|
2862
|
-
start_time: z.string().nullish(),
|
|
2863
|
-
end_time: z.string().nullish(),
|
|
2864
|
-
tz_name: z.string().optional(),
|
|
2865
|
-
time_card_start_day: zTimeCardStartDay.optional(),
|
|
2866
|
-
clock_in_requirement: z.enum([
|
|
2867
|
-
'none',
|
|
2868
|
-
'warning',
|
|
2869
|
-
'required'
|
|
2870
|
-
]).optional(),
|
|
2871
|
-
send_geofence_reminders: z.boolean().nullish(),
|
|
2872
|
-
allow_customer_access: z.boolean().optional(),
|
|
2873
|
-
timekeeping_timecode_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
2874
|
-
tracks_feature_allocations: z.boolean().nullish(),
|
|
2875
|
-
requires_feature_allocation: z.boolean().nullish(),
|
|
2876
|
-
max_one_feature_allocation: z.boolean().nullish(),
|
|
2877
|
-
production_tracking_kind: z.enum([
|
|
2878
|
-
'none',
|
|
2879
|
-
'feature',
|
|
2880
|
-
'quantity'
|
|
2881
|
-
]).optional(),
|
|
2882
|
-
job_work_types_attributes: z.array(z.object({
|
|
2883
|
-
primary: z.boolean().optional(),
|
|
2884
|
-
work_type_id: z.string().optional()
|
|
2885
|
-
})).nullish(),
|
|
2886
|
-
job_address_attributes: z.object({
|
|
2887
|
-
id: z.string().nullish(),
|
|
2888
|
-
sub_address_number: z.string().nullish(),
|
|
2889
|
-
address_number: z.string().nullish(),
|
|
2890
|
-
neighborhood: z.string().nullish(),
|
|
2891
|
-
municipality: z.string().nullish(),
|
|
2892
|
-
sub_region: z.string().nullish(),
|
|
2893
|
-
region: z.string().nullish(),
|
|
2894
|
-
postal_code: z.string().nullish(),
|
|
2895
|
-
country: z.string().nullish(),
|
|
2896
|
-
timezone: z.string().nullish(),
|
|
2897
|
-
verified: z.boolean().nullish(),
|
|
2898
|
-
label: z.string().nullish()
|
|
2899
|
-
}).nullish(),
|
|
2900
|
-
pwa_details: z.object({
|
|
2901
|
-
contractor_type: z.enum(['prime_contractor', 'sub_contractor']).nullish(),
|
|
2902
|
-
pay_full_cash_fringe_by_default: z.boolean().optional(),
|
|
2903
|
-
dir_awarding_body_id: z.string().nullish(),
|
|
2904
|
-
dir_project_id: z.string().nullish(),
|
|
2905
|
-
dir_project_name: z.string().nullish(),
|
|
2906
|
-
dir_contract_id: z.string().nullish(),
|
|
2907
|
-
dir_project_awarding_body_name: z.string().nullish(),
|
|
2908
|
-
dir_project_number: z.string().nullish(),
|
|
2909
|
-
il_dol_project_id: z.string().nullish(),
|
|
2910
|
-
il_dol_state_capital_funds: z.boolean().nullish(),
|
|
2911
|
-
il_dol_public_body_name: z.string().nullish(),
|
|
2912
|
-
il_dol_public_body_contact_id: z.string().nullish(),
|
|
2913
|
-
il_dol_public_body_address_id: z.string().nullish(),
|
|
2914
|
-
il_dol_contract_number: z.string().nullish(),
|
|
2915
|
-
il_shines_project_id: z.string().nullish(),
|
|
2916
|
-
ny_dol_prc_number: z.string().nullish()
|
|
2917
|
-
}).optional()
|
|
2918
|
-
});
|
|
2919
|
-
/**
|
|
2920
|
-
* Parameters for creating a job. `requested_by_company_id` and `created_by_user_id` are required. Sets the job's schedule, work types, address, custom-field values, and optional Prevailing Wage / Apprenticeship (PWA) compliance.
|
|
2921
|
-
*/
|
|
2922
|
-
export const zJobCreateParameters = zJobParameters.and(z.object({
|
|
2923
|
-
created_by_user_id: z.string(),
|
|
2924
|
-
template_id: z.string().nullish(),
|
|
2925
|
-
custom_fields: z.array(z.object({
|
|
2926
|
-
custom_field_config_id: z.string(),
|
|
2927
|
-
value: z.string().nullable()
|
|
2928
|
-
})).optional()
|
|
2929
|
-
}));
|
|
2930
|
-
/**
|
|
2931
|
-
* Parameters for updating an existing job. Every field is optional; omit a field to preserve its current value. The resulting job must still satisfy schedule and PWA validation rules. Accepts every shared job field plus a directly settable status and custom-field changes. Sending `created_by_user_id` returns 400 unknown_key, including when it matches the existing creator or is null.
|
|
2932
|
-
*/
|
|
2933
|
-
export const zJobUpdateParameters = zJobParameters.and(z.object({
|
|
2934
|
-
status: z.enum([
|
|
2935
|
-
'completed',
|
|
2936
|
-
'cancelled',
|
|
2937
|
-
'disputed'
|
|
2938
|
-
]).optional(),
|
|
2939
|
-
custom_fields: z.array(z.object({
|
|
2940
|
-
custom_field_config_id: z.string(),
|
|
2941
|
-
value: z.string().nullable()
|
|
2942
|
-
})).optional()
|
|
2943
|
-
}));
|
|
3140
|
+
z.literal(3),
|
|
3141
|
+
z.literal(4),
|
|
3142
|
+
z.literal(5),
|
|
3143
|
+
z.literal(6)
|
|
3144
|
+
]);
|
|
2944
3145
|
/**
|
|
2945
3146
|
* One version of a worker's compensation at your company, effective from its start date until the next version begins.
|
|
2946
3147
|
*/
|
|
2947
3148
|
export const zUserCompanyScheduledChange = z.object({
|
|
2948
3149
|
id: z.string(),
|
|
2949
3150
|
start_date: z.string(),
|
|
2950
|
-
|
|
3151
|
+
hourly_rate_cents: z.string().nullable(),
|
|
2951
3152
|
compensation_type: z.enum(['hourly', 'salary']),
|
|
2952
3153
|
overtime_eligible: z.boolean(),
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
3154
|
+
training_annual_amount_cents: z.string().nullable(),
|
|
3155
|
+
employer_combined_health_amount_cents: z.string().nullable(),
|
|
3156
|
+
employer_combined_savings_cents: z.string().nullable(),
|
|
2956
3157
|
worked_annual_minutes: z.int().nullable(),
|
|
2957
3158
|
pto_annual_minutes: z.int().nullable(),
|
|
2958
3159
|
holiday_annual_minutes: z.int().nullable(),
|
|
@@ -3140,7 +3341,7 @@ export const zTimeEntryImportResponseObject = z.object({
|
|
|
3140
3341
|
updated_at: z.iso.datetime()
|
|
3141
3342
|
});
|
|
3142
3343
|
/**
|
|
3143
|
-
* Submit a spreadsheet of time entries for a pay period. All
|
|
3344
|
+
* Submit a spreadsheet of time entries for a pay period. All six of payroll_id, start_time, end_time, timecode, job_id and description must be present as column headers, or the file is refused naming the ones missing. The payroll_id, start_time, end_time and timecode columns must carry a value on every row. The state column may be omitted, or its cells left blank, when the row's Job resolves a recognized state through its operating region, address, then oldest qualifying Site address. A valid explicit state overrides this fallback; an invalid supplied state fails. Missing or blank state without a Job, unresolved geography, or an unrecognized address region rejects the whole file with row-specific errors. The original file retains omissions and blank values, so background processing resolves current Job geography again. features, federal_labor_classification and regional_labor_classification are read when present. Header matching ignores case and treats spaces as underscores, and column order does not matter. Any other column is refused: a name this import does not read would be dropped without trace, so the file is rejected naming it rather than applied in part.
|
|
3144
3345
|
*
|
|
3145
3346
|
* Because acceptance is synchronous but the write happens in the background, only one import at a time is accepted for a pay period: while an earlier one is still `pending` or `processing`, a second answers 409 naming `import_in_progress`, and nothing is written. Poll the earlier import until it reports, then submit again.
|
|
3146
3347
|
*/
|
|
@@ -3681,8 +3882,8 @@ export const zProjectResponseObject = z.object({
|
|
|
3681
3882
|
administrator_name: z.string().nullable(),
|
|
3682
3883
|
administrator_email: z.string().nullable(),
|
|
3683
3884
|
administrator_phone: z.string().nullable(),
|
|
3684
|
-
budget_cents: z.string().
|
|
3685
|
-
budget_currency: z.string().
|
|
3885
|
+
budget_cents: z.string().nullish(),
|
|
3886
|
+
budget_currency: z.string().nullish(),
|
|
3686
3887
|
start_date: z.iso.date().nullable(),
|
|
3687
3888
|
end_date: z.iso.date().nullable(),
|
|
3688
3889
|
prevailing_wage_lock_in_date: z.iso.date().nullable(),
|
|
@@ -3721,7 +3922,7 @@ export const zProjectParameters = z.object({
|
|
|
3721
3922
|
administrator_name: z.string().nullish(),
|
|
3722
3923
|
administrator_email: z.string().nullish(),
|
|
3723
3924
|
administrator_phone: z.string().nullish(),
|
|
3724
|
-
|
|
3925
|
+
budget_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
3725
3926
|
prevailing_wage_lock_in_date: z.iso.date().nullish(),
|
|
3726
3927
|
beginning_of_construction_date: z.iso.date().nullish(),
|
|
3727
3928
|
placed_in_service_date: z.iso.date().nullish(),
|
|
@@ -3757,7 +3958,7 @@ export const zProjectUpdateParameters = z.object({
|
|
|
3757
3958
|
administrator_name: z.string().nullish(),
|
|
3758
3959
|
administrator_email: z.string().nullish(),
|
|
3759
3960
|
administrator_phone: z.string().nullish(),
|
|
3760
|
-
|
|
3961
|
+
budget_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
3761
3962
|
prevailing_wage_lock_in_date: z.iso.date().nullish(),
|
|
3762
3963
|
beginning_of_construction_date: z.iso.date().nullish(),
|
|
3763
3964
|
placed_in_service_date: z.iso.date().nullish()
|
|
@@ -3783,6 +3984,22 @@ export const zProjectSiteParameters = z.object({
|
|
|
3783
3984
|
export const zProjectSiteUpdateParameters = z.object({
|
|
3784
3985
|
feature_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional()
|
|
3785
3986
|
});
|
|
3987
|
+
/**
|
|
3988
|
+
* A project–user visibility join: names one person on one project. Path `{id}` is this join's id. Not included on project GET.
|
|
3989
|
+
*/
|
|
3990
|
+
export const zProjectUserVisibilityResponseObject = z.object({
|
|
3991
|
+
id: z.string(),
|
|
3992
|
+
project_id: z.string(),
|
|
3993
|
+
user_id: z.string(),
|
|
3994
|
+
created_at: z.iso.datetime(),
|
|
3995
|
+
updated_at: z.iso.datetime()
|
|
3996
|
+
});
|
|
3997
|
+
/**
|
|
3998
|
+
* Request body for naming a person on a project. `user_id` is required. The project is taken from the path and is not part of the body. There is no update body — `user_id` and `project_id` are readonly after create.
|
|
3999
|
+
*/
|
|
4000
|
+
export const zProjectUserVisibilityParameters = z.object({
|
|
4001
|
+
user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)
|
|
4002
|
+
});
|
|
3786
4003
|
/**
|
|
3787
4004
|
* A file attached to a project. Uploaded through the direct-upload flow. `name` is always "document" and is not client-writable.
|
|
3788
4005
|
*/
|
|
@@ -3857,6 +4074,7 @@ export const zSiteCheckInResponseObject = z.object({
|
|
|
3857
4074
|
longitude: z.number().nullable(),
|
|
3858
4075
|
start_time: z.iso.datetime(),
|
|
3859
4076
|
end_time: z.iso.datetime().nullable(),
|
|
4077
|
+
duration_minutes: z.int().nullable(),
|
|
3860
4078
|
verified_at: z.iso.datetime().nullable(),
|
|
3861
4079
|
created_at: z.iso.datetime(),
|
|
3862
4080
|
updated_at: z.iso.datetime()
|
|
@@ -4174,7 +4392,7 @@ export const zComplianceCheckDetailResponseObject = z.object({
|
|
|
4174
4392
|
*/
|
|
4175
4393
|
export const zComplianceCheckParameters = z.object({
|
|
4176
4394
|
status: z.enum(['dismissed', 'pending']).optional(),
|
|
4177
|
-
time_due: z.
|
|
4395
|
+
time_due: z.iso.date().nullish(),
|
|
4178
4396
|
assignee_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
4179
4397
|
file_signed_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional()
|
|
4180
4398
|
});
|
|
@@ -4202,6 +4420,24 @@ export const zTodoInboxTodoResponseObject = z.object({
|
|
|
4202
4420
|
created_by_user_id: z.string(),
|
|
4203
4421
|
updated_by_user_id: z.string(),
|
|
4204
4422
|
completed: z.boolean(),
|
|
4423
|
+
priority: z.enum([
|
|
4424
|
+
'critical',
|
|
4425
|
+
'high',
|
|
4426
|
+
'medium',
|
|
4427
|
+
'low'
|
|
4428
|
+
]).nullable(),
|
|
4429
|
+
category: z.enum([
|
|
4430
|
+
'apprenticeship',
|
|
4431
|
+
'certified_payroll',
|
|
4432
|
+
'company',
|
|
4433
|
+
'job',
|
|
4434
|
+
'payroll',
|
|
4435
|
+
'project',
|
|
4436
|
+
'regional',
|
|
4437
|
+
'tax_credit',
|
|
4438
|
+
'timekeeping',
|
|
4439
|
+
'worker'
|
|
4440
|
+
]),
|
|
4205
4441
|
task_assignee_user_ids: z.array(z.string()),
|
|
4206
4442
|
description: zRichTextObject,
|
|
4207
4443
|
time_due: z.iso.datetime().nullable(),
|
|
@@ -4395,7 +4631,7 @@ export const zPriorPeriodAdjustmentResponseObject = z.object({
|
|
|
4395
4631
|
export const zPriorPeriodAdjustmentParameters = z.object({
|
|
4396
4632
|
payrolls_paystub_line_item_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
4397
4633
|
created_by_user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
4398
|
-
amount_cents: z.string(),
|
|
4634
|
+
amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
4399
4635
|
rationale: z.enum([
|
|
4400
4636
|
'hours_correction',
|
|
4401
4637
|
'other',
|
|
@@ -4410,7 +4646,7 @@ export const zPriorPeriodAdjustmentParameters = z.object({
|
|
|
4410
4646
|
* Request body for updating a prior period adjustment. Send only the fields to change. The time card is the path parent; payrolls_paystub_line_item_id, created_by_user_id, time_card_id, and adjustment_type are rejected.
|
|
4411
4647
|
*/
|
|
4412
4648
|
export const zPriorPeriodAdjustmentUpdateParameters = z.object({
|
|
4413
|
-
amount_cents: z.string().optional(),
|
|
4649
|
+
amount_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
4414
4650
|
rationale: z.enum([
|
|
4415
4651
|
'hours_correction',
|
|
4416
4652
|
'other',
|
|
@@ -4540,22 +4776,22 @@ export const zPaystubLineItemResponseObject = z.object({
|
|
|
4540
4776
|
updated_at: z.iso.datetime()
|
|
4541
4777
|
});
|
|
4542
4778
|
/**
|
|
4543
|
-
* Request body for creating a paystub line item. All four fields are required. Undeclared body keys
|
|
4779
|
+
* Request body for creating a paystub line item. All four fields are required. Undeclared body keys or an omitted field answer 400; a null or blank value, or any wrong-typed value, answers 422; references outside the authenticated company return 404.
|
|
4544
4780
|
*/
|
|
4545
4781
|
export const zPaystubLineItemParameters = z.object({
|
|
4546
|
-
payrolls_paystub_id: z.string(),
|
|
4547
|
-
amount_cents: z.string(),
|
|
4782
|
+
payrolls_paystub_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
4783
|
+
amount_cents: z.string().regex(/^-?[0-9]+(\.[0-9]+)?$/),
|
|
4548
4784
|
contributor: z.enum(['employee', 'employer']),
|
|
4549
|
-
payrolls_external_map_id: z.string()
|
|
4785
|
+
payrolls_external_map_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)
|
|
4550
4786
|
});
|
|
4551
4787
|
/**
|
|
4552
|
-
* Request body for updating a paystub line item. Send only the fields to change. Undeclared body keys are rejected with 400; newly supplied references outside the authenticated company return 404.
|
|
4788
|
+
* Request body for updating a paystub line item. Send only the fields to change. Undeclared body keys are rejected with 400; a null or blank value, or any wrong-typed value, answers 422; newly supplied references outside the authenticated company return 404.
|
|
4553
4789
|
*/
|
|
4554
4790
|
export const zPaystubLineItemUpdateParameters = z.object({
|
|
4555
|
-
payrolls_paystub_id: z.string().optional(),
|
|
4556
|
-
amount_cents: z.string().optional(),
|
|
4791
|
+
payrolls_paystub_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
4792
|
+
amount_cents: z.string().regex(/^-?[0-9]+(\.[0-9]+)?$/).optional(),
|
|
4557
4793
|
contributor: z.enum(['employee', 'employer']).optional(),
|
|
4558
|
-
payrolls_external_map_id: z.string().optional()
|
|
4794
|
+
payrolls_external_map_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional()
|
|
4559
4795
|
});
|
|
4560
4796
|
/**
|
|
4561
4797
|
* A job-site join — the Site attached to a Job, plus the subset of that site's features the job is working on. `{id}` is the join row, not the Site.
|
|
@@ -4578,6 +4814,61 @@ export const zJobSiteParameters = z.object({
|
|
|
4578
4814
|
export const zJobSiteUpdateParameters = z.object({
|
|
4579
4815
|
feature_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional()
|
|
4580
4816
|
});
|
|
4817
|
+
/**
|
|
4818
|
+
* A document attached to a job — either an uploaded file or an external URL, never both. Includes PWA documentation when the caller may see it.
|
|
4819
|
+
*/
|
|
4820
|
+
export const zJobDocumentResponseObject = z.object({
|
|
4821
|
+
id: z.string(),
|
|
4822
|
+
job_id: z.string(),
|
|
4823
|
+
name: z.string(),
|
|
4824
|
+
type: z.enum([
|
|
4825
|
+
'CERTIFICATIONS',
|
|
4826
|
+
'CHECKLIST',
|
|
4827
|
+
'MAP',
|
|
4828
|
+
'MSA',
|
|
4829
|
+
'ONSITE_POSTER',
|
|
4830
|
+
'OTHER',
|
|
4831
|
+
'PARTS_INSTRUCTIONS',
|
|
4832
|
+
'PHOTO',
|
|
4833
|
+
'PO',
|
|
4834
|
+
'PWA_DOCUMENTATION',
|
|
4835
|
+
'RESUME',
|
|
4836
|
+
'WO'
|
|
4837
|
+
]),
|
|
4838
|
+
description: z.string().nullable(),
|
|
4839
|
+
admin_only: z.boolean(),
|
|
4840
|
+
url: z.string().nullable(),
|
|
4841
|
+
file: z.object({
|
|
4842
|
+
filename: z.string(),
|
|
4843
|
+
content_type: z.string().nullable(),
|
|
4844
|
+
byte_size: z.int(),
|
|
4845
|
+
url: z.string()
|
|
4846
|
+
}).nullable(),
|
|
4847
|
+
created_at: z.iso.datetime(),
|
|
4848
|
+
updated_at: z.iso.datetime()
|
|
4849
|
+
});
|
|
4850
|
+
/**
|
|
4851
|
+
* Request body for creating a job document. The job is taken from the path and is not part of the body. Supply exactly one of `url` or `file`.
|
|
4852
|
+
*/
|
|
4853
|
+
export const zJobDocumentParameters = z.object({
|
|
4854
|
+
type: z.string().optional(),
|
|
4855
|
+
name: z.string().optional(),
|
|
4856
|
+
description: z.string().nullish(),
|
|
4857
|
+
file: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
4858
|
+
admin_only: z.boolean().optional(),
|
|
4859
|
+
url: z.string().nullish()
|
|
4860
|
+
});
|
|
4861
|
+
/**
|
|
4862
|
+
* Request body for updating a job document. Every field is optional; omit a field to preserve its current value. The resulting document must still be exactly one of `url` or `file`.
|
|
4863
|
+
*/
|
|
4864
|
+
export const zJobDocumentUpdateParameters = z.object({
|
|
4865
|
+
type: z.string().optional(),
|
|
4866
|
+
name: z.string().optional(),
|
|
4867
|
+
description: z.string().nullish(),
|
|
4868
|
+
file: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
4869
|
+
admin_only: z.boolean().optional(),
|
|
4870
|
+
url: z.string().nullish()
|
|
4871
|
+
});
|
|
4581
4872
|
/**
|
|
4582
4873
|
* A good-faith-effort exception on a job — a record that the employer requested apprentices from a registered program and did not receive the full request, or that no qualifying program existed. Read-only. Does not include supporting document slots.
|
|
4583
4874
|
*/
|
|
@@ -5113,31 +5404,31 @@ export const zPayRatesRulePackageUpdateParameters = z.object({
|
|
|
5113
5404
|
description: z.string().nullish()
|
|
5114
5405
|
});
|
|
5115
5406
|
/**
|
|
5116
|
-
* Request body for creating or updating a position on a job. The job is taken from the URL path.
|
|
5407
|
+
* Request body for creating or updating a position on a job. The job is taken from the URL path. Send only the fields to set; omitted fields keep their stored values. An undeclared key answers 400; a wrong type, null where it is not accepted, or a blank ID answers 422 at the field's pointer.
|
|
5117
5408
|
*/
|
|
5118
5409
|
export const zPositionParameters = z.object({
|
|
5119
|
-
fulfilled_by_user_id: z.string().nullish(),
|
|
5120
|
-
start_time: z.iso.date().
|
|
5121
|
-
end_time: z.iso.date().
|
|
5122
|
-
position_function_id: z.string().nullish(),
|
|
5123
|
-
per_diem_id: z.string().nullish(),
|
|
5124
|
-
|
|
5410
|
+
fulfilled_by_user_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
5411
|
+
start_time: z.iso.date().optional(),
|
|
5412
|
+
end_time: z.iso.date().optional(),
|
|
5413
|
+
position_function_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
5414
|
+
per_diem_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
5415
|
+
pay_rates_rule_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
5125
5416
|
pwa: z.boolean().optional(),
|
|
5126
|
-
cash_fringe_rate_cents: z.
|
|
5127
|
-
hourly_rate_cents: z.
|
|
5128
|
-
pwa_wage_pay_rate_cents: z.
|
|
5129
|
-
wage_adder_rate_cents: z.
|
|
5417
|
+
cash_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
5418
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
5419
|
+
pwa_wage_pay_rate_cents: z.string().regex(/^-?[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
5420
|
+
wage_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
5130
5421
|
job_wage_determination_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
5131
5422
|
pwa_details_attributes: z.object({
|
|
5132
|
-
skill_level: z.
|
|
5423
|
+
skill_level: z.enum(['journeyman', 'foreman']).nullable()
|
|
5133
5424
|
}).optional()
|
|
5134
5425
|
});
|
|
5135
5426
|
/**
|
|
5136
|
-
* Parameters for creating a per-unit scope price on a job. `scope_kind` and `
|
|
5427
|
+
* Parameters for creating a per-unit scope price on a job. `scope_kind` and `unit_price_cents` are required; omitting either answers 400, and a null or wrong-typed value answers 422.
|
|
5137
5428
|
*/
|
|
5138
5429
|
export const zProductionJobScopePriceParameters = z.object({
|
|
5139
5430
|
scope_kind: z.string(),
|
|
5140
|
-
|
|
5431
|
+
unit_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
5141
5432
|
contracted_count: z.int().nullish(),
|
|
5142
5433
|
unit_of_measure: z.string().optional()
|
|
5143
5434
|
});
|
|
@@ -5146,7 +5437,7 @@ export const zProductionJobScopePriceParameters = z.object({
|
|
|
5146
5437
|
*/
|
|
5147
5438
|
export const zProductionJobScopePriceUpdateParameters = z.object({
|
|
5148
5439
|
scope_kind: z.string().optional(),
|
|
5149
|
-
|
|
5440
|
+
unit_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
5150
5441
|
contracted_count: z.int().nullish(),
|
|
5151
5442
|
unit_of_measure: z.string().optional()
|
|
5152
5443
|
});
|
|
@@ -5158,7 +5449,7 @@ export const zProductionJobScopePriceResponseObject = z.object({
|
|
|
5158
5449
|
job_id: z.string(),
|
|
5159
5450
|
scope_kind: z.string(),
|
|
5160
5451
|
unit_of_measure: z.string(),
|
|
5161
|
-
|
|
5452
|
+
unit_price_cents: z.string().optional(),
|
|
5162
5453
|
contracted_count: z.int().nullish(),
|
|
5163
5454
|
created_at: z.iso.datetime(),
|
|
5164
5455
|
updated_at: z.iso.datetime()
|
|
@@ -5566,10 +5857,10 @@ export const zUserResponseObject = z.object({
|
|
|
5566
5857
|
enrolled_in_t_and_a: z.boolean().nullable(),
|
|
5567
5858
|
payroll_id: z.string().nullable(),
|
|
5568
5859
|
compensation_type: z.enum(['hourly', 'salary']).nullable(),
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5860
|
+
hourly_rate_cents: z.string().nullish(),
|
|
5861
|
+
training_annual_amount_cents: z.string().nullish(),
|
|
5862
|
+
employer_combined_health_amount_cents: z.string().nullish(),
|
|
5863
|
+
employer_combined_savings_cents: z.string().nullish(),
|
|
5573
5864
|
worked_annual_minutes: z.int().nullable(),
|
|
5574
5865
|
pto_annual_minutes: z.int().nullable(),
|
|
5575
5866
|
holiday_annual_minutes: z.int().nullable(),
|
|
@@ -5652,147 +5943,6 @@ export const zUserResponseObject = z.object({
|
|
|
5652
5943
|
])).nullable()
|
|
5653
5944
|
}).nullable()
|
|
5654
5945
|
});
|
|
5655
|
-
export const zUserParameters = z.intersection(z.union([
|
|
5656
|
-
z.object({
|
|
5657
|
-
email: z.string().min(1)
|
|
5658
|
-
}),
|
|
5659
|
-
z.object({
|
|
5660
|
-
phone_number: z.string().min(1)
|
|
5661
|
-
}),
|
|
5662
|
-
z.object({
|
|
5663
|
-
skip_invite: z.literal(true)
|
|
5664
|
-
})
|
|
5665
|
-
]), z.object({
|
|
5666
|
-
email: z.string().nullish(),
|
|
5667
|
-
personal_email: z.string().nullish(),
|
|
5668
|
-
phone_number: z.string().nullish(),
|
|
5669
|
-
first_name: z.string(),
|
|
5670
|
-
last_name: z.string(),
|
|
5671
|
-
preferred_first_name: z.string().nullish(),
|
|
5672
|
-
preferred_last_name: z.string().nullish(),
|
|
5673
|
-
city: z.string().optional(),
|
|
5674
|
-
state: z.string().optional(),
|
|
5675
|
-
birth_date: z.string().optional(),
|
|
5676
|
-
dol_apprentice_no: z.string().optional(),
|
|
5677
|
-
winda_id: z.string().optional(),
|
|
5678
|
-
linkedin_url: z.string().optional(),
|
|
5679
|
-
roles: z.array(z.string()).nullish(),
|
|
5680
|
-
avatar_signed_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
5681
|
-
created_by_user_id: z.string().optional(),
|
|
5682
|
-
last_sent_by_user_id: z.string().nullish(),
|
|
5683
|
-
skip_notify: z.boolean().optional(),
|
|
5684
|
-
skip_invite: z.boolean().optional(),
|
|
5685
|
-
type: zUserCompanyType.optional(),
|
|
5686
|
-
title: z.string().optional(),
|
|
5687
|
-
manager_user_id: z.string().optional(),
|
|
5688
|
-
payroll_id: z.string().optional(),
|
|
5689
|
-
hourly_rate: z.string().optional(),
|
|
5690
|
-
compensation_type: z.enum(['hourly', 'salary']).optional(),
|
|
5691
|
-
overtime_eligible: z.string().optional(),
|
|
5692
|
-
enrolled_in_t_and_a: z.string().optional(),
|
|
5693
|
-
training_annual_amount: z.string().optional(),
|
|
5694
|
-
employer_combined_health_amount: z.string().nullish(),
|
|
5695
|
-
employer_combined_savings: z.string().nullish(),
|
|
5696
|
-
worked_annual_minutes: z.string().optional(),
|
|
5697
|
-
pto_annual_minutes: z.string().optional(),
|
|
5698
|
-
holiday_annual_minutes: z.string().optional(),
|
|
5699
|
-
training_annual_minutes: z.string().optional(),
|
|
5700
|
-
hire_date: z.string().optional(),
|
|
5701
|
-
group_ids: z.array(z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/)).optional(),
|
|
5702
|
-
custom_fields: z.array(z.object({
|
|
5703
|
-
custom_field_config_id: z.string(),
|
|
5704
|
-
value: z.string().nullable()
|
|
5705
|
-
})).optional(),
|
|
5706
|
-
company_user_pwa_info: z.object({
|
|
5707
|
-
address1: z.string().nullish(),
|
|
5708
|
-
address2: z.string().nullish(),
|
|
5709
|
-
city: z.string().nullish(),
|
|
5710
|
-
state: z.string().nullish(),
|
|
5711
|
-
zip: z.string().nullish(),
|
|
5712
|
-
race: z.array(z.enum([
|
|
5713
|
-
'AFRICAN_AMERICAN',
|
|
5714
|
-
'ASIAN',
|
|
5715
|
-
'CAUCASIAN',
|
|
5716
|
-
'NATIVE_AMERICAN',
|
|
5717
|
-
'NOT_SPECIFIED',
|
|
5718
|
-
'OTHER'
|
|
5719
|
-
])).optional(),
|
|
5720
|
-
sex: z.enum([
|
|
5721
|
-
'female',
|
|
5722
|
-
'male',
|
|
5723
|
-
'non_binary',
|
|
5724
|
-
'not_specified'
|
|
5725
|
-
]).nullish(),
|
|
5726
|
-
local_business_license: z.string().nullish(),
|
|
5727
|
-
drivers_license_state: z.string().nullish(),
|
|
5728
|
-
drivers_license_number: z.string().nullish(),
|
|
5729
|
-
ssn: z.string().nullish(),
|
|
5730
|
-
veteran_status: z.enum([
|
|
5731
|
-
'protected_veteran',
|
|
5732
|
-
'not_protected_veteran',
|
|
5733
|
-
'reserves',
|
|
5734
|
-
'guard',
|
|
5735
|
-
'not_specified'
|
|
5736
|
-
]).nullish(),
|
|
5737
|
-
hispanic_origin: z.enum([
|
|
5738
|
-
'yes',
|
|
5739
|
-
'no',
|
|
5740
|
-
'not_specified'
|
|
5741
|
-
]).nullish(),
|
|
5742
|
-
ca_dir_withholding_exemptions: z.int().nullish(),
|
|
5743
|
-
disabled: z.boolean().optional(),
|
|
5744
|
-
il_dol_race: z.enum([
|
|
5745
|
-
'white',
|
|
5746
|
-
'black',
|
|
5747
|
-
'hispanic_or_latino',
|
|
5748
|
-
'american_indian_or_alaska_native',
|
|
5749
|
-
'chinese',
|
|
5750
|
-
'filipino',
|
|
5751
|
-
'asian_india',
|
|
5752
|
-
'vietnamese',
|
|
5753
|
-
'korean',
|
|
5754
|
-
'japanese',
|
|
5755
|
-
'native_hawaiian',
|
|
5756
|
-
'samoan',
|
|
5757
|
-
'chamorro',
|
|
5758
|
-
'other_asian',
|
|
5759
|
-
'other_pacific_islander',
|
|
5760
|
-
'other'
|
|
5761
|
-
]).nullish(),
|
|
5762
|
-
il_shines_employment_type: z.enum([
|
|
5763
|
-
'part_time',
|
|
5764
|
-
'full_time',
|
|
5765
|
-
'seasonal_temporary',
|
|
5766
|
-
'independent_contract'
|
|
5767
|
-
]).nullish(),
|
|
5768
|
-
il_shines_eep_qualifiers: z.array(z.enum([
|
|
5769
|
-
'eep_program_completed',
|
|
5770
|
-
'foster_care',
|
|
5771
|
-
'formerly_incarcerated',
|
|
5772
|
-
'equity_investment_eligible_community',
|
|
5773
|
-
'self_registered_or_unknown'
|
|
5774
|
-
])).optional(),
|
|
5775
|
-
il_shines_other_programs: z.array(z.enum([
|
|
5776
|
-
'solar_training_pipeline_program',
|
|
5777
|
-
'craft_apprenticeship_program',
|
|
5778
|
-
'multi_cultural_jobs_program',
|
|
5779
|
-
'clean_jobs_workforce_network_program',
|
|
5780
|
-
'illinois_climate_works_prep_apprenticeship_program',
|
|
5781
|
-
'returning_residents_clean_jobs_training_program',
|
|
5782
|
-
'other'
|
|
5783
|
-
])).optional(),
|
|
5784
|
-
or_boli_schedule_type: z.enum(['five_eight', 'four_ten']).nullish(),
|
|
5785
|
-
or_boli_race: z.array(z.enum([
|
|
5786
|
-
'american_indian_or_alaska_native',
|
|
5787
|
-
'asian',
|
|
5788
|
-
'hispanic_or_latino',
|
|
5789
|
-
'black_or_african_american',
|
|
5790
|
-
'native_hawaiian_or_pacific_islander',
|
|
5791
|
-
'white',
|
|
5792
|
-
'portuguese_or_brazilian'
|
|
5793
|
-
])).optional()
|
|
5794
|
-
}).nullish()
|
|
5795
|
-
}));
|
|
5796
5946
|
/**
|
|
5797
5947
|
* Keyset pagination cursors for the collection.
|
|
5798
5948
|
*/
|
|
@@ -5951,6 +6101,14 @@ export const zJobSitesResponseObject = z.object({
|
|
|
5951
6101
|
links: zLinks,
|
|
5952
6102
|
data: z.array(zJobSiteResponseObject)
|
|
5953
6103
|
});
|
|
6104
|
+
/**
|
|
6105
|
+
* A page of a job's documents, with pagination metadata and navigation links.
|
|
6106
|
+
*/
|
|
6107
|
+
export const zJobDocumentsResponseObject = z.object({
|
|
6108
|
+
meta: zMeta,
|
|
6109
|
+
links: zLinks,
|
|
6110
|
+
data: z.array(zJobDocumentResponseObject)
|
|
6111
|
+
});
|
|
5954
6112
|
/**
|
|
5955
6113
|
* A page of a job's good-faith-effort exceptions, with pagination metadata and navigation links.
|
|
5956
6114
|
*/
|
|
@@ -6336,8 +6494,8 @@ export const zFederalJobWageDeterminationParameters = z.object({
|
|
|
6336
6494
|
type: z.enum(['Pwa::JobWageDeterminations::Federal']),
|
|
6337
6495
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6338
6496
|
pwa_trade_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6339
|
-
hourly_rate_cents: z.string(),
|
|
6340
|
-
fringe_rate_cents: z.string(),
|
|
6497
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
6498
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
6341
6499
|
class_code: z.string().nullish(),
|
|
6342
6500
|
construction_category: z.enum([
|
|
6343
6501
|
'building',
|
|
@@ -6355,8 +6513,8 @@ export const zRegionalJobWageDeterminationParameters = z.object({
|
|
|
6355
6513
|
type: z.enum(['Pwa::JobWageDeterminations::Regional']),
|
|
6356
6514
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6357
6515
|
pwa_trade_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6358
|
-
hourly_rate_cents: z.string(),
|
|
6359
|
-
fringe_rate_cents: z.string().optional(),
|
|
6516
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
6517
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6360
6518
|
class_code: z.string().nullish(),
|
|
6361
6519
|
construction_category: z.enum([
|
|
6362
6520
|
'building',
|
|
@@ -6366,15 +6524,15 @@ export const zRegionalJobWageDeterminationParameters = z.object({
|
|
|
6366
6524
|
]).nullish(),
|
|
6367
6525
|
general_wage_determination: z.string().nullish(),
|
|
6368
6526
|
regional_fields: z.object({
|
|
6369
|
-
combined_health_fringe_rate_cents: z.string().nullish(),
|
|
6370
|
-
combined_savings_fringe_rate_cents: z.string().nullish(),
|
|
6371
|
-
combined_holiday_pto_fringe_rate_cents: z.string().nullish(),
|
|
6372
|
-
training_fringe_rate_cents: z.string().nullish(),
|
|
6373
|
-
other_fringe_rate_cents: z.string().nullish(),
|
|
6374
|
-
one_five_x_adder_rate_cents: z.string().nullish(),
|
|
6375
|
-
two_x_adder_rate_cents: z.string().nullish(),
|
|
6376
|
-
one_five_x_fringe_adder_rate_cents: z.string().nullish(),
|
|
6377
|
-
two_x_fringe_adder_rate_cents: z.string().nullish()
|
|
6527
|
+
combined_health_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6528
|
+
combined_savings_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6529
|
+
combined_holiday_pto_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6530
|
+
training_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6531
|
+
other_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6532
|
+
one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6533
|
+
two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6534
|
+
one_five_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6535
|
+
two_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
6378
6536
|
}).optional(),
|
|
6379
6537
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish()
|
|
6380
6538
|
});
|
|
@@ -6393,8 +6551,8 @@ export const zJobWageDeterminationUpdateParameters = z.object({
|
|
|
6393
6551
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
6394
6552
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
6395
6553
|
pwa_trade_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
6396
|
-
hourly_rate_cents: z.string().optional(),
|
|
6397
|
-
fringe_rate_cents: z.string().optional(),
|
|
6554
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6555
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6398
6556
|
class_code: z.string().nullish(),
|
|
6399
6557
|
construction_category: z.enum([
|
|
6400
6558
|
'building',
|
|
@@ -6404,15 +6562,15 @@ export const zJobWageDeterminationUpdateParameters = z.object({
|
|
|
6404
6562
|
]).nullish(),
|
|
6405
6563
|
general_wage_determination: z.string().nullish(),
|
|
6406
6564
|
regional_fields: z.object({
|
|
6407
|
-
combined_health_fringe_rate_cents: z.string().nullish(),
|
|
6408
|
-
combined_savings_fringe_rate_cents: z.string().nullish(),
|
|
6409
|
-
combined_holiday_pto_fringe_rate_cents: z.string().nullish(),
|
|
6410
|
-
training_fringe_rate_cents: z.string().nullish(),
|
|
6411
|
-
other_fringe_rate_cents: z.string().nullish(),
|
|
6412
|
-
one_five_x_adder_rate_cents: z.string().nullish(),
|
|
6413
|
-
two_x_adder_rate_cents: z.string().nullish(),
|
|
6414
|
-
one_five_x_fringe_adder_rate_cents: z.string().nullish(),
|
|
6415
|
-
two_x_fringe_adder_rate_cents: z.string().nullish()
|
|
6565
|
+
combined_health_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6566
|
+
combined_savings_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6567
|
+
combined_holiday_pto_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6568
|
+
training_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6569
|
+
other_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6570
|
+
one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6571
|
+
two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6572
|
+
one_five_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6573
|
+
two_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
6416
6574
|
}).optional()
|
|
6417
6575
|
});
|
|
6418
6576
|
/**
|
|
@@ -6421,8 +6579,8 @@ export const zJobWageDeterminationUpdateParameters = z.object({
|
|
|
6421
6579
|
export const zJobWageDeterminationScheduledChangeParameters = z.object({
|
|
6422
6580
|
effective_date: z.iso.date(),
|
|
6423
6581
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
6424
|
-
hourly_rate_cents: z.string().optional(),
|
|
6425
|
-
fringe_rate_cents: z.string().optional(),
|
|
6582
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6583
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6426
6584
|
class_code: z.string().nullish(),
|
|
6427
6585
|
construction_category: z.enum([
|
|
6428
6586
|
'building',
|
|
@@ -6432,15 +6590,15 @@ export const zJobWageDeterminationScheduledChangeParameters = z.object({
|
|
|
6432
6590
|
]).nullish(),
|
|
6433
6591
|
general_wage_determination: z.string().nullish(),
|
|
6434
6592
|
regional_fields: z.object({
|
|
6435
|
-
combined_health_fringe_rate_cents: z.string().nullish(),
|
|
6436
|
-
combined_savings_fringe_rate_cents: z.string().nullish(),
|
|
6437
|
-
combined_holiday_pto_fringe_rate_cents: z.string().nullish(),
|
|
6438
|
-
training_fringe_rate_cents: z.string().nullish(),
|
|
6439
|
-
other_fringe_rate_cents: z.string().nullish(),
|
|
6440
|
-
one_five_x_adder_rate_cents: z.string().nullish(),
|
|
6441
|
-
two_x_adder_rate_cents: z.string().nullish(),
|
|
6442
|
-
one_five_x_fringe_adder_rate_cents: z.string().nullish(),
|
|
6443
|
-
two_x_fringe_adder_rate_cents: z.string().nullish()
|
|
6593
|
+
combined_health_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6594
|
+
combined_savings_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6595
|
+
combined_holiday_pto_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6596
|
+
training_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6597
|
+
other_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6598
|
+
one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6599
|
+
two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6600
|
+
one_five_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6601
|
+
two_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
6444
6602
|
}).optional()
|
|
6445
6603
|
});
|
|
6446
6604
|
/**
|
|
@@ -6615,8 +6773,8 @@ export const zFederalProjectWageDeterminationParameters = z.object({
|
|
|
6615
6773
|
type: z.enum(['Pwa::ProjectWageDeterminations::Federal']),
|
|
6616
6774
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6617
6775
|
pwa_trade_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6618
|
-
hourly_rate_cents: z.string(),
|
|
6619
|
-
fringe_rate_cents: z.string(),
|
|
6776
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
6777
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
6620
6778
|
class_code: z.string().nullish(),
|
|
6621
6779
|
construction_category: z.enum([
|
|
6622
6780
|
'building',
|
|
@@ -6634,8 +6792,8 @@ export const zRegionalProjectWageDeterminationParameters = z.object({
|
|
|
6634
6792
|
type: z.enum(['Pwa::ProjectWageDeterminations::Regional']),
|
|
6635
6793
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6636
6794
|
pwa_trade_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/),
|
|
6637
|
-
hourly_rate_cents: z.string(),
|
|
6638
|
-
fringe_rate_cents: z.string().optional(),
|
|
6795
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
|
|
6796
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6639
6797
|
class_code: z.string().nullish(),
|
|
6640
6798
|
construction_category: z.enum([
|
|
6641
6799
|
'building',
|
|
@@ -6645,15 +6803,15 @@ export const zRegionalProjectWageDeterminationParameters = z.object({
|
|
|
6645
6803
|
]).nullish(),
|
|
6646
6804
|
general_wage_determination: z.string().nullish(),
|
|
6647
6805
|
regional_fields: z.object({
|
|
6648
|
-
combined_health_fringe_rate_cents: z.string().nullish(),
|
|
6649
|
-
combined_savings_fringe_rate_cents: z.string().nullish(),
|
|
6650
|
-
combined_holiday_pto_fringe_rate_cents: z.string().nullish(),
|
|
6651
|
-
training_fringe_rate_cents: z.string().nullish(),
|
|
6652
|
-
other_fringe_rate_cents: z.string().nullish(),
|
|
6653
|
-
one_five_x_adder_rate_cents: z.string().nullish(),
|
|
6654
|
-
two_x_adder_rate_cents: z.string().nullish(),
|
|
6655
|
-
one_five_x_fringe_adder_rate_cents: z.string().nullish(),
|
|
6656
|
-
two_x_fringe_adder_rate_cents: z.string().nullish()
|
|
6806
|
+
combined_health_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6807
|
+
combined_savings_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6808
|
+
combined_holiday_pto_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6809
|
+
training_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6810
|
+
other_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6811
|
+
one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6812
|
+
two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6813
|
+
one_five_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6814
|
+
two_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
6657
6815
|
}).optional(),
|
|
6658
6816
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish()
|
|
6659
6817
|
});
|
|
@@ -6672,8 +6830,8 @@ export const zProjectWageDeterminationUpdateParameters = z.object({
|
|
|
6672
6830
|
overtime_package_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).nullish(),
|
|
6673
6831
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
6674
6832
|
pwa_trade_id: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
6675
|
-
hourly_rate_cents: z.string().optional(),
|
|
6676
|
-
fringe_rate_cents: z.string().optional(),
|
|
6833
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6834
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6677
6835
|
class_code: z.string().nullish(),
|
|
6678
6836
|
construction_category: z.enum([
|
|
6679
6837
|
'building',
|
|
@@ -6683,15 +6841,15 @@ export const zProjectWageDeterminationUpdateParameters = z.object({
|
|
|
6683
6841
|
]).nullish(),
|
|
6684
6842
|
general_wage_determination: z.string().nullish(),
|
|
6685
6843
|
regional_fields: z.object({
|
|
6686
|
-
combined_health_fringe_rate_cents: z.string().nullish(),
|
|
6687
|
-
combined_savings_fringe_rate_cents: z.string().nullish(),
|
|
6688
|
-
combined_holiday_pto_fringe_rate_cents: z.string().nullish(),
|
|
6689
|
-
training_fringe_rate_cents: z.string().nullish(),
|
|
6690
|
-
other_fringe_rate_cents: z.string().nullish(),
|
|
6691
|
-
one_five_x_adder_rate_cents: z.string().nullish(),
|
|
6692
|
-
two_x_adder_rate_cents: z.string().nullish(),
|
|
6693
|
-
one_five_x_fringe_adder_rate_cents: z.string().nullish(),
|
|
6694
|
-
two_x_fringe_adder_rate_cents: z.string().nullish()
|
|
6844
|
+
combined_health_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6845
|
+
combined_savings_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6846
|
+
combined_holiday_pto_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6847
|
+
training_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6848
|
+
other_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6849
|
+
one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6850
|
+
two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6851
|
+
one_five_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6852
|
+
two_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
6695
6853
|
}).optional()
|
|
6696
6854
|
});
|
|
6697
6855
|
/**
|
|
@@ -6700,8 +6858,8 @@ export const zProjectWageDeterminationUpdateParameters = z.object({
|
|
|
6700
6858
|
export const zProjectWageDeterminationScheduledChangeParameters = z.object({
|
|
6701
6859
|
effective_date: z.iso.date(),
|
|
6702
6860
|
labor_classification: z.string().regex(/[^\x09-\x0D\x20
- ‧- ]|[‧]/).optional(),
|
|
6703
|
-
hourly_rate_cents: z.string().optional(),
|
|
6704
|
-
fringe_rate_cents: z.string().optional(),
|
|
6861
|
+
hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6862
|
+
fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
|
|
6705
6863
|
class_code: z.string().nullish(),
|
|
6706
6864
|
construction_category: z.enum([
|
|
6707
6865
|
'building',
|
|
@@ -6711,15 +6869,15 @@ export const zProjectWageDeterminationScheduledChangeParameters = z.object({
|
|
|
6711
6869
|
]).nullish(),
|
|
6712
6870
|
general_wage_determination: z.string().nullish(),
|
|
6713
6871
|
regional_fields: z.object({
|
|
6714
|
-
combined_health_fringe_rate_cents: z.string().nullish(),
|
|
6715
|
-
combined_savings_fringe_rate_cents: z.string().nullish(),
|
|
6716
|
-
combined_holiday_pto_fringe_rate_cents: z.string().nullish(),
|
|
6717
|
-
training_fringe_rate_cents: z.string().nullish(),
|
|
6718
|
-
other_fringe_rate_cents: z.string().nullish(),
|
|
6719
|
-
one_five_x_adder_rate_cents: z.string().nullish(),
|
|
6720
|
-
two_x_adder_rate_cents: z.string().nullish(),
|
|
6721
|
-
one_five_x_fringe_adder_rate_cents: z.string().nullish(),
|
|
6722
|
-
two_x_fringe_adder_rate_cents: z.string().nullish()
|
|
6872
|
+
combined_health_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6873
|
+
combined_savings_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6874
|
+
combined_holiday_pto_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6875
|
+
training_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6876
|
+
other_fringe_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6877
|
+
one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6878
|
+
two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6879
|
+
one_five_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
6880
|
+
two_x_fringe_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish()
|
|
6723
6881
|
}).optional()
|
|
6724
6882
|
});
|
|
6725
6883
|
/**
|
|
@@ -6739,7 +6897,7 @@ export const zProjectWageDeterminationScheduledTerminationParameters = z.object(
|
|
|
6739
6897
|
*/
|
|
6740
6898
|
export const zRateRuleEffect = z.object({
|
|
6741
6899
|
type: z.enum(['wage_increment', 'fringe_increment']),
|
|
6742
|
-
amount_cents: z.string()
|
|
6900
|
+
amount_cents: z.string().regex(/^[0-9]+$/)
|
|
6743
6901
|
});
|
|
6744
6902
|
/**
|
|
6745
6903
|
* Restricts the rule to a time-of-day window.
|
|
@@ -6901,7 +7059,7 @@ export const zPayRatesRuleParameters = z.object({
|
|
|
6901
7059
|
effective_date: z.iso.date().optional(),
|
|
6902
7060
|
effect: z.object({
|
|
6903
7061
|
type: z.enum(['wage_increment', 'fringe_increment']),
|
|
6904
|
-
amount_cents: z.string()
|
|
7062
|
+
amount_cents: z.string().regex(/^[0-9]+$/)
|
|
6905
7063
|
}),
|
|
6906
7064
|
conditions: z.array(z.union([
|
|
6907
7065
|
zRateRuleTimeRangeCondition,
|
|
@@ -6919,7 +7077,7 @@ export const zPayRatesRuleUpdateParameters = z.object({
|
|
|
6919
7077
|
effective_from: z.iso.date().optional(),
|
|
6920
7078
|
effect: z.object({
|
|
6921
7079
|
type: z.enum(['wage_increment', 'fringe_increment']),
|
|
6922
|
-
amount_cents: z.string()
|
|
7080
|
+
amount_cents: z.string().regex(/^[0-9]+$/)
|
|
6923
7081
|
}).optional(),
|
|
6924
7082
|
conditions: z.array(z.union([
|
|
6925
7083
|
zRateRuleTimeRangeCondition,
|
|
@@ -6949,7 +7107,7 @@ export const zPayRatesRuleScheduledChangeParameters = z.object({
|
|
|
6949
7107
|
effective_date: z.iso.date(),
|
|
6950
7108
|
effect: z.object({
|
|
6951
7109
|
type: z.enum(['wage_increment', 'fringe_increment']),
|
|
6952
|
-
amount_cents: z.string()
|
|
7110
|
+
amount_cents: z.string().regex(/^[0-9]+$/)
|
|
6953
7111
|
}).optional(),
|
|
6954
7112
|
conditions: z.array(z.union([
|
|
6955
7113
|
zRateRuleTimeRangeCondition,
|
|
@@ -7166,7 +7324,7 @@ export const zRateRuleParameters = z.object({
|
|
|
7166
7324
|
effective_date: z.iso.date().nullish(),
|
|
7167
7325
|
effect: z.object({
|
|
7168
7326
|
type: z.enum(['wage_increment', 'fringe_increment']),
|
|
7169
|
-
amount_cents: z.string()
|
|
7327
|
+
amount_cents: z.string().regex(/^[0-9]+$/)
|
|
7170
7328
|
}),
|
|
7171
7329
|
conditions: z.array(z.union([
|
|
7172
7330
|
zRateRuleTimeRangeCondition,
|
|
@@ -7186,8 +7344,8 @@ export const zAssetsItemParameters = z.object({
|
|
|
7186
7344
|
assets_product_id: z.string(),
|
|
7187
7345
|
serial_number: z.string().nullish(),
|
|
7188
7346
|
status: z.enum(['available', 'assigned']).optional(),
|
|
7189
|
-
purchase_date: z.
|
|
7190
|
-
purchase_price_cents: z.
|
|
7347
|
+
purchase_date: z.iso.date().nullish(),
|
|
7348
|
+
purchase_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
7191
7349
|
external_id: z.string().nullish(),
|
|
7192
7350
|
external_system_url: z.string().nullish(),
|
|
7193
7351
|
attribute_values: z.array(z.object({
|
|
@@ -7215,8 +7373,8 @@ export const zAssetsItemUpdateParameters = z.object({
|
|
|
7215
7373
|
assets_product_id: z.string().optional(),
|
|
7216
7374
|
serial_number: z.string().nullish(),
|
|
7217
7375
|
status: z.enum(['available', 'assigned']).optional(),
|
|
7218
|
-
purchase_date: z.
|
|
7219
|
-
purchase_price_cents: z.
|
|
7376
|
+
purchase_date: z.iso.date().nullish(),
|
|
7377
|
+
purchase_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
|
|
7220
7378
|
external_id: z.string().nullish(),
|
|
7221
7379
|
external_system_url: z.string().nullish(),
|
|
7222
7380
|
attribute_values: z.array(z.object({
|
|
@@ -8898,9 +9056,9 @@ export const zDeleteDocumentPath = z.object({
|
|
|
8898
9056
|
id: z.string()
|
|
8899
9057
|
});
|
|
8900
9058
|
/**
|
|
8901
|
-
*
|
|
9059
|
+
* No Content
|
|
8902
9060
|
*/
|
|
8903
|
-
export const zDeleteDocumentResponse =
|
|
9061
|
+
export const zDeleteDocumentResponse = z.void();
|
|
8904
9062
|
export const zGetDocumentPath = z.object({
|
|
8905
9063
|
item_id: z.string(),
|
|
8906
9064
|
id: z.string()
|
|
@@ -9574,32 +9732,32 @@ export const zGetAssessmentPath = z.object({
|
|
|
9574
9732
|
* Success
|
|
9575
9733
|
*/
|
|
9576
9734
|
export const zGetAssessmentResponse = zCompetencyAssessmentResponseObject;
|
|
9577
|
-
export const
|
|
9735
|
+
export const zListAssessmentCriteriaPath = z.object({
|
|
9578
9736
|
assessment_id: z.string()
|
|
9579
9737
|
});
|
|
9580
|
-
export const
|
|
9738
|
+
export const zListAssessmentCriteriaQuery = z.object({
|
|
9581
9739
|
filter: z.string().optional(),
|
|
9582
9740
|
'filter[unexpected]': z.string().optional()
|
|
9583
9741
|
});
|
|
9584
9742
|
/**
|
|
9585
9743
|
* Candidate sees a decided review
|
|
9586
9744
|
*/
|
|
9587
|
-
export const
|
|
9745
|
+
export const zListAssessmentCriteriaResponse = z.object({
|
|
9588
9746
|
meta: zMeta,
|
|
9589
9747
|
links: zLinks,
|
|
9590
|
-
data: z.array(
|
|
9748
|
+
data: z.array(zCompetencyAssessmentCriterionResponseObject)
|
|
9591
9749
|
});
|
|
9592
|
-
export const
|
|
9750
|
+
export const zGetAssessmentCriterionPath = z.object({
|
|
9593
9751
|
assessment_id: z.string(),
|
|
9594
9752
|
id: z.string()
|
|
9595
9753
|
});
|
|
9596
9754
|
/**
|
|
9597
9755
|
* Candidate sees a decided review
|
|
9598
9756
|
*/
|
|
9599
|
-
export const
|
|
9757
|
+
export const zGetAssessmentCriterionResponse = zCompetencyAssessmentCriterionResponseObject;
|
|
9600
9758
|
export const zListEvidenceItemsPath = z.object({
|
|
9601
9759
|
assessment_id: z.string(),
|
|
9602
|
-
|
|
9760
|
+
criterion_id: z.string()
|
|
9603
9761
|
});
|
|
9604
9762
|
export const zListEvidenceItemsQuery = z.object({
|
|
9605
9763
|
'filter[kind]': z.enum([
|
|
@@ -9620,7 +9778,7 @@ export const zListEvidenceItemsResponse = z.object({
|
|
|
9620
9778
|
});
|
|
9621
9779
|
export const zGetEvidenceItemPath = z.object({
|
|
9622
9780
|
assessment_id: z.string(),
|
|
9623
|
-
|
|
9781
|
+
criterion_id: z.string(),
|
|
9624
9782
|
id: z.string()
|
|
9625
9783
|
});
|
|
9626
9784
|
/**
|
|
@@ -10306,6 +10464,62 @@ export const zUpdateGroupPath = z.object({
|
|
|
10306
10464
|
* Success
|
|
10307
10465
|
*/
|
|
10308
10466
|
export const zUpdateGroupResponse = zGroupResponseObject;
|
|
10467
|
+
export const zListJobDocumentsPath = z.object({
|
|
10468
|
+
job_id: z.string()
|
|
10469
|
+
});
|
|
10470
|
+
export const zListJobDocumentsQuery = z.object({
|
|
10471
|
+
'filter[type]': z.array(z.enum([
|
|
10472
|
+
'CERTIFICATIONS',
|
|
10473
|
+
'CHECKLIST',
|
|
10474
|
+
'MAP',
|
|
10475
|
+
'MSA',
|
|
10476
|
+
'ONSITE_POSTER',
|
|
10477
|
+
'OTHER',
|
|
10478
|
+
'PARTS_INSTRUCTIONS',
|
|
10479
|
+
'PHOTO',
|
|
10480
|
+
'PO',
|
|
10481
|
+
'PWA_DOCUMENTATION',
|
|
10482
|
+
'RESUME',
|
|
10483
|
+
'WO'
|
|
10484
|
+
])).optional()
|
|
10485
|
+
});
|
|
10486
|
+
/**
|
|
10487
|
+
* Success
|
|
10488
|
+
*/
|
|
10489
|
+
export const zListJobDocumentsResponse = zJobDocumentsResponseObject;
|
|
10490
|
+
export const zCreateJobDocumentBody = zJobDocumentParameters;
|
|
10491
|
+
export const zCreateJobDocumentPath = z.object({
|
|
10492
|
+
job_id: z.string()
|
|
10493
|
+
});
|
|
10494
|
+
/**
|
|
10495
|
+
* Created
|
|
10496
|
+
*/
|
|
10497
|
+
export const zCreateJobDocumentResponse = zJobDocumentResponseObject;
|
|
10498
|
+
export const zDeleteJobDocumentPath = z.object({
|
|
10499
|
+
job_id: z.string(),
|
|
10500
|
+
id: z.string()
|
|
10501
|
+
});
|
|
10502
|
+
/**
|
|
10503
|
+
* No Content
|
|
10504
|
+
*/
|
|
10505
|
+
export const zDeleteJobDocumentResponse = z.void();
|
|
10506
|
+
export const zGetJobDocumentPath = z.object({
|
|
10507
|
+
job_id: z.string(),
|
|
10508
|
+
id: z.string()
|
|
10509
|
+
});
|
|
10510
|
+
/**
|
|
10511
|
+
* Success
|
|
10512
|
+
*/
|
|
10513
|
+
export const zGetJobDocumentResponse = zJobDocumentResponseObject;
|
|
10514
|
+
export const zUpdateJobDocumentBody = zJobDocumentUpdateParameters;
|
|
10515
|
+
export const zUpdateJobDocumentPath = z.object({
|
|
10516
|
+
job_id: z.string(),
|
|
10517
|
+
id: z.string()
|
|
10518
|
+
});
|
|
10519
|
+
/**
|
|
10520
|
+
* Success
|
|
10521
|
+
*/
|
|
10522
|
+
export const zUpdateJobDocumentResponse = zJobDocumentResponseObject;
|
|
10309
10523
|
export const zListJobFormAssignmentTasksPath = z.object({
|
|
10310
10524
|
job_id: z.string()
|
|
10311
10525
|
});
|
|
@@ -12231,6 +12445,48 @@ export const zUpdateProjectSitePath = z.object({
|
|
|
12231
12445
|
* Success
|
|
12232
12446
|
*/
|
|
12233
12447
|
export const zUpdateProjectSiteResponse = zProjectSiteResponseObject;
|
|
12448
|
+
export const zListUserVisibilitiesPath = z.object({
|
|
12449
|
+
project_id: z.string()
|
|
12450
|
+
});
|
|
12451
|
+
export const zListUserVisibilitiesQuery = z.object({
|
|
12452
|
+
'page[cursor]': z.string().optional(),
|
|
12453
|
+
'page[limit]': z.int().gte(1).optional().default(20),
|
|
12454
|
+
page: z.string().optional(),
|
|
12455
|
+
filter: z.string().optional(),
|
|
12456
|
+
'filter[unexpected]': z.string().optional()
|
|
12457
|
+
});
|
|
12458
|
+
/**
|
|
12459
|
+
* Success
|
|
12460
|
+
*/
|
|
12461
|
+
export const zListUserVisibilitiesResponse = z.object({
|
|
12462
|
+
meta: zMeta,
|
|
12463
|
+
links: zLinks,
|
|
12464
|
+
data: z.array(zProjectUserVisibilityResponseObject)
|
|
12465
|
+
});
|
|
12466
|
+
export const zCreateUserVisibilityBody = zProjectUserVisibilityParameters;
|
|
12467
|
+
export const zCreateUserVisibilityPath = z.object({
|
|
12468
|
+
project_id: z.string()
|
|
12469
|
+
});
|
|
12470
|
+
/**
|
|
12471
|
+
* Created
|
|
12472
|
+
*/
|
|
12473
|
+
export const zCreateUserVisibilityResponse = zProjectUserVisibilityResponseObject;
|
|
12474
|
+
export const zDeleteUserVisibilityPath = z.object({
|
|
12475
|
+
project_id: z.string(),
|
|
12476
|
+
id: z.string()
|
|
12477
|
+
});
|
|
12478
|
+
/**
|
|
12479
|
+
* No Content
|
|
12480
|
+
*/
|
|
12481
|
+
export const zDeleteUserVisibilityResponse = z.void();
|
|
12482
|
+
export const zGetUserVisibilityPath = z.object({
|
|
12483
|
+
project_id: z.string(),
|
|
12484
|
+
id: z.string()
|
|
12485
|
+
});
|
|
12486
|
+
/**
|
|
12487
|
+
* Success
|
|
12488
|
+
*/
|
|
12489
|
+
export const zGetUserVisibilityResponse = zProjectUserVisibilityResponseObject;
|
|
12234
12490
|
export const zShiftProjectWageDeterminationGenesisBody = zProjectWageDeterminationGenesisParameters;
|
|
12235
12491
|
export const zShiftProjectWageDeterminationGenesisHeaders = z.object({
|
|
12236
12492
|
'If-Match': z.string()
|
|
@@ -13417,6 +13673,9 @@ export const zCreateCompanyPath = z.object({
|
|
|
13417
13673
|
* Created
|
|
13418
13674
|
*/
|
|
13419
13675
|
export const zCreateCompanyResponse = zUserResponseObject;
|
|
13676
|
+
export const zRemoveUserFromCompanyHeaders = z.object({
|
|
13677
|
+
'If-Match': z.string()
|
|
13678
|
+
});
|
|
13420
13679
|
export const zRemoveUserFromCompanyPath = z.object({
|
|
13421
13680
|
user_id: z.string(),
|
|
13422
13681
|
id: z.string()
|