@dsptch-work/api-client 0.24.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.
@@ -136,6 +136,12 @@ export const zProblem = z.object({
136
136
  *
137
137
  * The credential is valid, but this action on this record is refused by policy. The operation is not available to this principal.
138
138
  *
139
+ * ### forbidden_key
140
+ *
141
+ * **Field Not Writable By Key**
142
+ *
143
+ * The request body carries a field the operation accepts, but the user this user-scoped API key acts for may not write it, as their role could not in the DSPTCH app. Nothing was written. Remove the fields the detail names, or send the write with a key whose user may write them.
144
+ *
139
145
  * ### insufficient_api_key_scope
140
146
  *
141
147
  * **Insufficient API Key Scope**
@@ -364,6 +370,7 @@ export const zProblemTypeCatalog = z.enum([
364
370
  'unauthorized',
365
371
  'company_scoped_key_required',
366
372
  'forbidden',
373
+ 'forbidden_key',
367
374
  'insufficient_api_key_scope',
368
375
  'user_scoped_key_required',
369
376
  'not_found',
@@ -418,6 +425,7 @@ export const zDirectUploadParameters = z.object({
418
425
  'assets.products',
419
426
  'assets.vendors',
420
427
  'compliance.checks',
428
+ 'internal.companies',
421
429
  'internal.company_todos',
422
430
  'internal.job_todos',
423
431
  'internal.project_todos',
@@ -714,7 +722,7 @@ export const zApprenticeshipProgramEmployerParameters = z.object({
714
722
  require_timecard_allocation: z.boolean().optional()
715
723
  });
716
724
  /**
717
- * Update an employer authorization in a program. Send only the fields to change; only the program's sponsor may manage this roster.
725
+ * Update an employer authorization in a program. Send only the fields to change; only the program's sponsor may manage this roster, and a company-scoped key may change only the row naming its own company.
718
726
  */
719
727
  export const zApprenticeshipProgramEmployerUpdateParameters = z.object({
720
728
  company_id: z.string().optional(),
@@ -1003,10 +1011,6 @@ export const zPeopleEmploymentUpdateParameters = z.object({
1003
1011
  payroll_id: z.string().nullish(),
1004
1012
  enrolled_in_t_and_a: z.boolean().optional()
1005
1013
  });
1006
- export const zPeopleEmploymentCustomFieldResponseObject = z.object({
1007
- custom_field_config_id: z.string(),
1008
- value: z.string().nullable()
1009
- });
1010
1014
  /**
1011
1015
  * Update stored custom-field values for one employment family in a single batch. The batch must contain at least one row. Omitted configurations keep their values, and an explicit null is stored.
1012
1016
  */
@@ -1747,7 +1751,7 @@ export const zPwaCompanyUserDetailsResponseObject = z.object({
1747
1751
  ])).nullable()
1748
1752
  });
1749
1753
  /**
1750
- * Create a worker's PWA compliance details at a company. The company is taken from the API key. user_id names the worker and is required; every other field is optional — send whichever your jurisdiction's certified-payroll export requires. Only the keys listed here are accepted — any other key is rejected with 400 unknown_key.
1754
+ * Create a worker's PWA compliance details at a company. The company is taken from the API key. user_id names the worker and is required; every other field is optional — send whichever your jurisdiction's certified-payroll export requires.
1751
1755
  */
1752
1756
  export const zPwaCompanyUserDetailsParameters = z.object({
1753
1757
  user_id: z.string(),
@@ -1840,7 +1844,7 @@ export const zPwaCompanyUserDetailsParameters = z.object({
1840
1844
  ])).nullish()
1841
1845
  });
1842
1846
  /**
1843
- * Update a worker's PWA compliance details. The company is taken from the API key. Every field is optional — send only what changes, and omitted fields are left unchanged. user_id is absent by design — the company/user pair is fixed at creation, so sending the key is rejected with 400 unknown_key, as is any other key not listed here.
1847
+ * Update a worker's PWA compliance details. The company is taken from the API key. Every field is optional — send only what changes, and omitted fields are left unchanged. The company/user pair is fixed at creation.
1844
1848
  */
1845
1849
  export const zPwaCompanyUserDetailsUpdateParameters = z.object({
1846
1850
  address1: z.string().nullish(),
@@ -2120,7 +2124,6 @@ export const zManagerTimeEntryApprovalParameters = z.object({
2120
2124
  * The time-entry body fields shared by the create and update bodies; each of those declares its own requiredness.
2121
2125
  */
2122
2126
  export const zTimeEntryParameters = z.object({
2123
- timekeeping_time_card_id: z.string().optional(),
2124
2127
  start_time: z.iso.datetime().optional(),
2125
2128
  end_time: z.iso.datetime().optional(),
2126
2129
  job_id: z.string().nullish(),
@@ -2131,9 +2134,10 @@ export const zTimeEntryParameters = z.object({
2131
2134
  feature_ids: z.array(z.string()).nullish()
2132
2135
  });
2133
2136
  /**
2134
- * Request body for creating a time entry — the time_entry_parameters fields, of which timekeeping_time_card_id, start_time, and end_time are required, plus the explicit "no feature" acknowledgement.
2137
+ * Request body for creating a time entry — the time_entry_parameters fields plus the time card and the explicit "no feature" acknowledgement. timekeeping_time_card_id, start_time, and end_time are required.
2135
2138
  */
2136
2139
  export const zTimeEntryCreateParameters = zTimeEntryParameters.and(z.object({
2140
+ timekeeping_time_card_id: z.string(),
2137
2141
  feature_allocation_acknowledged: z.boolean().nullish()
2138
2142
  }));
2139
2143
  /**
@@ -2142,6 +2146,25 @@ export const zTimeEntryCreateParameters = zTimeEntryParameters.and(z.object({
2142
2146
  export const zTimeEntryUpdateParameters = zTimeEntryParameters.and(z.object({
2143
2147
  confirm_allocation_conflict: z.boolean().nullish()
2144
2148
  }));
2149
+ /**
2150
+ * A form definition — a SurveyJS form template built and versioned in the web app's form builder. The same object the list door serializes. Read-only.
2151
+ */
2152
+ export const zFormDefinitionObject = z.object({
2153
+ id: z.string(),
2154
+ name: z.string(),
2155
+ description: z.string(),
2156
+ company_id: z.string(),
2157
+ modified_by_user_id: z.string().nullable(),
2158
+ tags: z.array(z.string()).nullable(),
2159
+ title_keys: z.array(z.string()).nullable(),
2160
+ editable: z.boolean(),
2161
+ always_visible: z.boolean(),
2162
+ sensitive_form: z.boolean(),
2163
+ allow_carry_forward: z.boolean(),
2164
+ current_revision: z.int().nullable(),
2165
+ json: z.record(z.string(), z.unknown()),
2166
+ created_at: z.iso.datetime()
2167
+ });
2145
2168
  /**
2146
2169
  * A single form submission — a user's completed SurveyJS form with the resolved answers (the fuller show representation). Read-only; submissions are created in the app.
2147
2170
  */
@@ -2378,6 +2401,13 @@ export const zCompanyParameters = z.intersection(z.union([
2378
2401
  naics_code: z.string().nullish(),
2379
2402
  linkedin_url: z.string().nullish()
2380
2403
  }));
2404
+ /**
2405
+ * A custom-field value stored on a record, addressed by the configuration it belongs to.
2406
+ */
2407
+ export const zCustomFieldResponseObject = z.object({
2408
+ custom_field_config_id: z.string(),
2409
+ value: z.string().nullable()
2410
+ });
2381
2411
  /**
2382
2412
  * A custom field definition — a company-defined attribute attached to one kind of record (jobs, workers, apprentices, or the company itself). Deleting one is blocked while any record still holds a value for it.
2383
2413
  */
@@ -2445,10 +2475,9 @@ export const zTimeCardStartDay = z.union([
2445
2475
  z.literal(6)
2446
2476
  ]);
2447
2477
  /**
2448
- * Fields shared by job creation and updates. Updates may omit any field to preserve its current value. The resulting job must still satisfy its schedule and PWA validation rules. Extra keys are accepted, including custom fields.
2478
+ * Fields shared by job creation and updates. Updates may omit any field to preserve its current value. The resulting job must still satisfy its schedule and PWA validation rules.
2449
2479
  */
2450
2480
  export const zJobParameters = z.object({
2451
- template_id: z.string().nullish(),
2452
2481
  name: z.string().nullish(),
2453
2482
  description: z.string().optional(),
2454
2483
  requested_by_company_id: z.string().optional(),
@@ -2507,10 +2536,6 @@ export const zJobParameters = z.object({
2507
2536
  verified: z.boolean().nullish(),
2508
2537
  label: z.string().nullish()
2509
2538
  }).nullish(),
2510
- custom_fields_attributes: z.array(z.object({
2511
- custom_field_config_id: z.string(),
2512
- value: z.string().nullish()
2513
- })).nullish(),
2514
2539
  pwa_details: z.object({
2515
2540
  contractor_type: z.enum(['prime_contractor', 'sub_contractor']).nullish(),
2516
2541
  pay_full_cash_fringe_by_default: z.boolean().optional(),
@@ -2531,18 +2556,28 @@ export const zJobParameters = z.object({
2531
2556
  }).optional()
2532
2557
  });
2533
2558
  /**
2534
- * Parameters for creating a job. `requested_by_company_id` and `created_by_user_id` are required. Sets the job's schedule, work types, address, and optional Prevailing Wage / Apprenticeship (PWA) compliance.
2559
+ * 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.
2535
2560
  */
2536
- export const zJobCreateParameters = zJobParameters.and(z.record(z.string(), z.unknown()));
2561
+ export const zJobCreateParameters = zJobParameters.and(z.object({
2562
+ template_id: z.string().nullish(),
2563
+ custom_fields: z.array(z.object({
2564
+ custom_field_config_id: z.string(),
2565
+ value: z.string().nullable()
2566
+ })).optional()
2567
+ }));
2537
2568
  /**
2538
- * 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.
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.
2539
2570
  */
2540
2571
  export const zJobUpdateParameters = zJobParameters.and(z.object({
2541
2572
  status: z.enum([
2542
2573
  'completed',
2543
2574
  'cancelled',
2544
2575
  'disputed'
2545
- ]).optional()
2576
+ ]).optional(),
2577
+ custom_fields: z.array(z.object({
2578
+ custom_field_config_id: z.string(),
2579
+ value: z.string().nullable()
2580
+ })).optional()
2546
2581
  }));
2547
2582
  /**
2548
2583
  * One version of a worker's compensation at your company, effective from its start date until the next version begins.
@@ -2997,7 +3032,6 @@ export const zPayrollFringeBenefitPlanParameters = z.object({
2997
3032
  * Request body for updating a fringe-benefit plan. Send only the fields to change.
2998
3033
  */
2999
3034
  export const zPayrollFringeBenefitPlanUpdateParameters = z.object({
3000
- timekeeping_pay_period_config_id: z.string().optional(),
3001
3035
  name: z.string().optional(),
3002
3036
  plan_number: z.string().optional(),
3003
3037
  funded: z.boolean().optional(),
@@ -3142,7 +3176,7 @@ export const zPayrollRunResponseObject = z.object({
3142
3176
  updated_at: z.iso.datetime()
3143
3177
  });
3144
3178
  /**
3145
- * Create a payroll run. company_id, run_type, and run_date are required; an on-cycle run additionally requires timekeeping_pay_period_id. Only the keys listed here are accepted — any other key is rejected with 400 unknown_key.
3179
+ * Create a payroll run. company_id, run_type, and run_date are required; an on-cycle run additionally requires timekeeping_pay_period_id.
3146
3180
  */
3147
3181
  export const zPayrollRunParameters = z.object({
3148
3182
  company_id: z.string(),
@@ -3160,7 +3194,7 @@ export const zPayrollRunParameters = z.object({
3160
3194
  external_id: z.string().nullish()
3161
3195
  });
3162
3196
  /**
3163
- * Update a payroll run. Every field is optional — send only what changes. company_id is absent by design — the run's company is fixed at creation, so sending the key is rejected with 400 unknown_key, as is any other key not listed here.
3197
+ * Update a payroll run. Every field is optional — send only what changes. The run's company is fixed at creation.
3164
3198
  */
3165
3199
  export const zPayrollRunUpdateParameters = z.object({
3166
3200
  timekeeping_pay_period_id: z.string().nullish(),
@@ -3260,7 +3294,6 @@ export const zProjectUpdateParameters = z.object({
3260
3294
  external_id: z.string().nullish(),
3261
3295
  name: z.string().optional(),
3262
3296
  description: z.string().nullish(),
3263
- created_by_user_id: z.string().nullish(),
3264
3297
  parent_id: z.string().nullish(),
3265
3298
  participating_company_ids: z.array(z.string()).optional(),
3266
3299
  start_date: z.iso.date().nullish(),
@@ -3289,6 +3322,27 @@ export const zProjectUpdateParameters = z.object({
3289
3322
  beginning_of_construction_date: z.iso.date().nullish(),
3290
3323
  placed_in_service_date: z.iso.date().nullish()
3291
3324
  });
3325
+ /**
3326
+ * A project–site assignment: the join linking a project to a site, optionally scoping which of that site's features apply. Path `{id}` is this join's id, not the Site's. Not included on project GET.
3327
+ */
3328
+ export const zProjectSiteResponseObject = z.object({
3329
+ id: z.string(),
3330
+ site_id: z.string(),
3331
+ feature_ids: z.array(z.string())
3332
+ });
3333
+ /**
3334
+ * Request body for attaching a site to a project. `site_id` is required; `feature_ids` is optional. The project is taken from the path and is not part of the body.
3335
+ */
3336
+ export const zProjectSiteParameters = z.object({
3337
+ site_id: z.string(),
3338
+ feature_ids: z.array(z.string()).optional()
3339
+ });
3340
+ /**
3341
+ * Request body for replacing which of the site's features apply to this project. Every field is optional; omit a field to preserve its current value. `site_id` is create-only and an update that names it is rejected.
3342
+ */
3343
+ export const zProjectSiteUpdateParameters = z.object({
3344
+ feature_ids: z.array(z.string()).optional()
3345
+ });
3292
3346
  export const zSiteCheckInResponseObject = z.object({
3293
3347
  id: z.string(),
3294
3348
  site_id: z.string(),
@@ -3805,8 +3859,8 @@ export const zPaystubResponseObject = z.object({
3805
3859
  * Request body for creating a paystub. payrolls_payroll_run_id and user_id are required; timekeeping_time_card_id is required for an on-cycle run and disallowed for an off-cycle run.
3806
3860
  */
3807
3861
  export const zPaystubParameters = z.object({
3808
- payrolls_payroll_run_id: z.string(),
3809
3862
  user_id: z.string(),
3863
+ payrolls_payroll_run_id: z.string(),
3810
3864
  timekeeping_time_card_id: z.string().nullish(),
3811
3865
  external_id: z.string().nullish(),
3812
3866
  check_number: z.string().nullish()
@@ -3816,7 +3870,6 @@ export const zPaystubParameters = z.object({
3816
3870
  */
3817
3871
  export const zPaystubUpdateParameters = z.object({
3818
3872
  payrolls_payroll_run_id: z.string().optional(),
3819
- user_id: z.string().optional(),
3820
3873
  timekeeping_time_card_id: z.string().nullish(),
3821
3874
  external_id: z.string().nullish(),
3822
3875
  check_number: z.string().nullish()
@@ -3861,6 +3914,21 @@ export const zPriorPeriodAdjustmentParameters = z.object({
3861
3914
  notes: z.string().nullish(),
3862
3915
  pwa_compliance_eligible: z.boolean().optional()
3863
3916
  });
3917
+ /**
3918
+ * Request body for updating a prior period adjustment. Send only the fields to change. The time card is the path parent; payrolls_paystub_line_item_id, created_by_user_id, time_card_id, and adjustment_type are rejected.
3919
+ */
3920
+ export const zPriorPeriodAdjustmentUpdateParameters = z.object({
3921
+ amount_cents: z.string().optional(),
3922
+ rationale: z.enum([
3923
+ 'hours_correction',
3924
+ 'other',
3925
+ 'pwa_compliance',
3926
+ 'rate_correction'
3927
+ ]).optional(),
3928
+ job_id: z.string().nullish(),
3929
+ notes: z.string().nullish(),
3930
+ pwa_compliance_eligible: z.boolean().optional()
3931
+ });
3864
3932
  /**
3865
3933
  * What one PWA-tracked job on a time card still owes the worker, from the materialized prevailing-wage compliance view. Read-only.
3866
3934
  */
@@ -3997,6 +4065,27 @@ export const zPaystubLineItemUpdateParameters = z.object({
3997
4065
  contributor: z.enum(['employee', 'employer']).optional(),
3998
4066
  payrolls_external_map_id: z.string().optional()
3999
4067
  });
4068
+ /**
4069
+ * A job-site join — the Site attached to a Job, plus the subset of that site's features the job is working on. `{id}` is the join row, not the Site.
4070
+ */
4071
+ export const zJobSiteResponseObject = z.object({
4072
+ id: z.string(),
4073
+ site_id: z.string(),
4074
+ feature_ids: z.array(z.string())
4075
+ });
4076
+ /**
4077
+ * Request body for attaching a site to a job. `site_id` is required; `feature_ids` is optional and defaults to none.
4078
+ */
4079
+ export const zJobSiteParameters = z.object({
4080
+ site_id: z.string(),
4081
+ feature_ids: z.array(z.string()).optional()
4082
+ });
4083
+ /**
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.
4085
+ */
4086
+ export const zJobSiteUpdateParameters = z.object({
4087
+ feature_ids: z.array(z.string()).optional()
4088
+ });
4000
4089
  /**
4001
4090
  * A company-owned collection of conditional wage and fringe adjustments, optionally scoped to a job.
4002
4091
  */
@@ -4017,6 +4106,13 @@ export const zPayRatesRulePackageParameters = z.object({
4017
4106
  name: z.string().min(1),
4018
4107
  description: z.string().nullish()
4019
4108
  });
4109
+ /**
4110
+ * Request body for updating a pay-rate rule package. Send only the fields to change. `default`, `selectable`, and `scoped_to_job_id` are not writable on this operation.
4111
+ */
4112
+ export const zPayRatesRulePackageUpdateParameters = z.object({
4113
+ name: z.string().min(1).optional(),
4114
+ description: z.string().nullish()
4115
+ });
4020
4116
  /**
4021
4117
  * Request body for creating or updating a position on a job. The job is taken from the URL path.
4022
4118
  */
@@ -4064,8 +4160,8 @@ export const zProductionJobScopePriceResponseObject = z.object({
4064
4160
  job_id: z.string(),
4065
4161
  scope_kind: z.string(),
4066
4162
  unit_of_measure: z.string(),
4067
- unit_price: z.string(),
4068
- contracted_count: z.int().nullable(),
4163
+ unit_price: z.string().optional(),
4164
+ contracted_count: z.int().nullish(),
4069
4165
  created_at: z.iso.datetime(),
4070
4166
  updated_at: z.iso.datetime()
4071
4167
  });
@@ -4174,7 +4270,7 @@ export const zFormAssignmentTaskResponseObject = z.array(z.object({
4174
4270
  }))
4175
4271
  }));
4176
4272
  /**
4177
- * Request body for creating a certification — a named qualification a worker can hold. You can only manage your own company's certifications; global (platform) certifications are read-only. Only the keys listed here are accepted — any other key is rejected with 400 unknown_key.
4273
+ * Request body for creating a certification — a named qualification a worker can hold. You can only manage your own company's certifications; global (platform) certifications are read-only.
4178
4274
  */
4179
4275
  export const zCertificationParameters = z.object({
4180
4276
  company_id: z.string(),
@@ -4184,7 +4280,7 @@ export const zCertificationParameters = z.object({
4184
4280
  duration: z.string().nullish()
4185
4281
  });
4186
4282
  /**
4187
- * Request body for updating a certification — a named qualification a worker can hold. Include only the fields to change. You can only manage your own company's certifications; global (platform) certifications are read-only. company_id is absent by design — the certification's company is fixed at creation, so sending the key is rejected with 400 unknown_key, as is any other key not listed here.
4283
+ * Request body for updating a certification — a named qualification a worker can hold. Include only the fields to change. You can only manage your own company's certifications; global (platform) certifications are read-only. The certification's company is fixed at creation.
4188
4284
  */
4189
4285
  export const zCertificationUpdateParameters = z.object({
4190
4286
  name: z.string().optional(),
@@ -4207,7 +4303,7 @@ export const zCertificationPackageResponseObject = z.object({
4207
4303
  updated_at: z.iso.datetime()
4208
4304
  });
4209
4305
  /**
4210
- * Request body for creating a certification package — a named set of certifications a company requires together. The package belongs to the company that owns the API key. Only the keys listed here are accepted — any other key is rejected with 400 unknown_key.
4306
+ * Request body for creating a certification package — a named set of certifications a company requires together. The package belongs to the company that owns the API key.
4211
4307
  */
4212
4308
  export const zCertificationPackageParameters = z.object({
4213
4309
  name: z.string(),
@@ -4216,7 +4312,7 @@ export const zCertificationPackageParameters = z.object({
4216
4312
  performed_by_user_id: z.string()
4217
4313
  });
4218
4314
  /**
4219
- * Request body for updating a certification package — a named set of certifications a company requires together. Include only the fields to change. Any key not listed here is rejected with 400 unknown_key.
4315
+ * Request body for updating a certification package — a named set of certifications a company requires together. Include only the fields to change.
4220
4316
  */
4221
4317
  export const zCertificationPackageUpdateParameters = z.object({
4222
4318
  name: z.string().optional(),
@@ -4251,12 +4347,10 @@ export const zUserCertificationParameters = z.object({
4251
4347
  verified: z.boolean().optional(),
4252
4348
  expiration_date: z.iso.date().nullish(),
4253
4349
  credential_id: z.string().nullish(),
4254
- approved_by_user_id: z.string().nullish(),
4255
- archived_at: z.iso.datetime().nullish(),
4256
- approved_at: z.iso.datetime().nullish()
4350
+ archived_at: z.iso.datetime().nullish()
4257
4351
  });
4258
4352
  /**
4259
- * 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.
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.
4260
4354
  */
4261
4355
  export const zUserCertificationUpdateParameters = z.object({
4262
4356
  user_id: z.string().optional(),
@@ -4269,9 +4363,13 @@ export const zUserCertificationUpdateParameters = z.object({
4269
4363
  verified: z.boolean().optional(),
4270
4364
  expiration_date: z.iso.date().nullish(),
4271
4365
  credential_id: z.string().nullish(),
4272
- approved_by_user_id: z.string().nullish(),
4273
- archived_at: z.iso.datetime().nullish(),
4274
- approved_at: z.iso.datetime().nullish()
4366
+ archived_at: z.iso.datetime().nullish()
4367
+ });
4368
+ /**
4369
+ * Request body for approving a certification held by a worker. A user key approves in its own user's name and sends no body.
4370
+ */
4371
+ export const zUserCertificationApprovalParameters = z.object({
4372
+ approved_by_user_id: z.string().optional()
4275
4373
  });
4276
4374
  /**
4277
4375
  * A certification held by a worker — the record that a worker earned a certification, with its receipt date, optional expiry, and verification state.
@@ -4378,7 +4476,8 @@ export const zJobResponseObject = z.object({
4378
4476
  'none',
4379
4477
  'feature',
4380
4478
  'quantity'
4381
- ])
4479
+ ]),
4480
+ custom_fields: z.array(zCustomFieldResponseObject)
4382
4481
  });
4383
4482
  /**
4384
4483
  * A spot to be filled on a job — one worker's assignment and the unit against which they track time, carrying the schedule window, assigned worker, function, and the planned pay and fringe rates (including PWA prevailing-wage compliance rates). Always accessed nested under a job.
@@ -4444,7 +4543,7 @@ export const zUserRoleResponse = z.object({
4444
4543
  */
4445
4544
  export const zUserCompanyType = z.enum(['EMPLOYEE', 'CONTRACTOR']).nullable();
4446
4545
  /**
4447
- * A worker as your company sees them: the cross-company person merged with their employment record at your company (title, pay, benefits, and accruals), their roles at your company, and optional prevailing-wage compliance details. Your company sees everyone it employs, everyone it has granted a role, and everyone it has invited, which is the same set the web app shows. A role holder or an invitee your company does not employ has no employment record to merge, so the employment fields (employment_id through employment_window, plus manager_user_id) are null for them, no employment custom fields are published for them, and employment_state reads none. There is no delete — removing a worker terminates their employment at the company (see the user-company endpoints), which sets termination_date and drops them from the default list.
4546
+ * A worker as your company sees them: the cross-company person merged with their employment record at your company (title, pay, benefits, and accruals), their roles at your company, and optional prevailing-wage compliance details. Your company sees everyone it employs, everyone it has granted a role, and everyone it has invited, which is the same set the web app shows. A role holder or an invitee your company does not employ has no employment record to merge, so the employment fields (employment_id through employment_window, plus manager_user_id and custom_fields) are null for them, and employment_state reads none. There is no delete — removing a worker terminates their employment at the company (see the user-company endpoints), which sets termination_date and drops them from the default list.
4448
4547
  */
4449
4548
  export const zUserResponseObject = z.object({
4450
4549
  id: z.string(),
@@ -4478,10 +4577,10 @@ export const zUserResponseObject = z.object({
4478
4577
  enrolled_in_t_and_a: z.boolean().nullable(),
4479
4578
  payroll_id: z.string().nullable(),
4480
4579
  compensation_type: z.string().nullable(),
4481
- hourly_rate: z.string().nullable(),
4482
- training_annual_amount: z.string().nullable(),
4483
- employer_combined_health_amount: z.string().nullable(),
4484
- employer_combined_savings: z.string().nullable(),
4580
+ hourly_rate: z.string().nullish(),
4581
+ training_annual_amount: z.string().nullish(),
4582
+ employer_combined_health_amount: z.string().nullish(),
4583
+ employer_combined_savings: z.string().nullish(),
4485
4584
  worked_annual_minutes: z.int().nullable(),
4486
4585
  pto_annual_minutes: z.int().nullable(),
4487
4586
  holiday_annual_minutes: z.int().nullable(),
@@ -4493,6 +4592,7 @@ export const zUserResponseObject = z.object({
4493
4592
  valid_to: z.iso.datetime().nullable()
4494
4593
  }).nullable(),
4495
4594
  manager_user_id: z.string().nullable(),
4595
+ custom_fields: z.array(zCustomFieldResponseObject).nullable(),
4496
4596
  roles: z.array(z.string()),
4497
4597
  company_user_pwa_info: z.object({
4498
4598
  id: z.string(),
@@ -4563,14 +4663,20 @@ export const zUserResponseObject = z.object({
4563
4663
  ])).nullable()
4564
4664
  }).nullable()
4565
4665
  });
4566
- /**
4567
- * Request body for onboarding a worker into your company. In one call it creates the person (if new), their employment record, roles, group memberships, an optional invite, and optional compliance details. company_id, email, first_name, and last_name are required.
4568
- */
4569
- export const zUserParameters = z.object({
4570
- company_id: z.string(),
4571
- email: z.string(),
4572
- personal_email: z.string().optional(),
4573
- phone_number: z.string().optional(),
4666
+ export const zUserParameters = z.intersection(z.union([
4667
+ z.object({
4668
+ email: z.string().min(1)
4669
+ }),
4670
+ z.object({
4671
+ phone_number: z.string().min(1)
4672
+ }),
4673
+ z.object({
4674
+ skip_invite: z.literal(true)
4675
+ })
4676
+ ]), z.object({
4677
+ email: z.string().nullish(),
4678
+ personal_email: z.string().nullish(),
4679
+ phone_number: z.string().nullish(),
4574
4680
  first_name: z.string(),
4575
4681
  last_name: z.string(),
4576
4682
  preferred_first_name: z.string().nullish(),
@@ -4592,6 +4698,7 @@ export const zUserParameters = z.object({
4592
4698
  manager_user_id: z.string().optional(),
4593
4699
  payroll_id: z.string().optional(),
4594
4700
  hourly_rate: z.string().optional(),
4701
+ compensation_type: z.enum(['hourly', 'salary']).optional(),
4595
4702
  overtime_eligible: z.string().optional(),
4596
4703
  enrolled_in_t_and_a: z.string().optional(),
4597
4704
  training_annual_amount: z.string().optional(),
@@ -4603,6 +4710,10 @@ export const zUserParameters = z.object({
4603
4710
  training_annual_minutes: z.string().optional(),
4604
4711
  hire_date: z.string().optional(),
4605
4712
  group_ids: z.array(z.int()).optional(),
4713
+ custom_fields: z.array(z.object({
4714
+ custom_field_config_id: z.string(),
4715
+ value: z.string().nullable()
4716
+ })).optional(),
4606
4717
  company_user_pwa_info: z.object({
4607
4718
  address1: z.string().nullish(),
4608
4719
  address2: z.string().nullish(),
@@ -4670,9 +4781,9 @@ export const zUserParameters = z.object({
4670
4781
  'portuguese_or_brazilian'
4671
4782
  ])).nullish()
4672
4783
  }).nullish()
4673
- });
4784
+ }));
4674
4785
  /**
4675
- * Request body for updating a worker's employment at your company. Corrects administrative fields (employment type, title, manager, payroll id, hire date, and time-and-attendance enrollment) across the whole employment history. For time-effective pay changes, use the scheduled-changes endpoints instead.
4786
+ * Request body for updating a worker's employment at your company. Corrects administrative fields (employment type, title, manager, payroll id, hire date, and time-and-attendance enrollment) across the whole employment history, and changes the custom-field values it lists. For time-effective pay changes, use the scheduled-changes endpoints instead.
4676
4787
  */
4677
4788
  export const zUserCompanyParameters = z.object({
4678
4789
  type: zUserCompanyType.optional(),
@@ -4680,10 +4791,14 @@ export const zUserCompanyParameters = z.object({
4680
4791
  manager_user_id: z.string().nullish(),
4681
4792
  payroll_id: z.string().nullish(),
4682
4793
  hire_date: z.string().nullish(),
4683
- enrolled_in_t_and_a: z.boolean().optional()
4794
+ enrolled_in_t_and_a: z.boolean().optional(),
4795
+ custom_fields: z.array(z.object({
4796
+ custom_field_config_id: z.string(),
4797
+ value: z.string().nullable()
4798
+ })).optional()
4684
4799
  });
4685
4800
  /**
4686
- * Request body for adding a worker to your company, creating their employment record. hire_date is required and sets when employment begins; the remaining fields seed the initial title, pay, benefits, and accruals. Returns the worker with the new employment flattened onto it.
4801
+ * Request body for adding a worker to your company, creating their employment record and its custom-field values. hire_date is required and sets when employment begins; the remaining fields seed the initial title, pay, benefits, and accruals. Returns the worker with the new employment flattened onto it.
4687
4802
  */
4688
4803
  export const zUserCompanyCreateParameters = z.object({
4689
4804
  hire_date: z.string(),
@@ -4701,7 +4816,11 @@ export const zUserCompanyCreateParameters = z.object({
4701
4816
  worked_annual_minutes: z.int().nullish(),
4702
4817
  pto_annual_minutes: z.int().nullish(),
4703
4818
  holiday_annual_minutes: z.int().nullish(),
4704
- training_annual_minutes: z.int().nullish()
4819
+ training_annual_minutes: z.int().nullish(),
4820
+ custom_fields: z.array(z.object({
4821
+ custom_field_config_id: z.string(),
4822
+ value: z.string().nullable()
4823
+ })).optional()
4705
4824
  });
4706
4825
  /**
4707
4826
  * Keyset pagination cursors for the collection.
@@ -4745,22 +4864,7 @@ export const zTimeEntryIndexObject = z.object({
4745
4864
  export const zFormDefinitionResponseObject = z.object({
4746
4865
  meta: zMeta,
4747
4866
  links: zLinks,
4748
- data: z.array(z.object({
4749
- id: z.string(),
4750
- name: z.string(),
4751
- description: z.string(),
4752
- company_id: z.string(),
4753
- modified_by_user_id: z.string().nullable(),
4754
- tags: z.array(z.string()).nullable(),
4755
- title_keys: z.array(z.string()).nullable(),
4756
- editable: z.boolean(),
4757
- always_visible: z.boolean(),
4758
- sensitive_form: z.boolean(),
4759
- allow_carry_forward: z.boolean(),
4760
- current_revision: z.int().nullable(),
4761
- json: z.record(z.string(), z.unknown()),
4762
- created_at: z.iso.datetime()
4763
- }))
4867
+ data: z.array(zFormDefinitionObject)
4764
4868
  });
4765
4869
  /**
4766
4870
  * A page of form submissions — the lighter list representation. A submission is a user's completed form; submissions are created in the app, so this API is read-only.
@@ -4870,6 +4974,14 @@ export const zPaystubLineItemsResponseObject = z.object({
4870
4974
  links: zLinks,
4871
4975
  data: z.array(zPaystubLineItemResponseObject)
4872
4976
  });
4977
+ /**
4978
+ * A page of a job's site joins, with pagination metadata and navigation links.
4979
+ */
4980
+ export const zJobSitesResponseObject = z.object({
4981
+ meta: zMeta,
4982
+ links: zLinks,
4983
+ data: z.array(zJobSiteResponseObject)
4984
+ });
4873
4985
  /**
4874
4986
  * A page of a job's positions, with pagination metadata and navigation links.
4875
4987
  */
@@ -6025,7 +6137,7 @@ export const zAssetsItemParameters = z.object({
6025
6137
  performed_by_user_id: z.string()
6026
6138
  });
6027
6139
  /**
6028
- * Update an asset item. All item fields are optional — send only what changes — but performed_by_user_id is required to record the updater and any placement. Omitted attributes retain their existing values.
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.
6029
6141
  */
6030
6142
  export const zAssetsItemUpdateParameters = z.object({
6031
6143
  name: z.string().min(1).optional(),
@@ -6038,10 +6150,6 @@ export const zAssetsItemUpdateParameters = z.object({
6038
6150
  external_id: z.string().optional(),
6039
6151
  external_system_url: z.string().optional(),
6040
6152
  images_attributes: z.array(zAssetsAttachmentParameters).optional(),
6041
- assets_site_id: z.string().optional(),
6042
- user_id: z.string().optional(),
6043
- container_item_id: z.string().optional(),
6044
- assets_sub_location_id: z.string().optional(),
6045
6153
  performed_by_user_id: z.string()
6046
6154
  });
6047
6155
  /**
@@ -6122,7 +6230,7 @@ export const zAssetsItemFormAssignmentResponseObject = z.object({
6122
6230
  }))
6123
6231
  });
6124
6232
  /**
6125
- * Create or update an item form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). recurring gates the recurrence fields.
6233
+ * Create an item form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). recurring gates the recurrence fields. An assignee outside the credential company returns 422, and a creator outside it returns 403.
6126
6234
  */
6127
6235
  export const zAssetsItemFormAssignmentParameters = z.object({
6128
6236
  form_definition_id: z.string(),
@@ -6131,7 +6239,6 @@ export const zAssetsItemFormAssignmentParameters = z.object({
6131
6239
  name: z.string().nullish(),
6132
6240
  description: z.string().nullish(),
6133
6241
  created_by_user_id: z.string(),
6134
- updated_by_user_id: z.string().nullish(),
6135
6242
  time_due: z.iso.datetime().nullish(),
6136
6243
  tz_name: z.string().nullish(),
6137
6244
  frequency: z.enum([
@@ -6188,7 +6295,7 @@ export const zAssetsItemFormAssignmentParameters = z.object({
6188
6295
  })
6189
6296
  });
6190
6297
  /**
6191
- * Update an item form assignment. All fields are optional — send only what changes. recurring gates the recurrence fields, and task_attributes.reminders_attributes replaces the existing reminder set when supplied.
6298
+ * Update an item form assignment. All fields are optional — send only what changes. 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.
6192
6299
  */
6193
6300
  export const zAssetsItemFormAssignmentUpdateParameters = z.object({
6194
6301
  form_definition_id: z.string().optional(),
@@ -6196,8 +6303,6 @@ export const zAssetsItemFormAssignmentUpdateParameters = z.object({
6196
6303
  task_attributes: z.object({
6197
6304
  name: z.string().nullish(),
6198
6305
  description: z.string().nullish(),
6199
- created_by_user_id: z.string().optional(),
6200
- updated_by_user_id: z.string().nullish(),
6201
6306
  time_due: z.iso.datetime().nullish(),
6202
6307
  tz_name: z.string().nullish(),
6203
6308
  frequency: z.enum([
@@ -6658,6 +6763,14 @@ export const zCreateAllocationPath = z.object({
6658
6763
  * Created
6659
6764
  */
6660
6765
  export const zCreateAllocationResponse = zApprenticeshipAllocationResponseObject;
6766
+ export const zDeleteAllocationPath = z.object({
6767
+ apprentice_id: z.string(),
6768
+ id: z.string()
6769
+ });
6770
+ /**
6771
+ * No Content
6772
+ */
6773
+ export const zDeleteAllocationResponse = z.void();
6661
6774
  export const zGetAllocationPath = z.object({
6662
6775
  apprentice_id: z.string(),
6663
6776
  id: z.string()
@@ -6737,6 +6850,22 @@ export const zCreateOccupationPath = z.object({
6737
6850
  * Created
6738
6851
  */
6739
6852
  export const zCreateOccupationResponse = zApprenticeshipOccupationResponseObject;
6853
+ export const zDeleteOccupationPath = z.object({
6854
+ program_id: z.string(),
6855
+ id: z.string()
6856
+ });
6857
+ /**
6858
+ * No Content
6859
+ */
6860
+ export const zDeleteOccupationResponse = z.void();
6861
+ export const zGetOccupationPath = z.object({
6862
+ program_id: z.string(),
6863
+ id: z.string()
6864
+ });
6865
+ /**
6866
+ * Success
6867
+ */
6868
+ export const zGetOccupationResponse = zApprenticeshipOccupationResponseObject;
6740
6869
  export const zUpdateOccupationBody = zApprenticeshipOccupationUpdateParameters;
6741
6870
  export const zUpdateOccupationPath = z.object({
6742
6871
  program_id: z.string(),
@@ -6784,6 +6913,14 @@ export const zDeleteEmployerPath = z.object({
6784
6913
  * Success
6785
6914
  */
6786
6915
  export const zDeleteEmployerResponse = zApprenticeshipProgramEmployerResponseObject;
6916
+ export const zGetEmployerPath = z.object({
6917
+ program_id: z.string(),
6918
+ id: z.string()
6919
+ });
6920
+ /**
6921
+ * Success
6922
+ */
6923
+ export const zGetEmployerResponse = zApprenticeshipProgramEmployerResponseObject;
6787
6924
  export const zUpdateEmployerBody = zApprenticeshipProgramEmployerUpdateParameters;
6788
6925
  export const zUpdateEmployerPath = z.object({
6789
6926
  program_id: z.string(),
@@ -6817,6 +6954,20 @@ export const zCreateProgramBody = zApprenticeshipProgramParameters;
6817
6954
  * Created
6818
6955
  */
6819
6956
  export const zCreateProgramResponse = zApprenticeshipProgramResponseObject;
6957
+ export const zDeleteProgramPath = z.object({
6958
+ id: z.string()
6959
+ });
6960
+ /**
6961
+ * No Content
6962
+ */
6963
+ export const zDeleteProgramResponse = z.void();
6964
+ export const zGetProgramPath = z.object({
6965
+ id: z.string()
6966
+ });
6967
+ /**
6968
+ * Success
6969
+ */
6970
+ export const zGetProgramResponse = zApprenticeshipProgramResponseObject;
6820
6971
  export const zUpdateProgramBody = zApprenticeshipProgramUpdateParameters;
6821
6972
  export const zUpdateProgramPath = z.object({
6822
6973
  id: z.string()
@@ -6855,6 +7006,22 @@ export const zCreatePeriodPath = z.object({
6855
7006
  * Created
6856
7007
  */
6857
7008
  export const zCreatePeriodResponse = zApprenticeshipWageSchedulePeriodResponseObject;
7009
+ export const zDeletePeriodPath = z.object({
7010
+ wage_schedule_id: z.string(),
7011
+ id: z.string()
7012
+ });
7013
+ /**
7014
+ * No Content
7015
+ */
7016
+ export const zDeletePeriodResponse = z.void();
7017
+ export const zGetPeriodPath = z.object({
7018
+ wage_schedule_id: z.string(),
7019
+ id: z.string()
7020
+ });
7021
+ /**
7022
+ * Success
7023
+ */
7024
+ export const zGetPeriodResponse = zApprenticeshipWageSchedulePeriodResponseObject;
6858
7025
  export const zUpdatePeriodBody = zApprenticeshipWageSchedulePeriodUpdateParameters;
6859
7026
  export const zUpdatePeriodPath = z.object({
6860
7027
  wage_schedule_id: z.string(),
@@ -6894,6 +7061,22 @@ export const zCreateWageSchedulePath = z.object({
6894
7061
  * Created
6895
7062
  */
6896
7063
  export const zCreateWageScheduleResponse = zApprenticeshipWageScheduleResponseObject;
7064
+ export const zDeleteWageSchedulePath = z.object({
7065
+ occupation_id: z.string(),
7066
+ id: z.string()
7067
+ });
7068
+ /**
7069
+ * No Content
7070
+ */
7071
+ export const zDeleteWageScheduleResponse = z.void();
7072
+ export const zGetWageSchedulePath = z.object({
7073
+ occupation_id: z.string(),
7074
+ id: z.string()
7075
+ });
7076
+ /**
7077
+ * Success
7078
+ */
7079
+ export const zGetWageScheduleResponse = zApprenticeshipWageScheduleResponseObject;
6897
7080
  export const zUpdateWageScheduleBody = zApprenticeshipWageScheduleUpdateParameters;
6898
7081
  export const zUpdateWageSchedulePath = z.object({
6899
7082
  occupation_id: z.string(),
@@ -7828,6 +8011,21 @@ export const zUpdatePackagePath = z.object({
7828
8011
  * Success
7829
8012
  */
7830
8013
  export const zUpdatePackageResponse = zCertificationPackageResponseObject;
8014
+ export const zRevokeUserCertificationApprovalPath = z.object({
8015
+ user_certification_id: z.string()
8016
+ });
8017
+ /**
8018
+ * Success
8019
+ */
8020
+ export const zRevokeUserCertificationApprovalResponse = zUserCertificationResponseObject;
8021
+ export const zApproveUserCertificationBody = zUserCertificationApprovalParameters;
8022
+ export const zApproveUserCertificationPath = z.object({
8023
+ user_certification_id: z.string()
8024
+ });
8025
+ /**
8026
+ * Success
8027
+ */
8028
+ export const zApproveUserCertificationResponse = zUserCertificationResponseObject;
7831
8029
  export const zListUserCertificationsQuery = z.object({
7832
8030
  filter: z.string().optional(),
7833
8031
  'filter[unexpected]': z.string().optional(),
@@ -8116,6 +8314,13 @@ export const zListFormDefinitionsQuery = z.object({
8116
8314
  * Success
8117
8315
  */
8118
8316
  export const zListFormDefinitionsResponse = zFormDefinitionResponseObject;
8317
+ export const zGetFormDefinitionPath = z.object({
8318
+ id: z.string()
8319
+ });
8320
+ /**
8321
+ * Success
8322
+ */
8323
+ export const zGetFormDefinitionResponse = zFormDefinitionObject;
8119
8324
  export const zListFormSubmissionDeltasQuery = z.object({
8120
8325
  'filter[event]': z.enum([
8121
8326
  'create',
@@ -8349,6 +8554,53 @@ export const zGetRateRuleQuery = z.object({
8349
8554
  * Success
8350
8555
  */
8351
8556
  export const zGetRateRuleResponse = zRateRuleResponseObject;
8557
+ export const zListJobSitesPath = z.object({
8558
+ job_id: z.string()
8559
+ });
8560
+ export const zListJobSitesQuery = z.object({
8561
+ filter: z.string().optional(),
8562
+ 'filter[unexpected]': z.string().optional(),
8563
+ 'page[cursor]': z.string().optional(),
8564
+ 'page[limit]': z.int().gte(1).optional().default(20),
8565
+ page: z.string().optional()
8566
+ });
8567
+ /**
8568
+ * Success
8569
+ */
8570
+ export const zListJobSitesResponse = zJobSitesResponseObject;
8571
+ export const zCreateJobSiteBody = zJobSiteParameters;
8572
+ export const zCreateJobSitePath = z.object({
8573
+ job_id: z.string()
8574
+ });
8575
+ /**
8576
+ * Created
8577
+ */
8578
+ export const zCreateJobSiteResponse = zJobSiteResponseObject;
8579
+ export const zDeleteJobSitePath = z.object({
8580
+ job_id: z.string(),
8581
+ id: z.string()
8582
+ });
8583
+ /**
8584
+ * No Content
8585
+ */
8586
+ export const zDeleteJobSiteResponse = z.void();
8587
+ export const zGetJobSitePath = z.object({
8588
+ job_id: z.string(),
8589
+ id: z.string()
8590
+ });
8591
+ /**
8592
+ * Success
8593
+ */
8594
+ export const zGetJobSiteResponse = zJobSiteResponseObject;
8595
+ export const zUpdateJobSiteBody = zJobSiteUpdateParameters;
8596
+ export const zUpdateJobSitePath = z.object({
8597
+ job_id: z.string(),
8598
+ id: z.string()
8599
+ });
8600
+ /**
8601
+ * Success
8602
+ */
8603
+ export const zUpdateJobSiteResponse = zJobSiteResponseObject;
8352
8604
  export const zShiftJobWageDeterminationGenesisBody = zJobWageDeterminationGenesisParameters;
8353
8605
  export const zShiftJobWageDeterminationGenesisHeaders = z.object({
8354
8606
  'If-Match': z.string()
@@ -8920,6 +9172,13 @@ export const zCreatePayRateRulePackageBody = zPayRatesRulePackageParameters;
8920
9172
  * Created
8921
9173
  */
8922
9174
  export const zCreatePayRateRulePackageResponse = zPayRatesRulePackageResponseObject;
9175
+ export const zDeletePayRateRulePackagePath = z.object({
9176
+ id: z.string()
9177
+ });
9178
+ /**
9179
+ * No Content
9180
+ */
9181
+ export const zDeletePayRateRulePackageResponse = z.void();
8923
9182
  export const zGetPayRateRulePackagePath = z.object({
8924
9183
  id: z.string()
8925
9184
  });
@@ -8927,6 +9186,14 @@ export const zGetPayRateRulePackagePath = z.object({
8927
9186
  * Success
8928
9187
  */
8929
9188
  export const zGetPayRateRulePackageResponse = zPayRatesRulePackageResponseObject;
9189
+ export const zUpdatePayRateRulePackageBody = zPayRatesRulePackageUpdateParameters;
9190
+ export const zUpdatePayRateRulePackagePath = z.object({
9191
+ id: z.string()
9192
+ });
9193
+ /**
9194
+ * Success
9195
+ */
9196
+ export const zUpdatePayRateRulePackageResponse = zPayRatesRulePackageResponseObject;
8930
9197
  export const zListAggregateTimeImportsPath = z.object({
8931
9198
  pay_period_id: z.string()
8932
9199
  });
@@ -9345,7 +9612,7 @@ export const zListCustomFieldsPath = z.object({
9345
9612
  * Success
9346
9613
  */
9347
9614
  export const zListCustomFieldsResponse = z.object({
9348
- data: z.array(zPeopleEmploymentCustomFieldResponseObject)
9615
+ data: z.array(zCustomFieldResponseObject)
9349
9616
  });
9350
9617
  export const zUpdateCustomFieldBody = zPeopleEmploymentCustomFieldsUpdateParameters;
9351
9618
  export const zUpdateCustomFieldHeaders = z.object({
@@ -9358,7 +9625,7 @@ export const zUpdateCustomFieldPath = z.object({
9358
9625
  * Success
9359
9626
  */
9360
9627
  export const zUpdateCustomFieldResponse = z.object({
9361
- data: z.array(zPeopleEmploymentCustomFieldResponseObject)
9628
+ data: z.array(zCustomFieldResponseObject)
9362
9629
  });
9363
9630
  export const zUpdateGenesisBody = zPeopleEmploymentGenesisParameters;
9364
9631
  export const zUpdateGenesisHeaders = z.object({
@@ -9672,6 +9939,55 @@ export const zCreateProjectTradePath = z.object({
9672
9939
  * Created
9673
9940
  */
9674
9941
  export const zCreateProjectTradeResponse = zPwaTradeResponseObject;
9942
+ export const zListProjectSitesPath = z.object({
9943
+ project_id: z.string()
9944
+ });
9945
+ export const zListProjectSitesQuery = z.object({
9946
+ 'page[cursor]': z.string().optional(),
9947
+ 'page[limit]': z.int().gte(1).optional().default(20),
9948
+ page: z.string().optional()
9949
+ });
9950
+ /**
9951
+ * Success
9952
+ */
9953
+ export const zListProjectSitesResponse = z.object({
9954
+ meta: zMeta,
9955
+ links: zLinks,
9956
+ data: z.array(zProjectSiteResponseObject)
9957
+ });
9958
+ export const zCreateProjectSiteBody = zProjectSiteParameters;
9959
+ export const zCreateProjectSitePath = z.object({
9960
+ project_id: z.string()
9961
+ });
9962
+ /**
9963
+ * Created
9964
+ */
9965
+ export const zCreateProjectSiteResponse = zProjectSiteResponseObject;
9966
+ export const zDeleteProjectSitePath = z.object({
9967
+ project_id: z.string(),
9968
+ id: z.string()
9969
+ });
9970
+ /**
9971
+ * No Content
9972
+ */
9973
+ export const zDeleteProjectSiteResponse = z.void();
9974
+ export const zGetProjectSitePath = z.object({
9975
+ project_id: z.string(),
9976
+ id: z.string()
9977
+ });
9978
+ /**
9979
+ * Success
9980
+ */
9981
+ export const zGetProjectSiteResponse = zProjectSiteResponseObject;
9982
+ export const zUpdateProjectSiteBody = zProjectSiteUpdateParameters;
9983
+ export const zUpdateProjectSitePath = z.object({
9984
+ project_id: z.string(),
9985
+ id: z.string()
9986
+ });
9987
+ /**
9988
+ * Success
9989
+ */
9990
+ export const zUpdateProjectSiteResponse = zProjectSiteResponseObject;
9675
9991
  export const zListProjectsQuery = z.object({
9676
9992
  'filter[federal_pwa_mode]': z.enum([
9677
9993
  'all',
@@ -9686,6 +10002,7 @@ export const zListProjectsQuery = z.object({
9686
10002
  'none'
9687
10003
  ]).optional(),
9688
10004
  'filter[external_id]': z.string().optional(),
10005
+ 'filter[name]': z.string().optional(),
9689
10006
  'filter[created_at][gte]': z.iso.datetime().optional(),
9690
10007
  'filter[created_at][lte]': z.iso.datetime().optional(),
9691
10008
  'filter[updated_at][gte]': z.iso.datetime().optional(),
@@ -9729,6 +10046,13 @@ export const zCreateCompanyUserDetailBody = zPwaCompanyUserDetailsParameters;
9729
10046
  * Created
9730
10047
  */
9731
10048
  export const zCreateCompanyUserDetailResponse = zPwaCompanyUserDetailsResponseObject;
10049
+ export const zDeleteCompanyUserDetailPath = z.object({
10050
+ id: z.string()
10051
+ });
10052
+ /**
10053
+ * No Content
10054
+ */
10055
+ export const zDeleteCompanyUserDetailResponse = z.void();
9732
10056
  export const zUpdateCompanyUserDetailBody = zPwaCompanyUserDetailsUpdateParameters;
9733
10057
  export const zUpdateCompanyUserDetailPath = z.object({
9734
10058
  id: z.string()
@@ -9775,6 +10099,14 @@ export const zDeleteApprenticeshipOccupationPath = z.object({
9775
10099
  * Success
9776
10100
  */
9777
10101
  export const zDeleteApprenticeshipOccupationResponse = zPwaTradeApprenticeshipOccupationResponseObject;
10102
+ export const zGetApprenticeshipOccupationPath = z.object({
10103
+ trade_id: z.string(),
10104
+ id: z.string()
10105
+ });
10106
+ /**
10107
+ * Success
10108
+ */
10109
+ export const zGetApprenticeshipOccupationResponse = zPwaTradeApprenticeshipOccupationResponseObject;
9778
10110
  export const zUpdateApprenticeshipOccupationBody = zPwaTradeApprenticeshipOccupationUpdateParameters;
9779
10111
  export const zUpdateApprenticeshipOccupationPath = z.object({
9780
10112
  trade_id: z.string(),
@@ -9929,6 +10261,22 @@ export const zCreatePositionPath = z.object({
9929
10261
  * Created
9930
10262
  */
9931
10263
  export const zCreatePositionResponse = zPositionResponseObject;
10264
+ export const zDeletePositionPath = z.object({
10265
+ job_id: z.string(),
10266
+ id: z.string()
10267
+ });
10268
+ /**
10269
+ * No Content
10270
+ */
10271
+ export const zDeletePositionResponse = z.void();
10272
+ export const zGetPositionPath = z.object({
10273
+ job_id: z.string(),
10274
+ id: z.string()
10275
+ });
10276
+ /**
10277
+ * Success
10278
+ */
10279
+ export const zGetPositionResponse = zPositionResponseObject;
9932
10280
  export const zUpdatePositionBody = zPositionParameters;
9933
10281
  export const zUpdatePositionPath = z.object({
9934
10282
  job_id: z.string(),
@@ -10068,6 +10416,15 @@ export const zGetPriorPeriodAdjustmentPath = z.object({
10068
10416
  * Success
10069
10417
  */
10070
10418
  export const zGetPriorPeriodAdjustmentResponse = zPriorPeriodAdjustmentResponseObject;
10419
+ export const zUpdatePriorPeriodAdjustmentBody = zPriorPeriodAdjustmentUpdateParameters;
10420
+ export const zUpdatePriorPeriodAdjustmentPath = z.object({
10421
+ time_card_id: z.string(),
10422
+ id: z.string()
10423
+ });
10424
+ /**
10425
+ * Success
10426
+ */
10427
+ export const zUpdatePriorPeriodAdjustmentResponse = zPriorPeriodAdjustmentResponseObject;
10071
10428
  export const zListPwaCompliancesPath = z.object({
10072
10429
  time_card_id: z.string()
10073
10430
  });
@@ -10170,6 +10527,13 @@ export const zDeleteTimeEntryPath = z.object({
10170
10527
  * Success
10171
10528
  */
10172
10529
  export const zDeleteTimeEntryResponse = zTimeEntryResponseObject;
10530
+ export const zGetTimeEntryPath = z.object({
10531
+ id: z.string()
10532
+ });
10533
+ /**
10534
+ * Success
10535
+ */
10536
+ export const zGetTimeEntryResponse = zTimeEntryResponseObject;
10173
10537
  export const zUpdateTimeEntryBody = zTimeEntryUpdateParameters;
10174
10538
  export const zUpdateTimeEntryPath = z.object({
10175
10539
  id: z.string()
@@ -10645,6 +11009,7 @@ export const zListUsersQuery = z.object({
10645
11009
  'none',
10646
11010
  'all'
10647
11011
  ]).optional(),
11012
+ 'filter[name]': z.string().optional(),
10648
11013
  'page[cursor]': z.string().optional(),
10649
11014
  'page[limit]': z.int().gte(1).optional().default(20),
10650
11015
  page: z.string().optional(),