@dsptch-work/api-client 0.30.0 → 0.31.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.
@@ -58,7 +58,7 @@ export const zProblem = z.object({
58
58
  *
59
59
  * **Malformed Request Body**
60
60
  *
61
- * The request body could not be parsed in the declared content type — most commonly a body that is not valid JSON. Send a well-formed body matching the `Content-Type` header.
61
+ * The request body could not be parsed in the declared content type — most commonly a body that is not valid JSON. Send a well-formed body matching the `Content-Type` header. A JSON object that repeats a key, at any depth, is refused too rather than resolved to one of its values; send each key once per object.
62
62
  *
63
63
  * ### non_range_filter_value
64
64
  *
@@ -82,7 +82,7 @@ export const zProblem = z.object({
82
82
  *
83
83
  * **Required Parameter Missing**
84
84
  *
85
- * A required request parameter is absent or empty. The message names it; supply the parameter and retry.
85
+ * A required request parameter is absent. Some older endpoints also treat an empty value as absent. The message names the parameter; supply it and retry.
86
86
  *
87
87
  * ### parameter_not_object
88
88
  *
@@ -471,6 +471,102 @@ export const zDirectUploadResponseObject = z.object({
471
471
  headers: z.record(z.string(), z.string())
472
472
  })
473
473
  });
474
+ /**
475
+ * A durable standing. The candidate passed the standard at level_sort_order. There is no level id, so the standing survives the next revision. This API does not create or update qualifications.
476
+ */
477
+ export const zCompetencyQualificationResponseObject = z.object({
478
+ id: z.string(),
479
+ candidate_user_id: z.string(),
480
+ competencies_standard_id: z.string(),
481
+ level_sort_order: z.int(),
482
+ awarded_at: z.iso.datetime(),
483
+ last_verified_at: z.iso.datetime(),
484
+ created_at: z.iso.datetime(),
485
+ updated_at: z.iso.datetime()
486
+ });
487
+ /**
488
+ * An assessment pinned to one level on one revision. competencies_standard_version_id is that revision, not whatever revision is active now. outcome is null until the assessment is decided. Submit, claim, return, and decide are web-only.
489
+ */
490
+ export const zCompetencyAssessmentResponseObject = z.object({
491
+ id: z.string(),
492
+ candidate_user_id: z.string(),
493
+ competencies_level_id: z.string(),
494
+ level_sort_order: z.int(),
495
+ competencies_standard_version_id: z.string(),
496
+ competencies_standard_id: z.string(),
497
+ predecessor_assessment_id: z.string().nullable(),
498
+ status: z.enum([
499
+ 'evidence_collection',
500
+ 'submitted',
501
+ 'in_review',
502
+ 'decided'
503
+ ]),
504
+ outcome: z.enum(['competent', 'not_yet_competent']).nullable(),
505
+ requested_by_user_id: z.string(),
506
+ requested_at: z.iso.datetime(),
507
+ submitted_by_user_id: z.string().nullable(),
508
+ submitted_at: z.iso.datetime().nullable(),
509
+ claimed_by_user_id: z.string().nullable(),
510
+ claimed_at: z.iso.datetime().nullable(),
511
+ decided_by_user_id: z.string().nullable(),
512
+ decided_at: z.iso.datetime().nullable(),
513
+ created_at: z.iso.datetime(),
514
+ updated_at: z.iso.datetime()
515
+ });
516
+ /**
517
+ * One task 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.
518
+ */
519
+ export const zCompetencyAssessmentKeyActivityResponseObject = z.object({
520
+ id: z.string(),
521
+ competencies_assessment_id: z.string(),
522
+ competencies_key_activity_id: z.string(),
523
+ assessment_methods: z.array(z.enum([
524
+ 'direct_observation',
525
+ 'simulation',
526
+ 'oral_questioning',
527
+ 'written_questioning',
528
+ 'products_of_work',
529
+ 'recognized_prior_learning',
530
+ 'witness_testimony',
531
+ 'other'
532
+ ])),
533
+ aa_feedback: z.string().nullable(),
534
+ evidence_submitted_on: z.iso.date().nullable(),
535
+ assessed_by_user_id: z.string().nullable(),
536
+ assessed_at: z.iso.datetime().nullable(),
537
+ carried_from_id: z.string().nullable(),
538
+ decided_at: z.iso.datetime().nullable(),
539
+ decision: z.enum([
540
+ 'pending',
541
+ 'competent',
542
+ 'not_yet_competent'
543
+ ]).optional(),
544
+ qa_feedback: z.string().nullish(),
545
+ created_at: z.iso.datetime(),
546
+ updated_at: z.iso.datetime()
547
+ });
548
+ /**
549
+ * One piece of evidence on an assessment line. File bytes are not served. file_name, file_byte_size, and file_content_type describe an upload and are null for other kinds.
550
+ */
551
+ export const zCompetencyEvidenceItemResponseObject = z.object({
552
+ id: z.string(),
553
+ competencies_assessment_key_activity_id: z.string(),
554
+ kind: z.enum([
555
+ 'upload',
556
+ 'form_submission',
557
+ 'certification'
558
+ ]),
559
+ description: z.string().nullable(),
560
+ captured_on: z.iso.date(),
561
+ form_submission_id: z.string().nullable(),
562
+ user_certification_id: z.string().nullable(),
563
+ added_by_user_id: z.string(),
564
+ file_name: z.string().nullable(),
565
+ file_byte_size: z.int().nullable(),
566
+ file_content_type: z.string().nullable(),
567
+ created_at: z.iso.datetime(),
568
+ updated_at: z.iso.datetime()
569
+ });
474
570
  /**
475
571
  * A DOL-registered apprenticeship program, sponsored by a company and visible to its sponsor and enrolled employers.
476
572
  */
@@ -726,14 +822,14 @@ export const zApprenticeshipOccupationUpdateParameters = z.object({
726
822
  * Create an authorization for an employer to employ apprentices in a program; only the program's sponsor may manage this roster.
727
823
  */
728
824
  export const zApprenticeshipProgramEmployerParameters = z.object({
729
- company_id: z.string(),
825
+ company_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
730
826
  require_timecard_allocation: z.boolean().optional()
731
827
  });
732
828
  /**
733
829
  * Update an employer authorization in a program. Send only the fields to change; only the program's sponsor may manage this roster, and a company-scoped key may change only the row naming its own company.
734
830
  */
735
831
  export const zApprenticeshipProgramEmployerUpdateParameters = z.object({
736
- company_id: z.string().optional(),
832
+ company_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional(),
737
833
  require_timecard_allocation: z.boolean().optional()
738
834
  });
739
835
  /**
@@ -1423,17 +1519,17 @@ export const zDepartmentResponseObject = z.object({
1423
1519
  updated_at: z.iso.datetime()
1424
1520
  });
1425
1521
  /**
1426
- * Request body for creating a department.
1522
+ * Request body for creating a department. Send fields in JSON; the department belongs to the company that owns the API key.
1427
1523
  */
1428
1524
  export const zDepartmentParameters = z.object({
1429
- name: z.string().min(1),
1525
+ name: z.string(),
1430
1526
  description: z.string().nullish()
1431
1527
  });
1432
1528
  /**
1433
- * Request body for updating a department. Send only the fields to change.
1529
+ * Request body for updating a department. Send only fields to change in JSON; omitted fields remain unchanged.
1434
1530
  */
1435
1531
  export const zDepartmentUpdateParameters = z.object({
1436
- name: z.string().min(1).optional(),
1532
+ name: z.string().optional(),
1437
1533
  description: z.string().nullish()
1438
1534
  });
1439
1535
  /**
@@ -1502,12 +1598,12 @@ export const zAttestationConfigResponseObject = z.object({
1502
1598
  updated_at: z.iso.datetime()
1503
1599
  });
1504
1600
  /**
1505
- * Create an attestation config on a pay schedule; content and expected_response are required. The pay schedule is taken from the URL path.
1601
+ * Create an attestation config on a pay schedule; content and expected_response are required, and omitting either answers 400. A null or wrong-typed value answers 422. The pay schedule is taken from the URL path.
1506
1602
  */
1507
1603
  export const zAttestationConfigParameters = z.object({
1508
1604
  content: z.string(),
1509
1605
  expected_response: z.boolean(),
1510
- us_state_id: z.string().nullish()
1606
+ us_state_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish()
1511
1607
  });
1512
1608
  /**
1513
1609
  * Create the company's first pay schedule. Time and payroll modes inherit company defaults.
@@ -2068,13 +2164,13 @@ export const zGroupResponseObject = z.object({
2068
2164
  updated_at: z.iso.datetime()
2069
2165
  });
2070
2166
  /**
2071
- * Request body for creating a group.
2167
+ * Request body for creating a group. Send fields in JSON; the group belongs to the company that owns the API key.
2072
2168
  */
2073
2169
  export const zGroupParameters = z.object({
2074
2170
  name: z.string()
2075
2171
  });
2076
2172
  /**
2077
- * Request body for updating a group. Send only the fields to change.
2173
+ * Request body for updating a group. Send only fields to change in JSON; omitted fields remain unchanged.
2078
2174
  */
2079
2175
  export const zGroupUpdateParameters = z.object({
2080
2176
  name: z.string().optional()
@@ -2264,18 +2360,18 @@ export const zPositionFunctionResponseObject = z.object({
2264
2360
  updated_at: z.iso.datetime()
2265
2361
  });
2266
2362
  /**
2267
- * Request body for creating a position function.
2363
+ * Request body for creating a position function. Send fields in JSON; the function belongs to the company that owns the API key.
2268
2364
  */
2269
2365
  export const zPositionFunctionParameters = z.object({
2270
- value: z.string().min(1),
2271
- description: z.string().min(1)
2366
+ value: z.string(),
2367
+ description: z.string()
2272
2368
  });
2273
2369
  /**
2274
- * Request body for updating a position function. Send only the fields to change.
2370
+ * Request body for updating a position function. Send only fields to change in JSON; omitted fields remain unchanged.
2275
2371
  */
2276
2372
  export const zPositionFunctionUpdateParameters = z.object({
2277
- value: z.string().min(1).optional(),
2278
- description: z.string().min(1).optional()
2373
+ value: z.string().optional(),
2374
+ description: z.string().optional()
2279
2375
  });
2280
2376
  export const zCompanyResponseObject = z.object({
2281
2377
  id: z.string(),
@@ -2691,7 +2787,7 @@ export const zAggregateTimeImportResponseObject = z.object({
2691
2787
  * 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`, a second answers 409 naming `import_in_progress`, and nothing is written. Poll the earlier import until it reports, then submit again.
2692
2788
  */
2693
2789
  export const zAggregateTimeImportParameters = z.object({
2694
- file_signed_id: z.string()
2790
+ file_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
2695
2791
  });
2696
2792
  /**
2697
2793
  * One bulk upload of a certified payroll report against a pay period, and how it turned out.
@@ -2722,7 +2818,7 @@ export const zDsptchCprImportResponseObject = z.object({
2722
2818
  * 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.
2723
2819
  */
2724
2820
  export const zDsptchCprImportParameters = z.object({
2725
- file_signed_id: z.string()
2821
+ file_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
2726
2822
  });
2727
2823
  /**
2728
2824
  * One bulk upload of paystub amounts against a payroll run, and how it turned out.
@@ -2753,7 +2849,7 @@ export const zPaystubImportResponseObject = z.object({
2753
2849
  * Because acceptance is synchronous but the write happens in the background, only one import at a time is accepted for a payroll run: while an earlier one is still `pending`, a second answers 409 naming `import_in_progress`, and nothing is written. Poll the earlier import until it reports, then submit again.
2754
2850
  */
2755
2851
  export const zPaystubImportParameters = z.object({
2756
- file_signed_id: z.string()
2852
+ file_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
2757
2853
  });
2758
2854
  /**
2759
2855
  * One bulk upload of wide paystub amounts against a payroll run, and how it turned out.
@@ -2782,7 +2878,7 @@ export const zWidePaystubImportResponseObject = z.object({
2782
2878
  * Because acceptance is synchronous but the write happens in the background, only one wide paystub import at a time is accepted for a payroll run: 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.
2783
2879
  */
2784
2880
  export const zWidePaystubImportParameters = z.object({
2785
- file_signed_id: z.string()
2881
+ file_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
2786
2882
  });
2787
2883
  /**
2788
2884
  * One bulk upload of time entries against a pay period, and how it turned out.
@@ -2811,7 +2907,7 @@ export const zTimeEntryImportResponseObject = z.object({
2811
2907
  * 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.
2812
2908
  */
2813
2909
  export const zTimeEntryImportParameters = z.object({
2814
- file_signed_id: z.string()
2910
+ file_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
2815
2911
  });
2816
2912
  /**
2817
2913
  * A worker's time card for one pay period — the aggregation root for their tracked time, carrying approval and lock status alongside the period's rolled-up minutes and pay totals. One per worker per pay period.
@@ -3971,8 +4067,8 @@ export const zPaystubParameters = z.object({
3971
4067
  * Request body for updating a paystub. Send only the fields to change; the resulting paystub must still match its payroll run type.
3972
4068
  */
3973
4069
  export const zPaystubUpdateParameters = z.object({
3974
- payrolls_payroll_run_id: z.string().optional(),
3975
- timekeeping_time_card_id: z.string().nullish(),
4070
+ payrolls_payroll_run_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional(),
4071
+ timekeeping_time_card_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish(),
3976
4072
  external_id: z.string().nullish(),
3977
4073
  check_number: z.string().nullish()
3978
4074
  });
@@ -4188,6 +4284,29 @@ export const zJobSiteParameters = z.object({
4188
4284
  export const zJobSiteUpdateParameters = z.object({
4189
4285
  feature_ids: z.array(z.string()).optional()
4190
4286
  });
4287
+ /**
4288
+ * 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.
4289
+ */
4290
+ export const zJobGoodFaithEffortExceptionResponseObject = z.object({
4291
+ id: z.string(),
4292
+ job_id: z.string(),
4293
+ program_unavailable: z.boolean(),
4294
+ num_apprentices_requested: z.int().nullable(),
4295
+ num_apprentices_provided: z.int().nullable(),
4296
+ minutes_per_apprentice: z.int().nullable(),
4297
+ requested_on_date: z.iso.date().nullable(),
4298
+ request_start_date: z.iso.date().nullable(),
4299
+ request_end_date: z.iso.date().nullable(),
4300
+ occupation: z.string().nullable(),
4301
+ program_name: z.string().nullable(),
4302
+ response: z.enum([
4303
+ 'no_response',
4304
+ 'denied',
4305
+ 'partial'
4306
+ ]).nullable(),
4307
+ created_at: z.iso.datetime(),
4308
+ updated_at: z.iso.datetime()
4309
+ });
4191
4310
  /**
4192
4311
  * A form-completion task attached to a job — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::JobFormAssignmentTask` id, not the web show `Task#uid`.
4193
4312
  */
@@ -4215,6 +4334,22 @@ export const zJobFormAssignmentResponseObject = z.object({
4215
4334
  remind_at: z.iso.datetime()
4216
4335
  }))
4217
4336
  });
4337
+ /**
4338
+ * A corrective payment recorded against a job's PWA obligations. Read-only. Does not include attestation files, pretty type, currency, or a Money amount.
4339
+ */
4340
+ export const zJobCurePaymentResponseObject = z.object({
4341
+ id: z.string(),
4342
+ job_id: z.string(),
4343
+ type: z.enum(['Pwa::CurePayments::Federal', 'Pwa::CurePayments::Regional']),
4344
+ amount_cents: z.string(),
4345
+ paid_on_date: z.iso.date(),
4346
+ cures_from_date: z.iso.date(),
4347
+ cures_to_date: z.iso.date(),
4348
+ notes: z.string().nullable(),
4349
+ created_by_user_id: z.string(),
4350
+ created_at: z.iso.datetime(),
4351
+ updated_at: z.iso.datetime()
4352
+ });
4218
4353
  /**
4219
4354
  * A form-completion task attached to a site — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::SiteFormAssignmentTask` id, not the web show `Task#uid`. Sites are shared across companies; another company's assignment on the same site is not found. An empty assignee list is valid.
4220
4355
  */
@@ -4704,7 +4839,7 @@ export const zPositionParameters = z.object({
4704
4839
  }).optional()
4705
4840
  });
4706
4841
  /**
4707
- * Parameters for creating a per-unit scope price on a job. `scope_kind` and `unit_price` are required.
4842
+ * Parameters for creating a per-unit scope price on a job. `scope_kind` and `unit_price` are required; omitting either answers 400, and a null or wrong-typed value answers 422.
4708
4843
  */
4709
4844
  export const zProductionJobScopePriceParameters = z.object({
4710
4845
  scope_kind: z.string(),
@@ -4713,7 +4848,7 @@ export const zProductionJobScopePriceParameters = z.object({
4713
4848
  unit_of_measure: z.string().optional()
4714
4849
  });
4715
4850
  /**
4716
- * Parameters for updating a per-unit scope price on a job. Every field is optional; omit a field to preserve its current value. The resulting price must retain a scope kind and non-negative unit price.
4851
+ * Parameters for updating a per-unit scope price on a job. Every field is optional; omit a field to preserve its current value, or send null for `contracted_count` to clear it. A null or wrong-typed value for any other field answers 422. The resulting price must retain a scope kind and non-negative unit price.
4717
4852
  */
4718
4853
  export const zProductionJobScopePriceUpdateParameters = z.object({
4719
4854
  scope_kind: z.string().optional(),
@@ -4750,7 +4885,7 @@ export const zProductionCompletionUpdateParameters = z.object({
4750
4885
  */
4751
4886
  export const zProductionCompletionBaseParameters = z.object({
4752
4887
  production_job_scope_price_id: z.string().optional(),
4753
- performed_by_user_id: z.string().optional(),
4888
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
4754
4889
  notes: z.string().nullish(),
4755
4890
  work_date: z.iso.date().optional(),
4756
4891
  position_ids: z.array(z.string()).optional()
@@ -4883,22 +5018,22 @@ export const zCertificationPackageResponseObject = z.object({
4883
5018
  updated_at: z.iso.datetime()
4884
5019
  });
4885
5020
  /**
4886
- * Request body for creating a certification package — a named set of certifications a company requires together. The package belongs to the company that owns the API key.
5021
+ * Request body for creating a certification package. Send fields in JSON; query parameters cannot supply write fields or the filing user. The package belongs to the company that owns the API key.
4887
5022
  */
4888
5023
  export const zCertificationPackageParameters = z.object({
4889
5024
  name: z.string(),
4890
5025
  description: z.string().nullish(),
4891
- certification_ids: z.array(z.string()).optional(),
4892
- performed_by_user_id: z.string()
5026
+ certification_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
5027
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
4893
5028
  });
4894
5029
  /**
4895
- * Request body for updating a certification package — a named set of certifications a company requires together. Include only the fields to change.
5030
+ * Request body for updating a certification package. Send only fields to change in JSON; omitted fields remain unchanged. The filing user is required in the body.
4896
5031
  */
4897
5032
  export const zCertificationPackageUpdateParameters = z.object({
4898
5033
  name: z.string().optional(),
4899
5034
  description: z.string().nullish(),
4900
- certification_ids: z.array(z.string()).optional(),
4901
- performed_by_user_id: z.string()
5035
+ certification_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
5036
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
4902
5037
  });
4903
5038
  /**
4904
5039
  * A certification — a named qualification a worker can hold, either owned by your company or a global (platform) credential type (company_id null).
@@ -5569,6 +5704,22 @@ export const zJobSitesResponseObject = z.object({
5569
5704
  links: zLinks,
5570
5705
  data: z.array(zJobSiteResponseObject)
5571
5706
  });
5707
+ /**
5708
+ * A page of a job's good-faith-effort exceptions, with pagination metadata and navigation links.
5709
+ */
5710
+ export const zJobGoodFaithEffortExceptionsResponseObject = z.object({
5711
+ meta: zMeta,
5712
+ links: zLinks,
5713
+ data: z.array(zJobGoodFaithEffortExceptionResponseObject)
5714
+ });
5715
+ /**
5716
+ * A page of a job's PWA cure payments, with pagination metadata and navigation links.
5717
+ */
5718
+ export const zJobCurePaymentsResponseObject = z.object({
5719
+ meta: zMeta,
5720
+ links: zLinks,
5721
+ data: z.array(zJobCurePaymentResponseObject)
5722
+ });
5572
5723
  /**
5573
5724
  * A page of a job's positions, with pagination metadata and navigation links.
5574
5725
  */
@@ -6051,6 +6202,120 @@ export const zJobWageDeterminationGenesisParameters = z.object({
6051
6202
  export const zJobWageDeterminationScheduledTerminationParameters = z.object({
6052
6203
  effective_date: z.iso.date()
6053
6204
  });
6205
+ /**
6206
+ * A Federal (Davis-Bacon) wage determination on a project.
6207
+ */
6208
+ export const zFederalProjectWageDeterminationResponseObject = z.object({
6209
+ id: z.string(),
6210
+ project_id: z.string(),
6211
+ pwa_trade_id: z.string(),
6212
+ overtime_package_id: z.string().nullable(),
6213
+ pay_rates_rule_package_id: z.string().nullable(),
6214
+ type: z.enum(['Pwa::ProjectWageDeterminations::Federal']),
6215
+ labor_classification: z.string(),
6216
+ hourly_rate_cents: z.string(),
6217
+ fringe_rate_cents: z.string(),
6218
+ class_code: z.string().nullable(),
6219
+ construction_category: z.enum([
6220
+ 'building',
6221
+ 'heavy',
6222
+ 'highway',
6223
+ 'residential'
6224
+ ]).nullable(),
6225
+ general_wage_determination: z.string().nullable(),
6226
+ valid_from: z.iso.datetime().nullable(),
6227
+ valid_to: z.iso.datetime().nullable(),
6228
+ created_at: z.iso.datetime(),
6229
+ updated_at: z.iso.datetime()
6230
+ });
6231
+ /**
6232
+ * A Regional (state prevailing-wage) wage determination on a project.
6233
+ */
6234
+ export const zRegionalProjectWageDeterminationResponseObject = z.object({
6235
+ id: z.string(),
6236
+ project_id: z.string(),
6237
+ pwa_trade_id: z.string(),
6238
+ overtime_package_id: z.string().nullable(),
6239
+ pay_rates_rule_package_id: z.string().nullable(),
6240
+ type: z.enum(['Pwa::ProjectWageDeterminations::Regional']),
6241
+ labor_classification: z.string(),
6242
+ hourly_rate_cents: z.string(),
6243
+ fringe_rate_cents: z.string(),
6244
+ general_wage_determination: z.string().nullable(),
6245
+ regional_fields: zRegionalWageDeterminationFieldsResponse,
6246
+ valid_from: z.iso.datetime().nullable(),
6247
+ valid_to: z.iso.datetime().nullable(),
6248
+ created_at: z.iso.datetime(),
6249
+ updated_at: z.iso.datetime()
6250
+ });
6251
+ /**
6252
+ * A wage determination applied to a project — the prevailing-wage and fringe rates for one labor classification. The type discriminator selects the Federal or Regional representation.
6253
+ */
6254
+ export const zProjectWageDeterminationResponseObject = z.discriminatedUnion('type', [
6255
+ zFederalProjectWageDeterminationResponseObject.extend({ type: z.literal('Pwa::ProjectWageDeterminations::Federal') }),
6256
+ zRegionalProjectWageDeterminationResponseObject.extend({ type: z.literal('Pwa::ProjectWageDeterminations::Regional') })
6257
+ ]);
6258
+ /**
6259
+ * Parameters for creating a Federal (Davis-Bacon) wage determination on a project.
6260
+ */
6261
+ export const zFederalProjectWageDeterminationParameters = z.object({
6262
+ type: z.enum(['Pwa::ProjectWageDeterminations::Federal']),
6263
+ labor_classification: z.string(),
6264
+ pwa_trade_id: z.string(),
6265
+ hourly_rate_cents: z.string(),
6266
+ fringe_rate_cents: z.string(),
6267
+ class_code: z.string().nullish(),
6268
+ construction_category: z.enum([
6269
+ 'building',
6270
+ 'heavy',
6271
+ 'highway',
6272
+ 'residential'
6273
+ ]).nullish(),
6274
+ general_wage_determination: z.string().nullish(),
6275
+ pay_rates_rule_package_id: z.string().nullish()
6276
+ });
6277
+ /**
6278
+ * Parameters for creating a Regional (state prevailing-wage) wage determination on a project.
6279
+ */
6280
+ export const zRegionalProjectWageDeterminationParameters = z.object({
6281
+ type: z.enum(['Pwa::ProjectWageDeterminations::Regional']),
6282
+ labor_classification: z.string(),
6283
+ pwa_trade_id: z.string(),
6284
+ hourly_rate_cents: z.string(),
6285
+ fringe_rate_cents: z.string().optional(),
6286
+ general_wage_determination: z.string().nullish(),
6287
+ overtime_package_id: z.string().nullish(),
6288
+ pay_rates_rule_package_id: z.string().nullish(),
6289
+ regional_fields: zRegionalWageDeterminationFields.optional()
6290
+ });
6291
+ /**
6292
+ * Parameters for creating a project wage determination. Provide the Federal or Regional shape; the type discriminator selects which. Editing an existing determination uses the update parameters, which take an `effective_from` instead of a type.
6293
+ */
6294
+ export const zProjectWageDeterminationParameters = z.discriminatedUnion('type', [
6295
+ zFederalProjectWageDeterminationParameters.extend({ type: z.literal('Pwa::ProjectWageDeterminations::Federal') }),
6296
+ zRegionalProjectWageDeterminationParameters.extend({ type: z.literal('Pwa::ProjectWageDeterminations::Regional') })
6297
+ ]);
6298
+ /**
6299
+ * Parameters for editing a project wage determination from a point in valid time forward. The type is fixed by the determination the id names and is not sent.
6300
+ */
6301
+ export const zProjectWageDeterminationUpdateParameters = z.object({
6302
+ effective_from: z.iso.date().optional(),
6303
+ overtime_package_id: z.string().nullish(),
6304
+ pay_rates_rule_package_id: z.string().nullish(),
6305
+ labor_classification: z.string().optional(),
6306
+ pwa_trade_id: z.string().optional(),
6307
+ hourly_rate_cents: z.string().optional(),
6308
+ fringe_rate_cents: z.string().optional(),
6309
+ class_code: z.string().nullish(),
6310
+ construction_category: z.enum([
6311
+ 'building',
6312
+ 'heavy',
6313
+ 'highway',
6314
+ 'residential'
6315
+ ]).nullish(),
6316
+ general_wage_determination: z.string().nullish(),
6317
+ regional_fields: zRegionalWageDeterminationFields.optional()
6318
+ });
6054
6319
  /**
6055
6320
  * The adjustment applied when a rule matches — an addition to the wage or fringe rate.
6056
6321
  */
@@ -6424,18 +6689,18 @@ export const zAssetsVendorResponseObject = z.object({
6424
6689
  updated_at: z.iso.datetime()
6425
6690
  });
6426
6691
  /**
6427
- * Create or update a vendor. Only name is required.
6692
+ * Create a vendor. Only name is required; omitting it answers 400, and a null or wrong-typed value answers 422.
6428
6693
  */
6429
6694
  export const zAssetsVendorParameters = z.object({
6430
- name: z.string().min(1),
6431
- logo_signed_id: z.string().optional()
6695
+ name: z.string(),
6696
+ logo_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish()
6432
6697
  });
6433
6698
  /**
6434
- * Update a vendor. All fields are optional — send only what changes.
6699
+ * Update a vendor. All fields are optional — send only what changes. A null name or a wrong-typed value answers 422.
6435
6700
  */
6436
6701
  export const zAssetsVendorUpdateParameters = z.object({
6437
- name: z.string().min(1).optional(),
6438
- logo_signed_id: z.string().optional()
6702
+ name: z.string().optional(),
6703
+ logo_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish()
6439
6704
  });
6440
6705
  /**
6441
6706
  * A location that holds a company's assets and inventory — a warehouse or yard, optionally backed by a site on the Atlas map.
@@ -6678,7 +6943,7 @@ export const zAssetsProductParameters = z.object({
6678
6943
  assets_attribute_option_id: z.string().nullish()
6679
6944
  })).optional(),
6680
6945
  images_attributes: z.array(zAssetsAttachmentParameters).optional(),
6681
- performed_by_user_id: z.string()
6946
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
6682
6947
  });
6683
6948
  /**
6684
6949
  * Update a catalog product. All fields are optional — send only what changes. `type` is immutable and `performed_by_user_id` is create-only, so neither is accepted here. `attribute_values` upserts the product's category-attribute values.
@@ -6728,7 +6993,7 @@ export const zAssetsItemParameters = z.object({
6728
6993
  user_id: z.string().optional(),
6729
6994
  container_item_id: z.string().optional(),
6730
6995
  assets_sub_location_id: z.string().optional(),
6731
- performed_by_user_id: z.string()
6996
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
6732
6997
  });
6733
6998
  /**
6734
6999
  * Update an asset item. All item fields are optional — send only what changes — but performed_by_user_id is required to record the updater. Omitted attributes retain their existing values. `attribute_values` upserts the item-level attributes of the product's category.
@@ -6749,7 +7014,7 @@ export const zAssetsItemUpdateParameters = z.object({
6749
7014
  assets_attribute_option_id: z.string().nullish()
6750
7015
  })).optional(),
6751
7016
  images_attributes: z.array(zAssetsAttachmentParameters).optional(),
6752
- performed_by_user_id: z.string()
7017
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
6753
7018
  });
6754
7019
  /**
6755
7020
  * A file attached to an asset item — a document such as a manual, warranty, or certificate. Uploaded through the direct-upload flow and optionally marked as a certified copy.
@@ -6777,7 +7042,8 @@ export const zAssetsDocumentResponseObject = z.object({
6777
7042
  export const zAssetsDocumentParameters = z.object({
6778
7043
  file: z.string(),
6779
7044
  filename: z.string().nullish(),
6780
- description: z.string().nullish()
7045
+ description: z.string().nullish(),
7046
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
6781
7047
  });
6782
7048
  /**
6783
7049
  * Update an asset-item document. All fields are optional — send only what changes. Omit file to retain the existing attachment, or supply a new signed_id to replace it.
@@ -7076,7 +7342,7 @@ export const zAssetsServiceScheduleParameters = z.object({
7076
7342
  ]),
7077
7343
  interval_count: z.int().gte(1),
7078
7344
  last_serviced_on: z.iso.date().nullish(),
7079
- performed_by_user_id: z.string()
7345
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7080
7346
  });
7081
7347
  /**
7082
7348
  * Update a service schedule. Cadence and last_serviced_on fields are optional — send only what changes — but performed_by_user_id is required to record the updater. next_due_date is recomputed.
@@ -7092,7 +7358,7 @@ export const zAssetsServiceScheduleUpdateParameters = z.object({
7092
7358
  ]).optional(),
7093
7359
  interval_count: z.int().gte(1).optional(),
7094
7360
  last_serviced_on: z.iso.date().nullish(),
7095
- performed_by_user_id: z.string()
7361
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7096
7362
  });
7097
7363
  /**
7098
7364
  * A service performed on a serial item — scheduled (satisfying a service schedule) or ad-hoc. Recording one advances the linked schedule's next_due_date.
@@ -7126,7 +7392,7 @@ export const zAssetsServiceEventParameters = z.object({
7126
7392
  notes: z.string().nullish(),
7127
7393
  performed_on: z.iso.date(),
7128
7394
  assets_service_schedule_id: z.string().nullish(),
7129
- performed_by_user_id: z.string(),
7395
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
7130
7396
  attachments_attributes: z.array(zAssetsAttachmentParameters).optional()
7131
7397
  });
7132
7398
  /**
@@ -7141,7 +7407,7 @@ export const zAssetsServiceEventUpdateParameters = z.object({
7141
7407
  notes: z.string().nullish(),
7142
7408
  performed_on: z.iso.date().optional(),
7143
7409
  assets_service_schedule_id: z.string().nullish(),
7144
- performed_by_user_id: z.string(),
7410
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
7145
7411
  attachments_attributes: z.array(zAssetsAttachmentParameters).optional()
7146
7412
  });
7147
7413
  /**
@@ -7176,7 +7442,7 @@ export const zAssetsServiceScheduleTemplateParameters = z.object({
7176
7442
  'day'
7177
7443
  ]),
7178
7444
  interval_count: z.int().gte(1),
7179
- performed_by_user_id: z.string()
7445
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7180
7446
  });
7181
7447
  /**
7182
7448
  * Update a service schedule template. Cadence fields are optional — send only what changes — but performed_by_user_id is required to record the updater. Changing defining fields reconciles linked item schedules in the background.
@@ -7191,7 +7457,7 @@ export const zAssetsServiceScheduleTemplateUpdateParameters = z.object({
7191
7457
  'day'
7192
7458
  ]).optional(),
7193
7459
  interval_count: z.int().gte(1).optional(),
7194
- performed_by_user_id: z.string()
7460
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7195
7461
  });
7196
7462
  /**
7197
7463
  * A node of fixed storage structure inside a site or a container item — a zone, aisle, rack, shelf, bin, or drawer. Nodes form a tree per holder, and each carries a scannable path_code composed from its ancestors' codes.
@@ -7292,7 +7558,7 @@ export const zAssetsTransferParameters = z.object({
7292
7558
  to_container_item_id: z.string().optional(),
7293
7559
  from_assets_sub_location_id: z.string().optional(),
7294
7560
  to_assets_sub_location_id: z.string().optional(),
7295
- performed_by_user_id: z.string(),
7561
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
7296
7562
  line_items: z.array(z.object({
7297
7563
  assets_item_id: z.string(),
7298
7564
  quantity: z.int().gte(1)
@@ -7305,7 +7571,7 @@ export const zAssetsRestockParameters = z.object({
7305
7571
  assets_site_id: z.string(),
7306
7572
  assets_sub_location_id: z.string().optional(),
7307
7573
  quantity: z.int().gte(1),
7308
- performed_by_user_id: z.string()
7574
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7309
7575
  });
7310
7576
  /**
7311
7577
  * Set the on-hand count of a bulk product at a site to a specific number, recording the difference as an adjustment transaction. The site must already stock the product. Bulk products only.
@@ -7314,13 +7580,13 @@ export const zAssetsAdjustmentParameters = z.object({
7314
7580
  assets_site_id: z.string(),
7315
7581
  assets_sub_location_id: z.string().optional(),
7316
7582
  new_quantity: z.int().gte(0),
7317
- performed_by_user_id: z.string()
7583
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7318
7584
  });
7319
7585
  /**
7320
7586
  * Archive or unarchive a product or item. Archiving takes it out of circulation without deleting it — history is preserved and it is hidden from listings unless requested with filter[state]. Archiving a product cascades to its items; item operations apply to serial items only.
7321
7587
  */
7322
7588
  export const zAssetsArchiveParameters = z.object({
7323
- performed_by_user_id: z.string()
7589
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7324
7590
  });
7325
7591
  /**
7326
7592
  * A certification held by a worker — the record that a worker earned a certification, with its receipt date, optional expiry, and verification state.
@@ -8324,7 +8590,7 @@ export const zUpdateServiceScheduleTemplatePath = z.object({
8324
8590
  export const zUpdateServiceScheduleTemplateResponse = zAssetsServiceScheduleTemplateResponseObject;
8325
8591
  export const zSeedServiceScheduleTemplateBody = z.object({
8326
8592
  assets_item_ids: z.array(z.string()).optional(),
8327
- performed_by_user_id: z.string()
8593
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
8328
8594
  });
8329
8595
  export const zSeedServiceScheduleTemplatePath = z.object({
8330
8596
  product_id: z.string(),
@@ -8339,7 +8605,7 @@ export const zSeedServiceScheduleTemplateResponse = z.object({
8339
8605
  });
8340
8606
  export const zSyncServiceScheduleTemplateBody = z.object({
8341
8607
  schedule_ids: z.array(z.string()).optional(),
8342
- performed_by_user_id: z.string()
8608
+ performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
8343
8609
  });
8344
8610
  export const zSyncServiceScheduleTemplatePath = z.object({
8345
8611
  product_id: z.string(),
@@ -8811,6 +9077,112 @@ export const zUpdateCompanyProfilePath = z.object({
8811
9077
  * Success
8812
9078
  */
8813
9079
  export const zUpdateCompanyProfileResponse = zCompanyResponseObject;
9080
+ export const zListAssessmentsQuery = z.object({
9081
+ 'filter[candidate_user_id]': z.string().optional(),
9082
+ 'filter[competencies_level_id]': z.string().optional(),
9083
+ 'filter[status]': z.enum([
9084
+ 'evidence_collection',
9085
+ 'submitted',
9086
+ 'in_review',
9087
+ 'decided'
9088
+ ]).optional(),
9089
+ 'filter[outcome]': z.enum(['competent', 'not_yet_competent']).nullish(),
9090
+ filter: z.string().optional(),
9091
+ 'filter[unexpected]': z.string().optional()
9092
+ });
9093
+ /**
9094
+ * Success
9095
+ */
9096
+ export const zListAssessmentsResponse = z.object({
9097
+ meta: zMeta,
9098
+ links: zLinks,
9099
+ data: z.array(zCompetencyAssessmentResponseObject)
9100
+ });
9101
+ export const zGetAssessmentPath = z.object({
9102
+ id: z.string()
9103
+ });
9104
+ /**
9105
+ * Success
9106
+ */
9107
+ export const zGetAssessmentResponse = zCompetencyAssessmentResponseObject;
9108
+ export const zListAssessmentKeyActivitiesPath = z.object({
9109
+ assessment_id: z.string()
9110
+ });
9111
+ export const zListAssessmentKeyActivitiesQuery = z.object({
9112
+ filter: z.string().optional(),
9113
+ 'filter[unexpected]': z.string().optional()
9114
+ });
9115
+ /**
9116
+ * Candidate sees a decided review
9117
+ */
9118
+ export const zListAssessmentKeyActivitiesResponse = z.object({
9119
+ meta: zMeta,
9120
+ links: zLinks,
9121
+ data: z.array(zCompetencyAssessmentKeyActivityResponseObject)
9122
+ });
9123
+ export const zGetAssessmentKeyActivityPath = z.object({
9124
+ assessment_id: z.string(),
9125
+ id: z.string()
9126
+ });
9127
+ /**
9128
+ * Candidate sees a decided review
9129
+ */
9130
+ export const zGetAssessmentKeyActivityResponse = zCompetencyAssessmentKeyActivityResponseObject;
9131
+ export const zListEvidenceItemsPath = z.object({
9132
+ assessment_id: z.string(),
9133
+ key_activity_id: z.string()
9134
+ });
9135
+ export const zListEvidenceItemsQuery = z.object({
9136
+ 'filter[kind]': z.enum([
9137
+ 'upload',
9138
+ 'form_submission',
9139
+ 'certification'
9140
+ ]).optional(),
9141
+ filter: z.string().optional(),
9142
+ 'filter[unexpected]': z.string().optional()
9143
+ });
9144
+ /**
9145
+ * Success
9146
+ */
9147
+ export const zListEvidenceItemsResponse = z.object({
9148
+ meta: zMeta,
9149
+ links: zLinks,
9150
+ data: z.array(zCompetencyEvidenceItemResponseObject)
9151
+ });
9152
+ export const zGetEvidenceItemPath = z.object({
9153
+ assessment_id: z.string(),
9154
+ key_activity_id: z.string(),
9155
+ id: z.string()
9156
+ });
9157
+ /**
9158
+ * Success
9159
+ */
9160
+ export const zGetEvidenceItemResponse = zCompetencyEvidenceItemResponseObject;
9161
+ export const zListQualificationsQuery = z.object({
9162
+ 'filter[candidate_user_id]': z.string().optional(),
9163
+ 'filter[competencies_standard_id]': z.string().optional(),
9164
+ 'filter[level_sort_order]': z.int().optional(),
9165
+ filter: z.string().optional(),
9166
+ 'filter[unexpected]': z.string().optional(),
9167
+ 'page[cursor]': z.string().optional(),
9168
+ 'page[limit]': z.int().gte(1).optional().default(20),
9169
+ page: z.string().optional()
9170
+ });
9171
+ /**
9172
+ * Success
9173
+ */
9174
+ export const zListQualificationsResponse = z.object({
9175
+ meta: zMeta,
9176
+ links: zLinks,
9177
+ data: z.array(zCompetencyQualificationResponseObject)
9178
+ });
9179
+ export const zGetQualificationPath = z.object({
9180
+ id: z.string()
9181
+ });
9182
+ /**
9183
+ * Success
9184
+ */
9185
+ export const zGetQualificationResponse = zCompetencyQualificationResponseObject;
8814
9186
  export const zListChecksQuery = z.object({
8815
9187
  'filter[status]': z.enum([
8816
9188
  'passed',
@@ -9165,6 +9537,50 @@ export const zUpdateJobScopePricePath = z.object({
9165
9537
  * Success
9166
9538
  */
9167
9539
  export const zUpdateJobScopePriceResponse = zProductionJobScopePriceResponseObject;
9540
+ export const zListGoodFaithEffortExceptionsPath = z.object({
9541
+ job_id: z.string()
9542
+ });
9543
+ export const zListGoodFaithEffortExceptionsQuery = z.object({
9544
+ filter: z.string().optional(),
9545
+ 'filter[unexpected]': z.string().optional(),
9546
+ 'page[cursor]': z.string().optional(),
9547
+ 'page[limit]': z.int().gte(1).optional().default(20),
9548
+ page: z.string().optional()
9549
+ });
9550
+ /**
9551
+ * Success
9552
+ */
9553
+ export const zListGoodFaithEffortExceptionsResponse = zJobGoodFaithEffortExceptionsResponseObject;
9554
+ export const zGetGoodFaithEffortExceptionPath = z.object({
9555
+ job_id: z.string(),
9556
+ id: z.string()
9557
+ });
9558
+ /**
9559
+ * Success
9560
+ */
9561
+ export const zGetGoodFaithEffortExceptionResponse = zJobGoodFaithEffortExceptionResponseObject;
9562
+ export const zListCurePaymentsPath = z.object({
9563
+ job_id: z.string()
9564
+ });
9565
+ export const zListCurePaymentsQuery = z.object({
9566
+ filter: z.string().optional(),
9567
+ 'filter[unexpected]': z.string().optional(),
9568
+ 'page[cursor]': z.string().optional(),
9569
+ 'page[limit]': z.int().gte(1).optional().default(20),
9570
+ page: z.string().optional()
9571
+ });
9572
+ /**
9573
+ * Success
9574
+ */
9575
+ export const zListCurePaymentsResponse = zJobCurePaymentsResponseObject;
9576
+ export const zGetCurePaymentPath = z.object({
9577
+ job_id: z.string(),
9578
+ id: z.string()
9579
+ });
9580
+ /**
9581
+ * Success
9582
+ */
9583
+ export const zGetCurePaymentResponse = zJobCurePaymentResponseObject;
9168
9584
  export const zCreateJobTradeBody = zPwaTradeParameters;
9169
9585
  export const zCreateJobTradePath = z.object({
9170
9586
  job_id: z.string()
@@ -9423,6 +9839,7 @@ export const zListJobsQuery = z.object({
9423
9839
  'filter[project_id]': z.string().optional(),
9424
9840
  'filter[companies_department_id]': z.string().optional(),
9425
9841
  'filter[companies_department_id][null]': z.boolean().optional(),
9842
+ 'filter[requested_by_company_id]': z.string().optional(),
9426
9843
  'filter[status]': z.string().optional(),
9427
9844
  'filter[production_tracking_kind]': z.enum([
9428
9845
  'none',
@@ -10811,6 +11228,66 @@ export const zUpdateProjectSitePath = z.object({
10811
11228
  * Success
10812
11229
  */
10813
11230
  export const zUpdateProjectSiteResponse = zProjectSiteResponseObject;
11231
+ export const zListProjectWageDeterminationsPath = z.object({
11232
+ project_id: z.string()
11233
+ });
11234
+ export const zListProjectWageDeterminationsQuery = z.object({
11235
+ 'as_of[valid]': z.iso.datetime().optional(),
11236
+ as_of: z.string().optional(),
11237
+ 'as_of[bogus_axis]': z.string().optional(),
11238
+ 'as_of[valid][gte]': z.string().optional(),
11239
+ 'as_of[transaction]': z.string().optional()
11240
+ });
11241
+ /**
11242
+ * Success
11243
+ */
11244
+ export const zListProjectWageDeterminationsResponse = z.object({
11245
+ meta: zMeta,
11246
+ links: zLinks,
11247
+ data: z.array(zProjectWageDeterminationResponseObject)
11248
+ });
11249
+ export const zCreateProjectWageDeterminationBody = zProjectWageDeterminationParameters;
11250
+ export const zCreateProjectWageDeterminationPath = z.object({
11251
+ project_id: z.string()
11252
+ });
11253
+ /**
11254
+ * Created
11255
+ */
11256
+ export const zCreateProjectWageDeterminationResponse = zProjectWageDeterminationResponseObject;
11257
+ export const zDeleteProjectWageDeterminationHeaders = z.object({
11258
+ 'If-Match': z.string()
11259
+ });
11260
+ export const zDeleteProjectWageDeterminationPath = z.object({
11261
+ project_id: z.string(),
11262
+ id: z.string()
11263
+ });
11264
+ /**
11265
+ * Success
11266
+ */
11267
+ export const zDeleteProjectWageDeterminationResponse = zProjectWageDeterminationResponseObject;
11268
+ export const zGetProjectWageDeterminationPath = z.object({
11269
+ project_id: z.string(),
11270
+ id: z.string()
11271
+ });
11272
+ export const zGetProjectWageDeterminationQuery = z.object({
11273
+ 'as_of[valid]': z.iso.datetime().optional()
11274
+ });
11275
+ /**
11276
+ * Success
11277
+ */
11278
+ export const zGetProjectWageDeterminationResponse = zProjectWageDeterminationResponseObject;
11279
+ export const zUpdateProjectWageDeterminationBody = zProjectWageDeterminationUpdateParameters;
11280
+ export const zUpdateProjectWageDeterminationHeaders = z.object({
11281
+ 'If-Match': z.string()
11282
+ });
11283
+ export const zUpdateProjectWageDeterminationPath = z.object({
11284
+ project_id: z.string(),
11285
+ id: z.string()
11286
+ });
11287
+ /**
11288
+ * Success
11289
+ */
11290
+ export const zUpdateProjectWageDeterminationResponse = zProjectWageDeterminationResponseObject;
10814
11291
  export const zListProjectsQuery = z.object({
10815
11292
  'filter[federal_pwa_mode]': z.enum([
10816
11293
  'all',
@@ -11282,6 +11759,22 @@ export const zListTimeCardsQuery = z.object({
11282
11759
  'filter[timekeeping_pay_period_id]': z.string().optional(),
11283
11760
  'filter[user_id]': z.string().optional(),
11284
11761
  'filter[job_id]': z.string().optional(),
11762
+ 'filter[federal_pwa]': z.boolean().optional(),
11763
+ 'filter[regional_pwa]': z.boolean().optional(),
11764
+ 'filter[apprentice]': z.boolean().optional(),
11765
+ 'filter[employment_type]': z.array(z.enum(['EMPLOYEE', 'CONTRACTOR'])).optional(),
11766
+ 'filter[compensation_type]': z.array(z.enum(['hourly', 'salary'])).optional(),
11767
+ 'filter[department_id]': z.string().optional(),
11768
+ 'filter[worker_approval_status]': z.array(z.enum([
11769
+ 'PENDING',
11770
+ 'APPROVED',
11771
+ 'DECLINED'
11772
+ ])).optional(),
11773
+ 'filter[manager_approval_status]': z.array(z.enum([
11774
+ 'PENDING',
11775
+ 'APPROVED',
11776
+ 'DECLINED'
11777
+ ])).optional(),
11285
11778
  'filter[start_time][gte]': z.iso.datetime().optional(),
11286
11779
  'filter[start_time][lte]': z.iso.datetime().optional(),
11287
11780
  filter: z.string().optional(),
@@ -11868,6 +12361,12 @@ export const zListUsersQuery = z.object({
11868
12361
  'filter[name]': z.string().optional(),
11869
12362
  'filter[manager_user_id]': z.string().optional(),
11870
12363
  'filter[department_id]': z.string().optional(),
12364
+ 'filter[invite_status]': z.array(z.enum([
12365
+ 'pending',
12366
+ 'accepted',
12367
+ 'declined',
12368
+ 'revoked'
12369
+ ])).optional(),
11871
12370
  'page[cursor]': z.string().optional(),
11872
12371
  'page[limit]': z.int().gte(1).optional().default(20),
11873
12372
  page: z.string().optional(),