@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.
@@ -176,6 +176,12 @@ export const zProblem = z.object({
176
176
  *
177
177
  * The parent already has an import that has not reported yet. Acceptance is synchronous but the write happens in the background, so a second file would be validated against records the queued import has not written to yet and both would apply. Poll the earlier import until it reports, then submit again.
178
178
  *
179
+ * ### pay_schedule_already_exists
180
+ *
181
+ * **Pay Schedule Already Exists**
182
+ *
183
+ * The company already has a pay schedule, including one starting in the future or ending in the past. Use the existing schedule instead of creating another.
184
+ *
179
185
  * ### product_archived
180
186
  *
181
187
  * **Product Archived**
@@ -376,6 +382,7 @@ export const zProblemTypeCatalog = z.enum([
376
382
  'not_found',
377
383
  'already_terminated',
378
384
  'import_in_progress',
385
+ 'pay_schedule_already_exists',
379
386
  'product_archived',
380
387
  'recorded_since_termination',
381
388
  'span_beyond_timeline_end',
@@ -1287,7 +1294,7 @@ export const zPerDiemUpdateParameters = z.object({
1287
1294
  timekeeping_timecode_ids: z.array(z.string()).optional()
1288
1295
  });
1289
1296
  /**
1290
- * The product's filled attribute values — one entry per attribute assigned to its category.
1297
+ * The filled attribute values of a product or item — one entry per attribute its category makes fillable on that record.
1291
1298
  */
1292
1299
  export const zAssetsAttributeValueObjects = z.array(z.object({
1293
1300
  assets_attribute_id: z.string(),
@@ -1502,7 +1509,39 @@ export const zAttestationConfigParameters = z.object({
1502
1509
  us_state_id: z.string().nullish()
1503
1510
  });
1504
1511
  /**
1505
- * A pay schedule (PayPeriodConfig) — the top-level timekeeping unit that sets a company's payroll cadence and tracking modes and generates its stream of pay periods. Read-only; only the currently-valid version is returned, keyed by its stable id.
1512
+ * Create the company's first pay schedule. Time and payroll modes inherit company defaults.
1513
+ */
1514
+ export const zPayPeriodConfigParameters = z.object({
1515
+ effective_date: z.iso.date(),
1516
+ frequency: z.enum(['weekly', 'biweekly']),
1517
+ start_day_of_week: z.union([
1518
+ z.literal(0),
1519
+ z.literal(1),
1520
+ z.literal(2),
1521
+ z.literal(3),
1522
+ z.literal(4),
1523
+ z.literal(5),
1524
+ z.literal(6)
1525
+ ]),
1526
+ tz_name: z.string(),
1527
+ currency: z.string().optional().default('USD'),
1528
+ rounding_interval: z.union([z.literal(1), z.literal(15)]).optional().default(1),
1529
+ payroll_system: z.enum([
1530
+ 'rippling',
1531
+ 'quickbooks_online',
1532
+ 'paychex',
1533
+ 'gusto'
1534
+ ]).nullish(),
1535
+ paid_after_holiday: z.boolean().optional().default(true),
1536
+ arrear_days: z.int().gte(0),
1537
+ pay_run_deadline_days: z.int().gte(1),
1538
+ pay_run_deadline_clock_time: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]$/),
1539
+ approvals_deadline_days: z.int().gte(0),
1540
+ approvals_deadline_clock_time: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]$/),
1541
+ time_card_auto_lock_days: z.int().nullish()
1542
+ });
1543
+ /**
1544
+ * A pay schedule (PayPeriodConfig) — the top-level timekeeping unit that sets a company's payroll cadence and tracking modes and generates its stream of pay periods. Reads return the version valid at the requested time; create returns the new schedule, keyed by its stable id.
1506
1545
  */
1507
1546
  export const zPayPeriodConfigResponseObject = z.object({
1508
1547
  id: z.string(),
@@ -2159,6 +2198,7 @@ export const zFormDefinitionObject = z.object({
2159
2198
  title_keys: z.array(z.string()).nullable(),
2160
2199
  editable: z.boolean(),
2161
2200
  always_visible: z.boolean(),
2201
+ assignment_only: z.boolean(),
2162
2202
  sensitive_form: z.boolean(),
2163
2203
  allow_carry_forward: z.boolean(),
2164
2204
  current_revision: z.int().nullable(),
@@ -2481,10 +2521,10 @@ export const zJobParameters = z.object({
2481
2521
  name: z.string().nullish(),
2482
2522
  description: z.string().optional(),
2483
2523
  requested_by_company_id: z.string().optional(),
2484
- created_by_user_id: z.string().optional(),
2485
2524
  manager_user_ids: z.array(z.string()).nullish(),
2486
2525
  purchase_order_number: z.string().nullish(),
2487
2526
  project_id: z.string().nullish(),
2527
+ companies_department_id: z.string().nullish(),
2488
2528
  federal_pwa_mode: z.enum([
2489
2529
  'all',
2490
2530
  'pw_only',
@@ -2559,6 +2599,7 @@ export const zJobParameters = z.object({
2559
2599
  * Parameters for creating a job. `requested_by_company_id` and `created_by_user_id` are required. Sets the job's schedule, work types, address, custom-field values, and optional Prevailing Wage / Apprenticeship (PWA) compliance.
2560
2600
  */
2561
2601
  export const zJobCreateParameters = zJobParameters.and(z.object({
2602
+ created_by_user_id: z.string(),
2562
2603
  template_id: z.string().nullish(),
2563
2604
  custom_fields: z.array(z.object({
2564
2605
  custom_field_config_id: z.string(),
@@ -2566,7 +2607,7 @@ export const zJobCreateParameters = zJobParameters.and(z.object({
2566
2607
  })).optional()
2567
2608
  }));
2568
2609
  /**
2569
- * Parameters for updating an existing job. Every field is optional; omit a field to preserve its current value. The resulting job must still satisfy schedule and PWA validation rules. Accepts every shared job field plus a directly settable status and custom-field changes.
2610
+ * Parameters for updating an existing job. Every field is optional; omit a field to preserve its current value. The resulting job must still satisfy schedule and PWA validation rules. Accepts every shared job field plus a directly settable status and custom-field changes. Sending `created_by_user_id` returns 400 unknown_key, including when it matches the existing creator or is null.
2570
2611
  */
2571
2612
  export const zJobUpdateParameters = zJobParameters.and(z.object({
2572
2613
  status: z.enum([
@@ -3176,7 +3217,7 @@ export const zPayrollRunResponseObject = z.object({
3176
3217
  updated_at: z.iso.datetime()
3177
3218
  });
3178
3219
  /**
3179
- * Create a payroll run. company_id, run_type, and run_date are required; an on-cycle run additionally requires timekeeping_pay_period_id.
3220
+ * Create a payroll run. Company-scoped keys and company-admin user-scoped keys accept the same fields. Manager and technician user keys cannot create runs. company_id, run_type, and run_date are required; an on-cycle run additionally requires timekeeping_pay_period_id.
3180
3221
  */
3181
3222
  export const zPayrollRunParameters = z.object({
3182
3223
  company_id: z.string(),
@@ -3194,7 +3235,7 @@ export const zPayrollRunParameters = z.object({
3194
3235
  external_id: z.string().nullish()
3195
3236
  });
3196
3237
  /**
3197
- * Update a payroll run. Every field is optional — send only what changes. The run's company is fixed at creation.
3238
+ * Update a payroll run. Company-scoped keys and company-admin user-scoped keys accept the same fields. Manager and technician user keys cannot update runs. Every field is optional — send only what changes. The run's company is fixed at creation.
3198
3239
  */
3199
3240
  export const zPayrollRunUpdateParameters = z.object({
3200
3241
  timekeeping_pay_period_id: z.string().nullish(),
@@ -4081,10 +4122,478 @@ export const zJobSiteParameters = z.object({
4081
4122
  feature_ids: z.array(z.string()).optional()
4082
4123
  });
4083
4124
  /**
4084
- * Request body for replacing the features on an existing job-site join. `site_id` cannot be changed; send a new join to attach a different site.
4125
+ * Request body for replacing the features on an existing job-site join. `site_id` cannot be changed; send a new join to attach a different site.
4126
+ */
4127
+ export const zJobSiteUpdateParameters = z.object({
4128
+ feature_ids: z.array(z.string()).optional()
4129
+ });
4130
+ /**
4131
+ * A form-completion task attached to a job — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::JobFormAssignmentTask` id, not the web show `Task#uid`.
4132
+ */
4133
+ export const zJobFormAssignmentResponseObject = z.object({
4134
+ id: z.string(),
4135
+ job_id: z.string(),
4136
+ form_definition_id: z.string(),
4137
+ name: z.string(),
4138
+ description: z.string().nullable(),
4139
+ tz_name: z.string(),
4140
+ time_due: z.iso.datetime().nullable(),
4141
+ frequency: z.enum([
4142
+ 'DAILY',
4143
+ 'WORKDAILY',
4144
+ 'WORKDAILYSIX',
4145
+ 'WEEKLY',
4146
+ 'BIWEEKLY',
4147
+ 'MONTHLY',
4148
+ 'QUARTERLY'
4149
+ ]).nullable(),
4150
+ recurrence_end_time: z.iso.datetime().nullable(),
4151
+ task_assignee_user_ids: z.array(z.string()),
4152
+ reminders: z.array(z.object({
4153
+ offset: z.string(),
4154
+ remind_at: z.iso.datetime()
4155
+ }))
4156
+ });
4157
+ /**
4158
+ * A form-completion task attached to a site — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::SiteFormAssignmentTask` id, not the web show `Task#uid`. Sites are shared across companies; another company's assignment on the same site is not found. An empty assignee list is valid.
4159
+ */
4160
+ export const zSiteFormAssignmentResponseObject = z.object({
4161
+ id: z.string(),
4162
+ site_id: z.string(),
4163
+ form_definition_id: z.string(),
4164
+ name: z.string(),
4165
+ description: z.string().nullable(),
4166
+ tz_name: z.string(),
4167
+ time_due: z.iso.datetime().nullable(),
4168
+ frequency: z.enum([
4169
+ 'DAILY',
4170
+ 'WORKDAILY',
4171
+ 'WORKDAILYSIX',
4172
+ 'WEEKLY',
4173
+ 'BIWEEKLY',
4174
+ 'MONTHLY',
4175
+ 'QUARTERLY'
4176
+ ]).nullable(),
4177
+ recurrence_end_time: z.iso.datetime().nullable(),
4178
+ task_assignee_user_ids: z.array(z.string()),
4179
+ reminders: z.array(z.object({
4180
+ offset: z.string(),
4181
+ remind_at: z.iso.datetime()
4182
+ }))
4183
+ });
4184
+ /**
4185
+ * Create a site form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). site_id comes from the path and is not part of the body. recurring gates the recurrence fields. An empty task_assignee_user_ids list is valid. The company must hold a SiteClaim on the site with site_forms enabled.
4186
+ */
4187
+ export const zSiteFormAssignmentParameters = z.object({
4188
+ form_definition_id: z.string(),
4189
+ recurring: z.boolean().optional(),
4190
+ task_attributes: z.object({
4191
+ name: z.string().nullish(),
4192
+ description: z.string().nullish(),
4193
+ created_by_user_id: z.string(),
4194
+ time_due: z.iso.datetime().nullish(),
4195
+ tz_name: z.string().nullish(),
4196
+ frequency: z.enum([
4197
+ 'DAILY',
4198
+ 'WORKDAILY',
4199
+ 'WORKDAILYSIX',
4200
+ 'WEEKLY',
4201
+ 'BIWEEKLY',
4202
+ 'MONTHLY',
4203
+ 'QUARTERLY'
4204
+ ]).nullish(),
4205
+ recurrence_end_time: z.iso.datetime().nullish(),
4206
+ task_assignee_user_ids: z.array(z.string()).optional(),
4207
+ reminders_attributes: z.array(z.object({
4208
+ offset: z.enum([
4209
+ 'PT0S',
4210
+ 'PT-1M',
4211
+ 'PT-5M',
4212
+ 'PT-10M',
4213
+ 'PT-15M',
4214
+ 'PT-30M',
4215
+ 'PT-1H',
4216
+ 'PT-2H',
4217
+ 'P-1D',
4218
+ 'P-2D',
4219
+ 'P-3D',
4220
+ 'P-4D',
4221
+ 'P-5D',
4222
+ 'P-6D',
4223
+ 'P-1W',
4224
+ 'P-2W',
4225
+ 'P-1M',
4226
+ 'P-2M',
4227
+ 'P-3M',
4228
+ 'P-6M',
4229
+ 'P-1Y',
4230
+ 'PT5M',
4231
+ 'PT15M',
4232
+ 'PT30M',
4233
+ 'PT1H',
4234
+ 'PT6H',
4235
+ 'PT12H',
4236
+ 'P1D',
4237
+ 'P2D',
4238
+ 'P3D',
4239
+ 'P4D',
4240
+ 'P5D',
4241
+ 'P6D',
4242
+ 'P1W',
4243
+ 'P2W',
4244
+ 'P3W'
4245
+ ])
4246
+ })).optional()
4247
+ })
4248
+ });
4249
+ /**
4250
+ * Update a site form assignment. All fields are optional — send only what changes. site_id comes from the path and cannot be sent. recurring gates the recurrence fields, and task_attributes.reminders_attributes replaces the existing reminder set when supplied. An empty task_assignee_user_ids list is valid. The creator is set at creation and cannot be sent.
4251
+ */
4252
+ export const zSiteFormAssignmentUpdateParameters = z.object({
4253
+ form_definition_id: z.string().optional(),
4254
+ recurring: z.boolean().optional(),
4255
+ task_attributes: z.object({
4256
+ name: z.string().nullish(),
4257
+ description: z.string().nullish(),
4258
+ time_due: z.iso.datetime().nullish(),
4259
+ tz_name: z.string().nullish(),
4260
+ frequency: z.enum([
4261
+ 'DAILY',
4262
+ 'WORKDAILY',
4263
+ 'WORKDAILYSIX',
4264
+ 'WEEKLY',
4265
+ 'BIWEEKLY',
4266
+ 'MONTHLY',
4267
+ 'QUARTERLY'
4268
+ ]).nullish(),
4269
+ recurrence_end_time: z.iso.datetime().nullish(),
4270
+ task_assignee_user_ids: z.array(z.string()).optional(),
4271
+ reminders_attributes: z.array(z.object({
4272
+ offset: z.enum([
4273
+ 'PT0S',
4274
+ 'PT-1M',
4275
+ 'PT-5M',
4276
+ 'PT-10M',
4277
+ 'PT-15M',
4278
+ 'PT-30M',
4279
+ 'PT-1H',
4280
+ 'PT-2H',
4281
+ 'P-1D',
4282
+ 'P-2D',
4283
+ 'P-3D',
4284
+ 'P-4D',
4285
+ 'P-5D',
4286
+ 'P-6D',
4287
+ 'P-1W',
4288
+ 'P-2W',
4289
+ 'P-1M',
4290
+ 'P-2M',
4291
+ 'P-3M',
4292
+ 'P-6M',
4293
+ 'P-1Y',
4294
+ 'PT5M',
4295
+ 'PT15M',
4296
+ 'PT30M',
4297
+ 'PT1H',
4298
+ 'PT6H',
4299
+ 'PT12H',
4300
+ 'P1D',
4301
+ 'P2D',
4302
+ 'P3D',
4303
+ 'P4D',
4304
+ 'P5D',
4305
+ 'P6D',
4306
+ 'P1W',
4307
+ 'P2W',
4308
+ 'P3W'
4309
+ ])
4310
+ })).optional()
4311
+ }).optional()
4312
+ });
4313
+ /**
4314
+ * A form-completion task attached to a site feature — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::FeatureFormAssignmentTask` id, not the web show `Task#uid`. Sites and features are shared across companies; another company's assignment on the same feature is not found. An empty assignee list is valid. The assignment does not include site_id.
4315
+ */
4316
+ export const zFeatureFormAssignmentResponseObject = z.object({
4317
+ id: z.string(),
4318
+ feature_id: z.string(),
4319
+ form_definition_id: z.string(),
4320
+ name: z.string(),
4321
+ description: z.string().nullable(),
4322
+ tz_name: z.string(),
4323
+ time_due: z.iso.datetime().nullable(),
4324
+ frequency: z.enum([
4325
+ 'DAILY',
4326
+ 'WORKDAILY',
4327
+ 'WORKDAILYSIX',
4328
+ 'WEEKLY',
4329
+ 'BIWEEKLY',
4330
+ 'MONTHLY',
4331
+ 'QUARTERLY'
4332
+ ]).nullable(),
4333
+ recurrence_end_time: z.iso.datetime().nullable(),
4334
+ task_assignee_user_ids: z.array(z.string()),
4335
+ reminders: z.array(z.object({
4336
+ offset: z.string(),
4337
+ remind_at: z.iso.datetime()
4338
+ }))
4339
+ });
4340
+ /**
4341
+ * Create a feature form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). site_id and feature_id come from the path and are not part of the body. recurring gates the recurrence fields. An empty task_assignee_user_ids list is valid. The company must hold a SiteClaim on the path's site with site_forms enabled, and the feature must belong to that site.
4342
+ */
4343
+ export const zFeatureFormAssignmentParameters = z.object({
4344
+ form_definition_id: z.string(),
4345
+ recurring: z.boolean().optional(),
4346
+ task_attributes: z.object({
4347
+ name: z.string().nullish(),
4348
+ description: z.string().nullish(),
4349
+ created_by_user_id: z.string(),
4350
+ time_due: z.iso.datetime().nullish(),
4351
+ tz_name: z.string().nullish(),
4352
+ frequency: z.enum([
4353
+ 'DAILY',
4354
+ 'WORKDAILY',
4355
+ 'WORKDAILYSIX',
4356
+ 'WEEKLY',
4357
+ 'BIWEEKLY',
4358
+ 'MONTHLY',
4359
+ 'QUARTERLY'
4360
+ ]).nullish(),
4361
+ recurrence_end_time: z.iso.datetime().nullish(),
4362
+ task_assignee_user_ids: z.array(z.string()).optional(),
4363
+ reminders_attributes: z.array(z.object({
4364
+ offset: z.enum([
4365
+ 'PT0S',
4366
+ 'PT-1M',
4367
+ 'PT-5M',
4368
+ 'PT-10M',
4369
+ 'PT-15M',
4370
+ 'PT-30M',
4371
+ 'PT-1H',
4372
+ 'PT-2H',
4373
+ 'P-1D',
4374
+ 'P-2D',
4375
+ 'P-3D',
4376
+ 'P-4D',
4377
+ 'P-5D',
4378
+ 'P-6D',
4379
+ 'P-1W',
4380
+ 'P-2W',
4381
+ 'P-1M',
4382
+ 'P-2M',
4383
+ 'P-3M',
4384
+ 'P-6M',
4385
+ 'P-1Y',
4386
+ 'PT5M',
4387
+ 'PT15M',
4388
+ 'PT30M',
4389
+ 'PT1H',
4390
+ 'PT6H',
4391
+ 'PT12H',
4392
+ 'P1D',
4393
+ 'P2D',
4394
+ 'P3D',
4395
+ 'P4D',
4396
+ 'P5D',
4397
+ 'P6D',
4398
+ 'P1W',
4399
+ 'P2W',
4400
+ 'P3W'
4401
+ ])
4402
+ })).optional()
4403
+ })
4404
+ });
4405
+ /**
4406
+ * Update a feature form assignment. All fields are optional — send only what changes. site_id and feature_id come from the path and cannot be sent. recurring gates the recurrence fields, and task_attributes.reminders_attributes replaces the existing reminder set when supplied. An empty task_assignee_user_ids list is valid. The creator is set at creation and cannot be sent.
4407
+ */
4408
+ export const zFeatureFormAssignmentUpdateParameters = z.object({
4409
+ form_definition_id: z.string().optional(),
4410
+ recurring: z.boolean().optional(),
4411
+ task_attributes: z.object({
4412
+ name: z.string().nullish(),
4413
+ description: z.string().nullish(),
4414
+ time_due: z.iso.datetime().nullish(),
4415
+ tz_name: z.string().nullish(),
4416
+ frequency: z.enum([
4417
+ 'DAILY',
4418
+ 'WORKDAILY',
4419
+ 'WORKDAILYSIX',
4420
+ 'WEEKLY',
4421
+ 'BIWEEKLY',
4422
+ 'MONTHLY',
4423
+ 'QUARTERLY'
4424
+ ]).nullish(),
4425
+ recurrence_end_time: z.iso.datetime().nullish(),
4426
+ task_assignee_user_ids: z.array(z.string()).optional(),
4427
+ reminders_attributes: z.array(z.object({
4428
+ offset: z.enum([
4429
+ 'PT0S',
4430
+ 'PT-1M',
4431
+ 'PT-5M',
4432
+ 'PT-10M',
4433
+ 'PT-15M',
4434
+ 'PT-30M',
4435
+ 'PT-1H',
4436
+ 'PT-2H',
4437
+ 'P-1D',
4438
+ 'P-2D',
4439
+ 'P-3D',
4440
+ 'P-4D',
4441
+ 'P-5D',
4442
+ 'P-6D',
4443
+ 'P-1W',
4444
+ 'P-2W',
4445
+ 'P-1M',
4446
+ 'P-2M',
4447
+ 'P-3M',
4448
+ 'P-6M',
4449
+ 'P-1Y',
4450
+ 'PT5M',
4451
+ 'PT15M',
4452
+ 'PT30M',
4453
+ 'PT1H',
4454
+ 'PT6H',
4455
+ 'PT12H',
4456
+ 'P1D',
4457
+ 'P2D',
4458
+ 'P3D',
4459
+ 'P4D',
4460
+ 'P5D',
4461
+ 'P6D',
4462
+ 'P1W',
4463
+ 'P2W',
4464
+ 'P3W'
4465
+ ])
4466
+ })).optional()
4467
+ }).optional()
4468
+ });
4469
+ /**
4470
+ * Create a job form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). job_id comes from the path and is not part of the body. recurring gates the recurrence fields. An assignee outside the credential company returns 422, and a creator outside it returns 403.
4471
+ */
4472
+ export const zJobFormAssignmentParameters = z.object({
4473
+ form_definition_id: z.string(),
4474
+ recurring: z.boolean().optional(),
4475
+ task_attributes: z.object({
4476
+ name: z.string().nullish(),
4477
+ description: z.string().nullish(),
4478
+ created_by_user_id: z.string(),
4479
+ time_due: z.iso.datetime().nullish(),
4480
+ tz_name: z.string().nullish(),
4481
+ frequency: z.enum([
4482
+ 'DAILY',
4483
+ 'WORKDAILY',
4484
+ 'WORKDAILYSIX',
4485
+ 'WEEKLY',
4486
+ 'BIWEEKLY',
4487
+ 'MONTHLY',
4488
+ 'QUARTERLY'
4489
+ ]).nullish(),
4490
+ recurrence_end_time: z.iso.datetime().nullish(),
4491
+ task_assignee_user_ids: z.array(z.string()).optional(),
4492
+ reminders_attributes: z.array(z.object({
4493
+ offset: z.enum([
4494
+ 'PT0S',
4495
+ 'PT-1M',
4496
+ 'PT-5M',
4497
+ 'PT-10M',
4498
+ 'PT-15M',
4499
+ 'PT-30M',
4500
+ 'PT-1H',
4501
+ 'PT-2H',
4502
+ 'P-1D',
4503
+ 'P-2D',
4504
+ 'P-3D',
4505
+ 'P-4D',
4506
+ 'P-5D',
4507
+ 'P-6D',
4508
+ 'P-1W',
4509
+ 'P-2W',
4510
+ 'P-1M',
4511
+ 'P-2M',
4512
+ 'P-3M',
4513
+ 'P-6M',
4514
+ 'P-1Y',
4515
+ 'PT5M',
4516
+ 'PT15M',
4517
+ 'PT30M',
4518
+ 'PT1H',
4519
+ 'PT6H',
4520
+ 'PT12H',
4521
+ 'P1D',
4522
+ 'P2D',
4523
+ 'P3D',
4524
+ 'P4D',
4525
+ 'P5D',
4526
+ 'P6D',
4527
+ 'P1W',
4528
+ 'P2W',
4529
+ 'P3W'
4530
+ ])
4531
+ })).optional()
4532
+ })
4533
+ });
4534
+ /**
4535
+ * Update a job form assignment. All fields are optional — send only what changes. job_id comes from the path and cannot be sent. recurring gates the recurrence fields, and task_attributes.reminders_attributes replaces the existing reminder set when supplied. A newly added assignee outside the credential company returns 422. The creator is set at creation and cannot be sent.
4085
4536
  */
4086
- export const zJobSiteUpdateParameters = z.object({
4087
- feature_ids: z.array(z.string()).optional()
4537
+ export const zJobFormAssignmentUpdateParameters = z.object({
4538
+ form_definition_id: z.string().optional(),
4539
+ recurring: z.boolean().optional(),
4540
+ task_attributes: z.object({
4541
+ name: z.string().nullish(),
4542
+ description: z.string().nullish(),
4543
+ time_due: z.iso.datetime().nullish(),
4544
+ tz_name: z.string().nullish(),
4545
+ frequency: z.enum([
4546
+ 'DAILY',
4547
+ 'WORKDAILY',
4548
+ 'WORKDAILYSIX',
4549
+ 'WEEKLY',
4550
+ 'BIWEEKLY',
4551
+ 'MONTHLY',
4552
+ 'QUARTERLY'
4553
+ ]).nullish(),
4554
+ recurrence_end_time: z.iso.datetime().nullish(),
4555
+ task_assignee_user_ids: z.array(z.string()).optional(),
4556
+ reminders_attributes: z.array(z.object({
4557
+ offset: z.enum([
4558
+ 'PT0S',
4559
+ 'PT-1M',
4560
+ 'PT-5M',
4561
+ 'PT-10M',
4562
+ 'PT-15M',
4563
+ 'PT-30M',
4564
+ 'PT-1H',
4565
+ 'PT-2H',
4566
+ 'P-1D',
4567
+ 'P-2D',
4568
+ 'P-3D',
4569
+ 'P-4D',
4570
+ 'P-5D',
4571
+ 'P-6D',
4572
+ 'P-1W',
4573
+ 'P-2W',
4574
+ 'P-1M',
4575
+ 'P-2M',
4576
+ 'P-3M',
4577
+ 'P-6M',
4578
+ 'P-1Y',
4579
+ 'PT5M',
4580
+ 'PT15M',
4581
+ 'PT30M',
4582
+ 'PT1H',
4583
+ 'PT6H',
4584
+ 'PT12H',
4585
+ 'P1D',
4586
+ 'P2D',
4587
+ 'P3D',
4588
+ 'P4D',
4589
+ 'P5D',
4590
+ 'P6D',
4591
+ 'P1W',
4592
+ 'P2W',
4593
+ 'P3W'
4594
+ ])
4595
+ })).optional()
4596
+ }).optional()
4088
4597
  });
4089
4598
  /**
4090
4599
  * A company-owned collection of conditional wage and fringe adjustments, optionally scoped to a job.
@@ -4117,7 +4626,6 @@ export const zPayRatesRulePackageUpdateParameters = z.object({
4117
4626
  * Request body for creating or updating a position on a job. The job is taken from the URL path.
4118
4627
  */
4119
4628
  export const zPositionParameters = z.object({
4120
- job_id: z.string().optional(),
4121
4629
  fulfilled_by_user_id: z.string().nullish(),
4122
4630
  start_time: z.iso.datetime().nullish(),
4123
4631
  end_time: z.iso.datetime().nullish(),
@@ -4165,6 +4673,17 @@ export const zProductionJobScopePriceResponseObject = z.object({
4165
4673
  created_at: z.iso.datetime(),
4166
4674
  updated_at: z.iso.datetime()
4167
4675
  });
4676
+ /**
4677
+ * Update a completion. Send only the fields to change. The scope price, filer, and feature reference are fixed at creation. Sending production_job_scope_price_id or performed_by_user_id on update returns 400 unknown_key. Feature completions accept no completable changes; quantity completions accept quantity_completed. A key for the other subtype returns 422.
4678
+ */
4679
+ export const zProductionCompletionUpdateParameters = z.object({
4680
+ notes: z.string().nullish(),
4681
+ work_date: z.iso.date().optional(),
4682
+ position_ids: z.array(z.string()).optional(),
4683
+ completable_attributes: z.object({
4684
+ quantity_completed: z.int().optional()
4685
+ }).optional()
4686
+ });
4168
4687
  /**
4169
4688
  * Fields shared by both completion payload kinds.
4170
4689
  */
@@ -4334,7 +4853,7 @@ export const zCertificationResponseObject = z.object({
4334
4853
  updated_at: z.iso.datetime()
4335
4854
  });
4336
4855
  /**
4337
- * Request body for recording a certification held by a worker — who holds it, which certification, when it was received, and optional proof, expiry, and verification details.
4856
+ * Request body for recording a certification held by a worker — who holds it, which certification, when it was received, and optional proof and expiry. Verification is read-only for all API keys; employer approval is a separate action.
4338
4857
  */
4339
4858
  export const zUserCertificationParameters = z.object({
4340
4859
  user_id: z.string(),
@@ -4344,13 +4863,12 @@ export const zUserCertificationParameters = z.object({
4344
4863
  name: z.string().max(255).regex(/^[\w\s.-]*\.[A-Za-z0-9]+$/),
4345
4864
  content: z.string()
4346
4865
  }).nullish(),
4347
- verified: z.boolean().optional(),
4348
4866
  expiration_date: z.iso.date().nullish(),
4349
4867
  credential_id: z.string().nullish(),
4350
4868
  archived_at: z.iso.datetime().nullish()
4351
4869
  });
4352
4870
  /**
4353
- * Request body for updating a certification held by a worker. Every field is optional; omit a field to preserve its current value. The resulting certification must still have a receipt date and verification state, and any expiry date must remain after its receipt date. Changing anything but verified revokes an approval; approve through the approval endpoint.
4871
+ * Request body for updating a certification held by a worker. Every field is optional; omit a field to preserve its current value. The resulting certification must still have a receipt date. Verification is read-only for all API keys. Changes to the worker, certification, receipt date, credential number, proof document, or explicit expiration revoke DSPTCH/provider verification. Unchanged evidence, archiving, and employer approval preserve verification. Changing approved content revokes employer approval; approve through the approval endpoint.
4354
4872
  */
4355
4873
  export const zUserCertificationUpdateParameters = z.object({
4356
4874
  user_id: z.string().optional(),
@@ -4360,7 +4878,6 @@ export const zUserCertificationUpdateParameters = z.object({
4360
4878
  name: z.string().max(255).regex(/^[\w\s.-]*\.[A-Za-z0-9]+$/),
4361
4879
  content: z.string()
4362
4880
  }).nullish(),
4363
- verified: z.boolean().optional(),
4364
4881
  expiration_date: z.iso.date().nullish(),
4365
4882
  credential_id: z.string().nullish(),
4366
4883
  archived_at: z.iso.datetime().nullish()
@@ -4379,7 +4896,7 @@ export const zUserCertificationResponseObject = z.object({
4379
4896
  user_id: z.string(),
4380
4897
  certification_id: z.string(),
4381
4898
  received_at: z.iso.datetime(),
4382
- verified: z.boolean(),
4899
+ verified: z.boolean().readonly(),
4383
4900
  issuer_company_id: z.string().nullable(),
4384
4901
  expiration_date: z.iso.date().nullable(),
4385
4902
  credential_id: z.string().nullable(),
@@ -4440,6 +4957,7 @@ export const zJobResponseObject = z.object({
4440
4957
  created_by_company_id: z.string(),
4441
4958
  requested_by_company_id: z.string().nullable(),
4442
4959
  project_id: z.string().nullable(),
4960
+ companies_department_id: z.string().nullable(),
4443
4961
  manager_users: z.array(z.object({
4444
4962
  id: z.string(),
4445
4963
  name: z.string()
@@ -5018,6 +5536,7 @@ export const zDateTimeFilter = z.object({
5018
5536
  */
5019
5537
  export const zWageDeterminationResponseObject = z.object({
5020
5538
  id: z.string(),
5539
+ uid: z.uuid(),
5021
5540
  general_decision_number: z.string(),
5022
5541
  modification_number: z.int(),
5023
5542
  superseded_by_wage_determination_id: z.string().nullable(),
@@ -6051,6 +6570,7 @@ export const zAssetsItemResponseObject = z.object({
6051
6570
  container_item_id: z.string(),
6052
6571
  quantity: z.int()
6053
6572
  })),
6573
+ attributes: zAssetsAttributeValueObjects,
6054
6574
  images: z.array(zAssetsAttachmentResponseObject),
6055
6575
  archived_at: z.iso.datetime().nullable(),
6056
6576
  created_at: z.iso.datetime(),
@@ -6117,7 +6637,7 @@ export const zAssetsProductUpdateParameters = z.object({
6117
6637
  images_attributes: z.array(zAssetsAttachmentParameters).optional()
6118
6638
  });
6119
6639
  /**
6120
- * Create an asset item. The write API creates serial items only; assets_product_id and serial_number identify the product and serial number. On create you may also place the item — assets_site_id to stock it at a site, or user_id to assign it to a user (the two are mutually exclusive). performed_by_user_id is required.
6640
+ * Create an asset item. The write API creates serial items only; assets_product_id and serial_number identify the product and serial number. `attribute_values` fills the item-level attributes of the product's category. On create you may also place the item — assets_site_id to stock it at a site, or user_id to assign it to a user (the two are mutually exclusive). performed_by_user_id is required.
6121
6641
  */
6122
6642
  export const zAssetsItemParameters = z.object({
6123
6643
  name: z.string().min(1),
@@ -6129,6 +6649,11 @@ export const zAssetsItemParameters = z.object({
6129
6649
  purchase_price_cents: z.int().optional(),
6130
6650
  external_id: z.string().optional(),
6131
6651
  external_system_url: z.string().optional(),
6652
+ attribute_values: z.array(z.object({
6653
+ assets_attribute_id: z.string(),
6654
+ value: z.string().nullish(),
6655
+ assets_attribute_option_id: z.string().nullish()
6656
+ })).optional(),
6132
6657
  images_attributes: z.array(zAssetsAttachmentParameters).optional(),
6133
6658
  assets_site_id: z.string().optional(),
6134
6659
  user_id: z.string().optional(),
@@ -6137,7 +6662,7 @@ export const zAssetsItemParameters = z.object({
6137
6662
  performed_by_user_id: z.string()
6138
6663
  });
6139
6664
  /**
6140
- * Update an asset item. All item fields are optional — send only what changes — but performed_by_user_id is required to record the updater. Omitted attributes retain their existing values.
6665
+ * Update an asset item. All item fields are optional — send only what changes — but performed_by_user_id is required to record the updater. Omitted attributes retain their existing values. `attribute_values` upserts the item-level attributes of the product's category.
6141
6666
  */
6142
6667
  export const zAssetsItemUpdateParameters = z.object({
6143
6668
  name: z.string().min(1).optional(),
@@ -6149,6 +6674,11 @@ export const zAssetsItemUpdateParameters = z.object({
6149
6674
  purchase_price_cents: z.int().optional(),
6150
6675
  external_id: z.string().optional(),
6151
6676
  external_system_url: z.string().optional(),
6677
+ attribute_values: z.array(z.object({
6678
+ assets_attribute_id: z.string(),
6679
+ value: z.string().nullish(),
6680
+ assets_attribute_option_id: z.string().nullish()
6681
+ })).optional(),
6152
6682
  images_attributes: z.array(zAssetsAttachmentParameters).optional(),
6153
6683
  performed_by_user_id: z.string()
6154
6684
  });
@@ -6636,11 +7166,9 @@ export const zAssetsSubLocationParameters = z.object({
6636
7166
  code: z.string().min(1)
6637
7167
  });
6638
7168
  /**
6639
- * Update a storage location. All fields are optional — send only what changes. The holder fields cannot change after creation; renaming code cascades new path codes through the node's subtree.
7169
+ * Update a storage location. All fields are optional — send only what changes. Sending assets_site_id or container_item_id on update returns 400 unknown_key. Holder fields are accepted only on create; renaming code cascades new path codes through the node's subtree.
6640
7170
  */
6641
7171
  export const zAssetsSubLocationUpdateParameters = z.object({
6642
- assets_site_id: z.string().optional(),
6643
- container_item_id: z.string().optional(),
6644
7172
  parent_id: z.string().nullish(),
6645
7173
  kind: z.enum([
6646
7174
  'zone',
@@ -6725,6 +7253,33 @@ export const zAssetsAdjustmentParameters = z.object({
6725
7253
  export const zAssetsArchiveParameters = z.object({
6726
7254
  performed_by_user_id: z.string()
6727
7255
  });
7256
+ /**
7257
+ * A certification held by a worker — the record that a worker earned a certification, with its receipt date, optional expiry, and verification state.
7258
+ */
7259
+ export const zUserCertificationResponseObjectWritable = z.object({
7260
+ id: z.string(),
7261
+ user_id: z.string(),
7262
+ certification_id: z.string(),
7263
+ received_at: z.iso.datetime(),
7264
+ issuer_company_id: z.string().nullable(),
7265
+ expiration_date: z.iso.date().nullable(),
7266
+ credential_id: z.string().nullable(),
7267
+ approved_by_user_id: z.string().nullable(),
7268
+ created_by_user_id: z.string().nullable(),
7269
+ updated_by_user_id: z.string().nullable(),
7270
+ archived_at: z.iso.datetime().nullable(),
7271
+ approved_at: z.iso.datetime().nullable(),
7272
+ created_at: z.iso.datetime(),
7273
+ updated_at: z.iso.datetime()
7274
+ });
7275
+ /**
7276
+ * A page of certifications held by your company's workers.
7277
+ */
7278
+ export const zUserCertificationsResponseObjWritable = z.object({
7279
+ meta: zMeta,
7280
+ links: zLinks,
7281
+ data: z.array(zUserCertificationResponseObjectWritable)
7282
+ });
6728
7283
  /**
6729
7284
  * Success
6730
7285
  */
@@ -6794,6 +7349,7 @@ export const zListApprenticesPath = z.object({
6794
7349
  export const zListApprenticesQuery = z.object({
6795
7350
  'filter[user_id]': z.string().optional(),
6796
7351
  'filter[status]': z.string().optional(),
7352
+ 'filter[name]': z.string().optional(),
6797
7353
  'filter[created_at][gte]': z.iso.datetime().optional(),
6798
7354
  'filter[created_at][lte]': z.iso.datetime().optional(),
6799
7355
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -7797,7 +8353,7 @@ export const zListSubLocationsResponse = z.object({
7797
8353
  });
7798
8354
  export const zCreateSubLocationBody = zAssetsSubLocationParameters;
7799
8355
  /**
7800
- * Created
8356
+ * Created with an explicit holder
7801
8357
  */
7802
8358
  export const zCreateSubLocationResponse = zAssetsSubLocationResponseObject;
7803
8359
  export const zDeleteSubLocationPath = z.object({
@@ -8070,6 +8626,9 @@ export const zUpdateUserCertificationPath = z.object({
8070
8626
  */
8071
8627
  export const zUpdateUserCertificationResponse = zUserCertificationResponseObject;
8072
8628
  export const zListCertificationsQuery = z.object({
8629
+ 'filter[name]': z.string().optional(),
8630
+ filter: z.string().optional(),
8631
+ 'filter[unexpected]': z.string().optional(),
8073
8632
  'page[cursor]': z.string().optional(),
8074
8633
  'page[limit]': z.int().gte(1).optional().default(20),
8075
8634
  page: z.string().optional()
@@ -8106,6 +8665,7 @@ export const zUpdateCertificationPath = z.object({
8106
8665
  */
8107
8666
  export const zUpdateCertificationResponse = zCertificationResponseObject;
8108
8667
  export const zListDepartmentsQuery = z.object({
8668
+ 'filter[name]': z.string().optional(),
8109
8669
  'filter[created_at][gte]': z.iso.datetime().optional(),
8110
8670
  'filter[created_at][lte]': z.iso.datetime().optional(),
8111
8671
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -8295,6 +8855,7 @@ export const zCreateDirectUploadBody = zDirectUploadParameters;
8295
8855
  */
8296
8856
  export const zCreateDirectUploadResponse = zDirectUploadResponseObject;
8297
8857
  export const zListFormDefinitionsQuery = z.object({
8858
+ 'filter[name]': z.string().optional(),
8298
8859
  'filter[created_at][gte]': z.iso.datetime().optional(),
8299
8860
  'filter[created_at][lte]': z.iso.datetime().optional(),
8300
8861
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -8395,6 +8956,9 @@ export const zRemoveUserFromGroupPath = z.object({
8395
8956
  */
8396
8957
  export const zRemoveUserFromGroupResponse = zUserGroupResponse;
8397
8958
  export const zListGroupsQuery = z.object({
8959
+ 'filter[name]': z.string().optional(),
8960
+ filter: z.string().optional(),
8961
+ 'filter[unexpected]': z.string().optional(),
8398
8962
  'page[cursor]': z.string().optional(),
8399
8963
  'page[limit]': z.int().gte(1).optional().default(20),
8400
8964
  page: z.string().optional()
@@ -8434,6 +8998,47 @@ export const zUpdateGroupPath = z.object({
8434
8998
  * Success
8435
8999
  */
8436
9000
  export const zUpdateGroupResponse = zGroupResponseObject;
9001
+ export const zListJobFormAssignmentTasksPath = z.object({
9002
+ job_id: z.string()
9003
+ });
9004
+ export const zListJobFormAssignmentTasksQuery = z.object({
9005
+ 'page[cursor]': z.string().optional(),
9006
+ 'page[limit]': z.int().gte(1).optional().default(20),
9007
+ page: z.string().optional()
9008
+ });
9009
+ /**
9010
+ * Success
9011
+ */
9012
+ export const zListJobFormAssignmentTasksResponse = z.object({
9013
+ meta: zMeta,
9014
+ links: zLinks,
9015
+ data: z.array(zJobFormAssignmentResponseObject)
9016
+ });
9017
+ export const zCreateJobFormAssignmentTaskBody = zJobFormAssignmentParameters;
9018
+ export const zCreateJobFormAssignmentTaskPath = z.object({
9019
+ job_id: z.string()
9020
+ });
9021
+ /**
9022
+ * Created (recurring, with assignees and reminders)
9023
+ */
9024
+ export const zCreateJobFormAssignmentTaskResponse = zJobFormAssignmentResponseObject;
9025
+ export const zGetJobFormAssignmentTaskPath = z.object({
9026
+ job_id: z.string(),
9027
+ id: z.string()
9028
+ });
9029
+ /**
9030
+ * Success
9031
+ */
9032
+ export const zGetJobFormAssignmentTaskResponse = zJobFormAssignmentResponseObject;
9033
+ export const zUpdateJobFormAssignmentTaskBody = zJobFormAssignmentUpdateParameters;
9034
+ export const zUpdateJobFormAssignmentTaskPath = z.object({
9035
+ job_id: z.string(),
9036
+ id: z.string()
9037
+ });
9038
+ /**
9039
+ * Success
9040
+ */
9041
+ export const zUpdateJobFormAssignmentTaskResponse = zJobFormAssignmentResponseObject;
8437
9042
  export const zListJobScopePricesPath = z.object({
8438
9043
  job_id: z.string()
8439
9044
  });
@@ -8746,6 +9351,8 @@ export const zListJobsQuery = z.object({
8746
9351
  'filter[updated_at][gte]': z.iso.datetime().optional(),
8747
9352
  'filter[updated_at][lte]': z.iso.datetime().optional(),
8748
9353
  'filter[project_id]': z.string().optional(),
9354
+ 'filter[companies_department_id]': z.string().optional(),
9355
+ 'filter[companies_department_id][null]': z.boolean().optional(),
8749
9356
  'filter[status]': z.string().optional(),
8750
9357
  'filter[production_tracking_kind]': z.enum([
8751
9358
  'none',
@@ -8837,6 +9444,92 @@ export const zGetSiteCheckInPath = z.object({
8837
9444
  * Success
8838
9445
  */
8839
9446
  export const zGetSiteCheckInResponse = zSiteCheckInResponseObject;
9447
+ export const zListFeatureFormAssignmentTasksPath = z.object({
9448
+ site_id: z.string(),
9449
+ feature_id: z.string()
9450
+ });
9451
+ export const zListFeatureFormAssignmentTasksQuery = z.object({
9452
+ 'page[cursor]': z.string().optional(),
9453
+ 'page[limit]': z.int().gte(1).optional().default(20),
9454
+ page: z.string().optional()
9455
+ });
9456
+ /**
9457
+ * Success
9458
+ */
9459
+ export const zListFeatureFormAssignmentTasksResponse = z.object({
9460
+ meta: zMeta,
9461
+ links: zLinks,
9462
+ data: z.array(zFeatureFormAssignmentResponseObject)
9463
+ });
9464
+ export const zCreateFeatureFormAssignmentTaskBody = zFeatureFormAssignmentParameters;
9465
+ export const zCreateFeatureFormAssignmentTaskPath = z.object({
9466
+ site_id: z.string(),
9467
+ feature_id: z.string()
9468
+ });
9469
+ /**
9470
+ * Created
9471
+ */
9472
+ export const zCreateFeatureFormAssignmentTaskResponse = zFeatureFormAssignmentResponseObject;
9473
+ export const zGetFeatureFormAssignmentTaskPath = z.object({
9474
+ site_id: z.string(),
9475
+ feature_id: z.string(),
9476
+ id: z.string()
9477
+ });
9478
+ /**
9479
+ * Success
9480
+ */
9481
+ export const zGetFeatureFormAssignmentTaskResponse = zFeatureFormAssignmentResponseObject;
9482
+ export const zUpdateFeatureFormAssignmentTaskBody = zFeatureFormAssignmentUpdateParameters;
9483
+ export const zUpdateFeatureFormAssignmentTaskPath = z.object({
9484
+ site_id: z.string(),
9485
+ feature_id: z.string(),
9486
+ id: z.string()
9487
+ });
9488
+ /**
9489
+ * Success
9490
+ */
9491
+ export const zUpdateFeatureFormAssignmentTaskResponse = zFeatureFormAssignmentResponseObject;
9492
+ export const zListSiteFormAssignmentTasksPath = z.object({
9493
+ site_id: z.string()
9494
+ });
9495
+ export const zListSiteFormAssignmentTasksQuery = z.object({
9496
+ 'page[cursor]': z.string().optional(),
9497
+ 'page[limit]': z.int().gte(1).optional().default(20),
9498
+ page: z.string().optional()
9499
+ });
9500
+ /**
9501
+ * Success
9502
+ */
9503
+ export const zListSiteFormAssignmentTasksResponse = z.object({
9504
+ meta: zMeta,
9505
+ links: zLinks,
9506
+ data: z.array(zSiteFormAssignmentResponseObject)
9507
+ });
9508
+ export const zCreateSiteFormAssignmentTaskBody = zSiteFormAssignmentParameters;
9509
+ export const zCreateSiteFormAssignmentTaskPath = z.object({
9510
+ site_id: z.string()
9511
+ });
9512
+ /**
9513
+ * Created
9514
+ */
9515
+ export const zCreateSiteFormAssignmentTaskResponse = zSiteFormAssignmentResponseObject;
9516
+ export const zGetSiteFormAssignmentTaskPath = z.object({
9517
+ site_id: z.string(),
9518
+ id: z.string()
9519
+ });
9520
+ /**
9521
+ * Success
9522
+ */
9523
+ export const zGetSiteFormAssignmentTaskResponse = zSiteFormAssignmentResponseObject;
9524
+ export const zUpdateSiteFormAssignmentTaskBody = zSiteFormAssignmentUpdateParameters;
9525
+ export const zUpdateSiteFormAssignmentTaskPath = z.object({
9526
+ site_id: z.string(),
9527
+ id: z.string()
9528
+ });
9529
+ /**
9530
+ * Success
9531
+ */
9532
+ export const zUpdateSiteFormAssignmentTaskResponse = zSiteFormAssignmentResponseObject;
8840
9533
  export const zShiftOvertimeRuleGenesisBody = zOvertimeRuleGenesisParameters;
8841
9534
  export const zShiftOvertimeRuleGenesisHeaders = z.object({
8842
9535
  'If-Match': z.string()
@@ -9149,6 +9842,7 @@ export const zListPayRateRulePackagesQuery = z.object({
9149
9842
  'filter[scoped_to_job_id][null]': z.boolean().optional(),
9150
9843
  'filter[default]': z.boolean().optional(),
9151
9844
  'filter[selectable]': z.boolean().optional(),
9845
+ 'filter[name]': z.string().optional(),
9152
9846
  'filter[created_at][gte]': z.iso.datetime().optional(),
9153
9847
  'filter[created_at][lte]': z.iso.datetime().optional(),
9154
9848
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -9789,6 +10483,7 @@ export const zUpdateEmploymentResponse = zPeopleEmploymentResponseObject;
9789
10483
  export const zListPerDiemsQuery = z.object({
9790
10484
  'filter[default]': z.boolean().optional(),
9791
10485
  'filter[taxable]': z.boolean().optional(),
10486
+ 'filter[name]': z.string().optional(),
9792
10487
  'filter[created_at][gte]': z.iso.datetime().optional(),
9793
10488
  'filter[created_at][lte]': z.iso.datetime().optional(),
9794
10489
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -9884,6 +10579,10 @@ export const zListCompletionsQuery = z.object({
9884
10579
  'filter[scope_kind]': z.string().optional(),
9885
10580
  'filter[feature_id]': z.string().optional(),
9886
10581
  'filter[created_by_user_id]': z.string().optional(),
10582
+ 'filter[site_id]': z.string().optional(),
10583
+ 'filter[crew_user_id]': z.string().optional(),
10584
+ 'filter[crew_department_id]': z.string().optional(),
10585
+ 'filter[crew_group_id]': z.string().optional(),
9887
10586
  'filter[created_at][gte]': z.iso.datetime().optional(),
9888
10587
  'filter[created_at][lte]': z.iso.datetime().optional(),
9889
10588
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -9923,7 +10622,7 @@ export const zGetCompletionPath = z.object({
9923
10622
  * Success
9924
10623
  */
9925
10624
  export const zGetCompletionResponse = zProductionCompletionResponseObject;
9926
- export const zUpdateCompletionBody = zProductionCompletionParameters;
10625
+ export const zUpdateCompletionBody = zProductionCompletionUpdateParameters;
9927
10626
  export const zUpdateCompletionPath = z.object({
9928
10627
  id: z.string()
9929
10628
  });
@@ -10819,6 +11518,11 @@ export const zListPayPeriodConfigsResponse = z.object({
10819
11518
  links: zLinks,
10820
11519
  data: z.array(zPayPeriodConfigResponseObject)
10821
11520
  });
11521
+ export const zCreatePayPeriodConfigBody = zPayPeriodConfigParameters;
11522
+ /**
11523
+ * Created
11524
+ */
11525
+ export const zCreatePayPeriodConfigResponse = zPayPeriodConfigResponseObject;
10822
11526
  export const zGetPayPeriodConfigPath = z.object({
10823
11527
  id: z.string()
10824
11528
  });