@dsptch-work/api-client 0.25.0 → 0.26.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 +37 -0
- package/dist/gen/index.d.ts +2 -2
- package/dist/gen/index.js +1 -1
- package/dist/gen/sdk.gen.d.ts +413 -123
- package/dist/gen/sdk.gen.js +605 -183
- package/dist/gen/types.gen.d.ts +1022 -256
- package/dist/gen/zod.gen.d.ts +668 -163
- package/dist/gen/zod.gen.js +327 -77
- package/package.json +1 -1
package/dist/gen/sdk.gen.js
CHANGED
|
@@ -291,6 +291,27 @@ export class ApprenticeshipEmployers {
|
|
|
291
291
|
...options
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* Show apprenticeship employer
|
|
296
|
+
*
|
|
297
|
+
* Returns one employer roster row in a program the key's company sponsors
|
|
298
|
+
* or is enrolled in as an employer. The object matches the list, create,
|
|
299
|
+
* and update door. A missing, mismatched, or out-of-scope id reads as
|
|
300
|
+
* not found.
|
|
301
|
+
*
|
|
302
|
+
*
|
|
303
|
+
* **Required scope:**
|
|
304
|
+
*
|
|
305
|
+
* `apprenticeship.programs.employers:read`
|
|
306
|
+
*
|
|
307
|
+
*/
|
|
308
|
+
static getEmployer(options) {
|
|
309
|
+
return (options.client ?? client).get({
|
|
310
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
311
|
+
url: '/api/v1/apprenticeship/programs/{program_id}/employers/{id}',
|
|
312
|
+
...options
|
|
313
|
+
});
|
|
314
|
+
}
|
|
294
315
|
/**
|
|
295
316
|
* Update apprenticeship employer
|
|
296
317
|
*
|
|
@@ -440,6 +461,48 @@ export class ApprenticeshipWageSchedulePeriods {
|
|
|
440
461
|
}
|
|
441
462
|
});
|
|
442
463
|
}
|
|
464
|
+
/**
|
|
465
|
+
* Delete apprenticeship wage schedule period
|
|
466
|
+
*
|
|
467
|
+
* Deletes an unused non-opening period nested under the wage schedule in
|
|
468
|
+
* the path. Period 0 (the entry step) and a period with active apprentices
|
|
469
|
+
* are refused with a `422`. An unused later period returns `204`. Deletes
|
|
470
|
+
* are sponsor-only; an enrolled employer is `403`. A missing, out-of-scope,
|
|
471
|
+
* or mismatched schedule/period pair is `404`.
|
|
472
|
+
*
|
|
473
|
+
*
|
|
474
|
+
* **Required scope:**
|
|
475
|
+
*
|
|
476
|
+
* `apprenticeship.wage_schedules.periods:delete`
|
|
477
|
+
*
|
|
478
|
+
*/
|
|
479
|
+
static deletePeriod(options) {
|
|
480
|
+
return (options.client ?? client).delete({
|
|
481
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
482
|
+
url: '/api/v1/apprenticeship/wage_schedules/{wage_schedule_id}/periods/{id}',
|
|
483
|
+
...options
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Show apprenticeship wage schedule period
|
|
488
|
+
*
|
|
489
|
+
* Returns one period nested under the wage schedule in the path. The
|
|
490
|
+
* object matches the list, create, and update door. A missing, out-of-scope,
|
|
491
|
+
* or mismatched schedule/period pair is not found.
|
|
492
|
+
*
|
|
493
|
+
*
|
|
494
|
+
* **Required scope:**
|
|
495
|
+
*
|
|
496
|
+
* `apprenticeship.wage_schedules.periods:read`
|
|
497
|
+
*
|
|
498
|
+
*/
|
|
499
|
+
static getPeriod(options) {
|
|
500
|
+
return (options.client ?? client).get({
|
|
501
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
502
|
+
url: '/api/v1/apprenticeship/wage_schedules/{wage_schedule_id}/periods/{id}',
|
|
503
|
+
...options
|
|
504
|
+
});
|
|
505
|
+
}
|
|
443
506
|
/**
|
|
444
507
|
* Update apprenticeship wage schedule period
|
|
445
508
|
*
|
|
@@ -2127,6 +2190,44 @@ export class CertificationPackages {
|
|
|
2127
2190
|
}
|
|
2128
2191
|
}
|
|
2129
2192
|
export class UserCertifications {
|
|
2193
|
+
/**
|
|
2194
|
+
* Revoke user certification approval
|
|
2195
|
+
*
|
|
2196
|
+
* Revokes the approval on a certification held by a worker.
|
|
2197
|
+
*
|
|
2198
|
+
* **Required scope:**
|
|
2199
|
+
*
|
|
2200
|
+
* `certifications.user_certifications.approvals:delete`
|
|
2201
|
+
*
|
|
2202
|
+
*/
|
|
2203
|
+
static revokeUserCertificationApproval(options) {
|
|
2204
|
+
return (options.client ?? client).delete({
|
|
2205
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
2206
|
+
url: '/api/v1/certifications/user_certifications/{user_certification_id}/approval',
|
|
2207
|
+
...options
|
|
2208
|
+
});
|
|
2209
|
+
}
|
|
2210
|
+
/**
|
|
2211
|
+
* Approve user certification
|
|
2212
|
+
*
|
|
2213
|
+
* Records who approved a certification held by a worker and stamps when. A user key approves in its own user's name; a company key names the approver. The approver must be an admin, manager, or safety manager at a company that employs the holder, and cannot be the holder.
|
|
2214
|
+
*
|
|
2215
|
+
* **Required scope:**
|
|
2216
|
+
*
|
|
2217
|
+
* `certifications.user_certifications.approvals:create`
|
|
2218
|
+
*
|
|
2219
|
+
*/
|
|
2220
|
+
static approveUserCertification(options) {
|
|
2221
|
+
return (options.client ?? client).post({
|
|
2222
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
2223
|
+
url: '/api/v1/certifications/user_certifications/{user_certification_id}/approval',
|
|
2224
|
+
...options,
|
|
2225
|
+
headers: {
|
|
2226
|
+
'Content-Type': 'application/json',
|
|
2227
|
+
...options.headers
|
|
2228
|
+
}
|
|
2229
|
+
});
|
|
2230
|
+
}
|
|
2130
2231
|
/**
|
|
2131
2232
|
* List user certifications
|
|
2132
2233
|
*
|
|
@@ -2641,6 +2742,21 @@ export class Forms {
|
|
|
2641
2742
|
...options
|
|
2642
2743
|
});
|
|
2643
2744
|
}
|
|
2745
|
+
/**
|
|
2746
|
+
* Show form definition
|
|
2747
|
+
*
|
|
2748
|
+
* **Required scope:**
|
|
2749
|
+
*
|
|
2750
|
+
* `form_definitions:read`
|
|
2751
|
+
*
|
|
2752
|
+
*/
|
|
2753
|
+
static getFormDefinition(options) {
|
|
2754
|
+
return (options.client ?? client).get({
|
|
2755
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
2756
|
+
url: '/api/v1/form_definitions/{id}',
|
|
2757
|
+
...options
|
|
2758
|
+
});
|
|
2759
|
+
}
|
|
2644
2760
|
/**
|
|
2645
2761
|
* List form submission versions
|
|
2646
2762
|
*
|
|
@@ -2865,6 +2981,14 @@ export class ProductionJobScopePrices {
|
|
|
2865
2981
|
/**
|
|
2866
2982
|
* List production job scope prices
|
|
2867
2983
|
*
|
|
2984
|
+
* Scope prices on a production-tracked job. Company keys,
|
|
2985
|
+
* and user keys held by an administrator, manager, safety
|
|
2986
|
+
* manager, or field lead of the company that owns the job,
|
|
2987
|
+
* receive `unit_price` and `contracted_count`. Other user
|
|
2988
|
+
* keys, held by crew on the job, receive the same rows
|
|
2989
|
+
* without those two fields.
|
|
2990
|
+
*
|
|
2991
|
+
*
|
|
2868
2992
|
* **Required scope:**
|
|
2869
2993
|
*
|
|
2870
2994
|
* `jobs.production.job_scope_prices:read`
|
|
@@ -2914,6 +3038,14 @@ export class ProductionJobScopePrices {
|
|
|
2914
3038
|
/**
|
|
2915
3039
|
* Show production job scope price
|
|
2916
3040
|
*
|
|
3041
|
+
* One scope price on a production-tracked job. Company keys,
|
|
3042
|
+
* and user keys held by an administrator, manager, safety
|
|
3043
|
+
* manager, or field lead of the company that owns the job,
|
|
3044
|
+
* receive `unit_price` and `contracted_count`. Other user
|
|
3045
|
+
* keys, held by crew on the job, receive the price without
|
|
3046
|
+
* those two fields.
|
|
3047
|
+
*
|
|
3048
|
+
*
|
|
2917
3049
|
* **Required scope:**
|
|
2918
3050
|
*
|
|
2919
3051
|
* `jobs.production.job_scope_prices:read`
|
|
@@ -3179,35 +3311,44 @@ export class JobWageDeterminationRateRules {
|
|
|
3179
3311
|
});
|
|
3180
3312
|
}
|
|
3181
3313
|
}
|
|
3182
|
-
export class
|
|
3314
|
+
export class Jobs {
|
|
3183
3315
|
/**
|
|
3184
|
-
*
|
|
3316
|
+
* List sites for job
|
|
3185
3317
|
*
|
|
3186
|
-
*
|
|
3187
|
-
*
|
|
3188
|
-
*
|
|
3189
|
-
* `/history`.
|
|
3318
|
+
* Returns the job-site join rows on the named job. `{id}` is the
|
|
3319
|
+
* join row, not the Site. A missing or out-of-scope job reads as
|
|
3320
|
+
* not found.
|
|
3190
3321
|
*
|
|
3191
|
-
* This changes *when* the determination existed rather than what it said —
|
|
3192
|
-
* no version's attributes are rewritten. Moving the other end of the timeline
|
|
3193
|
-
* is `scheduled_termination`, and changing a version's values is the
|
|
3194
|
-
* determination update.
|
|
3195
3322
|
*
|
|
3196
|
-
*
|
|
3197
|
-
* would leave no coverage at all.
|
|
3323
|
+
* **Required scope:**
|
|
3198
3324
|
*
|
|
3199
|
-
*
|
|
3325
|
+
* `jobs.sites:read`
|
|
3326
|
+
*
|
|
3327
|
+
*/
|
|
3328
|
+
static listJobSites(options) {
|
|
3329
|
+
return (options.client ?? client).get({
|
|
3330
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3331
|
+
url: '/api/v1/jobs/{job_id}/sites',
|
|
3332
|
+
...options
|
|
3333
|
+
});
|
|
3334
|
+
}
|
|
3335
|
+
/**
|
|
3336
|
+
* Create site for job
|
|
3337
|
+
*
|
|
3338
|
+
* Attaches a Site to the named job. `job_id` is the path only.
|
|
3339
|
+
* `site_id` is required; `feature_ids` is optional and replaced
|
|
3340
|
+
* as a set. Duplicate (job, site) pairs are rejected.
|
|
3200
3341
|
*
|
|
3201
3342
|
*
|
|
3202
3343
|
* **Required scope:**
|
|
3203
3344
|
*
|
|
3204
|
-
* `jobs.
|
|
3345
|
+
* `jobs.sites:create`
|
|
3205
3346
|
*
|
|
3206
3347
|
*/
|
|
3207
|
-
static
|
|
3208
|
-
return (options.client ?? client).
|
|
3348
|
+
static createJobSite(options) {
|
|
3349
|
+
return (options.client ?? client).post({
|
|
3209
3350
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3210
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3351
|
+
url: '/api/v1/jobs/{job_id}/sites',
|
|
3211
3352
|
...options,
|
|
3212
3353
|
headers: {
|
|
3213
3354
|
'Content-Type': 'application/json',
|
|
@@ -3216,76 +3357,94 @@ export class JobWageDeterminations {
|
|
|
3216
3357
|
});
|
|
3217
3358
|
}
|
|
3218
3359
|
/**
|
|
3219
|
-
*
|
|
3360
|
+
* Delete site on job
|
|
3220
3361
|
*
|
|
3221
|
-
*
|
|
3222
|
-
*
|
|
3223
|
-
*
|
|
3224
|
-
* `current` or `historical`, and the `corrections` that version replaced —
|
|
3225
|
-
* each itself a full determination as previously recorded, so a client
|
|
3226
|
-
* that wants a field-level diff compares two of them. An entry carries
|
|
3227
|
-
* the family key as `job_wage_determination_id` and no `id` or `uid` of
|
|
3228
|
-
* its own — every version shares the family key, so versions are told
|
|
3229
|
-
* apart by their window coordinates. `as_of[valid]` is
|
|
3230
|
-
* rejected, since pinning a point on the valid axis would collapse the
|
|
3231
|
-
* sequence this endpoint returns, and a determination records no
|
|
3232
|
-
* transaction axis to read `as_of[transaction]` against.
|
|
3362
|
+
* Removes the job-site join. The Site itself is not deleted.
|
|
3363
|
+
* Job-site features cascade with the join. A job may have zero
|
|
3364
|
+
* sites afterward.
|
|
3233
3365
|
*
|
|
3234
3366
|
*
|
|
3235
3367
|
* **Required scope:**
|
|
3236
3368
|
*
|
|
3237
|
-
* `jobs.
|
|
3369
|
+
* `jobs.sites:delete`
|
|
3238
3370
|
*
|
|
3239
3371
|
*/
|
|
3240
|
-
static
|
|
3241
|
-
return (options.client ?? client).
|
|
3372
|
+
static deleteJobSite(options) {
|
|
3373
|
+
return (options.client ?? client).delete({
|
|
3242
3374
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3243
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3375
|
+
url: '/api/v1/jobs/{job_id}/sites/{id}',
|
|
3244
3376
|
...options
|
|
3245
3377
|
});
|
|
3246
3378
|
}
|
|
3247
3379
|
/**
|
|
3248
|
-
*
|
|
3380
|
+
* Show site on job
|
|
3381
|
+
*
|
|
3382
|
+
* Returns one job-site join on the named job. `{id}` is the join
|
|
3383
|
+
* row. A missing, misnested, or out-of-scope id reads as not found.
|
|
3384
|
+
*
|
|
3249
3385
|
*
|
|
3250
3386
|
* **Required scope:**
|
|
3251
3387
|
*
|
|
3252
|
-
* `jobs.
|
|
3388
|
+
* `jobs.sites:read`
|
|
3253
3389
|
*
|
|
3254
3390
|
*/
|
|
3255
|
-
static
|
|
3256
|
-
return (options.client ?? client).
|
|
3391
|
+
static getJobSite(options) {
|
|
3392
|
+
return (options.client ?? client).get({
|
|
3257
3393
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3258
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3394
|
+
url: '/api/v1/jobs/{job_id}/sites/{id}',
|
|
3259
3395
|
...options
|
|
3260
3396
|
});
|
|
3261
3397
|
}
|
|
3262
3398
|
/**
|
|
3263
|
-
*
|
|
3399
|
+
* Update site on job
|
|
3400
|
+
*
|
|
3401
|
+
* Replaces `feature_ids` on an existing job-site join. `site_id`
|
|
3402
|
+
* cannot be changed. An empty array clears every feature.
|
|
3403
|
+
*
|
|
3264
3404
|
*
|
|
3265
3405
|
* **Required scope:**
|
|
3266
3406
|
*
|
|
3267
|
-
* `jobs.
|
|
3407
|
+
* `jobs.sites:update`
|
|
3268
3408
|
*
|
|
3269
3409
|
*/
|
|
3270
|
-
static
|
|
3271
|
-
return (options.client ?? client).
|
|
3410
|
+
static updateJobSite(options) {
|
|
3411
|
+
return (options.client ?? client).patch({
|
|
3272
3412
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3273
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3413
|
+
url: '/api/v1/jobs/{job_id}/sites/{id}',
|
|
3414
|
+
...options,
|
|
3415
|
+
headers: {
|
|
3416
|
+
'Content-Type': 'application/json',
|
|
3417
|
+
...options.headers
|
|
3418
|
+
}
|
|
3419
|
+
});
|
|
3420
|
+
}
|
|
3421
|
+
/**
|
|
3422
|
+
* List jobs
|
|
3423
|
+
*
|
|
3424
|
+
* **Required scope:**
|
|
3425
|
+
*
|
|
3426
|
+
* `jobs:read`
|
|
3427
|
+
*
|
|
3428
|
+
*/
|
|
3429
|
+
static listJobs(options) {
|
|
3430
|
+
return (options?.client ?? client).get({
|
|
3431
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3432
|
+
url: '/api/v1/jobs',
|
|
3274
3433
|
...options
|
|
3275
3434
|
});
|
|
3276
3435
|
}
|
|
3277
3436
|
/**
|
|
3278
|
-
*
|
|
3437
|
+
* Create job
|
|
3279
3438
|
*
|
|
3280
3439
|
* **Required scope:**
|
|
3281
3440
|
*
|
|
3282
|
-
* `jobs
|
|
3441
|
+
* `jobs:create`
|
|
3283
3442
|
*
|
|
3284
3443
|
*/
|
|
3285
|
-
static
|
|
3444
|
+
static createJob(options) {
|
|
3286
3445
|
return (options.client ?? client).post({
|
|
3287
3446
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3288
|
-
url: '/api/v1/jobs
|
|
3447
|
+
url: '/api/v1/jobs',
|
|
3289
3448
|
...options,
|
|
3290
3449
|
headers: {
|
|
3291
3450
|
'Content-Type': 'application/json',
|
|
@@ -3294,43 +3453,32 @@ export class JobWageDeterminations {
|
|
|
3294
3453
|
});
|
|
3295
3454
|
}
|
|
3296
3455
|
/**
|
|
3297
|
-
*
|
|
3456
|
+
* Show job
|
|
3298
3457
|
*
|
|
3299
3458
|
* **Required scope:**
|
|
3300
3459
|
*
|
|
3301
|
-
* `jobs
|
|
3460
|
+
* `jobs:read`
|
|
3302
3461
|
*
|
|
3303
3462
|
*/
|
|
3304
|
-
static
|
|
3305
|
-
return (options.client ?? client).
|
|
3463
|
+
static getJob(options) {
|
|
3464
|
+
return (options.client ?? client).get({
|
|
3306
3465
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3307
|
-
url: '/api/v1/jobs/{
|
|
3466
|
+
url: '/api/v1/jobs/{id}',
|
|
3308
3467
|
...options
|
|
3309
3468
|
});
|
|
3310
3469
|
}
|
|
3311
3470
|
/**
|
|
3312
|
-
*
|
|
3313
|
-
*
|
|
3314
|
-
* End a determination's valid coverage at `effective_date`: segments beyond
|
|
3315
|
-
* it are dropped and one spanning it is truncated, so the determination stops
|
|
3316
|
-
* being valid from that point on. Earlier versions are untouched and stay
|
|
3317
|
-
* readable through `as_of[valid]` and `/history`.
|
|
3318
|
-
*
|
|
3319
|
-
* Moving an end is cancel-then-schedule: cancel the standing termination,
|
|
3320
|
-
* then schedule the one you want.
|
|
3321
|
-
*
|
|
3322
|
-
* Conditional: send the determination's `ETag` as `If-Match`.
|
|
3323
|
-
*
|
|
3471
|
+
* Update job
|
|
3324
3472
|
*
|
|
3325
3473
|
* **Required scope:**
|
|
3326
3474
|
*
|
|
3327
|
-
* `jobs
|
|
3475
|
+
* `jobs:update`
|
|
3328
3476
|
*
|
|
3329
3477
|
*/
|
|
3330
|
-
static
|
|
3331
|
-
return (options.client ?? client).
|
|
3478
|
+
static updateJob(options) {
|
|
3479
|
+
return (options.client ?? client).patch({
|
|
3332
3480
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3333
|
-
url: '/api/v1/jobs/{
|
|
3481
|
+
url: '/api/v1/jobs/{id}',
|
|
3334
3482
|
...options,
|
|
3335
3483
|
headers: {
|
|
3336
3484
|
'Content-Type': 'application/json',
|
|
@@ -3339,32 +3487,36 @@ export class JobWageDeterminations {
|
|
|
3339
3487
|
});
|
|
3340
3488
|
}
|
|
3341
3489
|
/**
|
|
3342
|
-
* List
|
|
3490
|
+
* List positions for job
|
|
3343
3491
|
*
|
|
3344
3492
|
* **Required scope:**
|
|
3345
3493
|
*
|
|
3346
|
-
* `jobs.
|
|
3494
|
+
* `jobs.positions:read`
|
|
3347
3495
|
*
|
|
3348
3496
|
*/
|
|
3349
|
-
static
|
|
3497
|
+
static listPositions(options) {
|
|
3350
3498
|
return (options.client ?? client).get({
|
|
3351
3499
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3352
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3500
|
+
url: '/api/v1/jobs/{job_id}/positions',
|
|
3353
3501
|
...options
|
|
3354
3502
|
});
|
|
3355
3503
|
}
|
|
3356
3504
|
/**
|
|
3357
|
-
* Create
|
|
3505
|
+
* Create position for job
|
|
3506
|
+
*
|
|
3507
|
+
* cash_fringe_rate_cents, hourly_rate_cents, pwa_wage_pay_rate_cents and
|
|
3508
|
+
* wage_adder_rate_cents are admin only on user-scoped keys.
|
|
3509
|
+
*
|
|
3358
3510
|
*
|
|
3359
3511
|
* **Required scope:**
|
|
3360
3512
|
*
|
|
3361
|
-
* `jobs.
|
|
3513
|
+
* `jobs.positions:create`
|
|
3362
3514
|
*
|
|
3363
3515
|
*/
|
|
3364
|
-
static
|
|
3516
|
+
static createPosition(options) {
|
|
3365
3517
|
return (options.client ?? client).post({
|
|
3366
3518
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3367
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3519
|
+
url: '/api/v1/jobs/{job_id}/positions',
|
|
3368
3520
|
...options,
|
|
3369
3521
|
headers: {
|
|
3370
3522
|
'Content-Type': 'application/json',
|
|
@@ -3373,64 +3525,62 @@ export class JobWageDeterminations {
|
|
|
3373
3525
|
});
|
|
3374
3526
|
}
|
|
3375
3527
|
/**
|
|
3376
|
-
* Delete
|
|
3528
|
+
* Delete position on job
|
|
3529
|
+
*
|
|
3530
|
+
* Deletes a position that has no logged work and no restricting
|
|
3531
|
+
* associations. A position still referenced by time entries,
|
|
3532
|
+
* time-card per diems, completion positions, or aggregate logged
|
|
3533
|
+
* work is refused with a `422`. An unused position returns `204`
|
|
3534
|
+
* and is gone from a later GET.
|
|
3535
|
+
*
|
|
3377
3536
|
*
|
|
3378
3537
|
* **Required scope:**
|
|
3379
3538
|
*
|
|
3380
|
-
* `jobs.
|
|
3539
|
+
* `jobs.positions:delete`
|
|
3381
3540
|
*
|
|
3382
3541
|
*/
|
|
3383
|
-
static
|
|
3542
|
+
static deletePosition(options) {
|
|
3384
3543
|
return (options.client ?? client).delete({
|
|
3385
3544
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3386
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3545
|
+
url: '/api/v1/jobs/{job_id}/positions/{id}',
|
|
3387
3546
|
...options
|
|
3388
3547
|
});
|
|
3389
3548
|
}
|
|
3390
3549
|
/**
|
|
3391
|
-
* Show
|
|
3550
|
+
* Show position on job
|
|
3551
|
+
*
|
|
3552
|
+
* Returns one position on the named job. A missing, misnested, or
|
|
3553
|
+
* out-of-scope id reads as not found.
|
|
3554
|
+
*
|
|
3392
3555
|
*
|
|
3393
3556
|
* **Required scope:**
|
|
3394
3557
|
*
|
|
3395
|
-
* `jobs.
|
|
3558
|
+
* `jobs.positions:read`
|
|
3396
3559
|
*
|
|
3397
3560
|
*/
|
|
3398
|
-
static
|
|
3561
|
+
static getPosition(options) {
|
|
3399
3562
|
return (options.client ?? client).get({
|
|
3400
3563
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3401
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3564
|
+
url: '/api/v1/jobs/{job_id}/positions/{id}',
|
|
3402
3565
|
...options
|
|
3403
3566
|
});
|
|
3404
3567
|
}
|
|
3405
3568
|
/**
|
|
3406
|
-
* Update
|
|
3407
|
-
*
|
|
3408
|
-
* Edit a determination's values from `effective_from` forward: every version
|
|
3409
|
-
* starting at or after that instant takes the new values, and earlier
|
|
3410
|
-
* versions are untouched. Where an edit starts inside a version and changes
|
|
3411
|
-
* its values, a boundary is created at `effective_from` so the change applies
|
|
3412
|
-
* only from there.
|
|
3413
|
-
*
|
|
3414
|
-
* This rewrites what the determination said, not when it existed — moving
|
|
3415
|
-
* either end of the timeline is `genesis` or `scheduled_termination`.
|
|
3416
|
-
*
|
|
3417
|
-
* `pwa_trade_id` is the exception: a trade regroups the whole determination
|
|
3418
|
-
* at once, so it moves every version rather than applying from
|
|
3419
|
-
* `effective_from`. A determination cascaded from a project mirrors that
|
|
3420
|
-
* project's determination and cannot be edited here — change it on the project.
|
|
3569
|
+
* Update position on job
|
|
3421
3570
|
*
|
|
3422
|
-
*
|
|
3571
|
+
* cash_fringe_rate_cents, hourly_rate_cents, pwa_wage_pay_rate_cents and
|
|
3572
|
+
* wage_adder_rate_cents are admin only on user-scoped keys.
|
|
3423
3573
|
*
|
|
3424
3574
|
*
|
|
3425
3575
|
* **Required scope:**
|
|
3426
3576
|
*
|
|
3427
|
-
* `jobs.
|
|
3577
|
+
* `jobs.positions:update`
|
|
3428
3578
|
*
|
|
3429
3579
|
*/
|
|
3430
|
-
static
|
|
3580
|
+
static updatePosition(options) {
|
|
3431
3581
|
return (options.client ?? client).patch({
|
|
3432
3582
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3433
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3583
|
+
url: '/api/v1/jobs/{job_id}/positions/{id}',
|
|
3434
3584
|
...options,
|
|
3435
3585
|
headers: {
|
|
3436
3586
|
'Content-Type': 'application/json',
|
|
@@ -3438,35 +3588,51 @@ export class JobWageDeterminations {
|
|
|
3438
3588
|
}
|
|
3439
3589
|
});
|
|
3440
3590
|
}
|
|
3441
|
-
}
|
|
3442
|
-
export class Jobs {
|
|
3443
3591
|
/**
|
|
3444
|
-
* List
|
|
3592
|
+
* List job templates
|
|
3445
3593
|
*
|
|
3446
3594
|
* **Required scope:**
|
|
3447
3595
|
*
|
|
3448
|
-
* `jobs:read`
|
|
3596
|
+
* `jobs.templates:read`
|
|
3449
3597
|
*
|
|
3450
3598
|
*/
|
|
3451
|
-
static
|
|
3599
|
+
static listTemplates(options) {
|
|
3452
3600
|
return (options?.client ?? client).get({
|
|
3453
3601
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3454
|
-
url: '/api/v1/jobs',
|
|
3602
|
+
url: '/api/v1/jobs/templates',
|
|
3455
3603
|
...options
|
|
3456
3604
|
});
|
|
3457
3605
|
}
|
|
3606
|
+
}
|
|
3607
|
+
export class JobWageDeterminations {
|
|
3458
3608
|
/**
|
|
3459
|
-
*
|
|
3609
|
+
* Shift job wage determination genesis
|
|
3610
|
+
*
|
|
3611
|
+
* Move when a determination's timeline begins. Shifting it earlier extends
|
|
3612
|
+
* the first version back; shifting it later drops the coverage before it,
|
|
3613
|
+
* and what that removes stops being readable through `as_of[valid]` and
|
|
3614
|
+
* `/history`.
|
|
3615
|
+
*
|
|
3616
|
+
* This changes *when* the determination existed rather than what it said —
|
|
3617
|
+
* no version's attributes are rewritten. Moving the other end of the timeline
|
|
3618
|
+
* is `scheduled_termination`, and changing a version's values is the
|
|
3619
|
+
* determination update.
|
|
3620
|
+
*
|
|
3621
|
+
* A shift to or past a scheduled termination is refused with `422`, since it
|
|
3622
|
+
* would leave no coverage at all.
|
|
3623
|
+
*
|
|
3624
|
+
* Conditional: send the determination's `ETag` as `If-Match`.
|
|
3625
|
+
*
|
|
3460
3626
|
*
|
|
3461
3627
|
* **Required scope:**
|
|
3462
3628
|
*
|
|
3463
|
-
* `jobs:
|
|
3629
|
+
* `jobs.wage_determinations.genesis:update`
|
|
3464
3630
|
*
|
|
3465
3631
|
*/
|
|
3466
|
-
static
|
|
3467
|
-
return (options.client ?? client).
|
|
3632
|
+
static shiftJobWageDeterminationGenesis(options) {
|
|
3633
|
+
return (options.client ?? client).patch({
|
|
3468
3634
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3469
|
-
url: '/api/v1/jobs',
|
|
3635
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/genesis',
|
|
3470
3636
|
...options,
|
|
3471
3637
|
headers: {
|
|
3472
3638
|
'Content-Type': 'application/json',
|
|
@@ -3475,66 +3641,76 @@ export class Jobs {
|
|
|
3475
3641
|
});
|
|
3476
3642
|
}
|
|
3477
3643
|
/**
|
|
3478
|
-
*
|
|
3644
|
+
* List job wage determination version history
|
|
3645
|
+
*
|
|
3646
|
+
* A determination's whole valid-time sequence, newest window first and
|
|
3647
|
+
* cursor-paginated. Each entry is a full determination carrying its own
|
|
3648
|
+
* `valid_from` / `valid_to` window, a `version_status` of `scheduled`,
|
|
3649
|
+
* `current` or `historical`, and the `corrections` that version replaced —
|
|
3650
|
+
* each itself a full determination as previously recorded, so a client
|
|
3651
|
+
* that wants a field-level diff compares two of them. An entry carries
|
|
3652
|
+
* the family key as `job_wage_determination_id` and no `id` or `uid` of
|
|
3653
|
+
* its own — every version shares the family key, so versions are told
|
|
3654
|
+
* apart by their window coordinates. `as_of[valid]` is
|
|
3655
|
+
* rejected, since pinning a point on the valid axis would collapse the
|
|
3656
|
+
* sequence this endpoint returns, and a determination records no
|
|
3657
|
+
* transaction axis to read `as_of[transaction]` against.
|
|
3658
|
+
*
|
|
3479
3659
|
*
|
|
3480
3660
|
* **Required scope:**
|
|
3481
3661
|
*
|
|
3482
|
-
* `jobs:read`
|
|
3662
|
+
* `jobs.wage_determinations.history:read`
|
|
3483
3663
|
*
|
|
3484
3664
|
*/
|
|
3485
|
-
static
|
|
3665
|
+
static listJobWageDeterminationHistory(options) {
|
|
3486
3666
|
return (options.client ?? client).get({
|
|
3487
3667
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3488
|
-
url: '/api/v1/jobs/{
|
|
3668
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/history',
|
|
3489
3669
|
...options
|
|
3490
3670
|
});
|
|
3491
3671
|
}
|
|
3492
3672
|
/**
|
|
3493
|
-
*
|
|
3673
|
+
* Cancel scheduled changes on job wage determination
|
|
3494
3674
|
*
|
|
3495
3675
|
* **Required scope:**
|
|
3496
3676
|
*
|
|
3497
|
-
* `jobs:
|
|
3677
|
+
* `jobs.wage_determinations.scheduled_changes:delete`
|
|
3498
3678
|
*
|
|
3499
3679
|
*/
|
|
3500
|
-
static
|
|
3501
|
-
return (options.client ?? client).
|
|
3680
|
+
static cancelJobWageDeterminationScheduledChanges(options) {
|
|
3681
|
+
return (options.client ?? client).delete({
|
|
3502
3682
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3503
|
-
url: '/api/v1/jobs/{
|
|
3504
|
-
...options
|
|
3505
|
-
headers: {
|
|
3506
|
-
'Content-Type': 'application/json',
|
|
3507
|
-
...options.headers
|
|
3508
|
-
}
|
|
3683
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_changes',
|
|
3684
|
+
...options
|
|
3509
3685
|
});
|
|
3510
3686
|
}
|
|
3511
3687
|
/**
|
|
3512
|
-
* List
|
|
3688
|
+
* List scheduled changes for job wage determination
|
|
3513
3689
|
*
|
|
3514
3690
|
* **Required scope:**
|
|
3515
3691
|
*
|
|
3516
|
-
* `jobs.
|
|
3692
|
+
* `jobs.wage_determinations.scheduled_changes:read`
|
|
3517
3693
|
*
|
|
3518
3694
|
*/
|
|
3519
|
-
static
|
|
3695
|
+
static listJobWageDeterminationScheduledChanges(options) {
|
|
3520
3696
|
return (options.client ?? client).get({
|
|
3521
3697
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3522
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3698
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_changes',
|
|
3523
3699
|
...options
|
|
3524
3700
|
});
|
|
3525
3701
|
}
|
|
3526
3702
|
/**
|
|
3527
|
-
*
|
|
3703
|
+
* Schedule effective-dated change on job wage determination
|
|
3528
3704
|
*
|
|
3529
3705
|
* **Required scope:**
|
|
3530
3706
|
*
|
|
3531
|
-
* `jobs.
|
|
3707
|
+
* `jobs.wage_determinations.scheduled_changes:create`
|
|
3532
3708
|
*
|
|
3533
3709
|
*/
|
|
3534
|
-
static
|
|
3710
|
+
static scheduleJobWageDeterminationChange(options) {
|
|
3535
3711
|
return (options.client ?? client).post({
|
|
3536
3712
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3537
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3713
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_changes',
|
|
3538
3714
|
...options,
|
|
3539
3715
|
headers: {
|
|
3540
3716
|
'Content-Type': 'application/json',
|
|
@@ -3543,58 +3719,77 @@ export class Jobs {
|
|
|
3543
3719
|
});
|
|
3544
3720
|
}
|
|
3545
3721
|
/**
|
|
3546
|
-
*
|
|
3547
|
-
*
|
|
3548
|
-
* Deletes a position that has no logged work and no restricting
|
|
3549
|
-
* associations. A position still referenced by time entries,
|
|
3550
|
-
* time-card per diems, completion positions, or aggregate logged
|
|
3551
|
-
* work is refused with a `422`. An unused position returns `204`
|
|
3552
|
-
* and is gone from a later GET.
|
|
3553
|
-
*
|
|
3722
|
+
* Cancel scheduled termination on job wage determination
|
|
3554
3723
|
*
|
|
3555
3724
|
* **Required scope:**
|
|
3556
3725
|
*
|
|
3557
|
-
* `jobs.
|
|
3726
|
+
* `jobs.wage_determinations.scheduled_terminations:delete`
|
|
3558
3727
|
*
|
|
3559
3728
|
*/
|
|
3560
|
-
static
|
|
3729
|
+
static cancelJobWageDeterminationScheduledTermination(options) {
|
|
3561
3730
|
return (options.client ?? client).delete({
|
|
3562
3731
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3563
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3732
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_termination',
|
|
3564
3733
|
...options
|
|
3565
3734
|
});
|
|
3566
3735
|
}
|
|
3567
3736
|
/**
|
|
3568
|
-
*
|
|
3737
|
+
* Schedule termination on job wage determination
|
|
3569
3738
|
*
|
|
3570
|
-
*
|
|
3571
|
-
*
|
|
3739
|
+
* End a determination's valid coverage at `effective_date`: segments beyond
|
|
3740
|
+
* it are dropped and one spanning it is truncated, so the determination stops
|
|
3741
|
+
* being valid from that point on. Earlier versions are untouched and stay
|
|
3742
|
+
* readable through `as_of[valid]` and `/history`.
|
|
3743
|
+
*
|
|
3744
|
+
* Moving an end is cancel-then-schedule: cancel the standing termination,
|
|
3745
|
+
* then schedule the one you want.
|
|
3746
|
+
*
|
|
3747
|
+
* Conditional: send the determination's `ETag` as `If-Match`.
|
|
3572
3748
|
*
|
|
3573
3749
|
*
|
|
3574
3750
|
* **Required scope:**
|
|
3575
3751
|
*
|
|
3576
|
-
* `jobs.
|
|
3752
|
+
* `jobs.wage_determinations.scheduled_terminations:create`
|
|
3577
3753
|
*
|
|
3578
3754
|
*/
|
|
3579
|
-
static
|
|
3755
|
+
static scheduleJobWageDeterminationTermination(options) {
|
|
3756
|
+
return (options.client ?? client).post({
|
|
3757
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3758
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_termination',
|
|
3759
|
+
...options,
|
|
3760
|
+
headers: {
|
|
3761
|
+
'Content-Type': 'application/json',
|
|
3762
|
+
...options.headers
|
|
3763
|
+
}
|
|
3764
|
+
});
|
|
3765
|
+
}
|
|
3766
|
+
/**
|
|
3767
|
+
* List job wage determinations
|
|
3768
|
+
*
|
|
3769
|
+
* **Required scope:**
|
|
3770
|
+
*
|
|
3771
|
+
* `jobs.wage_determinations:read`
|
|
3772
|
+
*
|
|
3773
|
+
*/
|
|
3774
|
+
static listJobWageDeterminations(options) {
|
|
3580
3775
|
return (options.client ?? client).get({
|
|
3581
3776
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3582
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3777
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations',
|
|
3583
3778
|
...options
|
|
3584
3779
|
});
|
|
3585
3780
|
}
|
|
3586
3781
|
/**
|
|
3587
|
-
*
|
|
3782
|
+
* Create job wage determination
|
|
3588
3783
|
*
|
|
3589
3784
|
* **Required scope:**
|
|
3590
3785
|
*
|
|
3591
|
-
* `jobs.
|
|
3786
|
+
* `jobs.wage_determinations:create`
|
|
3592
3787
|
*
|
|
3593
3788
|
*/
|
|
3594
|
-
static
|
|
3595
|
-
return (options.client ?? client).
|
|
3789
|
+
static createWageDetermination(options) {
|
|
3790
|
+
return (options.client ?? client).post({
|
|
3596
3791
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3597
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3792
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations',
|
|
3598
3793
|
...options,
|
|
3599
3794
|
headers: {
|
|
3600
3795
|
'Content-Type': 'application/json',
|
|
@@ -3603,20 +3798,71 @@ export class Jobs {
|
|
|
3603
3798
|
});
|
|
3604
3799
|
}
|
|
3605
3800
|
/**
|
|
3606
|
-
*
|
|
3801
|
+
* Delete job wage determination
|
|
3607
3802
|
*
|
|
3608
3803
|
* **Required scope:**
|
|
3609
3804
|
*
|
|
3610
|
-
* `jobs.
|
|
3805
|
+
* `jobs.wage_determinations:delete`
|
|
3611
3806
|
*
|
|
3612
3807
|
*/
|
|
3613
|
-
static
|
|
3614
|
-
return (options
|
|
3808
|
+
static deleteWageDetermination(options) {
|
|
3809
|
+
return (options.client ?? client).delete({
|
|
3615
3810
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3616
|
-
url: '/api/v1/jobs/
|
|
3811
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{id}',
|
|
3812
|
+
...options
|
|
3813
|
+
});
|
|
3814
|
+
}
|
|
3815
|
+
/**
|
|
3816
|
+
* Show job wage determination
|
|
3817
|
+
*
|
|
3818
|
+
* **Required scope:**
|
|
3819
|
+
*
|
|
3820
|
+
* `jobs.wage_determinations:read`
|
|
3821
|
+
*
|
|
3822
|
+
*/
|
|
3823
|
+
static getJobWageDetermination(options) {
|
|
3824
|
+
return (options.client ?? client).get({
|
|
3825
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3826
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{id}',
|
|
3617
3827
|
...options
|
|
3618
3828
|
});
|
|
3619
3829
|
}
|
|
3830
|
+
/**
|
|
3831
|
+
* Update job wage determination
|
|
3832
|
+
*
|
|
3833
|
+
* Edit a determination's values from `effective_from` forward: every version
|
|
3834
|
+
* starting at or after that instant takes the new values, and earlier
|
|
3835
|
+
* versions are untouched. Where an edit starts inside a version and changes
|
|
3836
|
+
* its values, a boundary is created at `effective_from` so the change applies
|
|
3837
|
+
* only from there.
|
|
3838
|
+
*
|
|
3839
|
+
* This rewrites what the determination said, not when it existed — moving
|
|
3840
|
+
* either end of the timeline is `genesis` or `scheduled_termination`.
|
|
3841
|
+
*
|
|
3842
|
+
* `pwa_trade_id` is the exception: a trade regroups the whole determination
|
|
3843
|
+
* at once, so it moves every version rather than applying from
|
|
3844
|
+
* `effective_from`. A determination cascaded from a project mirrors that
|
|
3845
|
+
* project's determination and cannot be edited here — change it on the project.
|
|
3846
|
+
*
|
|
3847
|
+
* Conditional: send the determination's `ETag` as `If-Match`.
|
|
3848
|
+
*
|
|
3849
|
+
*
|
|
3850
|
+
* **Required scope:**
|
|
3851
|
+
*
|
|
3852
|
+
* `jobs.wage_determinations:update`
|
|
3853
|
+
*
|
|
3854
|
+
*/
|
|
3855
|
+
static updateJobWageDetermination(options) {
|
|
3856
|
+
return (options.client ?? client).patch({
|
|
3857
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3858
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{id}',
|
|
3859
|
+
...options,
|
|
3860
|
+
headers: {
|
|
3861
|
+
'Content-Type': 'application/json',
|
|
3862
|
+
...options.headers
|
|
3863
|
+
}
|
|
3864
|
+
});
|
|
3865
|
+
}
|
|
3620
3866
|
}
|
|
3621
3867
|
export class OpenApi {
|
|
3622
3868
|
/**
|
|
@@ -5077,9 +5323,10 @@ export class People {
|
|
|
5077
5323
|
*
|
|
5078
5324
|
* Every valid-time version of one employment stint, newest first. Each
|
|
5079
5325
|
* entry uses `people_employment_id` rather than an entry-level id and
|
|
5080
|
-
* includes prior recorded
|
|
5081
|
-
* coworker history, but direct monetary
|
|
5082
|
-
* own employment in versions and
|
|
5326
|
+
* includes prior corrections recorded at the credential company.
|
|
5327
|
+
* Company managers may read coworker history, but direct monetary
|
|
5328
|
+
* fields are limited to their own employment in versions and
|
|
5329
|
+
* corrections.
|
|
5083
5330
|
*
|
|
5084
5331
|
*
|
|
5085
5332
|
* **Required scope:**
|
|
@@ -5633,6 +5880,119 @@ export class ProductionCompletions {
|
|
|
5633
5880
|
});
|
|
5634
5881
|
}
|
|
5635
5882
|
}
|
|
5883
|
+
export class ProjectSites {
|
|
5884
|
+
/**
|
|
5885
|
+
* List project sites
|
|
5886
|
+
*
|
|
5887
|
+
* Returns the project's site assignments (`ProjectSite` joins). Path `{id}`
|
|
5888
|
+
* on the member routes is the join id, not the Site id. A participating-company
|
|
5889
|
+
* key may list joins on a project it can see; a user-scoped key of a
|
|
5890
|
+
* participating company cannot, because web project visibility does not include
|
|
5891
|
+
* participating projects.
|
|
5892
|
+
*
|
|
5893
|
+
*
|
|
5894
|
+
* **Required scope:**
|
|
5895
|
+
*
|
|
5896
|
+
* `projects.sites:read`
|
|
5897
|
+
*
|
|
5898
|
+
*/
|
|
5899
|
+
static listProjectSites(options) {
|
|
5900
|
+
return (options.client ?? client).get({
|
|
5901
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
5902
|
+
url: '/api/v1/projects/{project_id}/sites',
|
|
5903
|
+
...options
|
|
5904
|
+
});
|
|
5905
|
+
}
|
|
5906
|
+
/**
|
|
5907
|
+
* Create a project site
|
|
5908
|
+
*
|
|
5909
|
+
* Attaches a site to the project. `site_id` is required; `feature_ids` is
|
|
5910
|
+
* optional and scopes which of that site's features apply. The project is
|
|
5911
|
+
* taken from the path. Writes are owner-only: a participating-company key
|
|
5912
|
+
* that can GET the project receives 403. Duplicate `(project, site)` pairs
|
|
5913
|
+
* are 422. A site that is not public and not owned by the project's owner
|
|
5914
|
+
* is 422 when visible, or 404 when the key cannot see the site.
|
|
5915
|
+
*
|
|
5916
|
+
*
|
|
5917
|
+
* **Required scope:**
|
|
5918
|
+
*
|
|
5919
|
+
* `projects.sites:create`
|
|
5920
|
+
*
|
|
5921
|
+
*/
|
|
5922
|
+
static createProjectSite(options) {
|
|
5923
|
+
return (options.client ?? client).post({
|
|
5924
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
5925
|
+
url: '/api/v1/projects/{project_id}/sites',
|
|
5926
|
+
...options,
|
|
5927
|
+
headers: {
|
|
5928
|
+
'Content-Type': 'application/json',
|
|
5929
|
+
...options.headers
|
|
5930
|
+
}
|
|
5931
|
+
});
|
|
5932
|
+
}
|
|
5933
|
+
/**
|
|
5934
|
+
* Delete a project site
|
|
5935
|
+
*
|
|
5936
|
+
* Removes the project–site join. The Site itself is not destroyed. Writes
|
|
5937
|
+
* are owner-only.
|
|
5938
|
+
*
|
|
5939
|
+
*
|
|
5940
|
+
* **Required scope:**
|
|
5941
|
+
*
|
|
5942
|
+
* `projects.sites:delete`
|
|
5943
|
+
*
|
|
5944
|
+
*/
|
|
5945
|
+
static deleteProjectSite(options) {
|
|
5946
|
+
return (options.client ?? client).delete({
|
|
5947
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
5948
|
+
url: '/api/v1/projects/{project_id}/sites/{id}',
|
|
5949
|
+
...options
|
|
5950
|
+
});
|
|
5951
|
+
}
|
|
5952
|
+
/**
|
|
5953
|
+
* Show a project site
|
|
5954
|
+
*
|
|
5955
|
+
* Returns one project–site join. A missing, mismatched, or out-of-scope id
|
|
5956
|
+
* reads as not found.
|
|
5957
|
+
*
|
|
5958
|
+
*
|
|
5959
|
+
* **Required scope:**
|
|
5960
|
+
*
|
|
5961
|
+
* `projects.sites:read`
|
|
5962
|
+
*
|
|
5963
|
+
*/
|
|
5964
|
+
static getProjectSite(options) {
|
|
5965
|
+
return (options.client ?? client).get({
|
|
5966
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
5967
|
+
url: '/api/v1/projects/{project_id}/sites/{id}',
|
|
5968
|
+
...options
|
|
5969
|
+
});
|
|
5970
|
+
}
|
|
5971
|
+
/**
|
|
5972
|
+
* Update a project site
|
|
5973
|
+
*
|
|
5974
|
+
* Replaces `feature_ids` on the join. Send an empty array to clear features.
|
|
5975
|
+
* `site_id` is create-only; naming it on PATCH is a 400. Writes are
|
|
5976
|
+
* owner-only.
|
|
5977
|
+
*
|
|
5978
|
+
*
|
|
5979
|
+
* **Required scope:**
|
|
5980
|
+
*
|
|
5981
|
+
* `projects.sites:update`
|
|
5982
|
+
*
|
|
5983
|
+
*/
|
|
5984
|
+
static updateProjectSite(options) {
|
|
5985
|
+
return (options.client ?? client).patch({
|
|
5986
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
5987
|
+
url: '/api/v1/projects/{project_id}/sites/{id}',
|
|
5988
|
+
...options,
|
|
5989
|
+
headers: {
|
|
5990
|
+
'Content-Type': 'application/json',
|
|
5991
|
+
...options.headers
|
|
5992
|
+
}
|
|
5993
|
+
});
|
|
5994
|
+
}
|
|
5995
|
+
}
|
|
5636
5996
|
export class Projects {
|
|
5637
5997
|
/**
|
|
5638
5998
|
* List projects
|
|
@@ -5722,9 +6082,11 @@ export class Projects {
|
|
|
5722
6082
|
* switching it to `none` clears the stored values and forces `asset_owner`
|
|
5723
6083
|
* false, and sending one of them while federal tracking is off — even as null —
|
|
5724
6084
|
* returns 422. `budget_currency` defaults to USD when blank. `parent_id` moves
|
|
5725
|
-
* or detaches the project
|
|
5726
|
-
*
|
|
5727
|
-
*
|
|
6085
|
+
* or detaches the project; a project whose parent no longer lists its owner
|
|
6086
|
+
* still accepts updates that keep that parent. `participating_company_ids`
|
|
6087
|
+
* replaces the complete set of participating companies. Remove a participant's
|
|
6088
|
+
* jobs before removing it from this set. Only the owning company may update the
|
|
6089
|
+
* project.
|
|
5728
6090
|
*
|
|
5729
6091
|
*
|
|
5730
6092
|
* **Required scope:**
|
|
@@ -5960,6 +6322,14 @@ export class Users {
|
|
|
5960
6322
|
/**
|
|
5961
6323
|
* List users
|
|
5962
6324
|
*
|
|
6325
|
+
* Workers the credential company sees: people it employs, has
|
|
6326
|
+
* granted a role, or has invited. Direct monetary employment
|
|
6327
|
+
* fields (`hourly_rate`, `training_annual_amount`,
|
|
6328
|
+
* `employer_combined_health_amount`, `employer_combined_savings`)
|
|
6329
|
+
* are present for company keys, company administrators, and the
|
|
6330
|
+
* employed person, and omitted for other user keys.
|
|
6331
|
+
*
|
|
6332
|
+
*
|
|
5963
6333
|
* **Required scope:**
|
|
5964
6334
|
*
|
|
5965
6335
|
* `users:read`
|
|
@@ -5994,6 +6364,13 @@ export class Users {
|
|
|
5994
6364
|
/**
|
|
5995
6365
|
* Show user
|
|
5996
6366
|
*
|
|
6367
|
+
* Direct monetary employment fields (`hourly_rate`,
|
|
6368
|
+
* `training_annual_amount`, `employer_combined_health_amount`,
|
|
6369
|
+
* `employer_combined_savings`) are present for company keys,
|
|
6370
|
+
* company administrators, and the employed person, and omitted
|
|
6371
|
+
* for other user keys.
|
|
6372
|
+
*
|
|
6373
|
+
*
|
|
5997
6374
|
* **Required scope:**
|
|
5998
6375
|
*
|
|
5999
6376
|
* `users:read`
|
|
@@ -6094,6 +6471,27 @@ export class PwaTradeApprenticeScope {
|
|
|
6094
6471
|
...options
|
|
6095
6472
|
});
|
|
6096
6473
|
}
|
|
6474
|
+
/**
|
|
6475
|
+
* Show apprentice scope decision
|
|
6476
|
+
*
|
|
6477
|
+
* Returns one reviewed (occupation, craft) pair on this trade. The payload is
|
|
6478
|
+
* the same object create, update, and destroy already serialize. A missing,
|
|
6479
|
+
* mismatched, or out-of-scope id is not found. Reading follows the trade;
|
|
6480
|
+
* employer enrollment is not required.
|
|
6481
|
+
*
|
|
6482
|
+
*
|
|
6483
|
+
* **Required scope:**
|
|
6484
|
+
*
|
|
6485
|
+
* `pwa.trades.apprenticeship_occupations:read`
|
|
6486
|
+
*
|
|
6487
|
+
*/
|
|
6488
|
+
static getApprenticeshipOccupation(options) {
|
|
6489
|
+
return (options.client ?? client).get({
|
|
6490
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
6491
|
+
url: '/api/v1/pwa/trades/{trade_id}/apprenticeship_occupations/{id}',
|
|
6492
|
+
...options
|
|
6493
|
+
});
|
|
6494
|
+
}
|
|
6097
6495
|
/**
|
|
6098
6496
|
* Flip an apprentice scope decision
|
|
6099
6497
|
*
|
|
@@ -6355,7 +6753,8 @@ export class PriorPeriodAdjustments {
|
|
|
6355
6753
|
* Permanently remove an adjustment, for undoing one recorded in error. The removed
|
|
6356
6754
|
* adjustment is returned. Its allocation is freed back to the funding line item and
|
|
6357
6755
|
* the time card's actuals rebuild, so the job's balance due rises by this amount.
|
|
6358
|
-
*
|
|
6756
|
+
* To change amount, job, rationale, notes, or PWA eligibility, PATCH the same
|
|
6757
|
+
* resource instead.
|
|
6359
6758
|
*
|
|
6360
6759
|
*
|
|
6361
6760
|
* **Required scope:**
|
|
@@ -6385,6 +6784,31 @@ export class PriorPeriodAdjustments {
|
|
|
6385
6784
|
...options
|
|
6386
6785
|
});
|
|
6387
6786
|
}
|
|
6787
|
+
/**
|
|
6788
|
+
* Update Prior Period Adjustment
|
|
6789
|
+
*
|
|
6790
|
+
* Change amount, job, rationale, notes, or PWA eligibility on an existing
|
|
6791
|
+
* adjustment. The updated adjustment is returned and the time card's actuals
|
|
6792
|
+
* rebuild. The funding line item, recording user, time card, and adjustment
|
|
6793
|
+
* type cannot be changed on this path.
|
|
6794
|
+
*
|
|
6795
|
+
*
|
|
6796
|
+
* **Required scope:**
|
|
6797
|
+
*
|
|
6798
|
+
* `time_cards.prior_period_adjustments:update`
|
|
6799
|
+
*
|
|
6800
|
+
*/
|
|
6801
|
+
static updatePriorPeriodAdjustment(options) {
|
|
6802
|
+
return (options.client ?? client).patch({
|
|
6803
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
6804
|
+
url: '/api/v1/time_cards/{time_card_id}/prior_period_adjustments/{id}',
|
|
6805
|
+
...options,
|
|
6806
|
+
headers: {
|
|
6807
|
+
'Content-Type': 'application/json',
|
|
6808
|
+
...options.headers
|
|
6809
|
+
}
|
|
6810
|
+
});
|
|
6811
|
+
}
|
|
6388
6812
|
}
|
|
6389
6813
|
export class TimeCardPwaCompliance {
|
|
6390
6814
|
/**
|
|
@@ -6485,7 +6909,8 @@ export class TimeEntries {
|
|
|
6485
6909
|
* Create time entry
|
|
6486
6910
|
*
|
|
6487
6911
|
* Create a time entry. Required: timekeeping_time_card_id, start_time, and end_time;
|
|
6488
|
-
* user_id is derived server-side from the time card
|
|
6912
|
+
* user_id is derived server-side from the time card, and a time card outside
|
|
6913
|
+
* the key's scope is not found (404). Both start_time and
|
|
6489
6914
|
* end_time must fall on a whole-minute boundary (nonzero seconds are
|
|
6490
6915
|
* rejected); start_time must fall within the time card's pay period, and
|
|
6491
6916
|
* end_time must be after start_time. Optional job_id (the worker must have a
|
|
@@ -6493,10 +6918,8 @@ export class TimeEntries {
|
|
|
6493
6918
|
* company's default timecodes), state, description, hourly_rate_cents (derived
|
|
6494
6919
|
* from the position/user default when omitted), and feature_ids. Supplying
|
|
6495
6920
|
* feature_ids — or setting feature_allocation_acknowledged true — satisfies a
|
|
6496
|
-
* job that requires a feature allocation.
|
|
6497
|
-
*
|
|
6498
|
-
* any other user-scoped key that sends it, null included, is forbidden (403)
|
|
6499
|
-
* and nothing is created.
|
|
6921
|
+
* job that requires a feature allocation. hourly_rate_cents is admin only on
|
|
6922
|
+
* user-scoped keys.
|
|
6500
6923
|
*
|
|
6501
6924
|
*
|
|
6502
6925
|
* **Required scope:**
|
|
@@ -6565,16 +6988,15 @@ export class TimeEntries {
|
|
|
6565
6988
|
*
|
|
6566
6989
|
* Update an existing time entry by id; every field in the parameters is
|
|
6567
6990
|
* optional and only supplied fields change. An entry outside the key's scope
|
|
6568
|
-
* is not found (404).
|
|
6569
|
-
*
|
|
6570
|
-
* forbidden (403).
|
|
6571
|
-
*
|
|
6991
|
+
* is not found (404). An edit the key may not make to the entry as assigned,
|
|
6992
|
+
* such as a technician putting it on a job that requires clock-in, is
|
|
6993
|
+
* forbidden (403).
|
|
6994
|
+
* If the change would push categorized allocation minutes past the time card's
|
|
6995
|
+
* overtime eligible minutes, the request returns
|
|
6572
6996
|
* 422 unless confirm_allocation_conflict is sent true. The feature-allocation cap is
|
|
6573
6997
|
* enforced, and because a persisted feature_ids= writes its join rows
|
|
6574
6998
|
* immediately, a rejected save rolls them back within the enclosing
|
|
6575
|
-
* transaction.
|
|
6576
|
-
* is an admin in the entry's company; any other user-scoped key that sends
|
|
6577
|
-
* it, null included, is forbidden (403) and the entry is left unchanged.
|
|
6999
|
+
* transaction. hourly_rate_cents is admin only on user-scoped keys.
|
|
6578
7000
|
*
|
|
6579
7001
|
*
|
|
6580
7002
|
* **Required scope:**
|