@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.
@@ -83,7 +83,7 @@ export type Problem = {
83
83
  *
84
84
  * **Malformed Request Body**
85
85
  *
86
- * 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.
86
+ * 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.
87
87
  *
88
88
  * ### non_range_filter_value
89
89
  *
@@ -107,7 +107,7 @@ export type Problem = {
107
107
  *
108
108
  * **Required Parameter Missing**
109
109
  *
110
- * A required request parameter is absent or empty. The message names it; supply the parameter and retry.
110
+ * 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.
111
111
  *
112
112
  * ### parameter_not_object
113
113
  *
@@ -490,6 +490,242 @@ export type DirectUploadResponseObject = {
490
490
  };
491
491
  };
492
492
  };
493
+ /**
494
+ * 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.
495
+ */
496
+ export type CompetencyQualificationResponseObject = {
497
+ /**
498
+ * ID of the qualification.
499
+ */
500
+ id: string;
501
+ /**
502
+ * ID of the technician who holds the standing.
503
+ */
504
+ candidate_user_id: string;
505
+ /**
506
+ * ID of the standard the standing is against.
507
+ */
508
+ competencies_standard_id: string;
509
+ /**
510
+ * Tier the candidate passed, matching the level's sort_order on the revision that was assessed. Not a level id.
511
+ */
512
+ level_sort_order: number;
513
+ /**
514
+ * When the standing was first awarded.
515
+ */
516
+ awarded_at: string;
517
+ /**
518
+ * When the standing was last confirmed. Later verification updates this timestamp only.
519
+ */
520
+ last_verified_at: string;
521
+ /**
522
+ * When the qualification row was created.
523
+ */
524
+ created_at: string;
525
+ /**
526
+ * When the qualification row was last updated.
527
+ */
528
+ updated_at: string;
529
+ };
530
+ /**
531
+ * 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.
532
+ */
533
+ export type CompetencyAssessmentResponseObject = {
534
+ /**
535
+ * ID of the assessment.
536
+ */
537
+ id: string;
538
+ /**
539
+ * ID of the technician being assessed.
540
+ */
541
+ candidate_user_id: string;
542
+ /**
543
+ * ID of the level pinned when the assessment was opened.
544
+ */
545
+ competencies_level_id: string;
546
+ /**
547
+ * sort_order of the pinned level. A qualification awarded from this assessment stores this tier, not the level id.
548
+ */
549
+ level_sort_order: number;
550
+ /**
551
+ * ID of the revision the pinned level belongs to. Later drafts do not move this assessment.
552
+ */
553
+ competencies_standard_version_id: string;
554
+ /**
555
+ * ID of the standard that revision belongs to.
556
+ */
557
+ competencies_standard_id: string;
558
+ /**
559
+ * ID of the earlier assessment this one continues; null when this is the first.
560
+ */
561
+ predecessor_assessment_id: string | null;
562
+ /**
563
+ * Workflow state: evidence_collection, submitted, in_review, or decided.
564
+ */
565
+ status: 'evidence_collection' | 'submitted' | 'in_review' | 'decided';
566
+ /**
567
+ * Decision of the package: competent or not_yet_competent. Null until status is decided.
568
+ */
569
+ outcome: 'competent' | 'not_yet_competent' | null;
570
+ /**
571
+ * ID of the user who opened the assessment.
572
+ */
573
+ requested_by_user_id: string;
574
+ /**
575
+ * When the assessment was opened.
576
+ */
577
+ requested_at: string;
578
+ /**
579
+ * ID of the user who submitted the package; null until it is submitted.
580
+ */
581
+ submitted_by_user_id: string | null;
582
+ /**
583
+ * When the package was submitted; null until then.
584
+ */
585
+ submitted_at: string | null;
586
+ /**
587
+ * ID of the qualified assessor who claimed the review; null until it is claimed.
588
+ */
589
+ claimed_by_user_id: string | null;
590
+ /**
591
+ * When the review was claimed; null until then.
592
+ */
593
+ claimed_at: string | null;
594
+ /**
595
+ * ID of the qualified assessor who decided the package; null until it is decided.
596
+ */
597
+ decided_by_user_id: string | null;
598
+ /**
599
+ * When the package was decided; null until then.
600
+ */
601
+ decided_at: string | null;
602
+ /**
603
+ * When the assessment row was created.
604
+ */
605
+ created_at: string;
606
+ /**
607
+ * When the assessment row was last updated.
608
+ */
609
+ updated_at: string;
610
+ };
611
+ /**
612
+ * 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.
613
+ */
614
+ export type CompetencyAssessmentKeyActivityResponseObject = {
615
+ /**
616
+ * ID of the line.
617
+ */
618
+ id: string;
619
+ /**
620
+ * ID of the assessment this line belongs to.
621
+ */
622
+ competencies_assessment_id: string;
623
+ /**
624
+ * ID of the catalog key activity snapshotted onto the line.
625
+ */
626
+ competencies_key_activity_id: string;
627
+ /**
628
+ * Methods the assessor recorded for this line. Empty when none have been recorded.
629
+ */
630
+ assessment_methods: Array<'direct_observation' | 'simulation' | 'oral_questioning' | 'written_questioning' | 'products_of_work' | 'recognized_prior_learning' | 'witness_testimony' | 'other'>;
631
+ /**
632
+ * Assessor feedback visible to readers of the assessment; null when unset.
633
+ */
634
+ aa_feedback: string | null;
635
+ /**
636
+ * Date evidence for this line was submitted; null when unset.
637
+ */
638
+ evidence_submitted_on: string | null;
639
+ /**
640
+ * ID of the assessor who recorded the line; null when unset.
641
+ */
642
+ assessed_by_user_id: string | null;
643
+ /**
644
+ * When the line was assessed; null when unset.
645
+ */
646
+ assessed_at: string | null;
647
+ /**
648
+ * ID of the line on a predecessor assessment this one was carried from; null when it was not carried.
649
+ */
650
+ carried_from_id: string | null;
651
+ /**
652
+ * When the reviewer decided this line; null until then.
653
+ */
654
+ decided_at: string | null;
655
+ /**
656
+ * Reviewer decision: pending, competent, or not_yet_competent. Omitted when the caller is the candidate and the package is not yet decided.
657
+ */
658
+ decision?: 'pending' | 'competent' | 'not_yet_competent';
659
+ /**
660
+ * Reviewer feedback. Omitted, together with decision, when the caller is the candidate and the package is not yet decided. Null when the caller may see it and none was recorded.
661
+ */
662
+ qa_feedback?: string | null;
663
+ /**
664
+ * When the line was created.
665
+ */
666
+ created_at: string;
667
+ /**
668
+ * When the line was last updated.
669
+ */
670
+ updated_at: string;
671
+ };
672
+ /**
673
+ * 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.
674
+ */
675
+ export type CompetencyEvidenceItemResponseObject = {
676
+ /**
677
+ * ID of the evidence item.
678
+ */
679
+ id: string;
680
+ /**
681
+ * ID of the assessment line this evidence is attached to.
682
+ */
683
+ competencies_assessment_key_activity_id: string;
684
+ /**
685
+ * What the evidence points at: upload, form_submission, or certification.
686
+ */
687
+ kind: 'upload' | 'form_submission' | 'certification';
688
+ /**
689
+ * Free-text description; null when unset, or when the caller cannot open the form or certification.
690
+ */
691
+ description: string | null;
692
+ /**
693
+ * Date the evidence was captured.
694
+ */
695
+ captured_on: string;
696
+ /**
697
+ * ID of the form submission when kind is form_submission and the caller can open it; otherwise null.
698
+ */
699
+ form_submission_id: string | null;
700
+ /**
701
+ * ID of the user certification when kind is certification and the caller can open it; otherwise null.
702
+ */
703
+ user_certification_id: string | null;
704
+ /**
705
+ * ID of the user who added the evidence.
706
+ */
707
+ added_by_user_id: string;
708
+ /**
709
+ * Filename of an uploaded file; null when kind is not upload or no file is attached.
710
+ */
711
+ file_name: string | null;
712
+ /**
713
+ * Size in bytes of an uploaded file; null when no file is attached.
714
+ */
715
+ file_byte_size: number | null;
716
+ /**
717
+ * Content type of an uploaded file; null when no file is attached.
718
+ */
719
+ file_content_type: string | null;
720
+ /**
721
+ * When the evidence item was created.
722
+ */
723
+ created_at: string;
724
+ /**
725
+ * When the evidence item was last updated.
726
+ */
727
+ updated_at: string;
728
+ };
493
729
  /**
494
730
  * A DOL-registered apprenticeship program, sponsored by a company and visible to its sponsor and enrolled employers.
495
731
  */
@@ -1038,11 +1274,11 @@ export type ApprenticeshipOccupationUpdateParameters = {
1038
1274
  */
1039
1275
  export type ApprenticeshipProgramEmployerParameters = {
1040
1276
  /**
1041
- * ID of the company to authorize as an employer. A company-scoped key may name only its own company; a user-scoped key may name a company its user administers or manages. Required.
1277
+ * ID of the company to authorize as an employer. A company-scoped key may name only its own company; a user-scoped key may name a company its user administers or manages. Required; omission answers 400, and supplied null, a blank string, or a wrong type answers 422.
1042
1278
  */
1043
1279
  company_id: string;
1044
1280
  /**
1045
- * Whether this employer's apprentices must allocate apprenticeship hours from DSPTCH time cards rather than recording them standalone; optional, defaults to false.
1281
+ * Whether this employer's apprentices must allocate apprenticeship hours from DSPTCH time cards rather than recording them standalone; optional, defaults to false. Supplied null or a non-boolean answers 422.
1046
1282
  */
1047
1283
  require_timecard_allocation?: boolean;
1048
1284
  };
@@ -1051,11 +1287,11 @@ export type ApprenticeshipProgramEmployerParameters = {
1051
1287
  */
1052
1288
  export type ApprenticeshipProgramEmployerUpdateParameters = {
1053
1289
  /**
1054
- * ID of the company authorized as an employer. A company-scoped key may name only its own company; a user-scoped key may name a company its user administers or manages. Omit to leave it unchanged.
1290
+ * ID of the company authorized as an employer. A company-scoped key may name only its own company; a user-scoped key may name a company its user administers or manages. Omit to leave it unchanged; supplied null, a blank string, or a wrong type answers 422.
1055
1291
  */
1056
1292
  company_id?: string;
1057
1293
  /**
1058
- * Whether this employer's apprentices must allocate apprenticeship hours from DSPTCH time cards rather than recording them standalone; omit to leave it unchanged.
1294
+ * Whether this employer's apprentices must allocate apprenticeship hours from DSPTCH time cards rather than recording them standalone; omit to leave it unchanged. Supplied null or a non-boolean answers 422.
1059
1295
  */
1060
1296
  require_timecard_allocation?: boolean;
1061
1297
  };
@@ -2272,7 +2508,7 @@ export type AssetsProductParameters = {
2272
2508
  */
2273
2509
  images_attributes?: Array<AssetsAttachmentParameters>;
2274
2510
  /**
2275
- * ID of the user this write is performed on behalf of, recorded for auditing. Required on create; must belong to your company.
2511
+ * ID of the user this write is performed on behalf of, recorded for auditing. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
2276
2512
  */
2277
2513
  performed_by_user_id: string;
2278
2514
  };
@@ -2780,28 +3016,28 @@ export type DepartmentResponseObject = {
2780
3016
  updated_at: string;
2781
3017
  };
2782
3018
  /**
2783
- * Request body for creating a department.
3019
+ * Request body for creating a department. Send fields in JSON; the department belongs to the company that owns the API key.
2784
3020
  */
2785
3021
  export type DepartmentParameters = {
2786
3022
  /**
2787
- * Department name; required and unique within the company.
3023
+ * Required department name, unique within the company. Omission answers 400; supplied null or a wrong type answers 422. Blank names fail model validation with 422.
2788
3024
  */
2789
3025
  name: string;
2790
3026
  /**
2791
- * Optional free-text description.
3027
+ * Optional free-text description. Null or a blank string leaves it unset; nonstring values other than null answer 422.
2792
3028
  */
2793
3029
  description?: string | null;
2794
3030
  };
2795
3031
  /**
2796
- * Request body for updating a department. Send only the fields to change.
3032
+ * Request body for updating a department. Send only fields to change in JSON; omitted fields remain unchanged.
2797
3033
  */
2798
3034
  export type DepartmentUpdateParameters = {
2799
3035
  /**
2800
- * Department name; unique within the company. Omit to leave it unchanged.
3036
+ * Department name, unique within the company; omit to leave it unchanged. Supplied null, a wrong type, or a blank name answers 422.
2801
3037
  */
2802
3038
  name?: string;
2803
3039
  /**
2804
- * Optional free-text description; null clears it.
3040
+ * Optional free-text description; omit to leave it unchanged, or send null or a blank string to clear it. Nonstring values other than null answer 422.
2805
3041
  */
2806
3042
  description?: string | null;
2807
3043
  };
@@ -2991,19 +3227,19 @@ export type AttestationConfigResponseObject = {
2991
3227
  updated_at: string;
2992
3228
  };
2993
3229
  /**
2994
- * Create an attestation config on a pay schedule; content and expected_response are required. The pay schedule is taken from the URL path.
3230
+ * 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.
2995
3231
  */
2996
3232
  export type AttestationConfigParameters = {
2997
3233
  /**
2998
- * The attestation question presented to the worker when a shift ends.
3234
+ * The attestation question presented to the worker when a shift ends. A blank question fails model validation with 422.
2999
3235
  */
3000
3236
  content: string;
3001
3237
  /**
3002
- * The answer expected for a compliant shift (true or false).
3238
+ * The answer expected for a compliant shift, as a JSON boolean.
3003
3239
  */
3004
3240
  expected_response: boolean;
3005
3241
  /**
3006
- * US state to scope this config to; omit to apply to every state.
3242
+ * US state to scope this config to; omit it or send null to apply to every state. A blank string answers 422.
3007
3243
  */
3008
3244
  us_state_id?: string | null;
3009
3245
  };
@@ -3629,7 +3865,7 @@ export type PwaTradeParameters = {
3629
3865
  */
3630
3866
  export type PwaTradeUpdateParameters = {
3631
3867
  /**
3632
- * New display name for the craft, e.g. "Electrician".
3868
+ * New display name for the craft, e.g. "Electrician"; omit to leave it unchanged. Supplied null, a wrong type, or a blank name answers 422.
3633
3869
  */
3634
3870
  name?: string;
3635
3871
  };
@@ -4278,20 +4514,20 @@ export type GroupResponseObject = {
4278
4514
  updated_at: string;
4279
4515
  };
4280
4516
  /**
4281
- * Request body for creating a group.
4517
+ * Request body for creating a group. Send fields in JSON; the group belongs to the company that owns the API key.
4282
4518
  */
4283
4519
  export type GroupParameters = {
4284
4520
  /**
4285
- * The group's display name; required and unique within the company.
4521
+ * Required display name, unique within the company. Omission answers 400; supplied null or a wrong type answers 422. Blank names fail model validation with 422.
4286
4522
  */
4287
4523
  name: string;
4288
4524
  };
4289
4525
  /**
4290
- * Request body for updating a group. Send only the fields to change.
4526
+ * Request body for updating a group. Send only fields to change in JSON; omitted fields remain unchanged.
4291
4527
  */
4292
4528
  export type GroupUpdateParameters = {
4293
4529
  /**
4294
- * The group's display name; unique within the company. Omit to leave it unchanged.
4530
+ * The group's display name, unique within the company; omit to leave it unchanged. Supplied null, a wrong type, or a blank name answers 422.
4295
4531
  */
4296
4532
  name?: string;
4297
4533
  };
@@ -5509,28 +5745,28 @@ export type PositionFunctionResponseObject = {
5509
5745
  updated_at: string;
5510
5746
  };
5511
5747
  /**
5512
- * Request body for creating a position function.
5748
+ * Request body for creating a position function. Send fields in JSON; the function belongs to the company that owns the API key.
5513
5749
  */
5514
5750
  export type PositionFunctionParameters = {
5515
5751
  /**
5516
- * The function name (e.g. "Electrician", "Foreman").
5752
+ * Required function name (e.g. "Electrician", "Foreman"), unique among the company's functions. Omission answers 400; supplied null or a wrong type answers 422. Blank values fail model validation with 422.
5517
5753
  */
5518
5754
  value: string;
5519
5755
  /**
5520
- * What the function covers.
5756
+ * Required description of what the function covers. Omission answers 400; supplied null or a wrong type answers 422. Blank descriptions fail model validation with 422.
5521
5757
  */
5522
5758
  description: string;
5523
5759
  };
5524
5760
  /**
5525
- * Request body for updating a position function. Send only the fields to change.
5761
+ * Request body for updating a position function. Send only fields to change in JSON; omitted fields remain unchanged.
5526
5762
  */
5527
5763
  export type PositionFunctionUpdateParameters = {
5528
5764
  /**
5529
- * The function name (e.g. "Electrician", "Foreman"). Omit to leave it unchanged.
5765
+ * The function name (e.g. "Electrician", "Foreman"), unique among the company's functions; omit to leave it unchanged. Supplied null, a wrong type, or a blank value answers 422.
5530
5766
  */
5531
5767
  value?: string;
5532
5768
  /**
5533
- * What the function covers. Omit to leave it unchanged.
5769
+ * What the function covers; omit to leave it unchanged. Supplied null, a wrong type, or a blank description answers 422.
5534
5770
  */
5535
5771
  description?: string;
5536
5772
  };
@@ -8843,6 +9079,78 @@ export type JobSiteUpdateParameters = {
8843
9079
  */
8844
9080
  feature_ids?: Array<string>;
8845
9081
  };
9082
+ /**
9083
+ * 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.
9084
+ */
9085
+ export type JobGoodFaithEffortExceptionResponseObject = {
9086
+ /**
9087
+ * Id of the exception.
9088
+ */
9089
+ id: string;
9090
+ /**
9091
+ * Id of the job this exception belongs to.
9092
+ */
9093
+ job_id: string;
9094
+ /**
9095
+ * True when no qualifying apprenticeship program existed in the area or occupation; false when a program was asked.
9096
+ */
9097
+ program_unavailable: boolean;
9098
+ /**
9099
+ * Number of apprentices requested from the program; null when absent.
9100
+ */
9101
+ num_apprentices_requested: number | null;
9102
+ /**
9103
+ * Number of apprentices the program provided; null when absent.
9104
+ */
9105
+ num_apprentices_provided: number | null;
9106
+ /**
9107
+ * Requested minutes of apprentice labor per apprentice; null when absent. Not converted to hours.
9108
+ */
9109
+ minutes_per_apprentice: number | null;
9110
+ /**
9111
+ * Calendar date the request was made; null when absent.
9112
+ */
9113
+ requested_on_date: string | null;
9114
+ /**
9115
+ * First calendar day of the requested coverage window; null when absent.
9116
+ */
9117
+ request_start_date: string | null;
9118
+ /**
9119
+ * Last calendar day of the requested coverage window; null when absent.
9120
+ */
9121
+ request_end_date: string | null;
9122
+ /**
9123
+ * Occupation named in the request; null when absent, including when no program existed.
9124
+ */
9125
+ occupation: string | null;
9126
+ /**
9127
+ * Name of the apprenticeship program that was asked; null when absent, including when no program existed.
9128
+ */
9129
+ program_name: string | null;
9130
+ /**
9131
+ * The program's reply — `no_response`, `denied`, or `partial`. Null when `program_unavailable` is true.
9132
+ */
9133
+ response: 'no_response' | 'denied' | 'partial' | null;
9134
+ /**
9135
+ * When the exception was created.
9136
+ */
9137
+ created_at: string;
9138
+ /**
9139
+ * When the exception was last updated.
9140
+ */
9141
+ updated_at: string;
9142
+ };
9143
+ /**
9144
+ * A page of a job's good-faith-effort exceptions, with pagination metadata and navigation links.
9145
+ */
9146
+ export type JobGoodFaithEffortExceptionsResponseObject = {
9147
+ meta: Meta;
9148
+ links: Links;
9149
+ /**
9150
+ * The page of good-faith-effort exceptions.
9151
+ */
9152
+ data: Array<JobGoodFaithEffortExceptionResponseObject>;
9153
+ };
8846
9154
  /**
8847
9155
  * 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`.
8848
9156
  */
@@ -8901,6 +9209,66 @@ export type JobFormAssignmentResponseObject = {
8901
9209
  remind_at: string;
8902
9210
  }>;
8903
9211
  };
9212
+ /**
9213
+ * A corrective payment recorded against a job's PWA obligations. Read-only. Does not include attestation files, pretty type, currency, or a Money amount.
9214
+ */
9215
+ export type JobCurePaymentResponseObject = {
9216
+ /**
9217
+ * Id of the cure payment.
9218
+ */
9219
+ id: string;
9220
+ /**
9221
+ * Id of the job this payment belongs to.
9222
+ */
9223
+ job_id: string;
9224
+ /**
9225
+ * Stored STI class name — `Pwa::CurePayments::Federal` or `Pwa::CurePayments::Regional`. The full class name, not a demodulized label.
9226
+ */
9227
+ type: 'Pwa::CurePayments::Federal' | 'Pwa::CurePayments::Regional';
9228
+ /**
9229
+ * Payment amount in cents as a decimal string (numeric(19,2)), for example `"150000.0"`. Not an integer, not dollars, and not rounded.
9230
+ */
9231
+ amount_cents: string;
9232
+ /**
9233
+ * Calendar date the payment was made.
9234
+ */
9235
+ paid_on_date: string;
9236
+ /**
9237
+ * First calendar day of the window this payment cures.
9238
+ */
9239
+ cures_from_date: string;
9240
+ /**
9241
+ * Last calendar day of the window this payment cures.
9242
+ */
9243
+ cures_to_date: string;
9244
+ /**
9245
+ * Optional notes; null when absent.
9246
+ */
9247
+ notes: string | null;
9248
+ /**
9249
+ * Id of the user who recorded the payment.
9250
+ */
9251
+ created_by_user_id: string;
9252
+ /**
9253
+ * When the payment was created.
9254
+ */
9255
+ created_at: string;
9256
+ /**
9257
+ * When the payment was last updated.
9258
+ */
9259
+ updated_at: string;
9260
+ };
9261
+ /**
9262
+ * A page of a job's PWA cure payments, with pagination metadata and navigation links.
9263
+ */
9264
+ export type JobCurePaymentsResponseObject = {
9265
+ meta: Meta;
9266
+ links: Links;
9267
+ /**
9268
+ * The page of cure payments.
9269
+ */
9270
+ data: Array<JobCurePaymentResponseObject>;
9271
+ };
8904
9272
  /**
8905
9273
  * 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.
8906
9274
  */
@@ -9595,7 +9963,7 @@ export type PositionParameters = {
9595
9963
  };
9596
9964
  };
9597
9965
  /**
9598
- * Parameters for creating a per-unit scope price on a job. `scope_kind` and `unit_price` are required.
9966
+ * 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.
9599
9967
  */
9600
9968
  export type ProductionJobScopePriceParameters = {
9601
9969
  /**
@@ -9603,11 +9971,11 @@ export type ProductionJobScopePriceParameters = {
9603
9971
  */
9604
9972
  scope_kind: string;
9605
9973
  /**
9606
- * Billing rate per unit, as a decimal string in the company's currency.
9974
+ * Billing rate per unit, as a decimal string in the company's currency. A JSON number answers 422.
9607
9975
  */
9608
9976
  unit_price: string;
9609
9977
  /**
9610
- * Contracted number of units expected for this scope on the job; null when no target is set.
9978
+ * Contracted number of units expected for this scope on the job, as an integer; null when no target is set.
9611
9979
  */
9612
9980
  contracted_count?: number | null;
9613
9981
  /**
@@ -9616,7 +9984,7 @@ export type ProductionJobScopePriceParameters = {
9616
9984
  unit_of_measure?: string;
9617
9985
  };
9618
9986
  /**
9619
- * 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.
9987
+ * 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.
9620
9988
  */
9621
9989
  export type ProductionJobScopePriceUpdateParameters = {
9622
9990
  /**
@@ -9624,11 +9992,11 @@ export type ProductionJobScopePriceUpdateParameters = {
9624
9992
  */
9625
9993
  scope_kind?: string;
9626
9994
  /**
9627
- * Billing rate per unit, as a decimal string in the company's currency.
9995
+ * Billing rate per unit, as a decimal string in the company's currency. A JSON number answers 422.
9628
9996
  */
9629
9997
  unit_price?: string;
9630
9998
  /**
9631
- * Contracted number of units expected for this scope on the job; null when no target is set.
9999
+ * Contracted number of units expected for this scope on the job, as an integer; null when no target is set.
9632
10000
  */
9633
10001
  contracted_count?: number | null;
9634
10002
  /**
@@ -9709,9 +10077,9 @@ export type ProductionCompletionBaseParameters = {
9709
10077
  */
9710
10078
  production_job_scope_price_id?: string;
9711
10079
  /**
9712
- * Company member filing the completion; required on create.
10080
+ * ID of the company member filing the completion. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
9713
10081
  */
9714
- performed_by_user_id?: string;
10082
+ performed_by_user_id: string;
9715
10083
  /**
9716
10084
  * Free-text notes on the completion; null when none.
9717
10085
  */
@@ -10030,44 +10398,44 @@ export type CertificationPackageResponseObject = {
10030
10398
  updated_at: string;
10031
10399
  };
10032
10400
  /**
10033
- * 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.
10401
+ * 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.
10034
10402
  */
10035
10403
  export type CertificationPackageParameters = {
10036
10404
  /**
10037
- * Name of the package. Unique within the company.
10405
+ * Required name of the package, unique within the company. Omission answers 400; supplied null or a wrong type answers 422. Blank names fail model validation with 422.
10038
10406
  */
10039
10407
  name: string;
10040
10408
  /**
10041
- * Optional free-text description of the package.
10409
+ * Optional free-text description of the package. Null clears it; an empty string is preserved. Nonstring values other than null answer 422.
10042
10410
  */
10043
10411
  description?: string | null;
10044
10412
  /**
10045
- * Array of certification ID strings; global and your company's own may be mixed. Providing this replaces the entire membership; an empty array clears it. Omit to create an empty package or preserve existing membership on update. Null is not accepted. An id that is neither a global certification nor one of your company's own answers 404, and nothing is written.
10413
+ * Unique nonblank certification ID strings; global and your company's own may be mixed. Providing this replaces the entire membership; an empty array clears it. Omit to create an empty package or preserve existing membership on update. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422. An unavailable certification answers 404. Refused requests preserve fields, membership, and filing-user stamps.
10046
10414
  */
10047
10415
  certification_ids?: Array<string>;
10048
10416
  /**
10049
- * Id of the company member recorded as creating or updating the package. Required, and must belong to the company that owns the API key.
10417
+ * Id of the company member recorded as creating or updating the package. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
10050
10418
  */
10051
10419
  performed_by_user_id: string;
10052
10420
  };
10053
10421
  /**
10054
- * Request body for updating a certification package — a named set of certifications a company requires together. Include only the fields to change.
10422
+ * 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.
10055
10423
  */
10056
10424
  export type CertificationPackageUpdateParameters = {
10057
10425
  /**
10058
- * Name of the package. Unique within the company; omit to leave it unchanged.
10426
+ * Name of the package, unique within the company; omit to leave it unchanged. Supplied null, a wrong type, or a blank name answers 422.
10059
10427
  */
10060
10428
  name?: string;
10061
10429
  /**
10062
- * Optional free-text description of the package; omit to leave it unchanged.
10430
+ * Optional free-text description of the package; omit to leave it unchanged, or send null to clear it. An empty string is preserved. Nonstring values other than null answer 422.
10063
10431
  */
10064
10432
  description?: string | null;
10065
10433
  /**
10066
- * Array of certification ID strings; global and your company's own may be mixed. Providing this replaces the entire membership; an empty array clears it. Omit to create an empty package or preserve existing membership on update. Null is not accepted. An id that is neither a global certification nor one of your company's own answers 404, and nothing is written.
10434
+ * Unique nonblank certification ID strings; global and your company's own may be mixed. Providing this replaces the entire membership; an empty array clears it. Omit to create an empty package or preserve existing membership on update. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422. An unavailable certification answers 404. Refused requests preserve fields, membership, and filing-user stamps.
10067
10435
  */
10068
10436
  certification_ids?: Array<string>;
10069
10437
  /**
10070
- * Id of the company member recorded as updating the package. Required, and must belong to the company that owns the API key.
10438
+ * Id of the company member recorded as creating or updating the package. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
10071
10439
  */
10072
10440
  performed_by_user_id: string;
10073
10441
  };
@@ -11243,45 +11611,317 @@ export type JobWageDeterminationScheduledTerminationParameters = {
11243
11611
  effective_date: string;
11244
11612
  };
11245
11613
  /**
11246
- * The adjustment applied when a rule matches — an addition to the wage or fringe rate.
11614
+ * 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.
11247
11615
  */
11248
- export type RateRuleEffect = {
11616
+ export type ProjectWageDeterminationResponseObject = ({
11617
+ type: 'Pwa::ProjectWageDeterminations::Federal';
11618
+ } & FederalProjectWageDeterminationResponseObject) | ({
11619
+ type: 'Pwa::ProjectWageDeterminations::Regional';
11620
+ } & RegionalProjectWageDeterminationResponseObject);
11621
+ /**
11622
+ * A Federal (Davis-Bacon) wage determination on a project.
11623
+ */
11624
+ export type FederalProjectWageDeterminationResponseObject = {
11249
11625
  /**
11250
- * Which base rate the effect adds to: `wage_increment` the hourly wage rate, `fringe_increment` the fringe rate.
11626
+ * Identifier of the determination, stable across every one of its temporal versions — it addresses the determination itself, not the version you happen to be reading, and is what the member and history paths take.
11251
11627
  */
11252
- type: 'wage_increment' | 'fringe_increment';
11628
+ id: string;
11253
11629
  /**
11254
- * Amount added to the base rate, in whole cents as a decimal string (e.g. "300" is $3.00). Zero or positive; fractional input is truncated.
11630
+ * ID of the project this wage determination applies to.
11255
11631
  */
11256
- amount_cents: string;
11257
- };
11258
- /**
11259
- * Restricts the rule to a time-of-day window.
11260
- */
11261
- export type RateRuleTimeRangeCondition = {
11632
+ project_id: string;
11262
11633
  /**
11263
- * Condition-type discriminator; its value (see the enum) selects this condition's shape.
11634
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the project or project PWA trades endpoint before assigning it here.
11264
11635
  */
11265
- type: 'time_range';
11636
+ pwa_trade_id: string;
11266
11637
  /**
11267
- * Start of the day window (inclusive), HH:MM (00:00–23:59). A window whose start is after its end wraps past midnight.
11638
+ * ID of the overtime package whose rules apply to this determination, or null when none is set. Not a versioned attribute: every version of the determination carries the same package, so this reads the same whatever point in time you ask for. The rules inside the package carry their own valid times.
11268
11639
  */
11269
- start_time: string;
11640
+ overtime_package_id: string | null;
11270
11641
  /**
11271
- * End of the day window (exclusive), HH:MM (00:00–23:59).
11642
+ * ID of the pay-rate rule package attached to this determination family, or null when none is set. The attachment is shared by every temporal version of the determination.
11272
11643
  */
11273
- end_time: string;
11274
- };
11275
- /**
11276
- * Restricts the rule to specific days of the week.
11277
- */
11278
- export type RateRuleDaysCondition = {
11644
+ pay_rates_rule_package_id: string | null;
11279
11645
  /**
11280
- * Condition-type discriminator; its value (see the enum) selects this condition's shape.
11646
+ * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
11281
11647
  */
11282
- type: 'days';
11648
+ type: 'Pwa::ProjectWageDeterminations::Federal';
11283
11649
  /**
11284
- * Days of the week the rule applies to, as integers 0 (Sunday)–6 (Saturday).
11650
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
11651
+ */
11652
+ labor_classification: string;
11653
+ /**
11654
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
11655
+ */
11656
+ hourly_rate_cents: string;
11657
+ /**
11658
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
11659
+ */
11660
+ fringe_rate_cents: string;
11661
+ /**
11662
+ * The DOL wage-classification code identifying this classification within its general decision (e.g. "LABO0324-014"); null when not recorded.
11663
+ */
11664
+ class_code: string | null;
11665
+ /**
11666
+ * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
11667
+ */
11668
+ construction_category: 'building' | 'heavy' | 'highway' | 'residential' | null;
11669
+ /**
11670
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
11671
+ */
11672
+ general_wage_determination: string | null;
11673
+ /**
11674
+ * Valid time — when this version of the determination took effect (ISO 8601); null when the version has no recorded start.
11675
+ */
11676
+ valid_from: string | null;
11677
+ /**
11678
+ * Valid time — when this version stopped applying (ISO 8601); null while it is still current.
11679
+ */
11680
+ valid_to: string | null;
11681
+ /**
11682
+ * When the record was created (ISO 8601).
11683
+ */
11684
+ created_at: string;
11685
+ /**
11686
+ * When the record was last updated (ISO 8601).
11687
+ */
11688
+ updated_at: string;
11689
+ };
11690
+ /**
11691
+ * A Regional (state prevailing-wage) wage determination on a project.
11692
+ */
11693
+ export type RegionalProjectWageDeterminationResponseObject = {
11694
+ /**
11695
+ * Identifier of the determination, stable across every one of its temporal versions — it addresses the determination itself, not the version you happen to be reading, and is what the member and history paths take.
11696
+ */
11697
+ id: string;
11698
+ /**
11699
+ * ID of the project this wage determination applies to.
11700
+ */
11701
+ project_id: string;
11702
+ /**
11703
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the project or project PWA trades endpoint before assigning it here.
11704
+ */
11705
+ pwa_trade_id: string;
11706
+ /**
11707
+ * ID of the overtime package whose rules apply to this determination, or null when none is set. Not a versioned attribute: every version of the determination carries the same package, so this reads the same whatever point in time you ask for. The rules inside the package carry their own valid times.
11708
+ */
11709
+ overtime_package_id: string | null;
11710
+ /**
11711
+ * ID of the pay-rate rule package attached to this determination family, or null when none is set. The attachment is shared by every temporal version of the determination.
11712
+ */
11713
+ pay_rates_rule_package_id: string | null;
11714
+ /**
11715
+ * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
11716
+ */
11717
+ type: 'Pwa::ProjectWageDeterminations::Regional';
11718
+ /**
11719
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
11720
+ */
11721
+ labor_classification: string;
11722
+ /**
11723
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
11724
+ */
11725
+ hourly_rate_cents: string;
11726
+ /**
11727
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
11728
+ */
11729
+ fringe_rate_cents: string;
11730
+ /**
11731
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
11732
+ */
11733
+ general_wage_determination: string | null;
11734
+ regional_fields: RegionalWageDeterminationFieldsResponse;
11735
+ /**
11736
+ * Valid time — when this version of the determination took effect (ISO 8601); null when the version has no recorded start.
11737
+ */
11738
+ valid_from: string | null;
11739
+ /**
11740
+ * Valid time — when this version stopped applying (ISO 8601); null while it is still current.
11741
+ */
11742
+ valid_to: string | null;
11743
+ /**
11744
+ * When the record was created (ISO 8601).
11745
+ */
11746
+ created_at: string;
11747
+ /**
11748
+ * When the record was last updated (ISO 8601).
11749
+ */
11750
+ updated_at: string;
11751
+ };
11752
+ /**
11753
+ * 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.
11754
+ */
11755
+ export type ProjectWageDeterminationParameters = ({
11756
+ type: 'Pwa::ProjectWageDeterminations::Federal';
11757
+ } & FederalProjectWageDeterminationParameters) | ({
11758
+ type: 'Pwa::ProjectWageDeterminations::Regional';
11759
+ } & RegionalProjectWageDeterminationParameters);
11760
+ /**
11761
+ * Parameters for creating a Federal (Davis-Bacon) wage determination on a project.
11762
+ */
11763
+ export type FederalProjectWageDeterminationParameters = {
11764
+ /**
11765
+ * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
11766
+ */
11767
+ type: 'Pwa::ProjectWageDeterminations::Federal';
11768
+ /**
11769
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
11770
+ */
11771
+ labor_classification: string;
11772
+ /**
11773
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the project or project PWA trades endpoint before assigning it here.
11774
+ */
11775
+ pwa_trade_id: string;
11776
+ /**
11777
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
11778
+ */
11779
+ hourly_rate_cents: string;
11780
+ /**
11781
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
11782
+ */
11783
+ fringe_rate_cents: string;
11784
+ /**
11785
+ * The DOL wage-classification code identifying this classification within its general decision (e.g. "LABO0324-014"); null when not recorded.
11786
+ */
11787
+ class_code?: string | null;
11788
+ /**
11789
+ * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
11790
+ */
11791
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
11792
+ /**
11793
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
11794
+ */
11795
+ general_wage_determination?: string | null;
11796
+ /**
11797
+ * Pay-rate rule package attached to the whole determination family. On create, omit it or send null to leave the family unattached. A package belonging to another company is refused.
11798
+ */
11799
+ pay_rates_rule_package_id?: string | null;
11800
+ };
11801
+ /**
11802
+ * Parameters for creating a Regional (state prevailing-wage) wage determination on a project.
11803
+ */
11804
+ export type RegionalProjectWageDeterminationParameters = {
11805
+ /**
11806
+ * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
11807
+ */
11808
+ type: 'Pwa::ProjectWageDeterminations::Regional';
11809
+ /**
11810
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
11811
+ */
11812
+ labor_classification: string;
11813
+ /**
11814
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the project or project PWA trades endpoint before assigning it here.
11815
+ */
11816
+ pwa_trade_id: string;
11817
+ /**
11818
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
11819
+ */
11820
+ hourly_rate_cents: string;
11821
+ /**
11822
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
11823
+ */
11824
+ fringe_rate_cents?: string;
11825
+ /**
11826
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
11827
+ */
11828
+ general_wage_determination?: string | null;
11829
+ /**
11830
+ * Overtime package whose rules govern overtime on work under this determination. This is not a versioned attribute: setting it points every version at that package, not only the one this request writes, and `effective_from` does not date it. Send null to detach, leaving the determination with no overtime package of its own. Omit the key to leave the current attachment alone. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
11831
+ */
11832
+ overtime_package_id?: string | null;
11833
+ /**
11834
+ * Pay-rate rule package attached to the whole determination family. On create, omit it or send null to leave the family unattached. A package belonging to another company is refused.
11835
+ */
11836
+ pay_rates_rule_package_id?: string | null;
11837
+ regional_fields?: RegionalWageDeterminationFields;
11838
+ };
11839
+ /**
11840
+ * 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.
11841
+ */
11842
+ export type ProjectWageDeterminationUpdateParameters = {
11843
+ /**
11844
+ * Where the edit starts applying, as a calendar date (`YYYY-MM-DD`). Every version from this date forward takes the new values; earlier versions are untouched. Optional; defaults to the start of the version valid now, which corrects that version in place.
11845
+ */
11846
+ effective_from?: string;
11847
+ /**
11848
+ * Overtime package whose rules govern overtime on work under this determination. This is not a versioned attribute: setting it points every version at that package, not only the one this request writes, and `effective_from` does not date it. Send null to detach, leaving the determination with no overtime package of its own. Omit the key to leave the current attachment alone. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
11849
+ */
11850
+ overtime_package_id?: string | null;
11851
+ /**
11852
+ * Pay-rate rule package attached to the whole determination family. On create, omit it or send null to leave the family unattached. On update, send null to detach it or omit the key to keep the current attachment. A package belonging to another company is refused.
11853
+ */
11854
+ pay_rates_rule_package_id?: string | null;
11855
+ /**
11856
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
11857
+ */
11858
+ labor_classification?: string;
11859
+ /**
11860
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the project or project PWA trades endpoint before assigning it here.
11861
+ */
11862
+ pwa_trade_id?: string;
11863
+ /**
11864
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
11865
+ */
11866
+ hourly_rate_cents?: string;
11867
+ /**
11868
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
11869
+ */
11870
+ fringe_rate_cents?: string;
11871
+ /**
11872
+ * The DOL wage-classification code identifying this classification within its general decision (e.g. "LABO0324-014"); null when not recorded.
11873
+ */
11874
+ class_code?: string | null;
11875
+ /**
11876
+ * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
11877
+ */
11878
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
11879
+ /**
11880
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
11881
+ */
11882
+ general_wage_determination?: string | null;
11883
+ regional_fields?: RegionalWageDeterminationFields;
11884
+ };
11885
+ /**
11886
+ * The adjustment applied when a rule matches — an addition to the wage or fringe rate.
11887
+ */
11888
+ export type RateRuleEffect = {
11889
+ /**
11890
+ * Which base rate the effect adds to: `wage_increment` the hourly wage rate, `fringe_increment` the fringe rate.
11891
+ */
11892
+ type: 'wage_increment' | 'fringe_increment';
11893
+ /**
11894
+ * Amount added to the base rate, in whole cents as a decimal string (e.g. "300" is $3.00). Zero or positive; fractional input is truncated.
11895
+ */
11896
+ amount_cents: string;
11897
+ };
11898
+ /**
11899
+ * Restricts the rule to a time-of-day window.
11900
+ */
11901
+ export type RateRuleTimeRangeCondition = {
11902
+ /**
11903
+ * Condition-type discriminator; its value (see the enum) selects this condition's shape.
11904
+ */
11905
+ type: 'time_range';
11906
+ /**
11907
+ * Start of the day window (inclusive), HH:MM (00:00–23:59). A window whose start is after its end wraps past midnight.
11908
+ */
11909
+ start_time: string;
11910
+ /**
11911
+ * End of the day window (exclusive), HH:MM (00:00–23:59).
11912
+ */
11913
+ end_time: string;
11914
+ };
11915
+ /**
11916
+ * Restricts the rule to specific days of the week.
11917
+ */
11918
+ export type RateRuleDaysCondition = {
11919
+ /**
11920
+ * Condition-type discriminator; its value (see the enum) selects this condition's shape.
11921
+ */
11922
+ type: 'days';
11923
+ /**
11924
+ * Days of the week the rule applies to, as integers 0 (Sunday)–6 (Saturday).
11285
11925
  */
11286
11926
  days: Array<number>;
11287
11927
  };
@@ -11955,7 +12595,7 @@ export type AssetsItemParameters = {
11955
12595
  */
11956
12596
  assets_sub_location_id?: string;
11957
12597
  /**
11958
- * ID of the user this write is performed on behalf of — recorded as the item's creator or updater and attributed to any placement. Required; must belong to your company.
12598
+ * ID of the user this write is performed on behalf of — recorded as the item's creator or updater and attributed to any placement. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
11959
12599
  */
11960
12600
  performed_by_user_id: string;
11961
12601
  };
@@ -12021,7 +12661,7 @@ export type AssetsItemUpdateParameters = {
12021
12661
  */
12022
12662
  images_attributes?: Array<AssetsAttachmentParameters>;
12023
12663
  /**
12024
- * ID of the user this update is performed on behalf of, recorded as updater. Required; must belong to your company.
12664
+ * ID of the user this update is performed on behalf of, recorded as updater. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
12025
12665
  */
12026
12666
  performed_by_user_id: string;
12027
12667
  };
@@ -12055,7 +12695,7 @@ export type AssetsVendorResponseObject = {
12055
12695
  updated_at: string;
12056
12696
  };
12057
12697
  /**
12058
- * Create or update a vendor. Only name is required.
12698
+ * Create a vendor. Only name is required; omitting it answers 400, and a null or wrong-typed value answers 422.
12059
12699
  */
12060
12700
  export type AssetsVendorParameters = {
12061
12701
  /**
@@ -12063,12 +12703,12 @@ export type AssetsVendorParameters = {
12063
12703
  */
12064
12704
  name: string;
12065
12705
  /**
12066
- * A signed_id from POST /api/v1/direct_uploads registered for assets.vendors. The logo must be a readable PNG, JPEG, GIF, or HEIC image, at most 10 MiB, 20,000 pixels per side, and 50 megapixels total. An invalid logo rejects the entire create or update; the existing vendor and logo remain unchanged.
12706
+ * A signed_id from POST /api/v1/direct_uploads registered for assets.vendors. The logo must be a readable PNG, JPEG, GIF, or HEIC image, at most 10 MiB, 20,000 pixels per side, and 50 megapixels total. An invalid logo rejects the entire create; null creates the vendor without a logo, and a blank string answers 422.
12067
12707
  */
12068
- logo_signed_id?: string;
12708
+ logo_signed_id?: string | null;
12069
12709
  };
12070
12710
  /**
12071
- * Update a vendor. All fields are optional — send only what changes.
12711
+ * Update a vendor. All fields are optional — send only what changes. A null name or a wrong-typed value answers 422.
12072
12712
  */
12073
12713
  export type AssetsVendorUpdateParameters = {
12074
12714
  /**
@@ -12076,9 +12716,9 @@ export type AssetsVendorUpdateParameters = {
12076
12716
  */
12077
12717
  name?: string;
12078
12718
  /**
12079
- * A signed_id from POST /api/v1/direct_uploads registered for assets.vendors. The logo must be a readable PNG, JPEG, GIF, or HEIC image, at most 10 MiB, 20,000 pixels per side, and 50 megapixels total. An invalid logo rejects the entire update; the existing vendor and logo remain unchanged.
12719
+ * A signed_id from POST /api/v1/direct_uploads registered for assets.vendors. The logo must be a readable PNG, JPEG, GIF, or HEIC image, at most 10 MiB, 20,000 pixels per side, and 50 megapixels total. An invalid logo rejects the entire update; the existing vendor and logo remain unchanged. Omit it to keep the current logo, or send null to remove it; a blank string answers 422.
12080
12720
  */
12081
- logo_signed_id?: string;
12721
+ logo_signed_id?: string | null;
12082
12722
  };
12083
12723
  /**
12084
12724
  * A location that holds a company's assets and inventory — a warehouse or yard, optionally backed by a site on the Atlas map.
@@ -12466,6 +13106,10 @@ export type AssetsDocumentParameters = {
12466
13106
  * Free-text description of the document; null when none.
12467
13107
  */
12468
13108
  description?: string | null;
13109
+ /**
13110
+ * ID of the user this document is attached on behalf of, recorded as its creator. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13111
+ */
13112
+ performed_by_user_id: string;
12469
13113
  };
12470
13114
  /**
12471
13115
  * 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.
@@ -12973,7 +13617,7 @@ export type AssetsServiceScheduleParameters = {
12973
13617
  */
12974
13618
  last_serviced_on?: string | null;
12975
13619
  /**
12976
- * ID of the user this write is performed on behalf of, recorded as the schedule's creator or updater. Required; must belong to your company.
13620
+ * ID of the user this write is performed on behalf of, recorded as the schedule's creator or updater. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
12977
13621
  */
12978
13622
  performed_by_user_id: string;
12979
13623
  };
@@ -13002,7 +13646,7 @@ export type AssetsServiceScheduleUpdateParameters = {
13002
13646
  */
13003
13647
  last_serviced_on?: string | null;
13004
13648
  /**
13005
- * ID of the user this update is performed on behalf of, recorded as the schedule's updater. Required; must belong to your company.
13649
+ * ID of the user this update is performed on behalf of, recorded as the schedule's updater. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13006
13650
  */
13007
13651
  performed_by_user_id: string;
13008
13652
  };
@@ -13076,7 +13720,7 @@ export type AssetsServiceEventParameters = {
13076
13720
  */
13077
13721
  assets_service_schedule_id?: string | null;
13078
13722
  /**
13079
- * ID of the user who performed the service. Required; must belong to your company.
13723
+ * ID of the user who performed the service. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13080
13724
  */
13081
13725
  performed_by_user_id: string;
13082
13726
  /**
@@ -13105,7 +13749,7 @@ export type AssetsServiceEventUpdateParameters = {
13105
13749
  */
13106
13750
  assets_service_schedule_id?: string | null;
13107
13751
  /**
13108
- * ID of the user this update is performed on behalf of. Required; must belong to your company.
13752
+ * ID of the user this update is performed on behalf of. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13109
13753
  */
13110
13754
  performed_by_user_id: string;
13111
13755
  /**
@@ -13175,7 +13819,7 @@ export type AssetsServiceScheduleTemplateParameters = {
13175
13819
  */
13176
13820
  interval_count: number;
13177
13821
  /**
13178
- * ID of the user this write is performed on behalf of, recorded as the template's creator or updater. Required; must belong to your company.
13822
+ * ID of the user this write is performed on behalf of, recorded as the template's creator or updater. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13179
13823
  */
13180
13824
  performed_by_user_id: string;
13181
13825
  };
@@ -13200,7 +13844,7 @@ export type AssetsServiceScheduleTemplateUpdateParameters = {
13200
13844
  */
13201
13845
  interval_count?: number;
13202
13846
  /**
13203
- * ID of the user this update is performed on behalf of, recorded as the template's updater. Required; must belong to your company.
13847
+ * ID of the user this update is performed on behalf of, recorded as the template's updater. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13204
13848
  */
13205
13849
  performed_by_user_id: string;
13206
13850
  };
@@ -13422,7 +14066,7 @@ export type AssetsTransferParameters = {
13422
14066
  */
13423
14067
  to_assets_sub_location_id?: string;
13424
14068
  /**
13425
- * ID of the user this move is performed on behalf of, recorded as its initiator. Required; must belong to your company.
14069
+ * ID of the user this move is performed on behalf of, recorded as its initiator. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13426
14070
  */
13427
14071
  performed_by_user_id: string;
13428
14072
  /**
@@ -13456,7 +14100,7 @@ export type AssetsRestockParameters = {
13456
14100
  */
13457
14101
  quantity: number;
13458
14102
  /**
13459
- * ID of the user this restock is performed on behalf of, recorded on the transaction. Required; must belong to your company.
14103
+ * ID of the user this restock is performed on behalf of, recorded on the transaction. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13460
14104
  */
13461
14105
  performed_by_user_id: string;
13462
14106
  };
@@ -13477,7 +14121,7 @@ export type AssetsAdjustmentParameters = {
13477
14121
  */
13478
14122
  new_quantity: number;
13479
14123
  /**
13480
- * ID of the user this adjustment is performed on behalf of, recorded on the transaction. Required; must belong to your company.
14124
+ * ID of the user this adjustment is performed on behalf of, recorded on the transaction. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13481
14125
  */
13482
14126
  performed_by_user_id: string;
13483
14127
  };
@@ -13486,7 +14130,7 @@ export type AssetsAdjustmentParameters = {
13486
14130
  */
13487
14131
  export type AssetsArchiveParameters = {
13488
14132
  /**
13489
- * ID of the user this archive or unarchive is performed on behalf of, recorded for auditing. Required; must belong to your company.
14133
+ * ID of the user this archive or unarchive is performed on behalf of, recorded for auditing. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
13490
14134
  */
13491
14135
  performed_by_user_id: string;
13492
14136
  };
@@ -15104,9 +15748,13 @@ export type GetCustodyErrors = {
15104
15748
  * Forbidden
15105
15749
  */
15106
15750
  403: Problem;
15107
- };
15108
- export type GetCustodyError = GetCustodyErrors[keyof GetCustodyErrors];
15109
- export type GetCustodyResponses = {
15751
+ /**
15752
+ * Not Found
15753
+ */
15754
+ 404: Problem;
15755
+ };
15756
+ export type GetCustodyError = GetCustodyErrors[keyof GetCustodyErrors];
15757
+ export type GetCustodyResponses = {
15110
15758
  /**
15111
15759
  * Success
15112
15760
  */
@@ -15159,6 +15807,10 @@ export type GetEventErrors = {
15159
15807
  * Forbidden
15160
15808
  */
15161
15809
  403: Problem;
15810
+ /**
15811
+ * Not Found
15812
+ */
15813
+ 404: Problem;
15162
15814
  };
15163
15815
  export type GetEventError = GetEventErrors[keyof GetEventErrors];
15164
15816
  export type GetEventResponses = {
@@ -15265,6 +15917,10 @@ export type DeleteFormAssignmentTriggerErrors = {
15265
15917
  * Forbidden
15266
15918
  */
15267
15919
  403: Problem;
15920
+ /**
15921
+ * Not Found
15922
+ */
15923
+ 404: Problem;
15268
15924
  };
15269
15925
  export type DeleteFormAssignmentTriggerError = DeleteFormAssignmentTriggerErrors[keyof DeleteFormAssignmentTriggerErrors];
15270
15926
  export type DeleteFormAssignmentTriggerResponses = {
@@ -15380,6 +16036,10 @@ export type GetInventoryErrors = {
15380
16036
  * Forbidden
15381
16037
  */
15382
16038
  403: Problem;
16039
+ /**
16040
+ * Not Found
16041
+ */
16042
+ 404: Problem;
15383
16043
  };
15384
16044
  export type GetInventoryError = GetInventoryErrors[keyof GetInventoryErrors];
15385
16045
  export type GetInventoryResponses = {
@@ -15467,6 +16127,10 @@ export type CreateItemData = {
15467
16127
  url: '/api/v1/assets/items';
15468
16128
  };
15469
16129
  export type CreateItemErrors = {
16130
+ /**
16131
+ * Bad Request (missing performed_by_user_id)
16132
+ */
16133
+ 400: Problem;
15470
16134
  /**
15471
16135
  * Forbidden
15472
16136
  */
@@ -15476,7 +16140,7 @@ export type CreateItemErrors = {
15476
16140
  */
15477
16141
  404: Problem;
15478
16142
  /**
15479
- * Unprocessable Content (missing required attribute)
16143
+ * Unprocessable Content
15480
16144
  */
15481
16145
  422: Problem;
15482
16146
  };
@@ -15501,6 +16165,10 @@ export type DeleteItemErrors = {
15501
16165
  * Forbidden
15502
16166
  */
15503
16167
  403: Problem;
16168
+ /**
16169
+ * Not Found
16170
+ */
16171
+ 404: Problem;
15504
16172
  };
15505
16173
  export type DeleteItemError = DeleteItemErrors[keyof DeleteItemErrors];
15506
16174
  export type DeleteItemResponses = {
@@ -15523,6 +16191,10 @@ export type GetItemErrors = {
15523
16191
  * Forbidden
15524
16192
  */
15525
16193
  403: Problem;
16194
+ /**
16195
+ * Not Found
16196
+ */
16197
+ 404: Problem;
15526
16198
  };
15527
16199
  export type GetItemError = GetItemErrors[keyof GetItemErrors];
15528
16200
  export type GetItemResponses = {
@@ -15549,6 +16221,10 @@ export type UpdateItemErrors = {
15549
16221
  * Forbidden
15550
16222
  */
15551
16223
  403: Problem;
16224
+ /**
16225
+ * Not Found
16226
+ */
16227
+ 404: Problem;
15552
16228
  /**
15553
16229
  * Unprocessable Content
15554
16230
  */
@@ -15579,10 +16255,18 @@ export type UnarchiveItemErrors = {
15579
16255
  * Forbidden
15580
16256
  */
15581
16257
  403: Problem;
16258
+ /**
16259
+ * Not Found
16260
+ */
16261
+ 404: Problem;
15582
16262
  /**
15583
16263
  * Conflict
15584
16264
  */
15585
16265
  409: Problem;
16266
+ /**
16267
+ * Unprocessable Content
16268
+ */
16269
+ 422: Problem;
15586
16270
  };
15587
16271
  export type UnarchiveItemError = UnarchiveItemErrors[keyof UnarchiveItemErrors];
15588
16272
  export type UnarchiveItemResponses = {
@@ -15609,6 +16293,14 @@ export type ArchiveItemErrors = {
15609
16293
  * Forbidden
15610
16294
  */
15611
16295
  403: Problem;
16296
+ /**
16297
+ * Not Found
16298
+ */
16299
+ 404: Problem;
16300
+ /**
16301
+ * Unprocessable Content
16302
+ */
16303
+ 422: Problem;
15612
16304
  };
15613
16305
  export type ArchiveItemError = ArchiveItemErrors[keyof ArchiveItemErrors];
15614
16306
  export type ArchiveItemResponses = {
@@ -15653,6 +16345,10 @@ export type ListServiceSchedulesErrors = {
15653
16345
  * Forbidden
15654
16346
  */
15655
16347
  403: Problem;
16348
+ /**
16349
+ * Not Found
16350
+ */
16351
+ 404: Problem;
15656
16352
  /**
15657
16353
  * Unprocessable Content
15658
16354
  */
@@ -15687,6 +16383,14 @@ export type CreateServiceScheduleErrors = {
15687
16383
  * Forbidden
15688
16384
  */
15689
16385
  403: Problem;
16386
+ /**
16387
+ * Not Found
16388
+ */
16389
+ 404: Problem;
16390
+ /**
16391
+ * Unprocessable Content
16392
+ */
16393
+ 422: Problem;
15690
16394
  };
15691
16395
  export type CreateServiceScheduleError = CreateServiceScheduleErrors[keyof CreateServiceScheduleErrors];
15692
16396
  export type CreateServiceScheduleResponses = {
@@ -15710,6 +16414,10 @@ export type DeleteServiceScheduleErrors = {
15710
16414
  * Forbidden
15711
16415
  */
15712
16416
  403: Problem;
16417
+ /**
16418
+ * Not Found
16419
+ */
16420
+ 404: Problem;
15713
16421
  };
15714
16422
  export type DeleteServiceScheduleError = DeleteServiceScheduleErrors[keyof DeleteServiceScheduleErrors];
15715
16423
  export type DeleteServiceScheduleResponses = {
@@ -15764,6 +16472,14 @@ export type UpdateServiceScheduleErrors = {
15764
16472
  * Forbidden
15765
16473
  */
15766
16474
  403: Problem;
16475
+ /**
16476
+ * Not Found
16477
+ */
16478
+ 404: Problem;
16479
+ /**
16480
+ * Unprocessable Content
16481
+ */
16482
+ 422: Problem;
15767
16483
  };
15768
16484
  export type UpdateServiceScheduleError = UpdateServiceScheduleErrors[keyof UpdateServiceScheduleErrors];
15769
16485
  export type UpdateServiceScheduleResponses = {
@@ -15815,6 +16531,10 @@ export type ListServiceEventsErrors = {
15815
16531
  * Forbidden
15816
16532
  */
15817
16533
  403: Problem;
16534
+ /**
16535
+ * Not Found
16536
+ */
16537
+ 404: Problem;
15818
16538
  /**
15819
16539
  * Unprocessable Content
15820
16540
  */
@@ -15849,6 +16569,14 @@ export type CreateServiceEventErrors = {
15849
16569
  * Forbidden
15850
16570
  */
15851
16571
  403: Problem;
16572
+ /**
16573
+ * Not Found
16574
+ */
16575
+ 404: Problem;
16576
+ /**
16577
+ * Unprocessable Content
16578
+ */
16579
+ 422: Problem;
15852
16580
  };
15853
16581
  export type CreateServiceEventError = CreateServiceEventErrors[keyof CreateServiceEventErrors];
15854
16582
  export type CreateServiceEventResponses = {
@@ -15872,6 +16600,10 @@ export type DeleteServiceEventErrors = {
15872
16600
  * Forbidden
15873
16601
  */
15874
16602
  403: Problem;
16603
+ /**
16604
+ * Not Found
16605
+ */
16606
+ 404: Problem;
15875
16607
  };
15876
16608
  export type DeleteServiceEventError = DeleteServiceEventErrors[keyof DeleteServiceEventErrors];
15877
16609
  export type DeleteServiceEventResponses = {
@@ -15926,6 +16658,14 @@ export type UpdateServiceEventErrors = {
15926
16658
  * Forbidden
15927
16659
  */
15928
16660
  403: Problem;
16661
+ /**
16662
+ * Not Found
16663
+ */
16664
+ 404: Problem;
16665
+ /**
16666
+ * Unprocessable Content
16667
+ */
16668
+ 422: Problem;
15929
16669
  };
15930
16670
  export type UpdateServiceEventError = UpdateServiceEventErrors[keyof UpdateServiceEventErrors];
15931
16671
  export type UpdateServiceEventResponses = {
@@ -16102,6 +16842,10 @@ export type ListDocumentsErrors = {
16102
16842
  * Forbidden
16103
16843
  */
16104
16844
  403: Problem;
16845
+ /**
16846
+ * Not Found
16847
+ */
16848
+ 404: Problem;
16105
16849
  };
16106
16850
  export type ListDocumentsError = ListDocumentsErrors[keyof ListDocumentsErrors];
16107
16851
  export type ListDocumentsResponses = {
@@ -16133,7 +16877,11 @@ export type CreateDocumentErrors = {
16133
16877
  */
16134
16878
  403: Problem;
16135
16879
  /**
16136
- * Unprocessable Content (missing file)
16880
+ * Not Found
16881
+ */
16882
+ 404: Problem;
16883
+ /**
16884
+ * Unprocessable Content
16137
16885
  */
16138
16886
  422: Problem;
16139
16887
  };
@@ -16159,6 +16907,10 @@ export type DeleteDocumentErrors = {
16159
16907
  * Forbidden
16160
16908
  */
16161
16909
  403: Problem;
16910
+ /**
16911
+ * Not Found
16912
+ */
16913
+ 404: Problem;
16162
16914
  };
16163
16915
  export type DeleteDocumentError = DeleteDocumentErrors[keyof DeleteDocumentErrors];
16164
16916
  export type DeleteDocumentResponses = {
@@ -16209,6 +16961,10 @@ export type UpdateDocumentErrors = {
16209
16961
  * Forbidden
16210
16962
  */
16211
16963
  403: Problem;
16964
+ /**
16965
+ * Not Found
16966
+ */
16967
+ 404: Problem;
16212
16968
  };
16213
16969
  export type UpdateDocumentError = UpdateDocumentErrors[keyof UpdateDocumentErrors];
16214
16970
  export type UpdateDocumentResponses = {
@@ -16232,6 +16988,10 @@ export type ListVersionsErrors = {
16232
16988
  * Forbidden
16233
16989
  */
16234
16990
  403: Problem;
16991
+ /**
16992
+ * Not Found
16993
+ */
16994
+ 404: Problem;
16235
16995
  };
16236
16996
  export type ListVersionsError = ListVersionsErrors[keyof ListVersionsErrors];
16237
16997
  export type ListVersionsResponses = {
@@ -16322,7 +17082,7 @@ export type CreateProductErrors = {
16322
17082
  */
16323
17083
  403: Problem;
16324
17084
  /**
16325
- * Unprocessable Content (missing required attribute)
17085
+ * Unprocessable Content
16326
17086
  */
16327
17087
  422: Problem;
16328
17088
  };
@@ -16347,6 +17107,10 @@ export type DeleteProductErrors = {
16347
17107
  * Forbidden
16348
17108
  */
16349
17109
  403: Problem;
17110
+ /**
17111
+ * Not Found
17112
+ */
17113
+ 404: Problem;
16350
17114
  /**
16351
17115
  * Unprocessable Content (product has items)
16352
17116
  */
@@ -16399,6 +17163,10 @@ export type UpdateProductErrors = {
16399
17163
  * Forbidden
16400
17164
  */
16401
17165
  403: Problem;
17166
+ /**
17167
+ * Not Found
17168
+ */
17169
+ 404: Problem;
16402
17170
  /**
16403
17171
  * Unprocessable Content
16404
17172
  */
@@ -16429,6 +17197,14 @@ export type UnarchiveProductErrors = {
16429
17197
  * Forbidden
16430
17198
  */
16431
17199
  403: Problem;
17200
+ /**
17201
+ * Not Found
17202
+ */
17203
+ 404: Problem;
17204
+ /**
17205
+ * Unprocessable Content
17206
+ */
17207
+ 422: Problem;
16432
17208
  };
16433
17209
  export type UnarchiveProductError = UnarchiveProductErrors[keyof UnarchiveProductErrors];
16434
17210
  export type UnarchiveProductResponses = {
@@ -16455,6 +17231,14 @@ export type ArchiveProductErrors = {
16455
17231
  * Forbidden
16456
17232
  */
16457
17233
  403: Problem;
17234
+ /**
17235
+ * Not Found
17236
+ */
17237
+ 404: Problem;
17238
+ /**
17239
+ * Unprocessable Content
17240
+ */
17241
+ 422: Problem;
16458
17242
  };
16459
17243
  export type ArchiveProductError = ArchiveProductErrors[keyof ArchiveProductErrors];
16460
17244
  export type ArchiveProductResponses = {
@@ -16473,6 +17257,10 @@ export type AdjustProductInventoryData = {
16473
17257
  url: '/api/v1/assets/products/{product_id}/adjustments';
16474
17258
  };
16475
17259
  export type AdjustProductInventoryErrors = {
17260
+ /**
17261
+ * Bad Request (missing performed_by_user_id)
17262
+ */
17263
+ 400: Problem;
16476
17264
  /**
16477
17265
  * Forbidden
16478
17266
  */
@@ -16481,6 +17269,10 @@ export type AdjustProductInventoryErrors = {
16481
17269
  * Not Found
16482
17270
  */
16483
17271
  404: Problem;
17272
+ /**
17273
+ * Unprocessable Content
17274
+ */
17275
+ 422: Problem;
16484
17276
  };
16485
17277
  export type AdjustProductInventoryError = AdjustProductInventoryErrors[keyof AdjustProductInventoryErrors];
16486
17278
  export type AdjustProductInventoryResponses = {
@@ -16499,6 +17291,10 @@ export type RestockProductData = {
16499
17291
  url: '/api/v1/assets/products/{product_id}/restocks';
16500
17292
  };
16501
17293
  export type RestockProductErrors = {
17294
+ /**
17295
+ * Bad Request (missing performed_by_user_id)
17296
+ */
17297
+ 400: Problem;
16502
17298
  /**
16503
17299
  * Forbidden
16504
17300
  */
@@ -16507,6 +17303,10 @@ export type RestockProductErrors = {
16507
17303
  * Not Found
16508
17304
  */
16509
17305
  404: Problem;
17306
+ /**
17307
+ * Unprocessable Content
17308
+ */
17309
+ 422: Problem;
16510
17310
  };
16511
17311
  export type RestockProductError = RestockProductErrors[keyof RestockProductErrors];
16512
17312
  export type RestockProductResponses = {
@@ -16547,6 +17347,10 @@ export type ListServiceScheduleTemplatesErrors = {
16547
17347
  * Forbidden
16548
17348
  */
16549
17349
  403: Problem;
17350
+ /**
17351
+ * Not Found
17352
+ */
17353
+ 404: Problem;
16550
17354
  };
16551
17355
  export type ListServiceScheduleTemplatesError = ListServiceScheduleTemplatesErrors[keyof ListServiceScheduleTemplatesErrors];
16552
17356
  export type ListServiceScheduleTemplatesResponses = {
@@ -16577,6 +17381,14 @@ export type CreateServiceScheduleTemplateErrors = {
16577
17381
  * Forbidden
16578
17382
  */
16579
17383
  403: Problem;
17384
+ /**
17385
+ * Not Found
17386
+ */
17387
+ 404: Problem;
17388
+ /**
17389
+ * Unprocessable Content
17390
+ */
17391
+ 422: Problem;
16580
17392
  };
16581
17393
  export type CreateServiceScheduleTemplateError = CreateServiceScheduleTemplateErrors[keyof CreateServiceScheduleTemplateErrors];
16582
17394
  export type CreateServiceScheduleTemplateResponses = {
@@ -16600,6 +17412,10 @@ export type DeleteServiceScheduleTemplateErrors = {
16600
17412
  * Forbidden
16601
17413
  */
16602
17414
  403: Problem;
17415
+ /**
17416
+ * Not Found
17417
+ */
17418
+ 404: Problem;
16603
17419
  };
16604
17420
  export type DeleteServiceScheduleTemplateError = DeleteServiceScheduleTemplateErrors[keyof DeleteServiceScheduleTemplateErrors];
16605
17421
  export type DeleteServiceScheduleTemplateResponses = {
@@ -16654,6 +17470,14 @@ export type UpdateServiceScheduleTemplateErrors = {
16654
17470
  * Forbidden
16655
17471
  */
16656
17472
  403: Problem;
17473
+ /**
17474
+ * Not Found
17475
+ */
17476
+ 404: Problem;
17477
+ /**
17478
+ * Unprocessable Content
17479
+ */
17480
+ 422: Problem;
16657
17481
  };
16658
17482
  export type UpdateServiceScheduleTemplateError = UpdateServiceScheduleTemplateErrors[keyof UpdateServiceScheduleTemplateErrors];
16659
17483
  export type UpdateServiceScheduleTemplateResponses = {
@@ -16670,7 +17494,7 @@ export type SeedServiceScheduleTemplateData = {
16670
17494
  */
16671
17495
  assets_item_ids?: Array<string>;
16672
17496
  /**
16673
- * Required
17497
+ * ID of the user this seed is performed on behalf of, recorded as creator and updater of the seeded schedules. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
16674
17498
  */
16675
17499
  performed_by_user_id: string;
16676
17500
  };
@@ -16691,7 +17515,11 @@ export type SeedServiceScheduleTemplateErrors = {
16691
17515
  */
16692
17516
  403: Problem;
16693
17517
  /**
16694
- * Unprocessable Content (malformed assets_item_ids)
17518
+ * Not Found
17519
+ */
17520
+ 404: Problem;
17521
+ /**
17522
+ * Unprocessable Content
16695
17523
  */
16696
17524
  422: Problem;
16697
17525
  };
@@ -16713,7 +17541,7 @@ export type SyncServiceScheduleTemplateData = {
16713
17541
  */
16714
17542
  schedule_ids?: Array<string>;
16715
17543
  /**
16716
- * Required
17544
+ * ID of the user this sync is performed on behalf of, recorded as updater of the synced schedules. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
16717
17545
  */
16718
17546
  performed_by_user_id: string;
16719
17547
  };
@@ -16734,7 +17562,11 @@ export type SyncServiceScheduleTemplateErrors = {
16734
17562
  */
16735
17563
  403: Problem;
16736
17564
  /**
16737
- * Unprocessable Content (malformed schedule_ids)
17565
+ * Not Found
17566
+ */
17567
+ 404: Problem;
17568
+ /**
17569
+ * Unprocessable Content
16738
17570
  */
16739
17571
  422: Problem;
16740
17572
  };
@@ -16839,6 +17671,10 @@ export type DeleteSiteErrors = {
16839
17671
  * Forbidden
16840
17672
  */
16841
17673
  403: Problem;
17674
+ /**
17675
+ * Not Found
17676
+ */
17677
+ 404: Problem;
16842
17678
  /**
16843
17679
  * Unprocessable Content (site has inventory)
16844
17680
  */
@@ -16865,6 +17701,10 @@ export type GetAssetsSiteErrors = {
16865
17701
  * Forbidden
16866
17702
  */
16867
17703
  403: Problem;
17704
+ /**
17705
+ * Not Found
17706
+ */
17707
+ 404: Problem;
16868
17708
  };
16869
17709
  export type GetAssetsSiteError = GetAssetsSiteErrors[keyof GetAssetsSiteErrors];
16870
17710
  export type GetAssetsSiteResponses = {
@@ -16891,6 +17731,10 @@ export type UpdateSiteErrors = {
16891
17731
  * Forbidden
16892
17732
  */
16893
17733
  403: Problem;
17734
+ /**
17735
+ * Not Found
17736
+ */
17737
+ 404: Problem;
16894
17738
  /**
16895
17739
  * Unprocessable Content
16896
17740
  */
@@ -17136,7 +17980,7 @@ export type CreateTransferData = {
17136
17980
  };
17137
17981
  export type CreateTransferErrors = {
17138
17982
  /**
17139
- * Bad Request
17983
+ * Bad Request (missing performed_by_user_id)
17140
17984
  */
17141
17985
  400: Problem;
17142
17986
  /**
@@ -17177,6 +18021,10 @@ export type GetTransferErrors = {
17177
18021
  * Forbidden
17178
18022
  */
17179
18023
  403: Problem;
18024
+ /**
18025
+ * Not Found
18026
+ */
18027
+ 404: Problem;
17180
18028
  };
17181
18029
  export type GetTransferError = GetTransferErrors[keyof GetTransferErrors];
17182
18030
  export type GetTransferResponses = {
@@ -17415,6 +18263,10 @@ export type GetFeatureErrors = {
17415
18263
  * Forbidden
17416
18264
  */
17417
18265
  403: Problem;
18266
+ /**
18267
+ * Not Found
18268
+ */
18269
+ 404: Problem;
17418
18270
  };
17419
18271
  export type GetFeatureError = GetFeatureErrors[keyof GetFeatureErrors];
17420
18272
  export type GetFeatureResponses = {
@@ -17494,6 +18346,10 @@ export type GetAtlasSiteErrors = {
17494
18346
  * Forbidden
17495
18347
  */
17496
18348
  403: Problem;
18349
+ /**
18350
+ * Not Found
18351
+ */
18352
+ 404: Problem;
17497
18353
  };
17498
18354
  export type GetAtlasSiteError = GetAtlasSiteErrors[keyof GetAtlasSiteErrors];
17499
18355
  export type GetAtlasSiteResponses = {
@@ -17589,7 +18445,7 @@ export type ListPackagesResponses = {
17589
18445
  };
17590
18446
  export type ListPackagesResponse = ListPackagesResponses[keyof ListPackagesResponses];
17591
18447
  export type CreatePackageData = {
17592
- body?: CertificationPackageParameters;
18448
+ body: CertificationPackageParameters;
17593
18449
  path?: never;
17594
18450
  query?: never;
17595
18451
  url: '/api/v1/certifications/packages';
@@ -17673,7 +18529,7 @@ export type GetPackageResponses = {
17673
18529
  };
17674
18530
  export type GetPackageResponse = GetPackageResponses[keyof GetPackageResponses];
17675
18531
  export type UpdatePackageData = {
17676
- body?: CertificationPackageUpdateParameters;
18532
+ body: CertificationPackageUpdateParameters;
17677
18533
  path: {
17678
18534
  id: string;
17679
18535
  };
@@ -18348,47 +19204,32 @@ export type UpdateCompanyProfileResponses = {
18348
19204
  200: CompanyResponseObject;
18349
19205
  };
18350
19206
  export type UpdateCompanyProfileResponse = UpdateCompanyProfileResponses[keyof UpdateCompanyProfileResponses];
18351
- export type ListChecksData = {
19207
+ export type ListAssessmentsData = {
18352
19208
  body?: never;
18353
19209
  path?: never;
18354
19210
  query?: {
18355
19211
  /**
18356
- * Filter by check status
19212
+ * Assessments of this candidate.
18357
19213
  */
18358
- 'filter[status]'?: 'passed' | 'failed' | 'not_applicable' | 'dismissed' | 'pending';
19214
+ 'filter[candidate_user_id]'?: string;
18359
19215
  /**
18360
- * Filter by check target type
19216
+ * Assessments pinned to this level.
18361
19217
  */
18362
- 'filter[type]'?: string;
18363
- 'filter[job_id]'?: string;
19218
+ 'filter[competencies_level_id]'?: string;
18364
19219
  /**
18365
- * `true` returns only checks not attached to a job, `false` only checks attached to one. Cannot be combined with `filter[job_id]`.
19220
+ * evidence_collection, submitted, in_review, or decided.
18366
19221
  */
18367
- 'filter[job_id][null]'?: boolean;
18368
- 'filter[project_id]'?: string;
18369
- 'filter[compliances_requirement_id]'?: string;
19222
+ 'filter[status]'?: 'evidence_collection' | 'submitted' | 'in_review' | 'decided';
18370
19223
  /**
18371
- * Only checks the given person is assigned to.
19224
+ * competent or not_yet_competent. Null until the assessment is decided.
18372
19225
  */
18373
- 'filter[assignee_user_id]'?: string;
18374
- 'filter[time_due][gte]'?: string;
18375
- 'filter[time_due][lte]'?: string;
19226
+ 'filter[outcome]'?: 'competent' | 'not_yet_competent' | null;
18376
19227
  filter?: string;
18377
19228
  'filter[unexpected]'?: string;
18378
- /**
18379
- * This pagination cursor corresponds to the cursor value found in the response in
18380
- * `meta.page.next_cursor`.
18381
- */
18382
- 'page[cursor]'?: string;
18383
- /**
18384
- * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
18385
- */
18386
- 'page[limit]'?: number;
18387
- page?: string;
18388
19229
  };
18389
- url: '/api/v1/compliance/checks';
19230
+ url: '/api/v1/competencies/assessments';
18390
19231
  };
18391
- export type ListChecksErrors = {
19232
+ export type ListAssessmentsErrors = {
18392
19233
  /**
18393
19234
  * Bad Request
18394
19235
  */
@@ -18397,23 +19238,308 @@ export type ListChecksErrors = {
18397
19238
  * Forbidden
18398
19239
  */
18399
19240
  403: Problem;
18400
- /**
18401
- * Unprocessable Content
18402
- */
18403
- 422: Problem;
18404
19241
  };
18405
- export type ListChecksError = ListChecksErrors[keyof ListChecksErrors];
18406
- export type ListChecksResponses = {
19242
+ export type ListAssessmentsError = ListAssessmentsErrors[keyof ListAssessmentsErrors];
19243
+ export type ListAssessmentsResponses = {
18407
19244
  /**
18408
19245
  * Success
18409
19246
  */
18410
19247
  200: {
18411
19248
  meta: Meta;
18412
19249
  links: Links;
18413
- data: Array<ComplianceCheckResponseObject>;
19250
+ data: Array<CompetencyAssessmentResponseObject>;
18414
19251
  };
18415
19252
  };
18416
- export type ListChecksResponse = ListChecksResponses[keyof ListChecksResponses];
19253
+ export type ListAssessmentsResponse = ListAssessmentsResponses[keyof ListAssessmentsResponses];
19254
+ export type GetAssessmentData = {
19255
+ body?: never;
19256
+ path: {
19257
+ id: string;
19258
+ };
19259
+ query?: never;
19260
+ url: '/api/v1/competencies/assessments/{id}';
19261
+ };
19262
+ export type GetAssessmentErrors = {
19263
+ /**
19264
+ * Forbidden
19265
+ */
19266
+ 403: Problem;
19267
+ /**
19268
+ * Not Found
19269
+ */
19270
+ 404: Problem;
19271
+ };
19272
+ export type GetAssessmentError = GetAssessmentErrors[keyof GetAssessmentErrors];
19273
+ export type GetAssessmentResponses = {
19274
+ /**
19275
+ * Success
19276
+ */
19277
+ 200: CompetencyAssessmentResponseObject;
19278
+ };
19279
+ export type GetAssessmentResponse = GetAssessmentResponses[keyof GetAssessmentResponses];
19280
+ export type ListAssessmentKeyActivitiesData = {
19281
+ body?: never;
19282
+ path: {
19283
+ assessment_id: string;
19284
+ };
19285
+ query?: {
19286
+ filter?: string;
19287
+ 'filter[unexpected]'?: string;
19288
+ };
19289
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities';
19290
+ };
19291
+ export type ListAssessmentKeyActivitiesErrors = {
19292
+ /**
19293
+ * Bad Request
19294
+ */
19295
+ 400: Problem;
19296
+ /**
19297
+ * Forbidden
19298
+ */
19299
+ 403: Problem;
19300
+ };
19301
+ export type ListAssessmentKeyActivitiesError = ListAssessmentKeyActivitiesErrors[keyof ListAssessmentKeyActivitiesErrors];
19302
+ export type ListAssessmentKeyActivitiesResponses = {
19303
+ /**
19304
+ * Candidate sees a decided review
19305
+ */
19306
+ 200: {
19307
+ meta: Meta;
19308
+ links: Links;
19309
+ data: Array<CompetencyAssessmentKeyActivityResponseObject>;
19310
+ };
19311
+ };
19312
+ export type ListAssessmentKeyActivitiesResponse = ListAssessmentKeyActivitiesResponses[keyof ListAssessmentKeyActivitiesResponses];
19313
+ export type GetAssessmentKeyActivityData = {
19314
+ body?: never;
19315
+ path: {
19316
+ assessment_id: string;
19317
+ id: string;
19318
+ };
19319
+ query?: never;
19320
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities/{id}';
19321
+ };
19322
+ export type GetAssessmentKeyActivityErrors = {
19323
+ /**
19324
+ * Forbidden
19325
+ */
19326
+ 403: Problem;
19327
+ };
19328
+ export type GetAssessmentKeyActivityError = GetAssessmentKeyActivityErrors[keyof GetAssessmentKeyActivityErrors];
19329
+ export type GetAssessmentKeyActivityResponses = {
19330
+ /**
19331
+ * Candidate sees a decided review
19332
+ */
19333
+ 200: CompetencyAssessmentKeyActivityResponseObject;
19334
+ };
19335
+ export type GetAssessmentKeyActivityResponse = GetAssessmentKeyActivityResponses[keyof GetAssessmentKeyActivityResponses];
19336
+ export type ListEvidenceItemsData = {
19337
+ body?: never;
19338
+ path: {
19339
+ assessment_id: string;
19340
+ key_activity_id: string;
19341
+ };
19342
+ query?: {
19343
+ /**
19344
+ * upload, form_submission, or certification.
19345
+ */
19346
+ 'filter[kind]'?: 'upload' | 'form_submission' | 'certification';
19347
+ filter?: string;
19348
+ 'filter[unexpected]'?: string;
19349
+ };
19350
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities/{key_activity_id}/evidence_items';
19351
+ };
19352
+ export type ListEvidenceItemsErrors = {
19353
+ /**
19354
+ * Bad Request
19355
+ */
19356
+ 400: Problem;
19357
+ /**
19358
+ * Forbidden
19359
+ */
19360
+ 403: Problem;
19361
+ };
19362
+ export type ListEvidenceItemsError = ListEvidenceItemsErrors[keyof ListEvidenceItemsErrors];
19363
+ export type ListEvidenceItemsResponses = {
19364
+ /**
19365
+ * Success
19366
+ */
19367
+ 200: {
19368
+ meta: Meta;
19369
+ links: Links;
19370
+ data: Array<CompetencyEvidenceItemResponseObject>;
19371
+ };
19372
+ };
19373
+ export type ListEvidenceItemsResponse = ListEvidenceItemsResponses[keyof ListEvidenceItemsResponses];
19374
+ export type GetEvidenceItemData = {
19375
+ body?: never;
19376
+ path: {
19377
+ assessment_id: string;
19378
+ key_activity_id: string;
19379
+ id: string;
19380
+ };
19381
+ query?: never;
19382
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities/{key_activity_id}/evidence_items/{id}';
19383
+ };
19384
+ export type GetEvidenceItemErrors = {
19385
+ /**
19386
+ * Forbidden
19387
+ */
19388
+ 403: Problem;
19389
+ };
19390
+ export type GetEvidenceItemError = GetEvidenceItemErrors[keyof GetEvidenceItemErrors];
19391
+ export type GetEvidenceItemResponses = {
19392
+ /**
19393
+ * Success
19394
+ */
19395
+ 200: CompetencyEvidenceItemResponseObject;
19396
+ };
19397
+ export type GetEvidenceItemResponse = GetEvidenceItemResponses[keyof GetEvidenceItemResponses];
19398
+ export type ListQualificationsData = {
19399
+ body?: never;
19400
+ path?: never;
19401
+ query?: {
19402
+ /**
19403
+ * Standings held by this candidate.
19404
+ */
19405
+ 'filter[candidate_user_id]'?: string;
19406
+ /**
19407
+ * Standings against this standard.
19408
+ */
19409
+ 'filter[competencies_standard_id]'?: string;
19410
+ /**
19411
+ * Standings at this tier.
19412
+ */
19413
+ 'filter[level_sort_order]'?: number;
19414
+ filter?: string;
19415
+ 'filter[unexpected]'?: string;
19416
+ /**
19417
+ * This pagination cursor corresponds to the cursor value found in the response in
19418
+ * `meta.page.next_cursor`.
19419
+ */
19420
+ 'page[cursor]'?: string;
19421
+ /**
19422
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
19423
+ */
19424
+ 'page[limit]'?: number;
19425
+ page?: string;
19426
+ };
19427
+ url: '/api/v1/competencies/qualifications';
19428
+ };
19429
+ export type ListQualificationsErrors = {
19430
+ /**
19431
+ * Bad Request
19432
+ */
19433
+ 400: Problem;
19434
+ /**
19435
+ * Forbidden
19436
+ */
19437
+ 403: Problem;
19438
+ };
19439
+ export type ListQualificationsError = ListQualificationsErrors[keyof ListQualificationsErrors];
19440
+ export type ListQualificationsResponses = {
19441
+ /**
19442
+ * Success
19443
+ */
19444
+ 200: {
19445
+ meta: Meta;
19446
+ links: Links;
19447
+ data: Array<CompetencyQualificationResponseObject>;
19448
+ };
19449
+ };
19450
+ export type ListQualificationsResponse = ListQualificationsResponses[keyof ListQualificationsResponses];
19451
+ export type GetQualificationData = {
19452
+ body?: never;
19453
+ path: {
19454
+ id: string;
19455
+ };
19456
+ query?: never;
19457
+ url: '/api/v1/competencies/qualifications/{id}';
19458
+ };
19459
+ export type GetQualificationErrors = {
19460
+ /**
19461
+ * Forbidden
19462
+ */
19463
+ 403: Problem;
19464
+ /**
19465
+ * Not Found
19466
+ */
19467
+ 404: Problem;
19468
+ };
19469
+ export type GetQualificationError = GetQualificationErrors[keyof GetQualificationErrors];
19470
+ export type GetQualificationResponses = {
19471
+ /**
19472
+ * Success
19473
+ */
19474
+ 200: CompetencyQualificationResponseObject;
19475
+ };
19476
+ export type GetQualificationResponse = GetQualificationResponses[keyof GetQualificationResponses];
19477
+ export type ListChecksData = {
19478
+ body?: never;
19479
+ path?: never;
19480
+ query?: {
19481
+ /**
19482
+ * Filter by check status
19483
+ */
19484
+ 'filter[status]'?: 'passed' | 'failed' | 'not_applicable' | 'dismissed' | 'pending';
19485
+ /**
19486
+ * Filter by check target type
19487
+ */
19488
+ 'filter[type]'?: string;
19489
+ 'filter[job_id]'?: string;
19490
+ /**
19491
+ * `true` returns only checks not attached to a job, `false` only checks attached to one. Cannot be combined with `filter[job_id]`.
19492
+ */
19493
+ 'filter[job_id][null]'?: boolean;
19494
+ 'filter[project_id]'?: string;
19495
+ 'filter[compliances_requirement_id]'?: string;
19496
+ /**
19497
+ * Only checks the given person is assigned to.
19498
+ */
19499
+ 'filter[assignee_user_id]'?: string;
19500
+ 'filter[time_due][gte]'?: string;
19501
+ 'filter[time_due][lte]'?: string;
19502
+ filter?: string;
19503
+ 'filter[unexpected]'?: string;
19504
+ /**
19505
+ * This pagination cursor corresponds to the cursor value found in the response in
19506
+ * `meta.page.next_cursor`.
19507
+ */
19508
+ 'page[cursor]'?: string;
19509
+ /**
19510
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
19511
+ */
19512
+ 'page[limit]'?: number;
19513
+ page?: string;
19514
+ };
19515
+ url: '/api/v1/compliance/checks';
19516
+ };
19517
+ export type ListChecksErrors = {
19518
+ /**
19519
+ * Bad Request
19520
+ */
19521
+ 400: Problem;
19522
+ /**
19523
+ * Forbidden
19524
+ */
19525
+ 403: Problem;
19526
+ /**
19527
+ * Unprocessable Content
19528
+ */
19529
+ 422: Problem;
19530
+ };
19531
+ export type ListChecksError = ListChecksErrors[keyof ListChecksErrors];
19532
+ export type ListChecksResponses = {
19533
+ /**
19534
+ * Success
19535
+ */
19536
+ 200: {
19537
+ meta: Meta;
19538
+ links: Links;
19539
+ data: Array<ComplianceCheckResponseObject>;
19540
+ };
19541
+ };
19542
+ export type ListChecksResponse = ListChecksResponses[keyof ListChecksResponses];
18417
19543
  export type GetCheckData = {
18418
19544
  body?: never;
18419
19545
  path: {
@@ -18958,6 +20084,10 @@ export type ListGroupUsersErrors = {
18958
20084
  * Forbidden
18959
20085
  */
18960
20086
  403: Problem;
20087
+ /**
20088
+ * Not Found
20089
+ */
20090
+ 404: Problem;
18961
20091
  };
18962
20092
  export type ListGroupUsersError = ListGroupUsersErrors[keyof ListGroupUsersErrors];
18963
20093
  export type ListGroupUsersResponses = {
@@ -18988,6 +20118,10 @@ export type AddUsersToGroupErrors = {
18988
20118
  * Forbidden
18989
20119
  */
18990
20120
  403: Problem;
20121
+ /**
20122
+ * Not Found
20123
+ */
20124
+ 404: Problem;
18991
20125
  /**
18992
20126
  * Unprocessable Content (malformed user_ids)
18993
20127
  */
@@ -19449,12 +20583,160 @@ export type GetJobScopePriceData = {
19449
20583
  body?: never;
19450
20584
  path: {
19451
20585
  job_id: string;
19452
- id: string;
20586
+ id: string;
20587
+ };
20588
+ query?: never;
20589
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}';
20590
+ };
20591
+ export type GetJobScopePriceErrors = {
20592
+ /**
20593
+ * Forbidden
20594
+ */
20595
+ 403: Problem;
20596
+ /**
20597
+ * Not Found
20598
+ */
20599
+ 404: Problem;
20600
+ };
20601
+ export type GetJobScopePriceError = GetJobScopePriceErrors[keyof GetJobScopePriceErrors];
20602
+ export type GetJobScopePriceResponses = {
20603
+ /**
20604
+ * Success
20605
+ */
20606
+ 200: ProductionJobScopePriceResponseObject;
20607
+ };
20608
+ export type GetJobScopePriceResponse = GetJobScopePriceResponses[keyof GetJobScopePriceResponses];
20609
+ export type UpdateJobScopePriceData = {
20610
+ body?: ProductionJobScopePriceUpdateParameters;
20611
+ path: {
20612
+ job_id: string;
20613
+ id: string;
20614
+ };
20615
+ query?: never;
20616
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}';
20617
+ };
20618
+ export type UpdateJobScopePriceErrors = {
20619
+ /**
20620
+ * Bad Request
20621
+ */
20622
+ 400: Problem;
20623
+ /**
20624
+ * Forbidden
20625
+ */
20626
+ 403: Problem;
20627
+ /**
20628
+ * Not Found
20629
+ */
20630
+ 404: Problem;
20631
+ /**
20632
+ * Unprocessable Content
20633
+ */
20634
+ 422: Problem;
20635
+ };
20636
+ export type UpdateJobScopePriceError = UpdateJobScopePriceErrors[keyof UpdateJobScopePriceErrors];
20637
+ export type UpdateJobScopePriceResponses = {
20638
+ /**
20639
+ * Success
20640
+ */
20641
+ 200: ProductionJobScopePriceResponseObject;
20642
+ };
20643
+ export type UpdateJobScopePriceResponse = UpdateJobScopePriceResponses[keyof UpdateJobScopePriceResponses];
20644
+ export type ListGoodFaithEffortExceptionsData = {
20645
+ body?: never;
20646
+ path: {
20647
+ job_id: string;
20648
+ };
20649
+ query?: {
20650
+ filter?: string;
20651
+ 'filter[unexpected]'?: string;
20652
+ /**
20653
+ * This pagination cursor corresponds to the cursor value found in the response in
20654
+ * `meta.page.next_cursor`.
20655
+ */
20656
+ 'page[cursor]'?: string;
20657
+ /**
20658
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
20659
+ */
20660
+ 'page[limit]'?: number;
20661
+ page?: string;
20662
+ };
20663
+ url: '/api/v1/jobs/{job_id}/pwa/apprenticeship/good_faith_effort_exceptions';
20664
+ };
20665
+ export type ListGoodFaithEffortExceptionsErrors = {
20666
+ /**
20667
+ * Bad Request
20668
+ */
20669
+ 400: Problem;
20670
+ /**
20671
+ * Forbidden
20672
+ */
20673
+ 403: Problem;
20674
+ /**
20675
+ * Not Found
20676
+ */
20677
+ 404: Problem;
20678
+ };
20679
+ export type ListGoodFaithEffortExceptionsError = ListGoodFaithEffortExceptionsErrors[keyof ListGoodFaithEffortExceptionsErrors];
20680
+ export type ListGoodFaithEffortExceptionsResponses = {
20681
+ /**
20682
+ * Success
20683
+ */
20684
+ 200: JobGoodFaithEffortExceptionsResponseObject;
20685
+ };
20686
+ export type ListGoodFaithEffortExceptionsResponse = ListGoodFaithEffortExceptionsResponses[keyof ListGoodFaithEffortExceptionsResponses];
20687
+ export type GetGoodFaithEffortExceptionData = {
20688
+ body?: never;
20689
+ path: {
20690
+ job_id: string;
20691
+ id: string;
20692
+ };
20693
+ query?: never;
20694
+ url: '/api/v1/jobs/{job_id}/pwa/apprenticeship/good_faith_effort_exceptions/{id}';
20695
+ };
20696
+ export type GetGoodFaithEffortExceptionErrors = {
20697
+ /**
20698
+ * Forbidden
20699
+ */
20700
+ 403: Problem;
20701
+ /**
20702
+ * Not Found
20703
+ */
20704
+ 404: Problem;
20705
+ };
20706
+ export type GetGoodFaithEffortExceptionError = GetGoodFaithEffortExceptionErrors[keyof GetGoodFaithEffortExceptionErrors];
20707
+ export type GetGoodFaithEffortExceptionResponses = {
20708
+ /**
20709
+ * Success
20710
+ */
20711
+ 200: JobGoodFaithEffortExceptionResponseObject;
20712
+ };
20713
+ export type GetGoodFaithEffortExceptionResponse = GetGoodFaithEffortExceptionResponses[keyof GetGoodFaithEffortExceptionResponses];
20714
+ export type ListCurePaymentsData = {
20715
+ body?: never;
20716
+ path: {
20717
+ job_id: string;
19453
20718
  };
19454
- query?: never;
19455
- url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}';
20719
+ query?: {
20720
+ filter?: string;
20721
+ 'filter[unexpected]'?: string;
20722
+ /**
20723
+ * This pagination cursor corresponds to the cursor value found in the response in
20724
+ * `meta.page.next_cursor`.
20725
+ */
20726
+ 'page[cursor]'?: string;
20727
+ /**
20728
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
20729
+ */
20730
+ 'page[limit]'?: number;
20731
+ page?: string;
20732
+ };
20733
+ url: '/api/v1/jobs/{job_id}/pwa/cure_payments';
19456
20734
  };
19457
- export type GetJobScopePriceErrors = {
20735
+ export type ListCurePaymentsErrors = {
20736
+ /**
20737
+ * Bad Request
20738
+ */
20739
+ 400: Problem;
19458
20740
  /**
19459
20741
  * Forbidden
19460
20742
  */
@@ -19464,28 +20746,24 @@ export type GetJobScopePriceErrors = {
19464
20746
  */
19465
20747
  404: Problem;
19466
20748
  };
19467
- export type GetJobScopePriceError = GetJobScopePriceErrors[keyof GetJobScopePriceErrors];
19468
- export type GetJobScopePriceResponses = {
20749
+ export type ListCurePaymentsError = ListCurePaymentsErrors[keyof ListCurePaymentsErrors];
20750
+ export type ListCurePaymentsResponses = {
19469
20751
  /**
19470
20752
  * Success
19471
20753
  */
19472
- 200: ProductionJobScopePriceResponseObject;
20754
+ 200: JobCurePaymentsResponseObject;
19473
20755
  };
19474
- export type GetJobScopePriceResponse = GetJobScopePriceResponses[keyof GetJobScopePriceResponses];
19475
- export type UpdateJobScopePriceData = {
19476
- body?: ProductionJobScopePriceUpdateParameters;
20756
+ export type ListCurePaymentsResponse = ListCurePaymentsResponses[keyof ListCurePaymentsResponses];
20757
+ export type GetCurePaymentData = {
20758
+ body?: never;
19477
20759
  path: {
19478
20760
  job_id: string;
19479
20761
  id: string;
19480
20762
  };
19481
20763
  query?: never;
19482
- url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}';
20764
+ url: '/api/v1/jobs/{job_id}/pwa/cure_payments/{id}';
19483
20765
  };
19484
- export type UpdateJobScopePriceErrors = {
19485
- /**
19486
- * Bad Request
19487
- */
19488
- 400: Problem;
20766
+ export type GetCurePaymentErrors = {
19489
20767
  /**
19490
20768
  * Forbidden
19491
20769
  */
@@ -19494,19 +20772,15 @@ export type UpdateJobScopePriceErrors = {
19494
20772
  * Not Found
19495
20773
  */
19496
20774
  404: Problem;
19497
- /**
19498
- * Unprocessable Content
19499
- */
19500
- 422: Problem;
19501
20775
  };
19502
- export type UpdateJobScopePriceError = UpdateJobScopePriceErrors[keyof UpdateJobScopePriceErrors];
19503
- export type UpdateJobScopePriceResponses = {
20776
+ export type GetCurePaymentError = GetCurePaymentErrors[keyof GetCurePaymentErrors];
20777
+ export type GetCurePaymentResponses = {
19504
20778
  /**
19505
20779
  * Success
19506
20780
  */
19507
- 200: ProductionJobScopePriceResponseObject;
20781
+ 200: JobCurePaymentResponseObject;
19508
20782
  };
19509
- export type UpdateJobScopePriceResponse = UpdateJobScopePriceResponses[keyof UpdateJobScopePriceResponses];
20783
+ export type GetCurePaymentResponse = GetCurePaymentResponses[keyof GetCurePaymentResponses];
19510
20784
  export type CreateJobTradeData = {
19511
20785
  body: PwaTradeParameters;
19512
20786
  path: {
@@ -20395,6 +21669,10 @@ export type ListJobsData = {
20395
21669
  * Use true for jobs without a department or false for jobs with a department. Use this instead of the department ID filter.
20396
21670
  */
20397
21671
  'filter[companies_department_id][null]'?: boolean;
21672
+ /**
21673
+ * Returns jobs this key created that were requested by this customer company
21674
+ */
21675
+ 'filter[requested_by_company_id]'?: string;
20398
21676
  /**
20399
21677
  * Returns jobs whose status is any of the given values. Comma-separate to match multiple (e.g. `ready,completed`). Accepts each concrete status (pending_provider, pending_schedule, pending_workers, ready, disputed, completed, cancelled) plus the aggregates `pending` (any pending_* status) and `active` (ready or disputed).
20400
21678
  */
@@ -20631,6 +21909,10 @@ export type ListSiteCheckInsErrors = {
20631
21909
  * Forbidden
20632
21910
  */
20633
21911
  403: Problem;
21912
+ /**
21913
+ * Not Found
21914
+ */
21915
+ 404: Problem;
20634
21916
  /**
20635
21917
  * Unprocessable Content
20636
21918
  */
@@ -25289,6 +26571,213 @@ export type UpdateProjectSiteResponses = {
25289
26571
  200: ProjectSiteResponseObject;
25290
26572
  };
25291
26573
  export type UpdateProjectSiteResponse = UpdateProjectSiteResponses[keyof UpdateProjectSiteResponses];
26574
+ export type ListProjectWageDeterminationsData = {
26575
+ body?: never;
26576
+ path: {
26577
+ project_id: string;
26578
+ };
26579
+ query?: {
26580
+ /**
26581
+ * Read the version valid at this point in time. Defaults to now.
26582
+ */
26583
+ 'as_of[valid]'?: string;
26584
+ as_of?: string;
26585
+ 'as_of[bogus_axis]'?: string;
26586
+ 'as_of[valid][gte]'?: string;
26587
+ 'as_of[transaction]'?: string;
26588
+ };
26589
+ url: '/api/v1/projects/{project_id}/wage_determinations';
26590
+ };
26591
+ export type ListProjectWageDeterminationsErrors = {
26592
+ /**
26593
+ * Bad Request
26594
+ */
26595
+ 400: Problem;
26596
+ /**
26597
+ * Forbidden
26598
+ */
26599
+ 403: Problem;
26600
+ /**
26601
+ * Unprocessable Content
26602
+ */
26603
+ 422: Problem;
26604
+ };
26605
+ export type ListProjectWageDeterminationsError = ListProjectWageDeterminationsErrors[keyof ListProjectWageDeterminationsErrors];
26606
+ export type ListProjectWageDeterminationsResponses = {
26607
+ /**
26608
+ * Success
26609
+ */
26610
+ 200: {
26611
+ meta: Meta;
26612
+ links: Links;
26613
+ data: Array<ProjectWageDeterminationResponseObject>;
26614
+ };
26615
+ };
26616
+ export type ListProjectWageDeterminationsResponse = ListProjectWageDeterminationsResponses[keyof ListProjectWageDeterminationsResponses];
26617
+ export type CreateProjectWageDeterminationData = {
26618
+ body: ProjectWageDeterminationParameters;
26619
+ path: {
26620
+ project_id: string;
26621
+ };
26622
+ query?: never;
26623
+ url: '/api/v1/projects/{project_id}/wage_determinations';
26624
+ };
26625
+ export type CreateProjectWageDeterminationErrors = {
26626
+ /**
26627
+ * Bad Request
26628
+ */
26629
+ 400: Problem;
26630
+ /**
26631
+ * Forbidden
26632
+ */
26633
+ 403: Problem;
26634
+ /**
26635
+ * Not Found
26636
+ */
26637
+ 404: Problem;
26638
+ /**
26639
+ * Unprocessable Content
26640
+ */
26641
+ 422: Problem;
26642
+ };
26643
+ export type CreateProjectWageDeterminationError = CreateProjectWageDeterminationErrors[keyof CreateProjectWageDeterminationErrors];
26644
+ export type CreateProjectWageDeterminationResponses = {
26645
+ /**
26646
+ * Created
26647
+ */
26648
+ 201: ProjectWageDeterminationResponseObject;
26649
+ };
26650
+ export type CreateProjectWageDeterminationResponse = CreateProjectWageDeterminationResponses[keyof CreateProjectWageDeterminationResponses];
26651
+ export type DeleteProjectWageDeterminationData = {
26652
+ body?: never;
26653
+ headers: {
26654
+ /**
26655
+ * Version validator this write is composed against — the `ETag` from a read of this wage determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
26656
+ */
26657
+ 'If-Match': string;
26658
+ };
26659
+ path: {
26660
+ project_id: string;
26661
+ id: string;
26662
+ };
26663
+ query?: never;
26664
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}';
26665
+ };
26666
+ export type DeleteProjectWageDeterminationErrors = {
26667
+ /**
26668
+ * Forbidden
26669
+ */
26670
+ 403: Problem;
26671
+ /**
26672
+ * Not Found
26673
+ */
26674
+ 404: Problem;
26675
+ /**
26676
+ * Precondition Failed
26677
+ */
26678
+ 412: Problem;
26679
+ /**
26680
+ * Unprocessable Content
26681
+ */
26682
+ 422: Problem;
26683
+ /**
26684
+ * Precondition Required
26685
+ */
26686
+ 428: Problem;
26687
+ };
26688
+ export type DeleteProjectWageDeterminationError = DeleteProjectWageDeterminationErrors[keyof DeleteProjectWageDeterminationErrors];
26689
+ export type DeleteProjectWageDeterminationResponses = {
26690
+ /**
26691
+ * Success
26692
+ */
26693
+ 200: ProjectWageDeterminationResponseObject;
26694
+ };
26695
+ export type DeleteProjectWageDeterminationResponse = DeleteProjectWageDeterminationResponses[keyof DeleteProjectWageDeterminationResponses];
26696
+ export type GetProjectWageDeterminationData = {
26697
+ body?: never;
26698
+ path: {
26699
+ project_id: string;
26700
+ id: string;
26701
+ };
26702
+ query?: {
26703
+ /**
26704
+ * Read the version valid at this point in time. Defaults to now.
26705
+ */
26706
+ 'as_of[valid]'?: string;
26707
+ };
26708
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}';
26709
+ };
26710
+ export type GetProjectWageDeterminationErrors = {
26711
+ /**
26712
+ * Forbidden
26713
+ */
26714
+ 403: Problem;
26715
+ /**
26716
+ * Not Found
26717
+ */
26718
+ 404: Problem;
26719
+ };
26720
+ export type GetProjectWageDeterminationError = GetProjectWageDeterminationErrors[keyof GetProjectWageDeterminationErrors];
26721
+ export type GetProjectWageDeterminationResponses = {
26722
+ /**
26723
+ * Success
26724
+ */
26725
+ 200: ProjectWageDeterminationResponseObject;
26726
+ };
26727
+ export type GetProjectWageDeterminationResponse = GetProjectWageDeterminationResponses[keyof GetProjectWageDeterminationResponses];
26728
+ export type UpdateProjectWageDeterminationData = {
26729
+ body: ProjectWageDeterminationUpdateParameters;
26730
+ headers: {
26731
+ /**
26732
+ * Version validator this write is composed against — the `ETag` from a read of this wage determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
26733
+ */
26734
+ 'If-Match': string;
26735
+ };
26736
+ path: {
26737
+ project_id: string;
26738
+ id: string;
26739
+ };
26740
+ query?: never;
26741
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}';
26742
+ };
26743
+ export type UpdateProjectWageDeterminationErrors = {
26744
+ /**
26745
+ * Bad Request
26746
+ */
26747
+ 400: Problem;
26748
+ /**
26749
+ * Forbidden
26750
+ */
26751
+ 403: Problem;
26752
+ /**
26753
+ * Not Found
26754
+ */
26755
+ 404: Problem;
26756
+ /**
26757
+ * Conflict
26758
+ */
26759
+ 409: Problem;
26760
+ /**
26761
+ * Precondition Failed
26762
+ */
26763
+ 412: Problem;
26764
+ /**
26765
+ * Unprocessable Content
26766
+ */
26767
+ 422: Problem;
26768
+ /**
26769
+ * Precondition Required
26770
+ */
26771
+ 428: Problem;
26772
+ };
26773
+ export type UpdateProjectWageDeterminationError = UpdateProjectWageDeterminationErrors[keyof UpdateProjectWageDeterminationErrors];
26774
+ export type UpdateProjectWageDeterminationResponses = {
26775
+ /**
26776
+ * Success
26777
+ */
26778
+ 200: ProjectWageDeterminationResponseObject;
26779
+ };
26780
+ export type UpdateProjectWageDeterminationResponse = UpdateProjectWageDeterminationResponses[keyof UpdateProjectWageDeterminationResponses];
25292
26781
  export type ListProjectsData = {
25293
26782
  body?: never;
25294
26783
  path?: never;
@@ -25523,6 +27012,10 @@ export type UpdateCompanyUserDetailErrors = {
25523
27012
  * Forbidden
25524
27013
  */
25525
27014
  403: Problem;
27015
+ /**
27016
+ * Not Found
27017
+ */
27018
+ 404: Problem;
25526
27019
  /**
25527
27020
  * Unprocessable Content
25528
27021
  */
@@ -26697,6 +28190,38 @@ export type ListTimeCardsData = {
26697
28190
  * Returns cards with a time entry on this job or a position on this job overlapping the card's pay period. A job with no matching cards returns an empty list.
26698
28191
  */
26699
28192
  'filter[job_id]'?: string;
28193
+ /**
28194
+ * `true` returns cards with federal PWA obligations; `false` returns cards without. Omitted leaves the list unchanged.
28195
+ */
28196
+ 'filter[federal_pwa]'?: boolean;
28197
+ /**
28198
+ * `true` returns cards with regional PWA obligations; `false` returns cards without. Omitted leaves the list unchanged.
28199
+ */
28200
+ 'filter[regional_pwa]'?: boolean;
28201
+ /**
28202
+ * `true` returns cards whose worker held an operative apprenticeship overlapping the card's pay period; `false` returns cards whose worker did not. Omitted leaves the list unchanged.
28203
+ */
28204
+ 'filter[apprentice]'?: boolean;
28205
+ /**
28206
+ * Returns cards whose overlapping employment at the pay schedule's company has any of the given types. Comma-separate to match multiple (e.g. `EMPLOYEE,CONTRACTOR`). Matches any employment version whose valid_time overlaps the card's pay period, so a mid-period type change can match both values. Omitted leaves the list unchanged.
28207
+ */
28208
+ 'filter[employment_type]'?: Array<'EMPLOYEE' | 'CONTRACTOR'>;
28209
+ /**
28210
+ * Returns cards whose overlapping employment at the pay schedule's company has any of the given compensation types. Comma-separate to match multiple (e.g. `hourly,salary`). Matches any employment version whose valid_time overlaps the card's pay period, so a mid-period type change can match both values. Omitted leaves the list unchanged.
28211
+ */
28212
+ 'filter[compensation_type]'?: Array<'hourly' | 'salary'>;
28213
+ /**
28214
+ * Returns cards whose overlapping employment at the pay schedule's company is in this department. An unknown id returns an empty list. Matches any employment version whose valid_time overlaps the card's pay period. Omitted leaves the list unchanged.
28215
+ */
28216
+ 'filter[department_id]'?: string;
28217
+ /**
28218
+ * Returns cards whose worker approval status is any of the given values. Comma-separate to match multiple (e.g. `PENDING,APPROVED`). `PENDING` includes cards with no worker approval row. Omitted leaves the list unchanged.
28219
+ */
28220
+ 'filter[worker_approval_status]'?: Array<'PENDING' | 'APPROVED' | 'DECLINED'>;
28221
+ /**
28222
+ * Returns cards whose manager approval status is any of the given values. Comma-separate to match multiple (e.g. `PENDING,APPROVED`). `PENDING` includes cards with no manager approval row. Omitted leaves the list unchanged.
28223
+ */
28224
+ 'filter[manager_approval_status]'?: Array<'PENDING' | 'APPROVED' | 'DECLINED'>;
26700
28225
  'filter[start_time][gte]'?: string;
26701
28226
  'filter[start_time][lte]'?: string;
26702
28227
  filter?: string;
@@ -27018,7 +28543,7 @@ export type ShiftTimecodeGenesisData = {
27018
28543
  };
27019
28544
  export type ShiftTimecodeGenesisErrors = {
27020
28545
  /**
27021
- * Bad Request (missing effective_date)
28546
+ * Bad Request
27022
28547
  */
27023
28548
  400: Problem;
27024
28549
  /**
@@ -27179,7 +28704,7 @@ export type ScheduleTimecodeChangeData = {
27179
28704
  };
27180
28705
  export type ScheduleTimecodeChangeErrors = {
27181
28706
  /**
27182
- * Bad Request (missing effective_date)
28707
+ * Bad Request
27183
28708
  */
27184
28709
  400: Problem;
27185
28710
  /**
@@ -27275,7 +28800,7 @@ export type ScheduleTimecodeTerminationData = {
27275
28800
  };
27276
28801
  export type ScheduleTimecodeTerminationErrors = {
27277
28802
  /**
27278
- * Bad Request (missing effective_date)
28803
+ * Bad Request
27279
28804
  */
27280
28805
  400: Problem;
27281
28806
  /**
@@ -27378,6 +28903,10 @@ export type CreateTimecodeData = {
27378
28903
  url: '/api/v1/timecodes';
27379
28904
  };
27380
28905
  export type CreateTimecodeErrors = {
28906
+ /**
28907
+ * Bad Request
28908
+ */
28909
+ 400: Problem;
27381
28910
  /**
27382
28911
  * Forbidden
27383
28912
  */
@@ -27451,6 +28980,10 @@ export type UpdateTimecodeData = {
27451
28980
  url: '/api/v1/timecodes/{id}';
27452
28981
  };
27453
28982
  export type UpdateTimecodeErrors = {
28983
+ /**
28984
+ * Bad Request
28985
+ */
28986
+ 400: Problem;
27454
28987
  /**
27455
28988
  * Forbidden
27456
28989
  */
@@ -28701,6 +30234,10 @@ export type ListUsersData = {
28701
30234
  * Return people whose currently valid employment at the credential company is in this department. A department with no members returns an empty list.
28702
30235
  */
28703
30236
  'filter[department_id]'?: string;
30237
+ /**
30238
+ * Returns people with at least one invite at this company whose status is any of the given values. Comma-separate to match multiple (e.g. `pending,declined`). An invite at another company never matches. Combines with other filters by AND, including `state` (default `active`).
30239
+ */
30240
+ 'filter[invite_status]'?: Array<'pending' | 'accepted' | 'declined' | 'revoked'>;
28704
30241
  /**
28705
30242
  * This pagination cursor corresponds to the cursor value found in the response in
28706
30243
  * `meta.page.next_cursor`.