@dsptch-work/api-client 0.30.0 → 0.32.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.
@@ -2153,13 +2153,13 @@ export class CertificationPackages {
2153
2153
  *
2154
2154
  */
2155
2155
  static createPackage(options) {
2156
- return (options?.client ?? client).post({
2156
+ return (options.client ?? client).post({
2157
2157
  security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2158
2158
  url: '/api/v1/certifications/packages',
2159
2159
  ...options,
2160
2160
  headers: {
2161
2161
  'Content-Type': 'application/json',
2162
- ...options?.headers
2162
+ ...options.headers
2163
2163
  }
2164
2164
  });
2165
2165
  }
@@ -2441,7 +2441,8 @@ export class CompaniesDepartments {
2441
2441
  * Create department
2442
2442
  *
2443
2443
  * Creates a department in the key's company. The body accepts only `name` and
2444
- * `description`; undeclared keys return `400` without creating a department.
2444
+ * `description`; undeclared keys or a missing `name` return `400`, and a null
2445
+ * or wrong-typed `name` returns `422`, without creating a department.
2445
2446
  *
2446
2447
  *
2447
2448
  * **Required scope:**
@@ -2504,10 +2505,11 @@ export class CompaniesDepartments {
2504
2505
  /**
2505
2506
  * Update department
2506
2507
  *
2507
- * Updates only the supplied `name` and `description`. Undeclared body keys
2508
- * return `400` without changing the department. A missing or out-of-scope id
2509
- * returns `404`, matching GET and DELETE. A visible department still requires
2510
- * write authorization.
2508
+ * Updates only the supplied `name` and `description`; omitted fields keep their
2509
+ * values and a null `description` clears it. Undeclared body keys return `400`,
2510
+ * and a null or wrong-typed `name` returns `422`, without changing the
2511
+ * department. A missing or out-of-scope id returns `404`, matching GET and
2512
+ * DELETE. A visible department still requires write authorization.
2511
2513
  *
2512
2514
  *
2513
2515
  * **Required scope:**
@@ -2578,6 +2580,152 @@ export class Companies {
2578
2580
  });
2579
2581
  }
2580
2582
  }
2583
+ export class CompetenciesAssessments {
2584
+ /**
2585
+ * List competence assessments
2586
+ *
2587
+ * Lists assessments. competencies_standard_version_id is the revision
2588
+ * pinned when the assessment was opened, not whichever revision is active
2589
+ * now. outcome is null until the assessment is decided. Submit, claim,
2590
+ * return, and decide stay on the web.
2591
+ *
2592
+ *
2593
+ * **Required scope:**
2594
+ *
2595
+ * `competencies.assessments:read`
2596
+ *
2597
+ */
2598
+ static listAssessments(options) {
2599
+ return (options?.client ?? client).get({
2600
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2601
+ url: '/api/v1/competencies/assessments',
2602
+ ...options
2603
+ });
2604
+ }
2605
+ /**
2606
+ * Show competence assessment
2607
+ *
2608
+ * **Required scope:**
2609
+ *
2610
+ * `competencies.assessments:read`
2611
+ *
2612
+ */
2613
+ static getAssessment(options) {
2614
+ return (options.client ?? client).get({
2615
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2616
+ url: '/api/v1/competencies/assessments/{id}',
2617
+ ...options
2618
+ });
2619
+ }
2620
+ }
2621
+ export class CompetenciesAssessmentKeyActivities {
2622
+ /**
2623
+ * List assessment key activities
2624
+ *
2625
+ * Lists the task lines snapshotted onto an assessment. decision and
2626
+ * qa_feedback are omitted when the caller is the candidate and the
2627
+ * package is not yet decided.
2628
+ *
2629
+ *
2630
+ * **Required scope:**
2631
+ *
2632
+ * `competencies.assessments.key_activities:read`
2633
+ *
2634
+ */
2635
+ static listAssessmentKeyActivities(options) {
2636
+ return (options.client ?? client).get({
2637
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2638
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities',
2639
+ ...options
2640
+ });
2641
+ }
2642
+ /**
2643
+ * Show assessment key activity
2644
+ *
2645
+ * **Required scope:**
2646
+ *
2647
+ * `competencies.assessments.key_activities:read`
2648
+ *
2649
+ */
2650
+ static getAssessmentKeyActivity(options) {
2651
+ return (options.client ?? client).get({
2652
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2653
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities/{id}',
2654
+ ...options
2655
+ });
2656
+ }
2657
+ }
2658
+ export class CompetenciesEvidenceItems {
2659
+ /**
2660
+ * List competence evidence items
2661
+ *
2662
+ * Lists evidence on one assessment line. File bytes are not served and there is no download URL.
2663
+ *
2664
+ * **Required scope:**
2665
+ *
2666
+ * `competencies.assessments.key_activities.evidence_items:read`
2667
+ *
2668
+ */
2669
+ static listEvidenceItems(options) {
2670
+ return (options.client ?? client).get({
2671
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2672
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities/{key_activity_id}/evidence_items',
2673
+ ...options
2674
+ });
2675
+ }
2676
+ /**
2677
+ * Show competence evidence item
2678
+ *
2679
+ * **Required scope:**
2680
+ *
2681
+ * `competencies.assessments.key_activities.evidence_items:read`
2682
+ *
2683
+ */
2684
+ static getEvidenceItem(options) {
2685
+ return (options.client ?? client).get({
2686
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2687
+ url: '/api/v1/competencies/assessments/{assessment_id}/key_activities/{key_activity_id}/evidence_items/{id}',
2688
+ ...options
2689
+ });
2690
+ }
2691
+ }
2692
+ export class CompetenciesQualifications {
2693
+ /**
2694
+ * List competence qualifications
2695
+ *
2696
+ * Lists durable standings. level_sort_order is the tier the candidate
2697
+ * passed. The response has no level id, so a standing survives the next
2698
+ * revision. This resource is read-only.
2699
+ *
2700
+ *
2701
+ * **Required scope:**
2702
+ *
2703
+ * `competencies.qualifications:read`
2704
+ *
2705
+ */
2706
+ static listQualifications(options) {
2707
+ return (options?.client ?? client).get({
2708
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2709
+ url: '/api/v1/competencies/qualifications',
2710
+ ...options
2711
+ });
2712
+ }
2713
+ /**
2714
+ * Show competence qualification
2715
+ *
2716
+ * **Required scope:**
2717
+ *
2718
+ * `competencies.qualifications:read`
2719
+ *
2720
+ */
2721
+ static getQualification(options) {
2722
+ return (options.client ?? client).get({
2723
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
2724
+ url: '/api/v1/competencies/qualifications/{id}',
2725
+ ...options
2726
+ });
2727
+ }
2728
+ }
2581
2729
  export class ComplianceChecks {
2582
2730
  /**
2583
2731
  * List compliance checks
@@ -3102,6 +3250,87 @@ export class Jobs {
3102
3250
  }
3103
3251
  });
3104
3252
  }
3253
+ /**
3254
+ * List good-faith effort exceptions
3255
+ *
3256
+ * Returns the good-faith-effort exceptions nested on the named job. A missing
3257
+ * or out-of-scope job reads as not found. A visible job with no exceptions,
3258
+ * including one that does not track apprenticeship, returns an empty list.
3259
+ * Ordered by request_start_date descending then id. Read-only.
3260
+ *
3261
+ *
3262
+ * **Required scope:**
3263
+ *
3264
+ * `jobs.pwa.apprenticeship.good_faith_effort_exceptions:read`
3265
+ *
3266
+ */
3267
+ static listGoodFaithEffortExceptions(options) {
3268
+ return (options.client ?? client).get({
3269
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3270
+ url: '/api/v1/jobs/{job_id}/pwa/apprenticeship/good_faith_effort_exceptions',
3271
+ ...options
3272
+ });
3273
+ }
3274
+ /**
3275
+ * Get good-faith effort exception
3276
+ *
3277
+ * Returns one good-faith-effort exception nested on the named job. A missing,
3278
+ * misnested, or out-of-scope id reads as not found. Read-only.
3279
+ *
3280
+ *
3281
+ * **Required scope:**
3282
+ *
3283
+ * `jobs.pwa.apprenticeship.good_faith_effort_exceptions:read`
3284
+ *
3285
+ */
3286
+ static getGoodFaithEffortException(options) {
3287
+ return (options.client ?? client).get({
3288
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3289
+ url: '/api/v1/jobs/{job_id}/pwa/apprenticeship/good_faith_effort_exceptions/{id}',
3290
+ ...options
3291
+ });
3292
+ }
3293
+ /**
3294
+ * List cure payments
3295
+ *
3296
+ * Returns the PWA cure payments nested on the named job. A missing
3297
+ * or out-of-scope job reads as not found. A visible job with no
3298
+ * payments, including one that does not track federal PWA, returns
3299
+ * an empty list. Ordered by paid_on_date descending, then
3300
+ * created_at descending, then id. Read-only.
3301
+ *
3302
+ *
3303
+ * **Required scope:**
3304
+ *
3305
+ * `jobs.pwa.cure_payments:read`
3306
+ *
3307
+ */
3308
+ static listCurePayments(options) {
3309
+ return (options.client ?? client).get({
3310
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3311
+ url: '/api/v1/jobs/{job_id}/pwa/cure_payments',
3312
+ ...options
3313
+ });
3314
+ }
3315
+ /**
3316
+ * Get cure payment
3317
+ *
3318
+ * Returns one PWA cure payment nested on the named job. A missing,
3319
+ * misnested, or out-of-scope id reads as not found. Read-only.
3320
+ *
3321
+ *
3322
+ * **Required scope:**
3323
+ *
3324
+ * `jobs.pwa.cure_payments:read`
3325
+ *
3326
+ */
3327
+ static getCurePayment(options) {
3328
+ return (options.client ?? client).get({
3329
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3330
+ url: '/api/v1/jobs/{job_id}/pwa/cure_payments/{id}',
3331
+ ...options
3332
+ });
3333
+ }
3105
3334
  /**
3106
3335
  * List sites for job
3107
3336
  *
@@ -3423,8 +3652,9 @@ export class ProductionJobScopePrices {
3423
3652
  * Create production job scope price
3424
3653
  *
3425
3654
  * Creates a scope price on the URL's job. The body accepts only `scope_kind`,
3426
- * `unit_price`, `contracted_count`, and `unit_of_measure`. Undeclared keys return
3427
- * `400` without creating a price.
3655
+ * `unit_price`, `contracted_count`, and `unit_of_measure`. Undeclared keys or a
3656
+ * missing `scope_kind` or `unit_price` return `400`, and a null or wrong-typed
3657
+ * value returns `422`, without creating a price.
3428
3658
  *
3429
3659
  *
3430
3660
  * **Required scope:**
@@ -3485,8 +3715,9 @@ export class ProductionJobScopePrices {
3485
3715
  * Update production job scope price
3486
3716
  *
3487
3717
  * Updates only the supplied `scope_kind`, `unit_price`, `contracted_count`,
3488
- * and `unit_of_measure`. Undeclared body keys return `400` without changing
3489
- * the scope price. The job stays on the URL.
3718
+ * and `unit_of_measure`; a null `contracted_count` clears it. Undeclared body
3719
+ * keys return `400`, and a null or wrong-typed value elsewhere returns `422`,
3720
+ * without changing the scope price. The job stays on the URL.
3490
3721
  *
3491
3722
  *
3492
3723
  * **Required scope:**
@@ -3640,6 +3871,10 @@ export class PwaTrades {
3640
3871
  * To move determinations between crafts, re-point each one's `pwa_trade_id`
3641
3872
  * rather than renaming the craft they share.
3642
3873
  *
3874
+ * An omitted `name` keeps the craft's name. Undeclared body keys return `400`,
3875
+ * and a null, blank, or wrong-typed `name` returns `422`, without renaming the
3876
+ * craft.
3877
+ *
3643
3878
  *
3644
3879
  * **Required scope:**
3645
3880
  *
@@ -6308,6 +6543,87 @@ export class ProductionCompletions {
6308
6543
  });
6309
6544
  }
6310
6545
  }
6546
+ export class ProjectWageDeterminationRateRules {
6547
+ /**
6548
+ * List project wage determination rate rule history
6549
+ *
6550
+ * A rule's whole valid-time sequence, newest window first and cursor-paginated.
6551
+ * Each entry is a full rate rule carrying its own `valid_from` / `valid_to`
6552
+ * window and a `version_status` of `scheduled`, `current` or `historical`. An
6553
+ * entry carries the family key as `pay_rates_rule_id` and no `id` or `uid` of
6554
+ * its own — every version shares the family key, so versions are told apart by
6555
+ * their window coordinates.
6556
+ *
6557
+ * `corrections` is always empty here: a rule keeps no audit layer, so what a
6558
+ * version replaced was not recorded. The field is still returned, because the
6559
+ * timeline answers one shape across every temporal resource. `as_of[valid]` is
6560
+ * rejected, since pinning a point on the valid axis would collapse the sequence
6561
+ * this endpoint returns, and a rule records no transaction axis to read
6562
+ * `as_of[transaction]` against.
6563
+ *
6564
+ *
6565
+ * **Required scope:**
6566
+ *
6567
+ * `projects.pwa.wage_determinations.rate_rules.history:read`
6568
+ *
6569
+ */
6570
+ static listProjectWageDeterminationRateRuleHistory(options) {
6571
+ return (options.client ?? client).get({
6572
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6573
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/rate_rules/{rate_rule_id}/history',
6574
+ ...options
6575
+ });
6576
+ }
6577
+ /**
6578
+ * List project wage determination rate rules
6579
+ *
6580
+ * **Required scope:**
6581
+ *
6582
+ * `projects.pwa.wage_determinations.rate_rules:read`
6583
+ *
6584
+ */
6585
+ static listProjectWageDeterminationRateRules(options) {
6586
+ return (options.client ?? client).get({
6587
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6588
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/rate_rules',
6589
+ ...options
6590
+ });
6591
+ }
6592
+ /**
6593
+ * Create project wage determination rate rule
6594
+ *
6595
+ * **Required scope:**
6596
+ *
6597
+ * `projects.pwa.wage_determinations.rate_rules:create`
6598
+ *
6599
+ */
6600
+ static createProjectWageDeterminationRateRule(options) {
6601
+ return (options.client ?? client).post({
6602
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6603
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/rate_rules',
6604
+ ...options,
6605
+ headers: {
6606
+ 'Content-Type': 'application/json',
6607
+ ...options.headers
6608
+ }
6609
+ });
6610
+ }
6611
+ /**
6612
+ * Show project wage determination rate rule
6613
+ *
6614
+ * **Required scope:**
6615
+ *
6616
+ * `projects.pwa.wage_determinations.rate_rules:read`
6617
+ *
6618
+ */
6619
+ static getProjectWageDeterminationRateRule(options) {
6620
+ return (options.client ?? client).get({
6621
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6622
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/rate_rules/{id}',
6623
+ ...options
6624
+ });
6625
+ }
6626
+ }
6311
6627
  export class ProjectSites {
6312
6628
  /**
6313
6629
  * List project sites
@@ -6421,6 +6737,265 @@ export class ProjectSites {
6421
6737
  });
6422
6738
  }
6423
6739
  }
6740
+ export class ProjectWageDeterminations {
6741
+ /**
6742
+ * Shift project wage determination genesis
6743
+ *
6744
+ * Move when a determination's timeline begins. Shifting it earlier extends
6745
+ * the first version back; shifting it later drops the coverage before it,
6746
+ * and what that removes stops being readable through `as_of[valid]` and
6747
+ * `/history`.
6748
+ *
6749
+ * This changes *when* the determination existed rather than what it said —
6750
+ * no version's attributes are rewritten. Moving the other end of the timeline
6751
+ * is `scheduled_termination`, and changing a version's values is the
6752
+ * determination update.
6753
+ *
6754
+ * A shift to or past a scheduled termination is refused with `422`, since it
6755
+ * would leave no coverage at all.
6756
+ *
6757
+ * Conditional: send the determination's `ETag` as `If-Match`.
6758
+ *
6759
+ *
6760
+ * **Required scope:**
6761
+ *
6762
+ * `projects.wage_determinations.genesis:update`
6763
+ *
6764
+ */
6765
+ static shiftProjectWageDeterminationGenesis(options) {
6766
+ return (options.client ?? client).patch({
6767
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6768
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/genesis',
6769
+ ...options,
6770
+ headers: {
6771
+ 'Content-Type': 'application/json',
6772
+ ...options.headers
6773
+ }
6774
+ });
6775
+ }
6776
+ /**
6777
+ * List project wage determination version history
6778
+ *
6779
+ * A determination's whole valid-time sequence, newest window first and
6780
+ * cursor-paginated. Each entry is a full determination carrying its own
6781
+ * `valid_from` / `valid_to` window, a `version_status` of `scheduled`,
6782
+ * `current` or `historical`, and the `corrections` that version replaced —
6783
+ * each itself a full determination as previously recorded, so a client
6784
+ * that wants a field-level diff compares two of them. An entry carries
6785
+ * the family key as `project_wage_determination_id` and no `id` or `uid` of
6786
+ * its own — every version shares the family key, so versions are told
6787
+ * apart by their window coordinates. `as_of[valid]` is
6788
+ * rejected, since pinning a point on the valid axis would collapse the
6789
+ * sequence this endpoint returns, and a determination records no
6790
+ * transaction axis to read `as_of[transaction]` against.
6791
+ *
6792
+ *
6793
+ * **Required scope:**
6794
+ *
6795
+ * `projects.wage_determinations.history:read`
6796
+ *
6797
+ */
6798
+ static listProjectWageDeterminationHistory(options) {
6799
+ return (options.client ?? client).get({
6800
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6801
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/history',
6802
+ ...options
6803
+ });
6804
+ }
6805
+ /**
6806
+ * Cancel scheduled changes on project wage determination
6807
+ *
6808
+ * **Required scope:**
6809
+ *
6810
+ * `projects.wage_determinations.scheduled_changes:delete`
6811
+ *
6812
+ */
6813
+ static cancelProjectWageDeterminationScheduledChanges(options) {
6814
+ return (options.client ?? client).delete({
6815
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6816
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/scheduled_changes',
6817
+ ...options
6818
+ });
6819
+ }
6820
+ /**
6821
+ * List scheduled changes for project wage determination
6822
+ *
6823
+ * **Required scope:**
6824
+ *
6825
+ * `projects.wage_determinations.scheduled_changes:read`
6826
+ *
6827
+ */
6828
+ static listProjectWageDeterminationScheduledChanges(options) {
6829
+ return (options.client ?? client).get({
6830
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6831
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/scheduled_changes',
6832
+ ...options
6833
+ });
6834
+ }
6835
+ /**
6836
+ * Schedule effective-dated change on project wage determination
6837
+ *
6838
+ * **Required scope:**
6839
+ *
6840
+ * `projects.wage_determinations.scheduled_changes:create`
6841
+ *
6842
+ */
6843
+ static scheduleProjectWageDeterminationChange(options) {
6844
+ return (options.client ?? client).post({
6845
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6846
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/scheduled_changes',
6847
+ ...options,
6848
+ headers: {
6849
+ 'Content-Type': 'application/json',
6850
+ ...options.headers
6851
+ }
6852
+ });
6853
+ }
6854
+ /**
6855
+ * Cancel scheduled termination on project wage determination
6856
+ *
6857
+ * **Required scope:**
6858
+ *
6859
+ * `projects.wage_determinations.scheduled_terminations:delete`
6860
+ *
6861
+ */
6862
+ static cancelProjectWageDeterminationScheduledTermination(options) {
6863
+ return (options.client ?? client).delete({
6864
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6865
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/scheduled_termination',
6866
+ ...options
6867
+ });
6868
+ }
6869
+ /**
6870
+ * Schedule termination on project wage determination
6871
+ *
6872
+ * End a determination's valid coverage at `effective_date`: segments beyond
6873
+ * it are dropped and one spanning it is truncated, so the determination stops
6874
+ * being valid from that point on. Earlier versions are untouched and stay
6875
+ * readable through `as_of[valid]` and `/history`.
6876
+ *
6877
+ * Moving an end is cancel-then-schedule: cancel the standing termination,
6878
+ * then schedule the one you want.
6879
+ *
6880
+ * Conditional: send the determination's `ETag` as `If-Match`.
6881
+ *
6882
+ *
6883
+ * **Required scope:**
6884
+ *
6885
+ * `projects.wage_determinations.scheduled_terminations:create`
6886
+ *
6887
+ */
6888
+ static scheduleProjectWageDeterminationTermination(options) {
6889
+ return (options.client ?? client).post({
6890
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6891
+ url: '/api/v1/projects/{project_id}/wage_determinations/{wage_determination_id}/scheduled_termination',
6892
+ ...options,
6893
+ headers: {
6894
+ 'Content-Type': 'application/json',
6895
+ ...options.headers
6896
+ }
6897
+ });
6898
+ }
6899
+ /**
6900
+ * List project wage determinations
6901
+ *
6902
+ * **Required scope:**
6903
+ *
6904
+ * `projects.wage_determinations:read`
6905
+ *
6906
+ */
6907
+ static listProjectWageDeterminations(options) {
6908
+ return (options.client ?? client).get({
6909
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6910
+ url: '/api/v1/projects/{project_id}/wage_determinations',
6911
+ ...options
6912
+ });
6913
+ }
6914
+ /**
6915
+ * Create project wage determination
6916
+ *
6917
+ * **Required scope:**
6918
+ *
6919
+ * `projects.wage_determinations:create`
6920
+ *
6921
+ */
6922
+ static createProjectWageDetermination(options) {
6923
+ return (options.client ?? client).post({
6924
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6925
+ url: '/api/v1/projects/{project_id}/wage_determinations',
6926
+ ...options,
6927
+ headers: {
6928
+ 'Content-Type': 'application/json',
6929
+ ...options.headers
6930
+ }
6931
+ });
6932
+ }
6933
+ /**
6934
+ * Delete project wage determination
6935
+ *
6936
+ * **Required scope:**
6937
+ *
6938
+ * `projects.wage_determinations:delete`
6939
+ *
6940
+ */
6941
+ static deleteProjectWageDetermination(options) {
6942
+ return (options.client ?? client).delete({
6943
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6944
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}',
6945
+ ...options
6946
+ });
6947
+ }
6948
+ /**
6949
+ * Show project wage determination
6950
+ *
6951
+ * **Required scope:**
6952
+ *
6953
+ * `projects.wage_determinations:read`
6954
+ *
6955
+ */
6956
+ static getProjectWageDetermination(options) {
6957
+ return (options.client ?? client).get({
6958
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6959
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}',
6960
+ ...options
6961
+ });
6962
+ }
6963
+ /**
6964
+ * Update project wage determination
6965
+ *
6966
+ * Edit a determination's values from `effective_from` forward: every version
6967
+ * starting at or after that instant takes the new values, and earlier
6968
+ * versions are untouched. Where an edit starts inside a version and changes
6969
+ * its values, a boundary is created at `effective_from` so the change applies
6970
+ * only from there.
6971
+ *
6972
+ * This rewrites what the determination said, not when it existed — moving
6973
+ * either end of the timeline is `genesis` or `scheduled_termination`.
6974
+ *
6975
+ * `pwa_trade_id` is the exception: a trade regroups the whole determination
6976
+ * at once, so it moves every version rather than applying from
6977
+ * `effective_from`. Changes synchronize to linked job wage determinations.
6978
+ *
6979
+ * Conditional: send the determination's `ETag` as `If-Match`.
6980
+ *
6981
+ *
6982
+ * **Required scope:**
6983
+ *
6984
+ * `projects.wage_determinations:update`
6985
+ *
6986
+ */
6987
+ static updateProjectWageDetermination(options) {
6988
+ return (options.client ?? client).patch({
6989
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6990
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}',
6991
+ ...options,
6992
+ headers: {
6993
+ 'Content-Type': 'application/json',
6994
+ ...options.headers
6995
+ }
6996
+ });
6997
+ }
6998
+ }
6424
6999
  export class Projects {
6425
7000
  /**
6426
7001
  * List projects
@@ -6766,6 +7341,7 @@ export class Users {
6766
7341
  */
6767
7342
  static listUsers(options) {
6768
7343
  return (options?.client ?? client).get({
7344
+ querySerializer: { parameters: { 'filter[invite_status]': { array: { explode: false } } } },
6769
7345
  security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6770
7346
  url: '/api/v1/users',
6771
7347
  ...options
@@ -7128,6 +7704,12 @@ export class TimeCards {
7128
7704
  */
7129
7705
  static listTimeCards(options) {
7130
7706
  return (options?.client ?? client).get({
7707
+ querySerializer: { parameters: {
7708
+ 'filter[employment_type]': { array: { explode: false } },
7709
+ 'filter[compensation_type]': { array: { explode: false } },
7710
+ 'filter[worker_approval_status]': { array: { explode: false } },
7711
+ 'filter[manager_approval_status]': { array: { explode: false } }
7712
+ } },
7131
7713
  security: [{ name: 'X-Api-Key', type: 'apiKey' }],
7132
7714
  url: '/api/v1/time_cards',
7133
7715
  ...options
@@ -7804,7 +8386,7 @@ export class AttestationConfigs {
7804
8386
  /**
7805
8387
  * Create attestation config
7806
8388
  *
7807
- * Creates a question on the addressed pay schedule. Undeclared body keys return 400 before the question is saved.
8389
+ * Creates a question on the addressed pay schedule. Undeclared body keys or a missing `content` or `expected_response` return 400, and a null or wrong-typed value returns 422, before the question is saved.
7808
8390
  *
7809
8391
  * **Required scope:**
7810
8392
  *