@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.
- package/CHANGELOG.md +33 -0
- package/dist/gen/index.d.ts +2 -2
- package/dist/gen/index.js +1 -1
- package/dist/gen/sdk.gen.d.ts +238 -12
- package/dist/gen/sdk.gen.js +355 -12
- package/dist/gen/types.gen.d.ts +1700 -163
- package/dist/gen/zod.gen.d.ts +1453 -234
- package/dist/gen/zod.gen.js +555 -56
- package/package.json +1 -1
package/dist/gen/sdk.gen.js
CHANGED
|
@@ -2153,13 +2153,13 @@ export class CertificationPackages {
|
|
|
2153
2153
|
*
|
|
2154
2154
|
*/
|
|
2155
2155
|
static createPackage(options) {
|
|
2156
|
-
return (options
|
|
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
|
|
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
|
|
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
|
|
2508
|
-
*
|
|
2509
|
-
*
|
|
2510
|
-
*
|
|
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
|
|
3427
|
-
* `
|
|
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
|
|
3489
|
-
*
|
|
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
|
*
|