@dsptch-work/api-client 0.26.0 → 0.28.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 +39 -0
- package/dist/gen/index.d.ts +2 -2
- package/dist/gen/index.js +1 -1
- package/dist/gen/sdk.gen.d.ts +385 -180
- package/dist/gen/sdk.gen.js +555 -244
- package/dist/gen/types.gen.d.ts +1364 -136
- package/dist/gen/zod.gen.d.ts +3836 -2344
- package/dist/gen/zod.gen.js +726 -22
- package/package.json +1 -1
package/dist/gen/sdk.gen.js
CHANGED
|
@@ -2210,7 +2210,7 @@ export class UserCertifications {
|
|
|
2210
2210
|
/**
|
|
2211
2211
|
* Approve user certification
|
|
2212
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.
|
|
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. A company key must name a visible admin, manager, or safety manager at its company. A user key needs an approving role at a company that employs the holder. The approver cannot be the holder.
|
|
2214
2214
|
*
|
|
2215
2215
|
* **Required scope:**
|
|
2216
2216
|
*
|
|
@@ -2437,8 +2437,9 @@ export class CompaniesDepartments {
|
|
|
2437
2437
|
*
|
|
2438
2438
|
* Deletes a department that has no employment assignments. A department still
|
|
2439
2439
|
* assigned on any employment is refused with a `422` — reassign those
|
|
2440
|
-
* employments first.
|
|
2441
|
-
*
|
|
2440
|
+
* employments first. Deleting a department clears its assignment on jobs
|
|
2441
|
+
* while preserving those jobs. A successful deletion returns `204` and the
|
|
2442
|
+
* department is gone from a later GET.
|
|
2442
2443
|
*
|
|
2443
2444
|
*
|
|
2444
2445
|
* **Required scope:**
|
|
@@ -2977,42 +2978,45 @@ export class Groups {
|
|
|
2977
2978
|
});
|
|
2978
2979
|
}
|
|
2979
2980
|
}
|
|
2980
|
-
export class
|
|
2981
|
+
export class Jobs {
|
|
2981
2982
|
/**
|
|
2982
|
-
* List
|
|
2983
|
+
* List form assignment tasks for job
|
|
2983
2984
|
*
|
|
2984
|
-
*
|
|
2985
|
-
*
|
|
2986
|
-
*
|
|
2987
|
-
*
|
|
2988
|
-
* keys, held by crew on the job, receive the same rows
|
|
2989
|
-
* without those two fields.
|
|
2985
|
+
* Returns form-completion tasks nested on the named job.
|
|
2986
|
+
* `{id}` is the `Tasks::JobFormAssignmentTask` id, not the web
|
|
2987
|
+
* show `Task#uid`. A missing or out-of-scope job reads as not
|
|
2988
|
+
* found.
|
|
2990
2989
|
*
|
|
2991
2990
|
*
|
|
2992
2991
|
* **Required scope:**
|
|
2993
2992
|
*
|
|
2994
|
-
* `jobs.
|
|
2993
|
+
* `jobs.form_assignment_tasks:read`
|
|
2995
2994
|
*
|
|
2996
2995
|
*/
|
|
2997
|
-
static
|
|
2996
|
+
static listJobFormAssignmentTasks(options) {
|
|
2998
2997
|
return (options.client ?? client).get({
|
|
2999
2998
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3000
|
-
url: '/api/v1/jobs/{job_id}/
|
|
2999
|
+
url: '/api/v1/jobs/{job_id}/form_assignment_tasks',
|
|
3001
3000
|
...options
|
|
3002
3001
|
});
|
|
3003
3002
|
}
|
|
3004
3003
|
/**
|
|
3005
|
-
* Create
|
|
3004
|
+
* Create form assignment task for job
|
|
3005
|
+
*
|
|
3006
|
+
* Creates a form-completion task on the named job. `job_id` is
|
|
3007
|
+
* the path only. `form_definition_id` and
|
|
3008
|
+
* `task_attributes.created_by_user_id` are required.
|
|
3009
|
+
*
|
|
3006
3010
|
*
|
|
3007
3011
|
* **Required scope:**
|
|
3008
3012
|
*
|
|
3009
|
-
* `jobs.
|
|
3013
|
+
* `jobs.form_assignment_tasks:create`
|
|
3010
3014
|
*
|
|
3011
3015
|
*/
|
|
3012
|
-
static
|
|
3016
|
+
static createJobFormAssignmentTask(options) {
|
|
3013
3017
|
return (options.client ?? client).post({
|
|
3014
3018
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3015
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3019
|
+
url: '/api/v1/jobs/{job_id}/form_assignment_tasks',
|
|
3016
3020
|
...options,
|
|
3017
3021
|
headers: {
|
|
3018
3022
|
'Content-Type': 'application/json',
|
|
@@ -3021,55 +3025,86 @@ export class ProductionJobScopePrices {
|
|
|
3021
3025
|
});
|
|
3022
3026
|
}
|
|
3023
3027
|
/**
|
|
3024
|
-
*
|
|
3028
|
+
* Show form assignment task on job
|
|
3029
|
+
*
|
|
3030
|
+
* Returns one form-completion task on the named job. `{id}` is
|
|
3031
|
+
* the `Tasks::JobFormAssignmentTask` id. A missing, misnested,
|
|
3032
|
+
* or out-of-scope id reads as not found.
|
|
3033
|
+
*
|
|
3025
3034
|
*
|
|
3026
3035
|
* **Required scope:**
|
|
3027
3036
|
*
|
|
3028
|
-
* `jobs.
|
|
3037
|
+
* `jobs.form_assignment_tasks:read`
|
|
3029
3038
|
*
|
|
3030
3039
|
*/
|
|
3031
|
-
static
|
|
3032
|
-
return (options.client ?? client).
|
|
3040
|
+
static getJobFormAssignmentTask(options) {
|
|
3041
|
+
return (options.client ?? client).get({
|
|
3033
3042
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3034
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3043
|
+
url: '/api/v1/jobs/{job_id}/form_assignment_tasks/{id}',
|
|
3035
3044
|
...options
|
|
3036
3045
|
});
|
|
3037
3046
|
}
|
|
3038
3047
|
/**
|
|
3039
|
-
*
|
|
3048
|
+
* Update form assignment task on job
|
|
3040
3049
|
*
|
|
3041
|
-
*
|
|
3042
|
-
*
|
|
3043
|
-
*
|
|
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.
|
|
3050
|
+
* Updates the existing task in place. `job_id` is the path only.
|
|
3051
|
+
* Replacing `task_assignee_user_ids` does not insert join rows
|
|
3052
|
+
* before authorize.
|
|
3047
3053
|
*
|
|
3048
3054
|
*
|
|
3049
3055
|
* **Required scope:**
|
|
3050
3056
|
*
|
|
3051
|
-
* `jobs.
|
|
3057
|
+
* `jobs.form_assignment_tasks:update`
|
|
3052
3058
|
*
|
|
3053
3059
|
*/
|
|
3054
|
-
static
|
|
3060
|
+
static updateJobFormAssignmentTask(options) {
|
|
3061
|
+
return (options.client ?? client).patch({
|
|
3062
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3063
|
+
url: '/api/v1/jobs/{job_id}/form_assignment_tasks/{id}',
|
|
3064
|
+
...options,
|
|
3065
|
+
headers: {
|
|
3066
|
+
'Content-Type': 'application/json',
|
|
3067
|
+
...options.headers
|
|
3068
|
+
}
|
|
3069
|
+
});
|
|
3070
|
+
}
|
|
3071
|
+
/**
|
|
3072
|
+
* List sites for job
|
|
3073
|
+
*
|
|
3074
|
+
* Returns the job-site join rows on the named job. `{id}` is the
|
|
3075
|
+
* join row, not the Site. A missing or out-of-scope job reads as
|
|
3076
|
+
* not found.
|
|
3077
|
+
*
|
|
3078
|
+
*
|
|
3079
|
+
* **Required scope:**
|
|
3080
|
+
*
|
|
3081
|
+
* `jobs.sites:read`
|
|
3082
|
+
*
|
|
3083
|
+
*/
|
|
3084
|
+
static listJobSites(options) {
|
|
3055
3085
|
return (options.client ?? client).get({
|
|
3056
3086
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3057
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3087
|
+
url: '/api/v1/jobs/{job_id}/sites',
|
|
3058
3088
|
...options
|
|
3059
3089
|
});
|
|
3060
3090
|
}
|
|
3061
3091
|
/**
|
|
3062
|
-
*
|
|
3092
|
+
* Create site for job
|
|
3093
|
+
*
|
|
3094
|
+
* Attaches a Site to the named job. `job_id` is the path only.
|
|
3095
|
+
* `site_id` is required; `feature_ids` is optional and replaced
|
|
3096
|
+
* as a set. Duplicate (job, site) pairs are rejected.
|
|
3097
|
+
*
|
|
3063
3098
|
*
|
|
3064
3099
|
* **Required scope:**
|
|
3065
3100
|
*
|
|
3066
|
-
* `jobs.
|
|
3101
|
+
* `jobs.sites:create`
|
|
3067
3102
|
*
|
|
3068
3103
|
*/
|
|
3069
|
-
static
|
|
3070
|
-
return (options.client ?? client).
|
|
3104
|
+
static createJobSite(options) {
|
|
3105
|
+
return (options.client ?? client).post({
|
|
3071
3106
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3072
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3107
|
+
url: '/api/v1/jobs/{job_id}/sites',
|
|
3073
3108
|
...options,
|
|
3074
3109
|
headers: {
|
|
3075
3110
|
'Content-Type': 'application/json',
|
|
@@ -3077,39 +3112,61 @@ export class ProductionJobScopePrices {
|
|
|
3077
3112
|
}
|
|
3078
3113
|
});
|
|
3079
3114
|
}
|
|
3080
|
-
}
|
|
3081
|
-
export class PwaTrades {
|
|
3082
3115
|
/**
|
|
3083
|
-
*
|
|
3116
|
+
* Delete site on job
|
|
3117
|
+
*
|
|
3118
|
+
* Removes the job-site join. The Site itself is not deleted.
|
|
3119
|
+
* Job-site features cascade with the join. A job may have zero
|
|
3120
|
+
* sites afterward.
|
|
3121
|
+
*
|
|
3084
3122
|
*
|
|
3085
3123
|
* **Required scope:**
|
|
3086
3124
|
*
|
|
3087
|
-
* `jobs.
|
|
3125
|
+
* `jobs.sites:delete`
|
|
3088
3126
|
*
|
|
3089
3127
|
*/
|
|
3090
|
-
static
|
|
3091
|
-
return (options.client ?? client).
|
|
3128
|
+
static deleteJobSite(options) {
|
|
3129
|
+
return (options.client ?? client).delete({
|
|
3092
3130
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3093
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3094
|
-
...options
|
|
3095
|
-
headers: {
|
|
3096
|
-
'Content-Type': 'application/json',
|
|
3097
|
-
...options.headers
|
|
3098
|
-
}
|
|
3131
|
+
url: '/api/v1/jobs/{job_id}/sites/{id}',
|
|
3132
|
+
...options
|
|
3099
3133
|
});
|
|
3100
3134
|
}
|
|
3101
3135
|
/**
|
|
3102
|
-
*
|
|
3136
|
+
* Show site on job
|
|
3137
|
+
*
|
|
3138
|
+
* Returns one job-site join on the named job. `{id}` is the join
|
|
3139
|
+
* row. A missing, misnested, or out-of-scope id reads as not found.
|
|
3140
|
+
*
|
|
3103
3141
|
*
|
|
3104
3142
|
* **Required scope:**
|
|
3105
3143
|
*
|
|
3106
|
-
* `
|
|
3144
|
+
* `jobs.sites:read`
|
|
3107
3145
|
*
|
|
3108
3146
|
*/
|
|
3109
|
-
static
|
|
3110
|
-
return (options.client ?? client).
|
|
3147
|
+
static getJobSite(options) {
|
|
3148
|
+
return (options.client ?? client).get({
|
|
3111
3149
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3112
|
-
url: '/api/v1/
|
|
3150
|
+
url: '/api/v1/jobs/{job_id}/sites/{id}',
|
|
3151
|
+
...options
|
|
3152
|
+
});
|
|
3153
|
+
}
|
|
3154
|
+
/**
|
|
3155
|
+
* Update site on job
|
|
3156
|
+
*
|
|
3157
|
+
* Replaces `feature_ids` on an existing job-site join. `site_id`
|
|
3158
|
+
* cannot be changed. An empty array clears every feature.
|
|
3159
|
+
*
|
|
3160
|
+
*
|
|
3161
|
+
* **Required scope:**
|
|
3162
|
+
*
|
|
3163
|
+
* `jobs.sites:update`
|
|
3164
|
+
*
|
|
3165
|
+
*/
|
|
3166
|
+
static updateJobSite(options) {
|
|
3167
|
+
return (options.client ?? client).patch({
|
|
3168
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3169
|
+
url: '/api/v1/jobs/{job_id}/sites/{id}',
|
|
3113
3170
|
...options,
|
|
3114
3171
|
headers: {
|
|
3115
3172
|
'Content-Type': 'application/json',
|
|
@@ -3118,32 +3175,32 @@ export class PwaTrades {
|
|
|
3118
3175
|
});
|
|
3119
3176
|
}
|
|
3120
3177
|
/**
|
|
3121
|
-
*
|
|
3122
|
-
*
|
|
3123
|
-
* Folds the craft named in the path into another in the same pool. Every wage
|
|
3124
|
-
* determination grouped under it re-points onto the target, its apprentice-scope
|
|
3125
|
-
* decisions carry over where the target holds none of its own, and the emptied
|
|
3126
|
-
* craft is deleted — all in one transaction.
|
|
3178
|
+
* List jobs
|
|
3127
3179
|
*
|
|
3128
|
-
*
|
|
3129
|
-
* deleting one is refused precisely because it would orphan them, and merging
|
|
3130
|
-
* moves them first.
|
|
3180
|
+
* **Required scope:**
|
|
3131
3181
|
*
|
|
3132
|
-
*
|
|
3133
|
-
* into. The response is the surviving craft. Regrouping re-prices the charged
|
|
3134
|
-
* hours and recomputes federal apprenticeship ratio statuses in the background,
|
|
3135
|
-
* so compliance figures may move after this returns.
|
|
3182
|
+
* `jobs:read`
|
|
3136
3183
|
*
|
|
3184
|
+
*/
|
|
3185
|
+
static listJobs(options) {
|
|
3186
|
+
return (options?.client ?? client).get({
|
|
3187
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3188
|
+
url: '/api/v1/jobs',
|
|
3189
|
+
...options
|
|
3190
|
+
});
|
|
3191
|
+
}
|
|
3192
|
+
/**
|
|
3193
|
+
* Create job
|
|
3137
3194
|
*
|
|
3138
3195
|
* **Required scope:**
|
|
3139
3196
|
*
|
|
3140
|
-
* `
|
|
3197
|
+
* `jobs:create`
|
|
3141
3198
|
*
|
|
3142
3199
|
*/
|
|
3143
|
-
static
|
|
3200
|
+
static createJob(options) {
|
|
3144
3201
|
return (options.client ?? client).post({
|
|
3145
3202
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3146
|
-
url: '/api/v1/
|
|
3203
|
+
url: '/api/v1/jobs',
|
|
3147
3204
|
...options,
|
|
3148
3205
|
headers: {
|
|
3149
3206
|
'Content-Type': 'application/json',
|
|
@@ -3152,76 +3209,70 @@ export class PwaTrades {
|
|
|
3152
3209
|
});
|
|
3153
3210
|
}
|
|
3154
3211
|
/**
|
|
3155
|
-
*
|
|
3212
|
+
* Show job
|
|
3156
3213
|
*
|
|
3157
3214
|
* **Required scope:**
|
|
3158
3215
|
*
|
|
3159
|
-
* `
|
|
3216
|
+
* `jobs:read`
|
|
3160
3217
|
*
|
|
3161
3218
|
*/
|
|
3162
|
-
static
|
|
3163
|
-
return (options
|
|
3219
|
+
static getJob(options) {
|
|
3220
|
+
return (options.client ?? client).get({
|
|
3164
3221
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3165
|
-
url: '/api/v1/
|
|
3222
|
+
url: '/api/v1/jobs/{id}',
|
|
3166
3223
|
...options
|
|
3167
3224
|
});
|
|
3168
3225
|
}
|
|
3169
3226
|
/**
|
|
3170
|
-
*
|
|
3171
|
-
*
|
|
3172
|
-
* Deletes an empty craft. A trade still grouping wage determinations, or still
|
|
3173
|
-
* carrying apprentice-scope decisions, is refused with a `422` — deleting it would
|
|
3174
|
-
* orphan what points at it. Merge it into another craft instead, which moves the
|
|
3175
|
-
* determinations first.
|
|
3176
|
-
*
|
|
3227
|
+
* Update job
|
|
3177
3228
|
*
|
|
3178
3229
|
* **Required scope:**
|
|
3179
3230
|
*
|
|
3180
|
-
* `
|
|
3231
|
+
* `jobs:update`
|
|
3181
3232
|
*
|
|
3182
3233
|
*/
|
|
3183
|
-
static
|
|
3184
|
-
return (options.client ?? client).
|
|
3234
|
+
static updateJob(options) {
|
|
3235
|
+
return (options.client ?? client).patch({
|
|
3185
3236
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3186
|
-
url: '/api/v1/
|
|
3187
|
-
...options
|
|
3237
|
+
url: '/api/v1/jobs/{id}',
|
|
3238
|
+
...options,
|
|
3239
|
+
headers: {
|
|
3240
|
+
'Content-Type': 'application/json',
|
|
3241
|
+
...options.headers
|
|
3242
|
+
}
|
|
3188
3243
|
});
|
|
3189
3244
|
}
|
|
3190
3245
|
/**
|
|
3191
|
-
*
|
|
3246
|
+
* List positions for job
|
|
3192
3247
|
*
|
|
3193
3248
|
* **Required scope:**
|
|
3194
3249
|
*
|
|
3195
|
-
* `
|
|
3250
|
+
* `jobs.positions:read`
|
|
3196
3251
|
*
|
|
3197
3252
|
*/
|
|
3198
|
-
static
|
|
3253
|
+
static listPositions(options) {
|
|
3199
3254
|
return (options.client ?? client).get({
|
|
3200
3255
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3201
|
-
url: '/api/v1/
|
|
3256
|
+
url: '/api/v1/jobs/{job_id}/positions',
|
|
3202
3257
|
...options
|
|
3203
3258
|
});
|
|
3204
3259
|
}
|
|
3205
3260
|
/**
|
|
3206
|
-
*
|
|
3207
|
-
*
|
|
3208
|
-
* Renames the craft. The name is a display label the compliance engines ignore —
|
|
3209
|
-
* they group by trade — so a rename regroups nothing and re-prices nothing. The
|
|
3210
|
-
* craft's match key is fixed at creation and is not renamed with it.
|
|
3261
|
+
* Create position for job
|
|
3211
3262
|
*
|
|
3212
|
-
*
|
|
3213
|
-
*
|
|
3263
|
+
* cash_fringe_rate_cents, hourly_rate_cents, pwa_wage_pay_rate_cents and
|
|
3264
|
+
* wage_adder_rate_cents are admin only on user-scoped keys.
|
|
3214
3265
|
*
|
|
3215
3266
|
*
|
|
3216
3267
|
* **Required scope:**
|
|
3217
3268
|
*
|
|
3218
|
-
* `
|
|
3269
|
+
* `jobs.positions:create`
|
|
3219
3270
|
*
|
|
3220
3271
|
*/
|
|
3221
|
-
static
|
|
3222
|
-
return (options.client ?? client).
|
|
3272
|
+
static createPosition(options) {
|
|
3273
|
+
return (options.client ?? client).post({
|
|
3223
3274
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3224
|
-
url: '/api/v1/
|
|
3275
|
+
url: '/api/v1/jobs/{job_id}/positions',
|
|
3225
3276
|
...options,
|
|
3226
3277
|
headers: {
|
|
3227
3278
|
'Content-Type': 'application/json',
|
|
@@ -3229,65 +3280,63 @@ export class PwaTrades {
|
|
|
3229
3280
|
}
|
|
3230
3281
|
});
|
|
3231
3282
|
}
|
|
3232
|
-
}
|
|
3233
|
-
export class JobWageDeterminationRateRules {
|
|
3234
3283
|
/**
|
|
3235
|
-
*
|
|
3236
|
-
*
|
|
3237
|
-
* A rule's whole valid-time sequence, newest window first and cursor-paginated.
|
|
3238
|
-
* Each entry is a full rate rule carrying its own `valid_from` / `valid_to`
|
|
3239
|
-
* window and a `version_status` of `scheduled`, `current` or `historical`. An
|
|
3240
|
-
* entry carries the family key as `pay_rates_rule_id` and no `id` or `uid` of
|
|
3241
|
-
* its own — every version shares the family key, so versions are told apart by
|
|
3242
|
-
* their window coordinates.
|
|
3284
|
+
* Delete position on job
|
|
3243
3285
|
*
|
|
3244
|
-
*
|
|
3245
|
-
*
|
|
3246
|
-
*
|
|
3247
|
-
*
|
|
3248
|
-
*
|
|
3249
|
-
* `as_of[transaction]` against.
|
|
3286
|
+
* Deletes a position that has no logged work and no restricting
|
|
3287
|
+
* associations. A position still referenced by time entries,
|
|
3288
|
+
* time-card per diems, completion positions, or aggregate logged
|
|
3289
|
+
* work is refused with a `422`. An unused position returns `204`
|
|
3290
|
+
* and is gone from a later GET.
|
|
3250
3291
|
*
|
|
3251
3292
|
*
|
|
3252
3293
|
* **Required scope:**
|
|
3253
3294
|
*
|
|
3254
|
-
* `jobs.
|
|
3295
|
+
* `jobs.positions:delete`
|
|
3255
3296
|
*
|
|
3256
3297
|
*/
|
|
3257
|
-
static
|
|
3258
|
-
return (options.client ?? client).
|
|
3298
|
+
static deletePosition(options) {
|
|
3299
|
+
return (options.client ?? client).delete({
|
|
3259
3300
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3260
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3301
|
+
url: '/api/v1/jobs/{job_id}/positions/{id}',
|
|
3261
3302
|
...options
|
|
3262
3303
|
});
|
|
3263
3304
|
}
|
|
3264
3305
|
/**
|
|
3265
|
-
*
|
|
3306
|
+
* Show position on job
|
|
3307
|
+
*
|
|
3308
|
+
* Returns one position on the named job. A missing, misnested, or
|
|
3309
|
+
* out-of-scope id reads as not found.
|
|
3310
|
+
*
|
|
3266
3311
|
*
|
|
3267
3312
|
* **Required scope:**
|
|
3268
3313
|
*
|
|
3269
|
-
* `jobs.
|
|
3314
|
+
* `jobs.positions:read`
|
|
3270
3315
|
*
|
|
3271
3316
|
*/
|
|
3272
|
-
static
|
|
3317
|
+
static getPosition(options) {
|
|
3273
3318
|
return (options.client ?? client).get({
|
|
3274
3319
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3275
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3320
|
+
url: '/api/v1/jobs/{job_id}/positions/{id}',
|
|
3276
3321
|
...options
|
|
3277
3322
|
});
|
|
3278
3323
|
}
|
|
3279
3324
|
/**
|
|
3280
|
-
*
|
|
3325
|
+
* Update position on job
|
|
3326
|
+
*
|
|
3327
|
+
* cash_fringe_rate_cents, hourly_rate_cents, pwa_wage_pay_rate_cents and
|
|
3328
|
+
* wage_adder_rate_cents are admin only on user-scoped keys.
|
|
3329
|
+
*
|
|
3281
3330
|
*
|
|
3282
3331
|
* **Required scope:**
|
|
3283
3332
|
*
|
|
3284
|
-
* `jobs.
|
|
3333
|
+
* `jobs.positions:update`
|
|
3285
3334
|
*
|
|
3286
3335
|
*/
|
|
3287
|
-
static
|
|
3288
|
-
return (options.client ?? client).
|
|
3336
|
+
static updatePosition(options) {
|
|
3337
|
+
return (options.client ?? client).patch({
|
|
3289
3338
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3290
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3339
|
+
url: '/api/v1/jobs/{job_id}/positions/{id}',
|
|
3291
3340
|
...options,
|
|
3292
3341
|
headers: {
|
|
3293
3342
|
'Content-Type': 'application/json',
|
|
@@ -3296,59 +3345,57 @@ export class JobWageDeterminationRateRules {
|
|
|
3296
3345
|
});
|
|
3297
3346
|
}
|
|
3298
3347
|
/**
|
|
3299
|
-
*
|
|
3348
|
+
* List job templates
|
|
3300
3349
|
*
|
|
3301
3350
|
* **Required scope:**
|
|
3302
3351
|
*
|
|
3303
|
-
* `jobs.
|
|
3352
|
+
* `jobs.templates:read`
|
|
3304
3353
|
*
|
|
3305
3354
|
*/
|
|
3306
|
-
static
|
|
3307
|
-
return (options
|
|
3355
|
+
static listTemplates(options) {
|
|
3356
|
+
return (options?.client ?? client).get({
|
|
3308
3357
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3309
|
-
url: '/api/v1/jobs/
|
|
3358
|
+
url: '/api/v1/jobs/templates',
|
|
3310
3359
|
...options
|
|
3311
3360
|
});
|
|
3312
3361
|
}
|
|
3313
3362
|
}
|
|
3314
|
-
export class
|
|
3363
|
+
export class ProductionJobScopePrices {
|
|
3315
3364
|
/**
|
|
3316
|
-
* List
|
|
3365
|
+
* List production job scope prices
|
|
3317
3366
|
*
|
|
3318
|
-
*
|
|
3319
|
-
*
|
|
3320
|
-
*
|
|
3367
|
+
* Scope prices on a production-tracked job. Company keys,
|
|
3368
|
+
* and user keys held by an administrator, manager, safety
|
|
3369
|
+
* manager, or field lead of the company that owns the job,
|
|
3370
|
+
* receive `unit_price` and `contracted_count`. Other user
|
|
3371
|
+
* keys, held by crew on the job, receive the same rows
|
|
3372
|
+
* without those two fields.
|
|
3321
3373
|
*
|
|
3322
3374
|
*
|
|
3323
3375
|
* **Required scope:**
|
|
3324
3376
|
*
|
|
3325
|
-
* `jobs.
|
|
3377
|
+
* `jobs.production.job_scope_prices:read`
|
|
3326
3378
|
*
|
|
3327
3379
|
*/
|
|
3328
|
-
static
|
|
3380
|
+
static listJobScopePrices(options) {
|
|
3329
3381
|
return (options.client ?? client).get({
|
|
3330
3382
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3331
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3383
|
+
url: '/api/v1/jobs/{job_id}/production/job_scope_prices',
|
|
3332
3384
|
...options
|
|
3333
3385
|
});
|
|
3334
3386
|
}
|
|
3335
3387
|
/**
|
|
3336
|
-
* Create
|
|
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.
|
|
3341
|
-
*
|
|
3388
|
+
* Create production job scope price
|
|
3342
3389
|
*
|
|
3343
3390
|
* **Required scope:**
|
|
3344
3391
|
*
|
|
3345
|
-
* `jobs.
|
|
3392
|
+
* `jobs.production.job_scope_prices:create`
|
|
3346
3393
|
*
|
|
3347
3394
|
*/
|
|
3348
|
-
static
|
|
3395
|
+
static createJobScopePrice(options) {
|
|
3349
3396
|
return (options.client ?? client).post({
|
|
3350
3397
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3351
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3398
|
+
url: '/api/v1/jobs/{job_id}/production/job_scope_prices',
|
|
3352
3399
|
...options,
|
|
3353
3400
|
headers: {
|
|
3354
3401
|
'Content-Type': 'application/json',
|
|
@@ -3357,60 +3404,76 @@ export class Jobs {
|
|
|
3357
3404
|
});
|
|
3358
3405
|
}
|
|
3359
3406
|
/**
|
|
3360
|
-
* Delete
|
|
3361
|
-
*
|
|
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.
|
|
3365
|
-
*
|
|
3407
|
+
* Delete production job scope price
|
|
3366
3408
|
*
|
|
3367
3409
|
* **Required scope:**
|
|
3368
3410
|
*
|
|
3369
|
-
* `jobs.
|
|
3411
|
+
* `jobs.production.job_scope_prices:delete`
|
|
3370
3412
|
*
|
|
3371
3413
|
*/
|
|
3372
|
-
static
|
|
3414
|
+
static deleteJobScopePrice(options) {
|
|
3373
3415
|
return (options.client ?? client).delete({
|
|
3374
3416
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3375
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3417
|
+
url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}',
|
|
3376
3418
|
...options
|
|
3377
3419
|
});
|
|
3378
3420
|
}
|
|
3379
3421
|
/**
|
|
3380
|
-
* Show
|
|
3422
|
+
* Show production job scope price
|
|
3381
3423
|
*
|
|
3382
|
-
*
|
|
3383
|
-
*
|
|
3424
|
+
* One scope price on a production-tracked job. Company keys,
|
|
3425
|
+
* and user keys held by an administrator, manager, safety
|
|
3426
|
+
* manager, or field lead of the company that owns the job,
|
|
3427
|
+
* receive `unit_price` and `contracted_count`. Other user
|
|
3428
|
+
* keys, held by crew on the job, receive the price without
|
|
3429
|
+
* those two fields.
|
|
3384
3430
|
*
|
|
3385
3431
|
*
|
|
3386
3432
|
* **Required scope:**
|
|
3387
3433
|
*
|
|
3388
|
-
* `jobs.
|
|
3434
|
+
* `jobs.production.job_scope_prices:read`
|
|
3389
3435
|
*
|
|
3390
3436
|
*/
|
|
3391
|
-
static
|
|
3437
|
+
static getJobScopePrice(options) {
|
|
3392
3438
|
return (options.client ?? client).get({
|
|
3393
3439
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3394
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3440
|
+
url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}',
|
|
3395
3441
|
...options
|
|
3396
3442
|
});
|
|
3397
3443
|
}
|
|
3398
3444
|
/**
|
|
3399
|
-
* Update
|
|
3445
|
+
* Update production job scope price
|
|
3400
3446
|
*
|
|
3401
|
-
*
|
|
3402
|
-
* cannot be changed. An empty array clears every feature.
|
|
3447
|
+
* **Required scope:**
|
|
3403
3448
|
*
|
|
3449
|
+
* `jobs.production.job_scope_prices:update`
|
|
3450
|
+
*
|
|
3451
|
+
*/
|
|
3452
|
+
static updateJobScopePrice(options) {
|
|
3453
|
+
return (options.client ?? client).patch({
|
|
3454
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3455
|
+
url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{id}',
|
|
3456
|
+
...options,
|
|
3457
|
+
headers: {
|
|
3458
|
+
'Content-Type': 'application/json',
|
|
3459
|
+
...options.headers
|
|
3460
|
+
}
|
|
3461
|
+
});
|
|
3462
|
+
}
|
|
3463
|
+
}
|
|
3464
|
+
export class PwaTrades {
|
|
3465
|
+
/**
|
|
3466
|
+
* Create Job Trade
|
|
3404
3467
|
*
|
|
3405
3468
|
* **Required scope:**
|
|
3406
3469
|
*
|
|
3407
|
-
* `jobs.
|
|
3470
|
+
* `jobs.pwa.trades:create`
|
|
3408
3471
|
*
|
|
3409
3472
|
*/
|
|
3410
|
-
static
|
|
3411
|
-
return (options.client ?? client).
|
|
3473
|
+
static createJobTrade(options) {
|
|
3474
|
+
return (options.client ?? client).post({
|
|
3412
3475
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3413
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3476
|
+
url: '/api/v1/jobs/{job_id}/pwa/trades',
|
|
3414
3477
|
...options,
|
|
3415
3478
|
headers: {
|
|
3416
3479
|
'Content-Type': 'application/json',
|
|
@@ -3419,32 +3482,51 @@ export class Jobs {
|
|
|
3419
3482
|
});
|
|
3420
3483
|
}
|
|
3421
3484
|
/**
|
|
3422
|
-
*
|
|
3485
|
+
* Create Project Trade
|
|
3423
3486
|
*
|
|
3424
3487
|
* **Required scope:**
|
|
3425
3488
|
*
|
|
3426
|
-
* `
|
|
3489
|
+
* `projects.pwa.trades:create`
|
|
3427
3490
|
*
|
|
3428
3491
|
*/
|
|
3429
|
-
static
|
|
3430
|
-
return (options
|
|
3492
|
+
static createProjectTrade(options) {
|
|
3493
|
+
return (options.client ?? client).post({
|
|
3431
3494
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3432
|
-
url: '/api/v1/
|
|
3433
|
-
...options
|
|
3495
|
+
url: '/api/v1/projects/{project_id}/pwa/trades',
|
|
3496
|
+
...options,
|
|
3497
|
+
headers: {
|
|
3498
|
+
'Content-Type': 'application/json',
|
|
3499
|
+
...options.headers
|
|
3500
|
+
}
|
|
3434
3501
|
});
|
|
3435
3502
|
}
|
|
3436
3503
|
/**
|
|
3437
|
-
*
|
|
3504
|
+
* Merge Trade
|
|
3505
|
+
*
|
|
3506
|
+
* Folds the craft named in the path into another in the same pool. Every wage
|
|
3507
|
+
* determination grouped under it re-points onto the target, its apprentice-scope
|
|
3508
|
+
* decisions carry over where the target holds none of its own, and the emptied
|
|
3509
|
+
* craft is deleted — all in one transaction.
|
|
3510
|
+
*
|
|
3511
|
+
* Use this rather than `DELETE` when the craft still groups determinations:
|
|
3512
|
+
* deleting one is refused precisely because it would orphan them, and merging
|
|
3513
|
+
* moves them first.
|
|
3514
|
+
*
|
|
3515
|
+
* Nothing about the determinations' rates changes; only which craft they pool
|
|
3516
|
+
* into. The response is the surviving craft. Regrouping re-prices the charged
|
|
3517
|
+
* hours and recomputes federal apprenticeship ratio statuses in the background,
|
|
3518
|
+
* so compliance figures may move after this returns.
|
|
3519
|
+
*
|
|
3438
3520
|
*
|
|
3439
3521
|
* **Required scope:**
|
|
3440
3522
|
*
|
|
3441
|
-
* `
|
|
3523
|
+
* `pwa.trades.merges:create`
|
|
3442
3524
|
*
|
|
3443
3525
|
*/
|
|
3444
|
-
static
|
|
3526
|
+
static createMerge(options) {
|
|
3445
3527
|
return (options.client ?? client).post({
|
|
3446
3528
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3447
|
-
url: '/api/v1/
|
|
3529
|
+
url: '/api/v1/pwa/trades/{trade_id}/merges',
|
|
3448
3530
|
...options,
|
|
3449
3531
|
headers: {
|
|
3450
3532
|
'Content-Type': 'application/json',
|
|
@@ -3453,70 +3535,76 @@ export class Jobs {
|
|
|
3453
3535
|
});
|
|
3454
3536
|
}
|
|
3455
3537
|
/**
|
|
3456
|
-
*
|
|
3538
|
+
* List trades
|
|
3457
3539
|
*
|
|
3458
3540
|
* **Required scope:**
|
|
3459
3541
|
*
|
|
3460
|
-
* `
|
|
3542
|
+
* `pwa.trades:read`
|
|
3461
3543
|
*
|
|
3462
3544
|
*/
|
|
3463
|
-
static
|
|
3464
|
-
return (options
|
|
3545
|
+
static listTrades(options) {
|
|
3546
|
+
return (options?.client ?? client).get({
|
|
3465
3547
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3466
|
-
url: '/api/v1/
|
|
3548
|
+
url: '/api/v1/pwa/trades',
|
|
3467
3549
|
...options
|
|
3468
3550
|
});
|
|
3469
3551
|
}
|
|
3470
3552
|
/**
|
|
3471
|
-
*
|
|
3553
|
+
* Delete Trade
|
|
3554
|
+
*
|
|
3555
|
+
* Deletes an empty craft. A trade still grouping wage determinations, or still
|
|
3556
|
+
* carrying apprentice-scope decisions, is refused with a `422` — deleting it would
|
|
3557
|
+
* orphan what points at it. Merge it into another craft instead, which moves the
|
|
3558
|
+
* determinations first.
|
|
3559
|
+
*
|
|
3472
3560
|
*
|
|
3473
3561
|
* **Required scope:**
|
|
3474
3562
|
*
|
|
3475
|
-
* `
|
|
3563
|
+
* `pwa.trades:delete`
|
|
3476
3564
|
*
|
|
3477
3565
|
*/
|
|
3478
|
-
static
|
|
3479
|
-
return (options.client ?? client).
|
|
3566
|
+
static deleteTrade(options) {
|
|
3567
|
+
return (options.client ?? client).delete({
|
|
3480
3568
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3481
|
-
url: '/api/v1/
|
|
3482
|
-
...options
|
|
3483
|
-
headers: {
|
|
3484
|
-
'Content-Type': 'application/json',
|
|
3485
|
-
...options.headers
|
|
3486
|
-
}
|
|
3569
|
+
url: '/api/v1/pwa/trades/{id}',
|
|
3570
|
+
...options
|
|
3487
3571
|
});
|
|
3488
3572
|
}
|
|
3489
3573
|
/**
|
|
3490
|
-
*
|
|
3574
|
+
* Show trade
|
|
3491
3575
|
*
|
|
3492
3576
|
* **Required scope:**
|
|
3493
3577
|
*
|
|
3494
|
-
* `
|
|
3578
|
+
* `pwa.trades:read`
|
|
3495
3579
|
*
|
|
3496
3580
|
*/
|
|
3497
|
-
static
|
|
3581
|
+
static getTrade(options) {
|
|
3498
3582
|
return (options.client ?? client).get({
|
|
3499
3583
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3500
|
-
url: '/api/v1/
|
|
3584
|
+
url: '/api/v1/pwa/trades/{id}',
|
|
3501
3585
|
...options
|
|
3502
3586
|
});
|
|
3503
3587
|
}
|
|
3504
3588
|
/**
|
|
3505
|
-
*
|
|
3589
|
+
* Rename Trade
|
|
3506
3590
|
*
|
|
3507
|
-
*
|
|
3508
|
-
*
|
|
3591
|
+
* Renames the craft. The name is a display label the compliance engines ignore —
|
|
3592
|
+
* they group by trade — so a rename regroups nothing and re-prices nothing. The
|
|
3593
|
+
* craft's match key is fixed at creation and is not renamed with it.
|
|
3594
|
+
*
|
|
3595
|
+
* To move determinations between crafts, re-point each one's `pwa_trade_id`
|
|
3596
|
+
* rather than renaming the craft they share.
|
|
3509
3597
|
*
|
|
3510
3598
|
*
|
|
3511
3599
|
* **Required scope:**
|
|
3512
3600
|
*
|
|
3513
|
-
* `
|
|
3601
|
+
* `pwa.trades:update`
|
|
3514
3602
|
*
|
|
3515
3603
|
*/
|
|
3516
|
-
static
|
|
3517
|
-
return (options.client ?? client).
|
|
3604
|
+
static updateTrade(options) {
|
|
3605
|
+
return (options.client ?? client).patch({
|
|
3518
3606
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3519
|
-
url: '/api/v1/
|
|
3607
|
+
url: '/api/v1/pwa/trades/{id}',
|
|
3520
3608
|
...options,
|
|
3521
3609
|
headers: {
|
|
3522
3610
|
'Content-Type': 'application/json',
|
|
@@ -3524,63 +3612,65 @@ export class Jobs {
|
|
|
3524
3612
|
}
|
|
3525
3613
|
});
|
|
3526
3614
|
}
|
|
3615
|
+
}
|
|
3616
|
+
export class JobWageDeterminationRateRules {
|
|
3527
3617
|
/**
|
|
3528
|
-
*
|
|
3618
|
+
* List rate rule version history
|
|
3529
3619
|
*
|
|
3530
|
-
*
|
|
3531
|
-
*
|
|
3532
|
-
*
|
|
3533
|
-
*
|
|
3534
|
-
*
|
|
3620
|
+
* A rule's whole valid-time sequence, newest window first and cursor-paginated.
|
|
3621
|
+
* Each entry is a full rate rule carrying its own `valid_from` / `valid_to`
|
|
3622
|
+
* window and a `version_status` of `scheduled`, `current` or `historical`. An
|
|
3623
|
+
* entry carries the family key as `pay_rates_rule_id` and no `id` or `uid` of
|
|
3624
|
+
* its own — every version shares the family key, so versions are told apart by
|
|
3625
|
+
* their window coordinates.
|
|
3626
|
+
*
|
|
3627
|
+
* `corrections` is always empty here: a rule keeps no audit layer, so what a
|
|
3628
|
+
* version replaced was not recorded. The field is still returned, because the
|
|
3629
|
+
* timeline answers one shape across every temporal resource. `as_of[valid]` is
|
|
3630
|
+
* rejected, since pinning a point on the valid axis would collapse the sequence
|
|
3631
|
+
* this endpoint returns, and a rule records no transaction axis to read
|
|
3632
|
+
* `as_of[transaction]` against.
|
|
3535
3633
|
*
|
|
3536
3634
|
*
|
|
3537
3635
|
* **Required scope:**
|
|
3538
3636
|
*
|
|
3539
|
-
* `jobs.
|
|
3637
|
+
* `jobs.pwa.wage_determinations.rate_rules.history:read`
|
|
3540
3638
|
*
|
|
3541
3639
|
*/
|
|
3542
|
-
static
|
|
3543
|
-
return (options.client ?? client).
|
|
3640
|
+
static listRateRuleHistory(options) {
|
|
3641
|
+
return (options.client ?? client).get({
|
|
3544
3642
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3545
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3643
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{rate_rule_id}/history',
|
|
3546
3644
|
...options
|
|
3547
3645
|
});
|
|
3548
3646
|
}
|
|
3549
3647
|
/**
|
|
3550
|
-
*
|
|
3551
|
-
*
|
|
3552
|
-
* Returns one position on the named job. A missing, misnested, or
|
|
3553
|
-
* out-of-scope id reads as not found.
|
|
3554
|
-
*
|
|
3648
|
+
* List rate rules
|
|
3555
3649
|
*
|
|
3556
3650
|
* **Required scope:**
|
|
3557
3651
|
*
|
|
3558
|
-
* `jobs.
|
|
3652
|
+
* `jobs.pwa.wage_determinations.rate_rules:read`
|
|
3559
3653
|
*
|
|
3560
3654
|
*/
|
|
3561
|
-
static
|
|
3655
|
+
static listRateRules(options) {
|
|
3562
3656
|
return (options.client ?? client).get({
|
|
3563
3657
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3564
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3658
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules',
|
|
3565
3659
|
...options
|
|
3566
3660
|
});
|
|
3567
3661
|
}
|
|
3568
3662
|
/**
|
|
3569
|
-
*
|
|
3570
|
-
*
|
|
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.
|
|
3573
|
-
*
|
|
3663
|
+
* Create rate rule
|
|
3574
3664
|
*
|
|
3575
3665
|
* **Required scope:**
|
|
3576
3666
|
*
|
|
3577
|
-
* `jobs.
|
|
3667
|
+
* `jobs.pwa.wage_determinations.rate_rules:create`
|
|
3578
3668
|
*
|
|
3579
3669
|
*/
|
|
3580
|
-
static
|
|
3581
|
-
return (options.client ?? client).
|
|
3670
|
+
static createRateRule(options) {
|
|
3671
|
+
return (options.client ?? client).post({
|
|
3582
3672
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3583
|
-
url: '/api/v1/jobs/{job_id}/
|
|
3673
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules',
|
|
3584
3674
|
...options,
|
|
3585
3675
|
headers: {
|
|
3586
3676
|
'Content-Type': 'application/json',
|
|
@@ -3589,17 +3679,17 @@ export class Jobs {
|
|
|
3589
3679
|
});
|
|
3590
3680
|
}
|
|
3591
3681
|
/**
|
|
3592
|
-
*
|
|
3682
|
+
* Show rate rule
|
|
3593
3683
|
*
|
|
3594
3684
|
* **Required scope:**
|
|
3595
3685
|
*
|
|
3596
|
-
* `jobs.
|
|
3686
|
+
* `jobs.pwa.wage_determinations.rate_rules:read`
|
|
3597
3687
|
*
|
|
3598
3688
|
*/
|
|
3599
|
-
static
|
|
3600
|
-
return (options
|
|
3689
|
+
static getRateRule(options) {
|
|
3690
|
+
return (options.client ?? client).get({
|
|
3601
3691
|
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
3602
|
-
url: '/api/v1/jobs/
|
|
3692
|
+
url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{id}',
|
|
3603
3693
|
...options
|
|
3604
3694
|
});
|
|
3605
3695
|
}
|
|
@@ -3932,6 +4022,195 @@ export class OversiteSiteCheckIns {
|
|
|
3932
4022
|
});
|
|
3933
4023
|
}
|
|
3934
4024
|
}
|
|
4025
|
+
export class OversiteFeatureFormAssignmentTasks {
|
|
4026
|
+
/**
|
|
4027
|
+
* List form assignment tasks for feature
|
|
4028
|
+
*
|
|
4029
|
+
* Returns form-completion tasks nested on the named feature.
|
|
4030
|
+
* `{id}` is the `Tasks::FeatureFormAssignmentTask` id, not the
|
|
4031
|
+
* web show `Task#uid`. Sites and features are shared; only this
|
|
4032
|
+
* company's nested tasks are listed. A missing site, a feature
|
|
4033
|
+
* not on that site, or a site without a company SiteClaim with
|
|
4034
|
+
* site_forms enabled, reads as not found.
|
|
4035
|
+
*
|
|
4036
|
+
*
|
|
4037
|
+
* **Required scope:**
|
|
4038
|
+
*
|
|
4039
|
+
* `oversite.sites.features.form_assignment_tasks:read`
|
|
4040
|
+
*
|
|
4041
|
+
*/
|
|
4042
|
+
static listFeatureFormAssignmentTasks(options) {
|
|
4043
|
+
return (options.client ?? client).get({
|
|
4044
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4045
|
+
url: '/api/v1/oversite/sites/{site_id}/features/{feature_id}/form_assignment_tasks',
|
|
4046
|
+
...options
|
|
4047
|
+
});
|
|
4048
|
+
}
|
|
4049
|
+
/**
|
|
4050
|
+
* Create form assignment task for feature
|
|
4051
|
+
*
|
|
4052
|
+
* Creates a form-completion task on the named feature. `site_id`
|
|
4053
|
+
* and `feature_id` are the path only. `form_definition_id` and
|
|
4054
|
+
* `task_attributes.created_by_user_id` are required. An empty
|
|
4055
|
+
* `task_assignee_user_ids` list is valid.
|
|
4056
|
+
*
|
|
4057
|
+
*
|
|
4058
|
+
* **Required scope:**
|
|
4059
|
+
*
|
|
4060
|
+
* `oversite.sites.features.form_assignment_tasks:create`
|
|
4061
|
+
*
|
|
4062
|
+
*/
|
|
4063
|
+
static createFeatureFormAssignmentTask(options) {
|
|
4064
|
+
return (options.client ?? client).post({
|
|
4065
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4066
|
+
url: '/api/v1/oversite/sites/{site_id}/features/{feature_id}/form_assignment_tasks',
|
|
4067
|
+
...options,
|
|
4068
|
+
headers: {
|
|
4069
|
+
'Content-Type': 'application/json',
|
|
4070
|
+
...options.headers
|
|
4071
|
+
}
|
|
4072
|
+
});
|
|
4073
|
+
}
|
|
4074
|
+
/**
|
|
4075
|
+
* Show form assignment task on feature
|
|
4076
|
+
*
|
|
4077
|
+
* Returns one form-completion task on the named feature. `{id}`
|
|
4078
|
+
* is the `Tasks::FeatureFormAssignmentTask` id. A missing,
|
|
4079
|
+
* misnested, or other-company id on this shared feature reads as
|
|
4080
|
+
* not found.
|
|
4081
|
+
*
|
|
4082
|
+
*
|
|
4083
|
+
* **Required scope:**
|
|
4084
|
+
*
|
|
4085
|
+
* `oversite.sites.features.form_assignment_tasks:read`
|
|
4086
|
+
*
|
|
4087
|
+
*/
|
|
4088
|
+
static getFeatureFormAssignmentTask(options) {
|
|
4089
|
+
return (options.client ?? client).get({
|
|
4090
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4091
|
+
url: '/api/v1/oversite/sites/{site_id}/features/{feature_id}/form_assignment_tasks/{id}',
|
|
4092
|
+
...options
|
|
4093
|
+
});
|
|
4094
|
+
}
|
|
4095
|
+
/**
|
|
4096
|
+
* Update form assignment task on feature
|
|
4097
|
+
*
|
|
4098
|
+
* Updates the existing task in place. `site_id` and
|
|
4099
|
+
* `feature_id` are the path only. Replacing
|
|
4100
|
+
* `task_assignee_user_ids` does not insert join rows before
|
|
4101
|
+
* authorize.
|
|
4102
|
+
*
|
|
4103
|
+
*
|
|
4104
|
+
* **Required scope:**
|
|
4105
|
+
*
|
|
4106
|
+
* `oversite.sites.features.form_assignment_tasks:update`
|
|
4107
|
+
*
|
|
4108
|
+
*/
|
|
4109
|
+
static updateFeatureFormAssignmentTask(options) {
|
|
4110
|
+
return (options.client ?? client).patch({
|
|
4111
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4112
|
+
url: '/api/v1/oversite/sites/{site_id}/features/{feature_id}/form_assignment_tasks/{id}',
|
|
4113
|
+
...options,
|
|
4114
|
+
headers: {
|
|
4115
|
+
'Content-Type': 'application/json',
|
|
4116
|
+
...options.headers
|
|
4117
|
+
}
|
|
4118
|
+
});
|
|
4119
|
+
}
|
|
4120
|
+
}
|
|
4121
|
+
export class OversiteSiteFormAssignmentTasks {
|
|
4122
|
+
/**
|
|
4123
|
+
* List form assignment tasks for site
|
|
4124
|
+
*
|
|
4125
|
+
* Returns form-completion tasks nested on the named site.
|
|
4126
|
+
* `{id}` is the `Tasks::SiteFormAssignmentTask` id, not the
|
|
4127
|
+
* web show `Task#uid`. Sites are shared; only this company's
|
|
4128
|
+
* nested tasks are listed. A missing site, or one without a
|
|
4129
|
+
* company SiteClaim with site_forms enabled, reads as not found.
|
|
4130
|
+
*
|
|
4131
|
+
*
|
|
4132
|
+
* **Required scope:**
|
|
4133
|
+
*
|
|
4134
|
+
* `oversite.sites.form_assignment_tasks:read`
|
|
4135
|
+
*
|
|
4136
|
+
*/
|
|
4137
|
+
static listSiteFormAssignmentTasks(options) {
|
|
4138
|
+
return (options.client ?? client).get({
|
|
4139
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4140
|
+
url: '/api/v1/oversite/sites/{site_id}/form_assignment_tasks',
|
|
4141
|
+
...options
|
|
4142
|
+
});
|
|
4143
|
+
}
|
|
4144
|
+
/**
|
|
4145
|
+
* Create form assignment task for site
|
|
4146
|
+
*
|
|
4147
|
+
* Creates a form-completion task on the named site. `site_id`
|
|
4148
|
+
* is the path only. `form_definition_id` and
|
|
4149
|
+
* `task_attributes.created_by_user_id` are required. An empty
|
|
4150
|
+
* `task_assignee_user_ids` list is valid.
|
|
4151
|
+
*
|
|
4152
|
+
*
|
|
4153
|
+
* **Required scope:**
|
|
4154
|
+
*
|
|
4155
|
+
* `oversite.sites.form_assignment_tasks:create`
|
|
4156
|
+
*
|
|
4157
|
+
*/
|
|
4158
|
+
static createSiteFormAssignmentTask(options) {
|
|
4159
|
+
return (options.client ?? client).post({
|
|
4160
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4161
|
+
url: '/api/v1/oversite/sites/{site_id}/form_assignment_tasks',
|
|
4162
|
+
...options,
|
|
4163
|
+
headers: {
|
|
4164
|
+
'Content-Type': 'application/json',
|
|
4165
|
+
...options.headers
|
|
4166
|
+
}
|
|
4167
|
+
});
|
|
4168
|
+
}
|
|
4169
|
+
/**
|
|
4170
|
+
* Show form assignment task on site
|
|
4171
|
+
*
|
|
4172
|
+
* Returns one form-completion task on the named site. `{id}` is
|
|
4173
|
+
* the `Tasks::SiteFormAssignmentTask` id. A missing, misnested,
|
|
4174
|
+
* or other-company id on this shared site reads as not found.
|
|
4175
|
+
*
|
|
4176
|
+
*
|
|
4177
|
+
* **Required scope:**
|
|
4178
|
+
*
|
|
4179
|
+
* `oversite.sites.form_assignment_tasks:read`
|
|
4180
|
+
*
|
|
4181
|
+
*/
|
|
4182
|
+
static getSiteFormAssignmentTask(options) {
|
|
4183
|
+
return (options.client ?? client).get({
|
|
4184
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4185
|
+
url: '/api/v1/oversite/sites/{site_id}/form_assignment_tasks/{id}',
|
|
4186
|
+
...options
|
|
4187
|
+
});
|
|
4188
|
+
}
|
|
4189
|
+
/**
|
|
4190
|
+
* Update form assignment task on site
|
|
4191
|
+
*
|
|
4192
|
+
* Updates the existing task in place. `site_id` is the path
|
|
4193
|
+
* only. Replacing `task_assignee_user_ids` does not insert join
|
|
4194
|
+
* rows before authorize.
|
|
4195
|
+
*
|
|
4196
|
+
*
|
|
4197
|
+
* **Required scope:**
|
|
4198
|
+
*
|
|
4199
|
+
* `oversite.sites.form_assignment_tasks:update`
|
|
4200
|
+
*
|
|
4201
|
+
*/
|
|
4202
|
+
static updateSiteFormAssignmentTask(options) {
|
|
4203
|
+
return (options.client ?? client).patch({
|
|
4204
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
4205
|
+
url: '/api/v1/oversite/sites/{site_id}/form_assignment_tasks/{id}',
|
|
4206
|
+
...options,
|
|
4207
|
+
headers: {
|
|
4208
|
+
'Content-Type': 'application/json',
|
|
4209
|
+
...options.headers
|
|
4210
|
+
}
|
|
4211
|
+
});
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
3935
4214
|
export class OvertimeRules {
|
|
3936
4215
|
/**
|
|
3937
4216
|
* Shift overtime rule genesis
|
|
@@ -4998,6 +5277,11 @@ export class PayrollRuns {
|
|
|
4998
5277
|
/**
|
|
4999
5278
|
* Create payroll run
|
|
5000
5279
|
*
|
|
5280
|
+
* Company-scoped keys and user-scoped keys belonging to company
|
|
5281
|
+
* admins can create payroll runs with the same fields. Manager
|
|
5282
|
+
* and technician user keys cannot create runs.
|
|
5283
|
+
*
|
|
5284
|
+
*
|
|
5001
5285
|
* **Required scope:**
|
|
5002
5286
|
*
|
|
5003
5287
|
* `payrolls.payroll_runs:create`
|
|
@@ -5047,6 +5331,12 @@ export class PayrollRuns {
|
|
|
5047
5331
|
/**
|
|
5048
5332
|
* Update payroll run
|
|
5049
5333
|
*
|
|
5334
|
+
* Company-scoped keys and user-scoped keys belonging to company
|
|
5335
|
+
* admins can update the same payroll run fields. Manager and
|
|
5336
|
+
* technician user keys cannot update runs. The owning company is
|
|
5337
|
+
* fixed at creation; company_id is rejected on update.
|
|
5338
|
+
*
|
|
5339
|
+
*
|
|
5050
5340
|
* **Required scope:**
|
|
5051
5341
|
*
|
|
5052
5342
|
* `payrolls.payroll_runs:update`
|
|
@@ -7459,6 +7749,27 @@ export class PaySchedules {
|
|
|
7459
7749
|
...options
|
|
7460
7750
|
});
|
|
7461
7751
|
}
|
|
7752
|
+
/**
|
|
7753
|
+
* Create pay schedule
|
|
7754
|
+
*
|
|
7755
|
+
* Creates the company’s only pay schedule. The effective date starts its valid-time window at midnight in the supplied timezone. Existing schedules, including future or ended schedules, return 409. Time and payroll modes inherit company defaults; pay periods are generated asynchronously.
|
|
7756
|
+
*
|
|
7757
|
+
* **Required scope:**
|
|
7758
|
+
*
|
|
7759
|
+
* `timekeeping.pay_period_configs:create`
|
|
7760
|
+
*
|
|
7761
|
+
*/
|
|
7762
|
+
static createPayPeriodConfig(options) {
|
|
7763
|
+
return (options.client ?? client).post({
|
|
7764
|
+
security: [{ name: 'X-Api-Key', type: 'apiKey' }],
|
|
7765
|
+
url: '/api/v1/timekeeping/pay_period_configs',
|
|
7766
|
+
...options,
|
|
7767
|
+
headers: {
|
|
7768
|
+
'Content-Type': 'application/json',
|
|
7769
|
+
...options.headers
|
|
7770
|
+
}
|
|
7771
|
+
});
|
|
7772
|
+
}
|
|
7462
7773
|
/**
|
|
7463
7774
|
* Show pay schedule
|
|
7464
7775
|
*
|