@dsptch-work/api-client 0.32.0 → 0.34.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.
@@ -176,6 +176,12 @@ export const zProblem = z.object({
176
176
  *
177
177
  * The resource's timeline already ends at a scheduled termination, and scheduling a second one would silently move it. Moving an end is two steps on purpose: cancel the standing termination, then schedule the one you want.
178
178
  *
179
+ * ### authorization_revoked
180
+ *
181
+ * **Authorization Revoked**
182
+ *
183
+ * The assessor grant is revoked. A revoked grant keeps its row as history and cannot be changed or revoked again. To make the user an assessor again, grant them anew.
184
+ *
179
185
  * ### import_in_progress
180
186
  *
181
187
  * **Import In Progress**
@@ -210,7 +216,7 @@ export const zProblem = z.object({
210
216
  *
211
217
  * **Version Overlap**
212
218
  *
213
- * The write conflicts with what is already recorded for the resource — another version occupies the same span, or the write contradicts the resource's recorded identity. Re-read the current state and retry on top of it.
219
+ * The write collides with another version of the same resource — another version occupies the same span, or the write contradicts the identity the resource's versions record. Re-read the current state and retry on top of it.
214
220
  *
215
221
  * ## 412
216
222
  *
@@ -356,11 +362,17 @@ export const zProblem = z.object({
356
362
  *
357
363
  * ## 503
358
364
  *
365
+ * ### database_timeout
366
+ *
367
+ * **Database Timeout**
368
+ *
369
+ * A database statement behind the request ran past the server's time limit and was stopped before it finished. The request may be fine as sent — resend it after the `Retry-After` window, and if it keeps timing out, ask for less at once, such as a narrower filter or a smaller page.
370
+ *
359
371
  * ### write_contended
360
372
  *
361
373
  * **Write Contended**
362
374
  *
363
- * Another write to the same resource held it for longer than this request was willing to wait, so nothing was applied. The request itself is fine — resend it unchanged after the `Retry-After` window.
375
+ * Another write to the same resource held it for longer than this request was willing to wait, or collided with it, so nothing was applied. The request itself is fine — resend it unchanged after the `Retry-After` window.
364
376
  *
365
377
  */
366
378
  export const zProblemTypeCatalog = z.enum([
@@ -388,6 +400,7 @@ export const zProblemTypeCatalog = z.enum([
388
400
  'not_found',
389
401
  'already_subscribed',
390
402
  'already_terminated',
403
+ 'authorization_revoked',
391
404
  'import_in_progress',
392
405
  'pay_schedule_already_exists',
393
406
  'product_archived',
@@ -416,6 +429,7 @@ export const zProblemTypeCatalog = z.enum([
416
429
  'precondition_required',
417
430
  'too_many_requests',
418
431
  'internal_error',
432
+ 'database_timeout',
419
433
  'write_contended'
420
434
  ]);
421
435
  export const zApiKeyScopeResponseObject = z.object({
@@ -478,6 +492,171 @@ export const zDirectUploadResponseObject = z.object({
478
492
  headers: z.record(z.string(), z.string())
479
493
  })
480
494
  });
495
+ /**
496
+ * A competence standard owned by your company. Content lives on named revisions, not a valid-time history. current_version_id is the active revision and draft_version_id is the in-progress revision; either is null when absent.
497
+ */
498
+ export const zCompetencyStandardResponseObject = z.object({
499
+ id: z.string(),
500
+ name: z.string(),
501
+ companies_department_id: z.string().nullable(),
502
+ archived_at: z.iso.datetime().nullable(),
503
+ current_version_id: z.string().nullable(),
504
+ draft_version_id: z.string().nullable(),
505
+ created_at: z.iso.datetime(),
506
+ updated_at: z.iso.datetime()
507
+ });
508
+ /**
509
+ * Archive a competence standard. The body takes no fields; send an empty object or no body. Archiving an archived standard returns it unchanged.
510
+ */
511
+ export const zCompetencyStandardArchiveParameters = z.record(z.string(), z.never());
512
+ /**
513
+ * Create a competence standard. Revision 1 is opened as a draft. sort_order and revision are server-assigned and are not accepted.
514
+ */
515
+ export const zCompetencyStandardParameters = z.object({
516
+ name: z.string(),
517
+ companies_department_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish()
518
+ });
519
+ /**
520
+ * Update a competence standard's name or department. Send only the fields to change. Revisions are not edited here.
521
+ */
522
+ export const zCompetencyStandardUpdateParameters = z.object({
523
+ name: z.string().optional(),
524
+ companies_department_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish()
525
+ });
526
+ /**
527
+ * One named revision of a competence standard. revision is a positive integer and status is draft, active, or superseded. This is not a temporal history entry.
528
+ */
529
+ export const zCompetencyStandardVersionResponseObject = z.object({
530
+ id: z.string(),
531
+ competencies_standard_id: z.string(),
532
+ revision: z.int(),
533
+ status: z.enum([
534
+ 'draft',
535
+ 'active',
536
+ 'superseded'
537
+ ]),
538
+ change_notes: z.string().nullable(),
539
+ approved_by_user_id: z.string().nullable(),
540
+ approved_at: z.iso.datetime().nullable(),
541
+ controlled_pdf_attached: z.boolean(),
542
+ created_at: z.iso.datetime(),
543
+ updated_at: z.iso.datetime()
544
+ });
545
+ /**
546
+ * Notes for a new draft revision, or a replacement of the notes on an existing draft. Cutting a revision copies the active level, key-activity, and criterion tree and does not copy the controlled PDF.
547
+ */
548
+ export const zCompetencyStandardVersionParameters = z.object({
549
+ change_notes: z.string().nullish()
550
+ });
551
+ /**
552
+ * Promote a draft revision to active. A user key promotes as its user and must omit approved_by_user_id. A company key must name an admin or safety manager.
553
+ */
554
+ export const zCompetencyStandardVersionPromotionParameters = z.object({
555
+ approved_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional()
556
+ });
557
+ /**
558
+ * A proficiency tier on one standard revision. sort_order is the durable tier qualifications record, and it is server-assigned.
559
+ */
560
+ export const zCompetencyLevelResponseObject = z.object({
561
+ id: z.string(),
562
+ competencies_standard_version_id: z.string(),
563
+ sort_order: z.int(),
564
+ name: z.string().nullable(),
565
+ description: z.string().nullable(),
566
+ created_at: z.iso.datetime(),
567
+ updated_at: z.iso.datetime()
568
+ });
569
+ /**
570
+ * Create or update a level on a draft revision. sort_order is server-assigned and is rejected if sent.
571
+ */
572
+ export const zCompetencyLevelParameters = z.object({
573
+ name: z.string().nullish(),
574
+ description: z.string().nullish()
575
+ });
576
+ /**
577
+ * A task on a level. Catalog text is editable only while the parent revision is a draft. sort_order is server-assigned.
578
+ */
579
+ export const zCompetencyKeyActivityResponseObject = z.object({
580
+ id: z.string(),
581
+ competencies_level_id: z.string(),
582
+ sort_order: z.int(),
583
+ number: z.string().nullable(),
584
+ title: z.string().nullable(),
585
+ notes: z.string().nullable(),
586
+ created_at: z.iso.datetime(),
587
+ updated_at: z.iso.datetime()
588
+ });
589
+ /**
590
+ * Create or update a key activity on a draft revision. sort_order is server-assigned and is rejected if sent.
591
+ */
592
+ export const zCompetencyKeyActivityParameters = z.object({
593
+ number: z.string().nullish(),
594
+ title: z.string().nullish(),
595
+ notes: z.string().nullish()
596
+ });
597
+ /**
598
+ * One evidence criterion on a key activity. Editable only while the parent revision is a draft. sort_order is server-assigned.
599
+ */
600
+ export const zCompetencyCriterionResponseObject = z.object({
601
+ id: z.string(),
602
+ competencies_key_activity_id: z.string(),
603
+ sort_order: z.int(),
604
+ number: z.string().nullable(),
605
+ body: z.string().nullable(),
606
+ evidence_note: z.string().nullable(),
607
+ created_at: z.iso.datetime(),
608
+ updated_at: z.iso.datetime()
609
+ });
610
+ /**
611
+ * Create or update a criterion on a draft revision. sort_order is server-assigned and is rejected if sent.
612
+ */
613
+ export const zCompetencyCriterionParameters = z.object({
614
+ number: z.string().nullish(),
615
+ body: z.string().nullish(),
616
+ evidence_note: z.string().nullish()
617
+ });
618
+ /**
619
+ * Swap a draft catalog row with its neighbor. The row cannot move past either end of the list.
620
+ */
621
+ export const zCompetencySortOrderMoveParameters = z.object({
622
+ direction: z.enum(['up', 'down'])
623
+ });
624
+ /**
625
+ * One assessor-registry grant for one standard. Department scope is informational. revoked_at is null while the grant is active.
626
+ */
627
+ export const zCompetencyAssessorAuthorizationResponseObject = z.object({
628
+ id: z.string(),
629
+ user_id: z.string(),
630
+ competencies_standard_id: z.string(),
631
+ companies_department_id: z.string().nullable(),
632
+ kind: z.enum(['authorized_assessor', 'qualified_assessor']),
633
+ granted_by_user_id: z.string(),
634
+ granted_at: z.iso.datetime(),
635
+ revoked_at: z.iso.datetime().nullable(),
636
+ state: z.enum(['active', 'revoked']),
637
+ created_at: z.iso.datetime(),
638
+ updated_at: z.iso.datetime()
639
+ });
640
+ /**
641
+ * Grant an assessor role for one standard. A user key grants as its user. A company key names the grantor. An active grant of the same kind for the same user and standard is unique.
642
+ */
643
+ export const zCompetencyAssessorAuthorizationParameters = z.object({
644
+ user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
645
+ kind: z.enum(['authorized_assessor', 'qualified_assessor']),
646
+ competencies_standard_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
647
+ companies_department_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish(),
648
+ granted_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional()
649
+ });
650
+ /**
651
+ * Update the department note on an active grant. Kind, user, standard, and grantor are fixed. A revoked grant answers 409 authorization_revoked.
652
+ */
653
+ export const zCompetencyAssessorAuthorizationUpdateParameters = z.object({
654
+ companies_department_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).nullish()
655
+ });
656
+ /**
657
+ * Revoke an active grant. The body takes no fields; send an empty object or no body. Revocation sets revoked_at and keeps the row; revoking it again answers 409 authorization_revoked.
658
+ */
659
+ export const zCompetencyAssessorAuthorizationRevocationParameters = z.record(z.string(), z.never());
481
660
  /**
482
661
  * 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.
483
662
  */
@@ -1363,7 +1542,7 @@ export const zPerDiemResponseObject = z.object({
1363
1542
  currency: z.string(),
1364
1543
  taxable: z.boolean(),
1365
1544
  default: z.boolean().nullable(),
1366
- active: z.boolean().nullable(),
1545
+ active: z.boolean(),
1367
1546
  work_type_ids: z.array(z.string()),
1368
1547
  timekeeping_timecode_ids: z.array(z.string()),
1369
1548
  created_at: z.iso.datetime(),
@@ -1378,8 +1557,8 @@ export const zPerDiemParameters = z.object({
1378
1557
  rate_cents: z.string(),
1379
1558
  currency: z.string(),
1380
1559
  taxable: z.boolean().optional(),
1381
- default: z.boolean().nullish(),
1382
- active: z.boolean().nullish(),
1560
+ default: z.boolean().optional(),
1561
+ active: z.boolean().optional(),
1383
1562
  work_type_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
1384
1563
  timekeeping_timecode_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional()
1385
1564
  });
@@ -1392,8 +1571,8 @@ export const zPerDiemUpdateParameters = z.object({
1392
1571
  rate_cents: z.string().optional(),
1393
1572
  currency: z.string().optional(),
1394
1573
  taxable: z.boolean().optional(),
1395
- default: z.boolean().nullish(),
1396
- active: z.boolean().nullish(),
1574
+ default: z.boolean().optional(),
1575
+ active: z.boolean().optional(),
1397
1576
  work_type_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
1398
1577
  timekeeping_timecode_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional()
1399
1578
  });
@@ -1897,7 +2076,7 @@ export const zPwaCompanyUserDetailsResponseObject = z.object({
1897
2076
  * Create a worker's PWA compliance details at a company. The company is taken from the API key. user_id names the worker and is required; every other field is optional — send whichever your jurisdiction's certified-payroll export requires.
1898
2077
  */
1899
2078
  export const zPwaCompanyUserDetailsParameters = z.object({
1900
- user_id: z.string(),
2079
+ user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
1901
2080
  address1: z.string().nullish(),
1902
2081
  address2: z.string().nullish(),
1903
2082
  city: z.string().nullish(),
@@ -1910,7 +2089,7 @@ export const zPwaCompanyUserDetailsParameters = z.object({
1910
2089
  'NATIVE_AMERICAN',
1911
2090
  'NOT_SPECIFIED',
1912
2091
  'OTHER'
1913
- ])).nullish(),
2092
+ ])).optional(),
1914
2093
  sex: z.enum([
1915
2094
  'female',
1916
2095
  'male',
@@ -1965,7 +2144,7 @@ export const zPwaCompanyUserDetailsParameters = z.object({
1965
2144
  'formerly_incarcerated',
1966
2145
  'equity_investment_eligible_community',
1967
2146
  'self_registered_or_unknown'
1968
- ])).nullish(),
2147
+ ])).optional(),
1969
2148
  il_shines_other_programs: z.array(z.enum([
1970
2149
  'solar_training_pipeline_program',
1971
2150
  'craft_apprenticeship_program',
@@ -1974,7 +2153,7 @@ export const zPwaCompanyUserDetailsParameters = z.object({
1974
2153
  'illinois_climate_works_prep_apprenticeship_program',
1975
2154
  'returning_residents_clean_jobs_training_program',
1976
2155
  'other'
1977
- ])).nullish(),
2156
+ ])).optional(),
1978
2157
  or_boli_schedule_type: z.enum(['five_eight', 'four_ten']).nullish(),
1979
2158
  or_boli_race: z.array(z.enum([
1980
2159
  'american_indian_or_alaska_native',
@@ -1984,7 +2163,7 @@ export const zPwaCompanyUserDetailsParameters = z.object({
1984
2163
  'native_hawaiian_or_pacific_islander',
1985
2164
  'white',
1986
2165
  'portuguese_or_brazilian'
1987
- ])).nullish()
2166
+ ])).optional()
1988
2167
  });
1989
2168
  /**
1990
2169
  * Update a worker's PWA compliance details. The company is taken from the API key. Every field is optional — send only what changes, and omitted fields are left unchanged. The company/user pair is fixed at creation.
@@ -2002,7 +2181,7 @@ export const zPwaCompanyUserDetailsUpdateParameters = z.object({
2002
2181
  'NATIVE_AMERICAN',
2003
2182
  'NOT_SPECIFIED',
2004
2183
  'OTHER'
2005
- ])).nullish(),
2184
+ ])).optional(),
2006
2185
  sex: z.enum([
2007
2186
  'female',
2008
2187
  'male',
@@ -2057,7 +2236,7 @@ export const zPwaCompanyUserDetailsUpdateParameters = z.object({
2057
2236
  'formerly_incarcerated',
2058
2237
  'equity_investment_eligible_community',
2059
2238
  'self_registered_or_unknown'
2060
- ])).nullish(),
2239
+ ])).optional(),
2061
2240
  il_shines_other_programs: z.array(z.enum([
2062
2241
  'solar_training_pipeline_program',
2063
2242
  'craft_apprenticeship_program',
@@ -2066,7 +2245,7 @@ export const zPwaCompanyUserDetailsUpdateParameters = z.object({
2066
2245
  'illinois_climate_works_prep_apprenticeship_program',
2067
2246
  'returning_residents_clean_jobs_training_program',
2068
2247
  'other'
2069
- ])).nullish(),
2248
+ ])).optional(),
2070
2249
  or_boli_schedule_type: z.enum(['five_eight', 'four_ten']).nullish(),
2071
2250
  or_boli_race: z.array(z.enum([
2072
2251
  'american_indian_or_alaska_native',
@@ -2076,7 +2255,7 @@ export const zPwaCompanyUserDetailsUpdateParameters = z.object({
2076
2255
  'native_hawaiian_or_pacific_islander',
2077
2256
  'white',
2078
2257
  'portuguese_or_brazilian'
2079
- ])).nullish()
2258
+ ])).optional()
2080
2259
  });
2081
2260
  /**
2082
2261
  * A craft grouping used for prevailing-wage / apprenticeship (PWA) compliance — the unit an apprenticeship ratio is measured against. Owned by either a project (pooling the craft across the project's jobs) or a standalone job, never both.
@@ -2490,7 +2669,12 @@ export const zCustomFieldConfigsResponseObject = z.object({
2490
2669
  id: z.string(),
2491
2670
  name: z.string(),
2492
2671
  description: z.string().nullable(),
2493
- model_type: z.string(),
2672
+ model_type: z.enum([
2673
+ 'apprenticeship_apprentice',
2674
+ 'company',
2675
+ 'job',
2676
+ 'user_company'
2677
+ ]),
2494
2678
  visible: z.boolean(),
2495
2679
  company_id: z.string(),
2496
2680
  created_at: z.iso.datetime(),
@@ -2511,17 +2695,11 @@ export const zCustomFieldConfigParameters = z.object({
2511
2695
  visible: z.boolean().optional()
2512
2696
  });
2513
2697
  /**
2514
- * Request body for updating a custom field definition. Every field is optional; omit a field to preserve its current value. The resulting definition's name must remain unique for its company and model type.
2698
+ * Request body for updating a custom field definition. Every field is optional; omit a field to preserve its current value. `model_type` is fixed at creation, so sending it answers 400. The resulting definition's name must remain unique for its company and model type.
2515
2699
  */
2516
2700
  export const zCustomFieldConfigUpdateParameters = z.object({
2517
2701
  name: z.string().optional(),
2518
2702
  description: z.string().nullish(),
2519
- model_type: z.enum([
2520
- 'apprenticeship_apprentice',
2521
- 'company',
2522
- 'job',
2523
- 'user_company'
2524
- ]).optional(),
2525
2703
  visible: z.boolean().optional()
2526
2704
  });
2527
2705
  /**
@@ -2556,7 +2734,7 @@ export const zJobParameters = z.object({
2556
2734
  name: z.string().nullish(),
2557
2735
  description: z.string().optional(),
2558
2736
  requested_by_company_id: z.string().optional(),
2559
- manager_user_ids: z.array(z.string()).nullish(),
2737
+ manager_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
2560
2738
  purchase_order_number: z.string().nullish(),
2561
2739
  project_id: z.string().nullish(),
2562
2740
  companies_department_id: z.string().nullish(),
@@ -2584,7 +2762,7 @@ export const zJobParameters = z.object({
2584
2762
  ]).optional(),
2585
2763
  send_geofence_reminders: z.boolean().nullish(),
2586
2764
  allow_customer_access: z.boolean().optional(),
2587
- timekeeping_timecode_ids: z.array(z.string()).nullish(),
2765
+ timekeeping_timecode_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
2588
2766
  tracks_feature_allocations: z.boolean().nullish(),
2589
2767
  requires_feature_allocation: z.boolean().nullish(),
2590
2768
  max_one_feature_allocation: z.boolean().nullish(),
@@ -2662,7 +2840,7 @@ export const zUserCompanyScheduledChange = z.object({
2662
2840
  id: z.string(),
2663
2841
  start_date: z.string(),
2664
2842
  hourly_rate: z.string().nullable(),
2665
- compensation_type: z.string(),
2843
+ compensation_type: z.enum(['hourly', 'salary']),
2666
2844
  overtime_eligible: z.boolean(),
2667
2845
  training_annual_amount: z.string().nullable(),
2668
2846
  employer_combined_health_amount: z.string().nullable(),
@@ -3400,7 +3578,7 @@ export const zProjectParameters = z.object({
3400
3578
  description: z.string().nullish(),
3401
3579
  created_by_user_id: z.string(),
3402
3580
  parent_id: z.string().nullish(),
3403
- participating_company_ids: z.array(z.string()).optional(),
3581
+ participating_company_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
3404
3582
  start_date: z.iso.date().nullish(),
3405
3583
  end_date: z.iso.date().nullish(),
3406
3584
  tz_name: z.string().nullish(),
@@ -3435,7 +3613,7 @@ export const zProjectUpdateParameters = z.object({
3435
3613
  name: z.string().optional(),
3436
3614
  description: z.string().nullish(),
3437
3615
  parent_id: z.string().nullish(),
3438
- participating_company_ids: z.array(z.string()).optional(),
3616
+ participating_company_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
3439
3617
  start_date: z.iso.date().nullish(),
3440
3618
  end_date: z.iso.date().nullish(),
3441
3619
  tz_name: z.string().nullish(),
@@ -3666,14 +3844,16 @@ export const zFeatureResponseObject = z.object({
3666
3844
  updated_at: z.iso.datetime()
3667
3845
  });
3668
3846
  /**
3669
- * A billing metric — the count of distinct prevailing-wage/apprenticeship (PWA) tracked workers on a project in a given month, aggregated for the billed company. One row per project per month.
3847
+ * A billing metric — the count of distinct prevailing-wage/apprenticeship (PWA) tracked workers on one billable unit in a given month, aggregated for the billed company. A billable unit is a project (one row per project per month, counting workers once across every job in the project tree) or a job outside any project (one row per job per month). Exactly one of `project_id` and `job_id` is set.
3670
3848
  */
3671
3849
  export const zBillingPwaUserCountByProjectByMonthResponseObject = z.object({
3672
3850
  year_month: z.string(),
3673
3851
  year: z.int(),
3674
3852
  month: z.int(),
3675
- project_id: z.string(),
3676
- project_name: z.string(),
3853
+ project_id: z.string().nullable(),
3854
+ project_name: z.string().nullable(),
3855
+ job_id: z.string().nullable(),
3856
+ job_name: z.string().nullable(),
3677
3857
  user_count: z.int()
3678
3858
  });
3679
3859
  /**
@@ -4765,8 +4945,8 @@ export const zPayRatesRulePackageUpdateParameters = z.object({
4765
4945
  */
4766
4946
  export const zPositionParameters = z.object({
4767
4947
  fulfilled_by_user_id: z.string().nullish(),
4768
- start_time: z.iso.datetime().nullish(),
4769
- end_time: z.iso.datetime().nullish(),
4948
+ start_time: z.iso.date().nullish(),
4949
+ end_time: z.iso.date().nullish(),
4770
4950
  position_function_id: z.string().nullish(),
4771
4951
  per_diem_id: z.string().nullish(),
4772
4952
  per_diem_rate_cents: z.number().nullish(),
@@ -4775,7 +4955,7 @@ export const zPositionParameters = z.object({
4775
4955
  hourly_rate_cents: z.number().nullish(),
4776
4956
  pwa_wage_pay_rate_cents: z.number().nullish(),
4777
4957
  wage_adder_rate_cents: z.number().nullish(),
4778
- job_wage_determination_ids: z.array(z.string()).optional(),
4958
+ job_wage_determination_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
4779
4959
  pwa_details_attributes: z.object({
4780
4960
  skill_level: z.string().nullish()
4781
4961
  }).optional()
@@ -4817,7 +4997,7 @@ export const zProductionJobScopePriceResponseObject = z.object({
4817
4997
  export const zProductionCompletionUpdateParameters = z.object({
4818
4998
  notes: z.string().nullish(),
4819
4999
  work_date: z.iso.date().optional(),
4820
- position_ids: z.array(z.string()).optional(),
5000
+ position_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
4821
5001
  completable_attributes: z.object({
4822
5002
  quantity_completed: z.int().optional()
4823
5003
  }).optional()
@@ -4826,11 +5006,11 @@ export const zProductionCompletionUpdateParameters = z.object({
4826
5006
  * Fields shared by both completion payload kinds.
4827
5007
  */
4828
5008
  export const zProductionCompletionBaseParameters = z.object({
4829
- production_job_scope_price_id: z.string().optional(),
5009
+ production_job_scope_price_id: z.string(),
4830
5010
  performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
4831
5011
  notes: z.string().nullish(),
4832
5012
  work_date: z.iso.date().optional(),
4833
- position_ids: z.array(z.string()).optional()
5013
+ position_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional()
4834
5014
  });
4835
5015
  /**
4836
5016
  * Payload for completions on feature-tracked jobs (the scope price's job tracks production by feature). quantity_completed is not accepted; the feature reference is immutable after create, so update accepts no completable_attributes at all.
@@ -5160,8 +5340,8 @@ export const zPositionResponseObject = z.object({
5160
5340
  pwa_details: z.object({
5161
5341
  skill_level: z.string().nullable()
5162
5342
  }),
5163
- start_time: z.iso.datetime().nullable(),
5164
- end_time: z.iso.datetime().nullable(),
5343
+ start_time: z.iso.date().nullable(),
5344
+ end_time: z.iso.date().nullable(),
5165
5345
  created_at: z.iso.datetime(),
5166
5346
  updated_at: z.iso.datetime()
5167
5347
  });
@@ -5232,7 +5412,7 @@ export const zUserResponseObject = z.object({
5232
5412
  overtime_eligible: z.boolean().nullable(),
5233
5413
  enrolled_in_t_and_a: z.boolean().nullable(),
5234
5414
  payroll_id: z.string().nullable(),
5235
- compensation_type: z.string().nullable(),
5415
+ compensation_type: z.enum(['hourly', 'salary']).nullable(),
5236
5416
  hourly_rate: z.string().nullish(),
5237
5417
  training_annual_amount: z.string().nullish(),
5238
5418
  employer_combined_health_amount: z.string().nullish(),
@@ -5376,16 +5556,38 @@ export const zUserParameters = z.intersection(z.union([
5376
5556
  city: z.string().nullish(),
5377
5557
  state: z.string().nullish(),
5378
5558
  zip: z.string().nullish(),
5379
- race: z.array(z.string()).nullish(),
5380
- sex: z.string().nullish(),
5559
+ race: z.array(z.enum([
5560
+ 'AFRICAN_AMERICAN',
5561
+ 'ASIAN',
5562
+ 'CAUCASIAN',
5563
+ 'NATIVE_AMERICAN',
5564
+ 'NOT_SPECIFIED',
5565
+ 'OTHER'
5566
+ ])).optional(),
5567
+ sex: z.enum([
5568
+ 'female',
5569
+ 'male',
5570
+ 'non_binary',
5571
+ 'not_specified'
5572
+ ]).nullish(),
5381
5573
  local_business_license: z.string().nullish(),
5382
5574
  drivers_license_state: z.string().nullish(),
5383
5575
  drivers_license_number: z.string().nullish(),
5384
- veteran_status: z.string().nullish(),
5385
- hispanic_origin: z.string().nullish(),
5386
5576
  ssn: z.string().nullish(),
5387
- disabled: z.boolean().nullish(),
5577
+ veteran_status: z.enum([
5578
+ 'protected_veteran',
5579
+ 'not_protected_veteran',
5580
+ 'reserves',
5581
+ 'guard',
5582
+ 'not_specified'
5583
+ ]).nullish(),
5584
+ hispanic_origin: z.enum([
5585
+ 'yes',
5586
+ 'no',
5587
+ 'not_specified'
5588
+ ]).nullish(),
5388
5589
  ca_dir_withholding_exemptions: z.int().nullish(),
5590
+ disabled: z.boolean().optional(),
5389
5591
  il_dol_race: z.enum([
5390
5592
  'white',
5391
5593
  'black',
@@ -5416,7 +5618,7 @@ export const zUserParameters = z.intersection(z.union([
5416
5618
  'formerly_incarcerated',
5417
5619
  'equity_investment_eligible_community',
5418
5620
  'self_registered_or_unknown'
5419
- ])).nullish(),
5621
+ ])).optional(),
5420
5622
  il_shines_other_programs: z.array(z.enum([
5421
5623
  'solar_training_pipeline_program',
5422
5624
  'craft_apprenticeship_program',
@@ -5425,7 +5627,7 @@ export const zUserParameters = z.intersection(z.union([
5425
5627
  'illinois_climate_works_prep_apprenticeship_program',
5426
5628
  'returning_residents_clean_jobs_training_program',
5427
5629
  'other'
5428
- ])).nullish(),
5630
+ ])).optional(),
5429
5631
  or_boli_schedule_type: z.enum(['five_eight', 'four_ten']).nullish(),
5430
5632
  or_boli_race: z.array(z.enum([
5431
5633
  'american_indian_or_alaska_native',
@@ -5435,7 +5637,7 @@ export const zUserParameters = z.intersection(z.union([
5435
5637
  'native_hawaiian_or_pacific_islander',
5436
5638
  'white',
5437
5639
  'portuguese_or_brazilian'
5438
- ])).nullish()
5640
+ ])).optional()
5439
5641
  }).nullish()
5440
5642
  }));
5441
5643
  /**
@@ -6069,8 +6271,7 @@ export const zFederalJobWageDeterminationParameters = z.object({
6069
6271
  'highway',
6070
6272
  'residential'
6071
6273
  ]).nullish(),
6072
- general_wage_determination: z.string().nullish(),
6073
- pay_rates_rule_package_id: z.string().nullish()
6274
+ general_wage_determination: z.string().nullish()
6074
6275
  });
6075
6276
  /**
6076
6277
  * Parameters for creating a Regional (state prevailing-wage) wage determination on a job.
@@ -6083,7 +6284,6 @@ export const zRegionalJobWageDeterminationParameters = z.object({
6083
6284
  fringe_rate_cents: z.string().optional(),
6084
6285
  general_wage_determination: z.string().nullish(),
6085
6286
  overtime_package_id: z.string().nullish(),
6086
- pay_rates_rule_package_id: z.string().nullish(),
6087
6287
  regional_fields: zRegionalWageDeterminationFields.optional()
6088
6288
  });
6089
6289
  /**
@@ -6099,7 +6299,6 @@ export const zJobWageDeterminationParameters = z.discriminatedUnion('type', [
6099
6299
  export const zJobWageDeterminationUpdateParameters = z.object({
6100
6300
  effective_from: z.iso.date().optional(),
6101
6301
  overtime_package_id: z.string().nullish(),
6102
- pay_rates_rule_package_id: z.string().nullish(),
6103
6302
  labor_classification: z.string().optional(),
6104
6303
  pwa_trade_id: z.string().optional(),
6105
6304
  hourly_rate_cents: z.string().optional(),
@@ -6313,8 +6512,7 @@ export const zFederalProjectWageDeterminationParameters = z.object({
6313
6512
  'highway',
6314
6513
  'residential'
6315
6514
  ]).nullish(),
6316
- general_wage_determination: z.string().nullish(),
6317
- pay_rates_rule_package_id: z.string().nullish()
6515
+ general_wage_determination: z.string().nullish()
6318
6516
  });
6319
6517
  /**
6320
6518
  * Parameters for creating a Regional (state prevailing-wage) wage determination on a project.
@@ -6327,7 +6525,6 @@ export const zRegionalProjectWageDeterminationParameters = z.object({
6327
6525
  fringe_rate_cents: z.string().optional(),
6328
6526
  general_wage_determination: z.string().nullish(),
6329
6527
  overtime_package_id: z.string().nullish(),
6330
- pay_rates_rule_package_id: z.string().nullish(),
6331
6528
  regional_fields: zRegionalWageDeterminationFields.optional()
6332
6529
  });
6333
6530
  /**
@@ -6343,7 +6540,6 @@ export const zProjectWageDeterminationParameters = z.discriminatedUnion('type',
6343
6540
  export const zProjectWageDeterminationUpdateParameters = z.object({
6344
6541
  effective_from: z.iso.date().optional(),
6345
6542
  overtime_package_id: z.string().nullish(),
6346
- pay_rates_rule_package_id: z.string().nullish(),
6347
6543
  labor_classification: z.string().optional(),
6348
6544
  pwa_trade_id: z.string().optional(),
6349
6545
  hourly_rate_cents: z.string().optional(),
@@ -6577,7 +6773,7 @@ export const zPayRatesRuleScheduledTerminationParameters = z.object({
6577
6773
  effective_date: z.iso.date()
6578
6774
  });
6579
6775
  /**
6580
- * Schedule a rule recipe change from a company-local effective date.
6776
+ * Schedule a rule recipe change from an effective date in the package's timezone, which is that of the project or job holding the package, else its company's.
6581
6777
  */
6582
6778
  export const zPayRatesRuleScheduledChangeParameters = z.object({
6583
6779
  effective_date: z.iso.date(),
@@ -6886,7 +7082,8 @@ export const zAssetsFormAssignmentTriggerResponseObject = z.object({
6886
7082
  * Create or update a form-assignment trigger rule. form_definition_id, triggered_by, assign_to, first_due_by, tz_name, and time_of_day_due are required; the day fields depend on first_due_by, and assigned_user_ids applies only to the custom assign_to mode.
6887
7083
  */
6888
7084
  export const zAssetsFormAssignmentTriggerParameters = z.object({
6889
- form_definition_id: z.string(),
7085
+ form_definition_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/),
7086
+ name: z.string().nullish(),
6890
7087
  triggered_by: z.enum(['assignment', 'unassignment']),
6891
7088
  assign_to: z.enum([
6892
7089
  'custom',
@@ -6898,9 +7095,6 @@ export const zAssetsFormAssignmentTriggerParameters = z.object({
6898
7095
  'day_of_week',
6899
7096
  'day_of_month'
6900
7097
  ]),
6901
- tz_name: z.string(),
6902
- time_of_day_due: z.string(),
6903
- name: z.string().nullish(),
6904
7098
  recurrence_frequency: z.enum([
6905
7099
  'DAILY',
6906
7100
  'WORKDAILY',
@@ -6910,16 +7104,19 @@ export const zAssetsFormAssignmentTriggerParameters = z.object({
6910
7104
  'MONTHLY',
6911
7105
  'QUARTERLY'
6912
7106
  ]).nullish(),
6913
- day_of_week_due: z.int().nullish(),
6914
- day_of_month_due: z.int().nullish(),
6915
- assigned_user_ids: z.array(z.string()).optional(),
6916
- assets_product_ids: z.array(z.string()).optional()
7107
+ day_of_week_due: z.int().gte(0).lte(6).nullish(),
7108
+ day_of_month_due: z.int().gte(1).lte(31).nullish(),
7109
+ tz_name: z.string(),
7110
+ time_of_day_due: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]$/),
7111
+ assigned_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
7112
+ assets_product_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional()
6917
7113
  });
6918
7114
  /**
6919
7115
  * Update a form-assignment trigger rule. All fields are optional — send only what changes. When changing first_due_by, include the matching day field when required; assigned_user_ids applies only to the custom assign_to mode.
6920
7116
  */
6921
7117
  export const zAssetsFormAssignmentTriggerUpdateParameters = z.object({
6922
- form_definition_id: z.string().optional(),
7118
+ form_definition_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional(),
7119
+ name: z.string().nullish(),
6923
7120
  triggered_by: z.enum(['assignment', 'unassignment']).optional(),
6924
7121
  assign_to: z.enum([
6925
7122
  'custom',
@@ -6931,9 +7128,6 @@ export const zAssetsFormAssignmentTriggerUpdateParameters = z.object({
6931
7128
  'day_of_week',
6932
7129
  'day_of_month'
6933
7130
  ]).optional(),
6934
- tz_name: z.string().optional(),
6935
- time_of_day_due: z.string().optional(),
6936
- name: z.string().nullish(),
6937
7131
  recurrence_frequency: z.enum([
6938
7132
  'DAILY',
6939
7133
  'WORKDAILY',
@@ -6943,10 +7137,12 @@ export const zAssetsFormAssignmentTriggerUpdateParameters = z.object({
6943
7137
  'MONTHLY',
6944
7138
  'QUARTERLY'
6945
7139
  ]).nullish(),
6946
- day_of_week_due: z.int().nullish(),
6947
- day_of_month_due: z.int().nullish(),
6948
- assigned_user_ids: z.array(z.string()).optional(),
6949
- assets_product_ids: z.array(z.string()).optional()
7140
+ day_of_week_due: z.int().gte(0).lte(6).nullish(),
7141
+ day_of_month_due: z.int().gte(1).lte(31).nullish(),
7142
+ tz_name: z.string().optional(),
7143
+ time_of_day_due: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]$/).optional(),
7144
+ assigned_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
7145
+ assets_product_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional()
6950
7146
  });
6951
7147
  /**
6952
7148
  * A file attached to an asset — an item or product image, or a service-event attachment. Uploaded through the direct-upload flow; the response carries a URL to download it.
@@ -7702,16 +7898,24 @@ export const zAssetsArchiveParameters = z.object({
7702
7898
  * Create the template's schedule on the product's serial items that don't have one yet. Items whose matching schedule has a different cadence are blocked and never seeded.
7703
7899
  */
7704
7900
  export const zAssetsServiceScheduleSeedParameters = z.object({
7705
- assets_item_ids: z.array(z.string()).min(1).optional(),
7901
+ assets_item_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).min(1).optional(),
7706
7902
  performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7707
7903
  });
7708
7904
  /**
7709
7905
  * Rewrite blocked schedules — those sharing the template's name and kind with a different interval — to the template's cadence, which links them to it.
7710
7906
  */
7711
7907
  export const zAssetsServiceScheduleSyncParameters = z.object({
7712
- schedule_ids: z.array(z.string()).min(1).optional(),
7908
+ schedule_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).min(1).optional(),
7713
7909
  performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
7714
7910
  });
7911
+ /**
7912
+ * Archive a competence standard. The body takes no fields; send an empty object or no body. Archiving an archived standard returns it unchanged.
7913
+ */
7914
+ export const zCompetencyStandardArchiveParametersWritable = z.record(z.string(), z.never());
7915
+ /**
7916
+ * Revoke an active grant. The body takes no fields; send an empty object or no body. Revocation sets revoked_at and keeps the row; revoking it again answers 409 authorization_revoked.
7917
+ */
7918
+ export const zCompetencyAssessorAuthorizationRevocationParametersWritable = z.record(z.string(), z.never());
7715
7919
  /**
7716
7920
  * A certification held by a worker — the record that a worker earned a certification, with its receipt date, optional expiry, and verification state.
7717
7921
  */
@@ -8966,6 +9170,7 @@ export const zGetAtlasSiteResponse = zSiteResponseObject;
8966
9170
  export const zListPwaUserCountsByProjectByMonthsQuery = z.object({
8967
9171
  'filter[year_month]': z.string().optional(),
8968
9172
  'filter[project_id]': z.string().optional(),
9173
+ 'filter[job_id]': z.string().optional(),
8969
9174
  filter: z.string().optional(),
8970
9175
  'filter[unexpected]': z.string().optional()
8971
9176
  });
@@ -9276,6 +9481,273 @@ export const zGetEvidenceItemPath = z.object({
9276
9481
  * Success
9277
9482
  */
9278
9483
  export const zGetEvidenceItemResponse = zCompetencyEvidenceItemResponseObject;
9484
+ export const zListAssessorAuthorizationsQuery = z.object({
9485
+ 'filter[user_id]': z.string().optional(),
9486
+ 'filter[companies_department_id]': z.string().optional(),
9487
+ 'filter[competencies_standard_id]': z.string().optional(),
9488
+ 'filter[kind]': z.array(z.enum(['authorized_assessor', 'qualified_assessor'])).optional(),
9489
+ 'filter[state]': z.enum([
9490
+ 'active',
9491
+ 'revoked',
9492
+ 'all'
9493
+ ]).optional(),
9494
+ 'filter[created_at][gte]': z.iso.datetime().optional(),
9495
+ 'filter[created_at][lte]': z.iso.datetime().optional(),
9496
+ 'filter[updated_at][gte]': z.iso.datetime().optional(),
9497
+ 'filter[updated_at][lte]': z.iso.datetime().optional(),
9498
+ 'filter[granted_at][gte]': z.iso.datetime().optional(),
9499
+ 'filter[granted_at][lte]': z.iso.datetime().optional(),
9500
+ 'filter[revoked_at][gte]': z.iso.datetime().optional(),
9501
+ 'filter[revoked_at][lte]': z.iso.datetime().optional(),
9502
+ filter: z.string().optional(),
9503
+ 'filter[unexpected]': z.string().optional(),
9504
+ 'page[cursor]': z.string().optional(),
9505
+ 'page[limit]': z.int().gte(1).optional().default(20),
9506
+ page: z.string().optional()
9507
+ });
9508
+ /**
9509
+ * Success
9510
+ */
9511
+ export const zListAssessorAuthorizationsResponse = z.object({
9512
+ meta: zMeta,
9513
+ links: zLinks,
9514
+ data: z.array(zCompetencyAssessorAuthorizationResponseObject)
9515
+ });
9516
+ export const zCreateAssessorAuthorizationBody = zCompetencyAssessorAuthorizationParameters;
9517
+ /**
9518
+ * Created
9519
+ */
9520
+ export const zCreateAssessorAuthorizationResponse = zCompetencyAssessorAuthorizationResponseObject;
9521
+ export const zGetAssessorAuthorizationPath = z.object({
9522
+ id: z.string()
9523
+ });
9524
+ /**
9525
+ * Success
9526
+ */
9527
+ export const zGetAssessorAuthorizationResponse = zCompetencyAssessorAuthorizationResponseObject;
9528
+ export const zUpdateAssessorAuthorizationBody = zCompetencyAssessorAuthorizationUpdateParameters;
9529
+ export const zUpdateAssessorAuthorizationPath = z.object({
9530
+ id: z.string()
9531
+ });
9532
+ /**
9533
+ * Success
9534
+ */
9535
+ export const zUpdateAssessorAuthorizationResponse = zCompetencyAssessorAuthorizationResponseObject;
9536
+ export const zRevokeAssessorAuthorizationBody = zCompetencyAssessorAuthorizationRevocationParametersWritable;
9537
+ export const zRevokeAssessorAuthorizationPath = z.object({
9538
+ assessor_authorization_id: z.string()
9539
+ });
9540
+ /**
9541
+ * Created
9542
+ */
9543
+ export const zRevokeAssessorAuthorizationResponse = zCompetencyAssessorAuthorizationResponseObject;
9544
+ export const zListLevelsPath = z.object({
9545
+ standard_id: z.string(),
9546
+ version_id: z.string()
9547
+ });
9548
+ export const zListLevelsQuery = z.object({
9549
+ filter: z.string().optional(),
9550
+ 'filter[unexpected]': z.string().optional()
9551
+ });
9552
+ /**
9553
+ * Success
9554
+ */
9555
+ export const zListLevelsResponse = z.object({
9556
+ meta: zMeta,
9557
+ links: zLinks,
9558
+ data: z.array(zCompetencyLevelResponseObject)
9559
+ });
9560
+ export const zCreateLevelBody = zCompetencyLevelParameters;
9561
+ export const zCreateLevelPath = z.object({
9562
+ standard_id: z.string(),
9563
+ version_id: z.string()
9564
+ });
9565
+ /**
9566
+ * Created
9567
+ */
9568
+ export const zCreateLevelResponse = zCompetencyLevelResponseObject;
9569
+ export const zDeleteLevelPath = z.object({
9570
+ standard_id: z.string(),
9571
+ version_id: z.string(),
9572
+ id: z.string()
9573
+ });
9574
+ /**
9575
+ * No Content
9576
+ */
9577
+ export const zDeleteLevelResponse = z.void();
9578
+ export const zGetLevelPath = z.object({
9579
+ standard_id: z.string(),
9580
+ version_id: z.string(),
9581
+ id: z.string()
9582
+ });
9583
+ /**
9584
+ * Success
9585
+ */
9586
+ export const zGetLevelResponse = zCompetencyLevelResponseObject;
9587
+ export const zUpdateLevelBody = zCompetencyLevelParameters;
9588
+ export const zUpdateLevelPath = z.object({
9589
+ standard_id: z.string(),
9590
+ version_id: z.string(),
9591
+ id: z.string()
9592
+ });
9593
+ /**
9594
+ * Success
9595
+ */
9596
+ export const zUpdateLevelResponse = zCompetencyLevelResponseObject;
9597
+ export const zMoveCompetencyLevelBody = zCompetencySortOrderMoveParameters;
9598
+ export const zMoveCompetencyLevelPath = z.object({
9599
+ standard_id: z.string(),
9600
+ version_id: z.string(),
9601
+ level_id: z.string()
9602
+ });
9603
+ /**
9604
+ * Success
9605
+ */
9606
+ export const zMoveCompetencyLevelResponse = zCompetencyLevelResponseObject;
9607
+ export const zListKeyActivitiesPath = z.object({
9608
+ standard_id: z.string(),
9609
+ version_id: z.string(),
9610
+ level_id: z.string()
9611
+ });
9612
+ export const zListKeyActivitiesQuery = z.object({
9613
+ filter: z.string().optional(),
9614
+ 'filter[unexpected]': z.string().optional()
9615
+ });
9616
+ /**
9617
+ * Success
9618
+ */
9619
+ export const zListKeyActivitiesResponse = z.object({
9620
+ meta: zMeta,
9621
+ links: zLinks,
9622
+ data: z.array(zCompetencyKeyActivityResponseObject)
9623
+ });
9624
+ export const zCreateKeyActivityBody = zCompetencyKeyActivityParameters;
9625
+ export const zCreateKeyActivityPath = z.object({
9626
+ standard_id: z.string(),
9627
+ version_id: z.string(),
9628
+ level_id: z.string()
9629
+ });
9630
+ /**
9631
+ * Created
9632
+ */
9633
+ export const zCreateKeyActivityResponse = zCompetencyKeyActivityResponseObject;
9634
+ export const zDeleteKeyActivityPath = z.object({
9635
+ standard_id: z.string(),
9636
+ version_id: z.string(),
9637
+ level_id: z.string(),
9638
+ id: z.string()
9639
+ });
9640
+ /**
9641
+ * No Content
9642
+ */
9643
+ export const zDeleteKeyActivityResponse = z.void();
9644
+ export const zGetKeyActivityPath = z.object({
9645
+ standard_id: z.string(),
9646
+ version_id: z.string(),
9647
+ level_id: z.string(),
9648
+ id: z.string()
9649
+ });
9650
+ /**
9651
+ * Success
9652
+ */
9653
+ export const zGetKeyActivityResponse = zCompetencyKeyActivityResponseObject;
9654
+ export const zUpdateKeyActivityBody = zCompetencyKeyActivityParameters;
9655
+ export const zUpdateKeyActivityPath = z.object({
9656
+ standard_id: z.string(),
9657
+ version_id: z.string(),
9658
+ level_id: z.string(),
9659
+ id: z.string()
9660
+ });
9661
+ /**
9662
+ * Success
9663
+ */
9664
+ export const zUpdateKeyActivityResponse = zCompetencyKeyActivityResponseObject;
9665
+ export const zMoveCompetencyKeyActivityBody = zCompetencySortOrderMoveParameters;
9666
+ export const zMoveCompetencyKeyActivityPath = z.object({
9667
+ standard_id: z.string(),
9668
+ version_id: z.string(),
9669
+ level_id: z.string(),
9670
+ key_activity_id: z.string()
9671
+ });
9672
+ /**
9673
+ * Success
9674
+ */
9675
+ export const zMoveCompetencyKeyActivityResponse = zCompetencyKeyActivityResponseObject;
9676
+ export const zListCriteriaPath = z.object({
9677
+ standard_id: z.string(),
9678
+ version_id: z.string(),
9679
+ level_id: z.string(),
9680
+ key_activity_id: z.string()
9681
+ });
9682
+ export const zListCriteriaQuery = z.object({
9683
+ filter: z.string().optional(),
9684
+ 'filter[unexpected]': z.string().optional()
9685
+ });
9686
+ /**
9687
+ * Success
9688
+ */
9689
+ export const zListCriteriaResponse = z.object({
9690
+ meta: zMeta,
9691
+ links: zLinks,
9692
+ data: z.array(zCompetencyCriterionResponseObject)
9693
+ });
9694
+ export const zCreateCriterionBody = zCompetencyCriterionParameters;
9695
+ export const zCreateCriterionPath = z.object({
9696
+ standard_id: z.string(),
9697
+ version_id: z.string(),
9698
+ level_id: z.string(),
9699
+ key_activity_id: z.string()
9700
+ });
9701
+ /**
9702
+ * Created
9703
+ */
9704
+ export const zCreateCriterionResponse = zCompetencyCriterionResponseObject;
9705
+ export const zDeleteCriterionPath = z.object({
9706
+ standard_id: z.string(),
9707
+ version_id: z.string(),
9708
+ level_id: z.string(),
9709
+ key_activity_id: z.string(),
9710
+ id: z.string()
9711
+ });
9712
+ /**
9713
+ * No Content
9714
+ */
9715
+ export const zDeleteCriterionResponse = z.void();
9716
+ export const zGetCriterionPath = z.object({
9717
+ standard_id: z.string(),
9718
+ version_id: z.string(),
9719
+ level_id: z.string(),
9720
+ key_activity_id: z.string(),
9721
+ id: z.string()
9722
+ });
9723
+ /**
9724
+ * Success
9725
+ */
9726
+ export const zGetCriterionResponse = zCompetencyCriterionResponseObject;
9727
+ export const zUpdateCriterionBody = zCompetencyCriterionParameters;
9728
+ export const zUpdateCriterionPath = z.object({
9729
+ standard_id: z.string(),
9730
+ version_id: z.string(),
9731
+ level_id: z.string(),
9732
+ key_activity_id: z.string(),
9733
+ id: z.string()
9734
+ });
9735
+ /**
9736
+ * Success
9737
+ */
9738
+ export const zUpdateCriterionResponse = zCompetencyCriterionResponseObject;
9739
+ export const zMoveCompetencyCriterionBody = zCompetencySortOrderMoveParameters;
9740
+ export const zMoveCompetencyCriterionPath = z.object({
9741
+ standard_id: z.string(),
9742
+ version_id: z.string(),
9743
+ level_id: z.string(),
9744
+ key_activity_id: z.string(),
9745
+ criterion_id: z.string()
9746
+ });
9747
+ /**
9748
+ * Success
9749
+ */
9750
+ export const zMoveCompetencyCriterionResponse = zCompetencyCriterionResponseObject;
9279
9751
  export const zListQualificationsQuery = z.object({
9280
9752
  'filter[candidate_user_id]': z.string().optional(),
9281
9753
  'filter[competencies_standard_id]': z.string().optional(),
@@ -9301,6 +9773,136 @@ export const zGetQualificationPath = z.object({
9301
9773
  * Success
9302
9774
  */
9303
9775
  export const zGetQualificationResponse = zCompetencyQualificationResponseObject;
9776
+ export const zListStandardsQuery = z.object({
9777
+ 'filter[name]': z.string().optional(),
9778
+ 'filter[companies_department_id]': z.string().optional(),
9779
+ 'filter[catalog_status]': z.enum([
9780
+ 'active',
9781
+ 'draft',
9782
+ 'archived'
9783
+ ]).optional(),
9784
+ 'filter[created_at][gte]': z.iso.datetime().optional(),
9785
+ 'filter[created_at][lte]': z.iso.datetime().optional(),
9786
+ 'filter[updated_at][gte]': z.iso.datetime().optional(),
9787
+ 'filter[updated_at][lte]': z.iso.datetime().optional(),
9788
+ filter: z.string().optional(),
9789
+ 'filter[unexpected]': z.string().optional(),
9790
+ 'page[cursor]': z.string().optional(),
9791
+ 'page[limit]': z.int().gte(1).optional().default(20),
9792
+ page: z.string().optional()
9793
+ });
9794
+ /**
9795
+ * Success
9796
+ */
9797
+ export const zListStandardsResponse = z.object({
9798
+ meta: zMeta,
9799
+ links: zLinks,
9800
+ data: z.array(zCompetencyStandardResponseObject)
9801
+ });
9802
+ export const zCreateStandardBody = zCompetencyStandardParameters;
9803
+ /**
9804
+ * Created
9805
+ */
9806
+ export const zCreateStandardResponse = zCompetencyStandardResponseObject;
9807
+ export const zGetStandardPath = z.object({
9808
+ id: z.string()
9809
+ });
9810
+ /**
9811
+ * Success
9812
+ */
9813
+ export const zGetStandardResponse = zCompetencyStandardResponseObject;
9814
+ export const zUpdateStandardBody = zCompetencyStandardUpdateParameters;
9815
+ export const zUpdateStandardPath = z.object({
9816
+ id: z.string()
9817
+ });
9818
+ /**
9819
+ * Success
9820
+ */
9821
+ export const zUpdateStandardResponse = zCompetencyStandardResponseObject;
9822
+ export const zUnarchiveCompetencyStandardPath = z.object({
9823
+ standard_id: z.string()
9824
+ });
9825
+ /**
9826
+ * Success
9827
+ */
9828
+ export const zUnarchiveCompetencyStandardResponse = zCompetencyStandardResponseObject;
9829
+ export const zArchiveCompetencyStandardBody = zCompetencyStandardArchiveParametersWritable;
9830
+ export const zArchiveCompetencyStandardPath = z.object({
9831
+ standard_id: z.string()
9832
+ });
9833
+ /**
9834
+ * Created
9835
+ */
9836
+ export const zArchiveCompetencyStandardResponse = zCompetencyStandardResponseObject;
9837
+ export const zListCompetencyStandardVersionsPath = z.object({
9838
+ standard_id: z.string()
9839
+ });
9840
+ export const zListCompetencyStandardVersionsQuery = z.object({
9841
+ 'filter[status]': z.enum([
9842
+ 'draft',
9843
+ 'active',
9844
+ 'superseded'
9845
+ ]).optional(),
9846
+ 'filter[created_at][gte]': z.iso.datetime().optional(),
9847
+ 'filter[created_at][lte]': z.iso.datetime().optional(),
9848
+ 'filter[updated_at][gte]': z.iso.datetime().optional(),
9849
+ 'filter[updated_at][lte]': z.iso.datetime().optional(),
9850
+ filter: z.string().optional(),
9851
+ 'filter[unexpected]': z.string().optional(),
9852
+ 'page[cursor]': z.string().optional(),
9853
+ 'page[limit]': z.int().gte(1).optional().default(20),
9854
+ page: z.string().optional()
9855
+ });
9856
+ /**
9857
+ * Success
9858
+ */
9859
+ export const zListCompetencyStandardVersionsResponse = z.object({
9860
+ meta: zMeta,
9861
+ links: zLinks,
9862
+ data: z.array(zCompetencyStandardVersionResponseObject)
9863
+ });
9864
+ export const zCreateCompetencyStandardVersionBody = zCompetencyStandardVersionParameters;
9865
+ export const zCreateCompetencyStandardVersionPath = z.object({
9866
+ standard_id: z.string()
9867
+ });
9868
+ /**
9869
+ * Created
9870
+ */
9871
+ export const zCreateCompetencyStandardVersionResponse = zCompetencyStandardVersionResponseObject;
9872
+ export const zDeleteCompetencyStandardVersionPath = z.object({
9873
+ standard_id: z.string(),
9874
+ id: z.string()
9875
+ });
9876
+ /**
9877
+ * No Content
9878
+ */
9879
+ export const zDeleteCompetencyStandardVersionResponse = z.void();
9880
+ export const zGetCompetencyStandardVersionPath = z.object({
9881
+ standard_id: z.string(),
9882
+ id: z.string()
9883
+ });
9884
+ /**
9885
+ * Success
9886
+ */
9887
+ export const zGetCompetencyStandardVersionResponse = zCompetencyStandardVersionResponseObject;
9888
+ export const zUpdateCompetencyStandardVersionBody = zCompetencyStandardVersionParameters;
9889
+ export const zUpdateCompetencyStandardVersionPath = z.object({
9890
+ standard_id: z.string(),
9891
+ id: z.string()
9892
+ });
9893
+ /**
9894
+ * Success
9895
+ */
9896
+ export const zUpdateCompetencyStandardVersionResponse = zCompetencyStandardVersionResponseObject;
9897
+ export const zPromoteCompetencyStandardVersionBody = zCompetencyStandardVersionPromotionParameters;
9898
+ export const zPromoteCompetencyStandardVersionPath = z.object({
9899
+ standard_id: z.string(),
9900
+ version_id: z.string()
9901
+ });
9902
+ /**
9903
+ * Created
9904
+ */
9905
+ export const zPromoteCompetencyStandardVersionResponse = zCompetencyStandardVersionResponseObject;
9304
9906
  export const zListChecksQuery = z.object({
9305
9907
  'filter[status]': z.enum([
9306
9908
  'passed',