@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.
@@ -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
  *
@@ -6421,6 +6656,107 @@ export class ProjectSites {
6421
6656
  });
6422
6657
  }
6423
6658
  }
6659
+ export class ProjectWageDeterminations {
6660
+ /**
6661
+ * List project wage determinations
6662
+ *
6663
+ * **Required scope:**
6664
+ *
6665
+ * `projects.wage_determinations:read`
6666
+ *
6667
+ */
6668
+ static listProjectWageDeterminations(options) {
6669
+ return (options.client ?? client).get({
6670
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6671
+ url: '/api/v1/projects/{project_id}/wage_determinations',
6672
+ ...options
6673
+ });
6674
+ }
6675
+ /**
6676
+ * Create project wage determination
6677
+ *
6678
+ * **Required scope:**
6679
+ *
6680
+ * `projects.wage_determinations:create`
6681
+ *
6682
+ */
6683
+ static createProjectWageDetermination(options) {
6684
+ return (options.client ?? client).post({
6685
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6686
+ url: '/api/v1/projects/{project_id}/wage_determinations',
6687
+ ...options,
6688
+ headers: {
6689
+ 'Content-Type': 'application/json',
6690
+ ...options.headers
6691
+ }
6692
+ });
6693
+ }
6694
+ /**
6695
+ * Delete project wage determination
6696
+ *
6697
+ * **Required scope:**
6698
+ *
6699
+ * `projects.wage_determinations:delete`
6700
+ *
6701
+ */
6702
+ static deleteProjectWageDetermination(options) {
6703
+ return (options.client ?? client).delete({
6704
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6705
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}',
6706
+ ...options
6707
+ });
6708
+ }
6709
+ /**
6710
+ * Show project wage determination
6711
+ *
6712
+ * **Required scope:**
6713
+ *
6714
+ * `projects.wage_determinations:read`
6715
+ *
6716
+ */
6717
+ static getProjectWageDetermination(options) {
6718
+ return (options.client ?? client).get({
6719
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6720
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}',
6721
+ ...options
6722
+ });
6723
+ }
6724
+ /**
6725
+ * Update project wage determination
6726
+ *
6727
+ * Edit a determination's values from `effective_from` forward: every version
6728
+ * starting at or after that instant takes the new values, and earlier
6729
+ * versions are untouched. Where an edit starts inside a version and changes
6730
+ * its values, a boundary is created at `effective_from` so the change applies
6731
+ * only from there.
6732
+ *
6733
+ * This rewrites what the determination said, not when it existed — moving
6734
+ * either end of the timeline is `genesis` or `scheduled_termination`.
6735
+ *
6736
+ * `pwa_trade_id` is the exception: a trade regroups the whole determination
6737
+ * at once, so it moves every version rather than applying from
6738
+ * `effective_from`. Changes synchronize to linked job wage determinations.
6739
+ *
6740
+ * Conditional: send the determination's `ETag` as `If-Match`.
6741
+ *
6742
+ *
6743
+ * **Required scope:**
6744
+ *
6745
+ * `projects.wage_determinations:update`
6746
+ *
6747
+ */
6748
+ static updateProjectWageDetermination(options) {
6749
+ return (options.client ?? client).patch({
6750
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6751
+ url: '/api/v1/projects/{project_id}/wage_determinations/{id}',
6752
+ ...options,
6753
+ headers: {
6754
+ 'Content-Type': 'application/json',
6755
+ ...options.headers
6756
+ }
6757
+ });
6758
+ }
6759
+ }
6424
6760
  export class Projects {
6425
6761
  /**
6426
6762
  * List projects
@@ -6766,6 +7102,7 @@ export class Users {
6766
7102
  */
6767
7103
  static listUsers(options) {
6768
7104
  return (options?.client ?? client).get({
7105
+ querySerializer: { parameters: { 'filter[invite_status]': { array: { explode: false } } } },
6769
7106
  security: [{ name: 'X-Api-Key', type: 'apiKey' }],
6770
7107
  url: '/api/v1/users',
6771
7108
  ...options
@@ -7128,6 +7465,12 @@ export class TimeCards {
7128
7465
  */
7129
7466
  static listTimeCards(options) {
7130
7467
  return (options?.client ?? client).get({
7468
+ querySerializer: { parameters: {
7469
+ 'filter[employment_type]': { array: { explode: false } },
7470
+ 'filter[compensation_type]': { array: { explode: false } },
7471
+ 'filter[worker_approval_status]': { array: { explode: false } },
7472
+ 'filter[manager_approval_status]': { array: { explode: false } }
7473
+ } },
7131
7474
  security: [{ name: 'X-Api-Key', type: 'apiKey' }],
7132
7475
  url: '/api/v1/time_cards',
7133
7476
  ...options
@@ -7804,7 +8147,7 @@ export class AttestationConfigs {
7804
8147
  /**
7805
8148
  * Create attestation config
7806
8149
  *
7807
- * Creates a question on the addressed pay schedule. Undeclared body keys return 400 before the question is saved.
8150
+ * 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
8151
  *
7809
8152
  * **Required scope:**
7810
8153
  *