@dsptch-work/api-client 0.41.0 → 0.43.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.
@@ -234,6 +234,12 @@ export const zProblem = z.object({
234
234
  *
235
235
  * The upload behind an image attachment's signed id is not an image content type. Upload an image file.
236
236
  *
237
+ * ### certified_payroll_format_unavailable
238
+ *
239
+ * **Certified Payroll Format Unavailable**
240
+ *
241
+ * The named job does not offer this certified payroll format. Each format is available only on a job that tracks the matching prevailing-wage jurisdiction. Use a job that offers the format.
242
+ *
237
243
  * ### company_not_employer
238
244
  *
239
245
  * **Company Not Program Employer**
@@ -288,6 +294,18 @@ export const zProblem = z.object({
288
294
  *
289
295
  * An attachment signed id names no upload this endpoint can read. A signed id is issued for one `resource` and verifies only there, so an id for a different resource is indistinguishable from one that is malformed, expired, or tampered with, and all of them answer alike. The message names the resource the upload needed; upload the file again to the direct-uploads endpoint naming it, and pass the signed id that call returns.
290
296
  *
297
+ * ### not_incomplete_permanent_copy
298
+ *
299
+ * **Not An Incomplete Permanent Copy**
300
+ *
301
+ * Ending a form assignment task is allowed only for the open incomplete permanent copy. Completed copies, non-permanent rows, and other uid-family members are refused. Re-read the assignment and end only that open copy.
302
+ *
303
+ * ### nothing_exportable
304
+ *
305
+ * **Nothing Exportable**
306
+ *
307
+ * The requested date range has no reportable pay periods to file for this job. Certified payroll starts at the first week with PWA work and includes only periods whose pay date has elapsed (or, in aggregate mode, periods that have ended). Widen or shift the range, or wait until a period is reportable.
308
+ *
291
309
  * ### nothing_to_cancel
292
310
  *
293
311
  * **Nothing To Cancel**
@@ -403,6 +421,7 @@ export const zProblemTypeCatalog = z.enum([
403
421
  'version_overlap',
404
422
  'precondition_failed',
405
423
  'attachment_not_image',
424
+ 'certified_payroll_format_unavailable',
406
425
  'company_not_employer',
407
426
  'confirm_apprenticeship_conflict',
408
427
  'destroy_restricted',
@@ -412,6 +431,8 @@ export const zProblemTypeCatalog = z.enum([
412
431
  'invalid_iso8601_duration',
413
432
  'invalid_placement_move',
414
433
  'invalid_signed_id',
434
+ 'not_incomplete_permanent_copy',
435
+ 'nothing_exportable',
415
436
  'nothing_to_cancel',
416
437
  'pagination_failed',
417
438
  'subtype_foreign_keys',
@@ -2923,6 +2944,18 @@ export const zTimeEntryResponseObject = z.object({
2923
2944
  hourly_rate_cents: z.string().nullish(),
2924
2945
  currency: z.string().optional(),
2925
2946
  hourly_rate_src_type: z.string().nullish(),
2947
+ one_five_x_adder_rate_cents: z.string().nullish(),
2948
+ one_five_x_adder_rate_src_type: z.enum([
2949
+ 'position',
2950
+ 'prevailing_wage',
2951
+ 'custom'
2952
+ ]).nullish(),
2953
+ two_x_adder_rate_cents: z.string().nullish(),
2954
+ two_x_adder_rate_src_type: z.enum([
2955
+ 'position',
2956
+ 'prevailing_wage',
2957
+ 'custom'
2958
+ ]).nullish(),
2926
2959
  timekeeping_pay_period_id: z.string(),
2927
2960
  start_time: z.iso.datetime(),
2928
2961
  end_time: z.iso.datetime(),
@@ -2971,6 +3004,8 @@ export const zTimeEntryCreateParameters = z.object({
2971
3004
  state: z.string().nullish(),
2972
3005
  description: z.string().nullish(),
2973
3006
  hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
3007
+ one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
3008
+ two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
2974
3009
  feature_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
2975
3010
  feature_allocation_acknowledged: z.boolean().optional()
2976
3011
  });
@@ -2985,6 +3020,8 @@ export const zTimeEntryUpdateParameters = z.object({
2985
3020
  state: z.string().nullish(),
2986
3021
  description: z.string().nullish(),
2987
3022
  hourly_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
3023
+ one_five_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
3024
+ two_x_adder_rate_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
2988
3025
  feature_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
2989
3026
  confirm_allocation_conflict: z.boolean().optional()
2990
3027
  });
@@ -5203,6 +5240,83 @@ export const zJobGoodFaithEffortExceptionUpdateParameters = z.object({
5203
5240
  no_availability_proof_signed_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional(),
5204
5241
  performed_by_user_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/).optional()
5205
5242
  });
5243
+ /**
5244
+ * A job-scoped CA DIR eCPR XML certified-payroll export. The generation handle is polled through this same document; `file` is null until an XML or ZIP is attached. Signing fields are not published. This format has no form version.
5245
+ */
5246
+ export const zJobCaEcprXmlExportResponseObject = z.object({
5247
+ id: z.string(),
5248
+ job_id: z.string(),
5249
+ start_date: z.iso.date(),
5250
+ end_date: z.iso.date(),
5251
+ status: z.enum([
5252
+ 'pending',
5253
+ 'processing',
5254
+ 'signing',
5255
+ 'signed',
5256
+ 'certifying',
5257
+ 'success',
5258
+ 'failed'
5259
+ ]),
5260
+ file: z.object({
5261
+ filename: z.string(),
5262
+ content_type: z.string().nullable(),
5263
+ byte_size: z.int(),
5264
+ url: z.string()
5265
+ }).nullable(),
5266
+ invalidated_at: z.iso.datetime().nullable(),
5267
+ invalidation_reason: z.enum([
5268
+ 'source_data_changed',
5269
+ 'source_records_deleted',
5270
+ 'ratio_status_changed'
5271
+ ]).nullable(),
5272
+ created_at: z.iso.datetime()
5273
+ });
5274
+ /**
5275
+ * Start a job-scoped CA DIR eCPR XML certified-payroll export over a calendar window. Creation requires a user-scoped API key, because the generation handle attributes the export to a person. The response is the pending export; poll the member GET for status and the file URL. Filename is server-owned. A job that does not offer CA eCPR answers 422 certified_payroll_format_unavailable. A window with no reportable pay periods answers 422 nothing_exportable.
5276
+ */
5277
+ export const zJobCaEcprXmlExportCreateParameters = z.object({
5278
+ start_date: z.iso.date(),
5279
+ end_date: z.iso.date()
5280
+ });
5281
+ /**
5282
+ * A job-scoped WH-347 certified-payroll export. The generation handle is polled through this same document; `file` is null until a ZIP is attached. Signing fields are not published.
5283
+ */
5284
+ export const zJobWh347ExportResponseObject = z.object({
5285
+ id: z.string(),
5286
+ job_id: z.string(),
5287
+ start_date: z.iso.date(),
5288
+ end_date: z.iso.date(),
5289
+ status: z.enum([
5290
+ 'pending',
5291
+ 'processing',
5292
+ 'signing',
5293
+ 'signed',
5294
+ 'certifying',
5295
+ 'success',
5296
+ 'failed'
5297
+ ]),
5298
+ file: z.object({
5299
+ filename: z.string(),
5300
+ content_type: z.string().nullable(),
5301
+ byte_size: z.int(),
5302
+ url: z.string()
5303
+ }).nullable(),
5304
+ invalidated_at: z.iso.datetime().nullable(),
5305
+ invalidation_reason: z.enum([
5306
+ 'source_data_changed',
5307
+ 'source_records_deleted',
5308
+ 'ratio_status_changed'
5309
+ ]).nullable(),
5310
+ version: z.enum(['v1', 'v2']),
5311
+ created_at: z.iso.datetime()
5312
+ });
5313
+ /**
5314
+ * Start a job-scoped WH-347 certified-payroll export over a calendar window. Creation requires a user-scoped API key, because the generation handle attributes the export to a person. The response is the pending export; poll the member GET for status and the file URL. Version, filename, and signing are server-owned. A job that does not offer WH-347 answers 422 certified_payroll_format_unavailable. A window with no reportable pay periods answers 422 nothing_exportable.
5315
+ */
5316
+ export const zJobWh347ExportCreateParameters = z.object({
5317
+ start_date: z.iso.date(),
5318
+ end_date: z.iso.date()
5319
+ });
5206
5320
  /**
5207
5321
  * 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`.
5208
5322
  */
@@ -5767,20 +5881,20 @@ export const zPositionParameters = z.object({
5767
5881
  }).optional()
5768
5882
  });
5769
5883
  /**
5770
- * Parameters for creating a per-unit scope price on a job. `scope_kind` and `unit_price_cents` are required; omitting either answers 400, and a null or wrong-typed value answers 422.
5884
+ * Parameters for creating a per-unit scope price on a job. `scope_kind` is required; omission answers 400. Omit `unit_price_cents` or send null to create with an unknown price. Supplied nonnull prices must be nonnegative decimal strings.
5771
5885
  */
5772
5886
  export const zProductionJobScopePriceParameters = z.object({
5773
5887
  scope_kind: z.string(),
5774
- unit_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/),
5888
+ unit_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
5775
5889
  contracted_count: z.int().nullish(),
5776
5890
  unit_of_measure: z.string().optional()
5777
5891
  });
5778
5892
  /**
5779
- * Parameters for updating a per-unit scope price on a job. Every field is optional; omit a field to preserve its current value, or send null for `contracted_count` to clear it. A null or wrong-typed value for any other field answers 422. The resulting price must retain a scope kind and non-negative unit price.
5893
+ * Parameters for updating a per-unit scope price on a job. Every field is optional; omit a field to preserve its current value. Send null for `unit_price_cents` to clear the known price, or for `contracted_count` to clear the target. A null value for any other field, or a wrong-typed value, answers 422. The resulting price must retain a scope kind; supplied nonnull prices must be nonnegative decimal strings.
5780
5894
  */
5781
5895
  export const zProductionJobScopePriceUpdateParameters = z.object({
5782
5896
  scope_kind: z.string().optional(),
5783
- unit_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).optional(),
5897
+ unit_price_cents: z.string().regex(/^[0-9]+(\.[0-9]+)?$/).nullish(),
5784
5898
  contracted_count: z.int().nullish(),
5785
5899
  unit_of_measure: z.string().optional()
5786
5900
  });
@@ -5792,11 +5906,106 @@ export const zProductionJobScopePriceResponseObject = z.object({
5792
5906
  job_id: z.string(),
5793
5907
  scope_kind: z.string(),
5794
5908
  unit_of_measure: z.string(),
5795
- unit_price_cents: z.string().optional(),
5909
+ unit_price_cents: z.string().nullish(),
5796
5910
  contracted_count: z.int().nullish(),
5797
5911
  created_at: z.iso.datetime(),
5798
5912
  updated_at: z.iso.datetime()
5799
5913
  });
5914
+ /**
5915
+ * Add one named intention. Re-adding a retained pair preserves omitted metadata and restores its membership.
5916
+ */
5917
+ export const zProductionPlannedFeatureTaskParameters = z.object({
5918
+ name: z.string().optional(),
5919
+ description: z.string().nullish(),
5920
+ time_due: z.iso.datetime().nullish(),
5921
+ tz_name: z.string().optional(),
5922
+ task_assignee_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
5923
+ performed_by_user_id: z.string().max(36).regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/).optional(),
5924
+ feature_id: z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)
5925
+ });
5926
+ /**
5927
+ * Edit only intended Task metadata, preserving every omitted field and the original creator.
5928
+ */
5929
+ export const zProductionPlannedFeatureTaskUpdateParameters = z.object({
5930
+ name: z.string().optional(),
5931
+ description: z.string().nullish(),
5932
+ time_due: z.iso.datetime().nullish(),
5933
+ tz_name: z.string().optional(),
5934
+ task_assignee_user_ids: z.array(z.string().regex(/[^\x09-\x0D\x20…   - ‧-‪   ]|[‧‪]/)).optional(),
5935
+ performed_by_user_id: z.string().max(36).regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/).optional()
5936
+ });
5937
+ /**
5938
+ * Set retained membership idempotently, without removing the pair, its Task or actual evidence.
5939
+ */
5940
+ export const zProductionPlannedFeatureTaskArchiveParameters = z.object({
5941
+ archived: z.boolean(),
5942
+ performed_by_user_id: z.string().max(36).regex(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/).optional()
5943
+ });
5944
+ /**
5945
+ * One retained scope/Feature intention and its optional intended metadata. Actual Completion remains the sole production evidence.
5946
+ */
5947
+ export const zProductionPlannedFeatureTaskResponseObject = z.object({
5948
+ id: z.string(),
5949
+ production_job_scope_price_id: z.string(),
5950
+ feature_id: z.string(),
5951
+ task_id: z.string(),
5952
+ production_completion_id: z.string().nullable(),
5953
+ archived_at: z.iso.datetime().nullable(),
5954
+ name: z.string(),
5955
+ description: z.string(),
5956
+ time_due: z.iso.datetime().nullable(),
5957
+ tz_name: z.string(),
5958
+ task_assignee_user_ids: z.array(z.string()),
5959
+ created_at: z.iso.datetime(),
5960
+ updated_at: z.iso.datetime()
5961
+ });
5962
+ /**
5963
+ * Create a dated commitment on a Feature-tracked Job scope. The date and condition object are required; condition.requirement_kind is required. Omission answers 400. The server chooses and owns the condition type and identity. A Quantity-tracked scope answers 422. No performed_by_user_id is required or accepted; audit records the authenticated user, or null for a company key.
5964
+ */
5965
+ export const zProductionDeliveryTargetParameters = z.object({
5966
+ due_date: z.iso.date(),
5967
+ condition_attributes: z.object({
5968
+ requirement_kind: z.enum(['count', 'all']),
5969
+ required_count: z.int().gte(1).nullish()
5970
+ })
5971
+ });
5972
+ /**
5973
+ * Change a target's date or whole-service rule. Omitted fields retain their current values, including required_count when changing modes. Send required_count null when switching count to all; send a positive count when switching all to count. The server preserves target and condition identities. Null date, condition object or requirement kind answers 422. A rejected write changes neither record.
5974
+ */
5975
+ export const zProductionDeliveryTargetUpdateParameters = z.object({
5976
+ due_date: z.iso.date().optional(),
5977
+ condition_attributes: z.object({
5978
+ requirement_kind: z.enum(['count', 'all']).optional(),
5979
+ required_count: z.int().gte(1).nullish()
5980
+ }).optional()
5981
+ });
5982
+ /**
5983
+ * A scope-owned target and current assessment. No Feature identities, private counts or prices are exposed. Assessments use current named membership and effective actual work dates, rather than Task completion flags or filing times.
5984
+ */
5985
+ export const zProductionDeliveryTargetResponseObject = z.object({
5986
+ id: z.string(),
5987
+ production_job_scope_price_id: z.string(),
5988
+ due_date: z.iso.date(),
5989
+ condition: z.object({
5990
+ requirement_kind: z.enum(['count', 'all']),
5991
+ required_count: z.int().nullable()
5992
+ }),
5993
+ assessment: z.object({
5994
+ required_total: z.int().nullable(),
5995
+ qualifying_count: z.int().nullable(),
5996
+ current_achieved_count: z.int().nullable(),
5997
+ shortfall: z.int().nullable(),
5998
+ state: z.enum([
5999
+ 'unavailable',
6000
+ 'awaiting_named_scope',
6001
+ 'met_by_date',
6002
+ 'remaining_before_deadline',
6003
+ 'shortfall_after_deadline'
6004
+ ])
6005
+ }),
6006
+ created_at: z.iso.datetime(),
6007
+ updated_at: z.iso.datetime()
6008
+ });
5800
6009
  /**
5801
6010
  * Record a completion against a scope price. The server takes the completable subtype from the production tracking kind of the scope price's job, never from the request: a feature-tracked job records which feature was completed, and a quantity-tracked job how many units were completed. completable_attributes declares both kinds' keys; sending the other kind's key answers 422 subtype_foreign_keys with an entry pointing at it, and nothing is written.
5802
6011
  */
@@ -5822,6 +6031,12 @@ export const zProductionCompletionUpdateParameters = z.object({
5822
6031
  quantity_completed: z.int().gte(1).optional()
5823
6032
  }).optional()
5824
6033
  });
6034
+ /**
6035
+ * Explicit retained Feature lifecycle command. Both states are idempotent; Quantity withdrawal and restoration return 422.
6036
+ */
6037
+ export const zProductionCompletionWithdrawalParameters = z.object({
6038
+ withdrawn: z.boolean()
6039
+ });
5825
6040
  /**
5826
6041
  * A completion recorded on a feature-tracked job — a unit of scoped work finished by a crew, identifying which feature was completed.
5827
6042
  */
@@ -5839,7 +6054,8 @@ export const zProductionFeatureCompletionResponseObject = z.object({
5839
6054
  feature_id: z.string(),
5840
6055
  created_at: z.iso.datetime(),
5841
6056
  updated_at: z.iso.datetime(),
5842
- work_date: z.iso.date()
6057
+ work_date: z.iso.date(),
6058
+ withdrawn_at: z.iso.datetime().nullable()
5843
6059
  });
5844
6060
  /**
5845
6061
  * A completion recorded on a quantity-tracked job — a unit of scoped work finished by a crew, counting how many units were completed.
@@ -5858,7 +6074,8 @@ export const zProductionQuantityCompletionResponseObject = z.object({
5858
6074
  quantity_completed: z.int(),
5859
6075
  created_at: z.iso.datetime(),
5860
6076
  updated_at: z.iso.datetime(),
5861
- work_date: z.iso.date()
6077
+ work_date: z.iso.date(),
6078
+ withdrawn_at: z.iso.datetime().nullable()
5862
6079
  });
5863
6080
  /**
5864
6081
  * A recorded production completion. The completable_type discriminator selects the feature-tracked or quantity-tracked representation.
@@ -6460,6 +6677,22 @@ export const zJobGoodFaithEffortExceptionsResponseObject = z.object({
6460
6677
  links: zLinks,
6461
6678
  data: z.array(zJobGoodFaithEffortExceptionResponseObject)
6462
6679
  });
6680
+ /**
6681
+ * A page of a job's CA DIR eCPR XML certified-payroll exports, with pagination metadata and navigation links.
6682
+ */
6683
+ export const zJobCaEcprXmlExportsResponseObject = z.object({
6684
+ meta: zMeta,
6685
+ links: zLinks,
6686
+ data: z.array(zJobCaEcprXmlExportResponseObject)
6687
+ });
6688
+ /**
6689
+ * A page of a job's WH-347 certified-payroll exports, with pagination metadata and navigation links.
6690
+ */
6691
+ export const zJobWh347ExportsResponseObject = z.object({
6692
+ meta: zMeta,
6693
+ links: zLinks,
6694
+ data: z.array(zJobWh347ExportResponseObject)
6695
+ });
6463
6696
  /**
6464
6697
  * A page of a job's PWA cure payments, with pagination metadata and navigation links.
6465
6698
  */
@@ -6710,21 +6943,14 @@ export const zFederalJobWageDeterminationHistoryCorrectionObject = z.object({
6710
6943
  updated_at: z.iso.datetime()
6711
6944
  });
6712
6945
  /**
6713
- * State-specific rate fields recorded on a Regional determination, as decimal-string money in
6714
- * cents (e.g. "538.0"). Which keys appear is set by the job's region, so this object is always
6715
- * a region-determined subset of these keys — never a fixed shape:
6716
- *
6717
- * - Categorized-fringe regions (currently IL) carry `combined_health_fringe_rate_cents`,
6718
- * `combined_savings_fringe_rate_cents`, `combined_holiday_pto_fringe_rate_cents`,
6719
- * `training_fringe_rate_cents`, and `other_fringe_rate_cents`.
6720
- * - Overtime-adder regions (currently IL and NY) carry `one_five_x_adder_rate_cents`,
6721
- * `two_x_adder_rate_cents`, `one_five_x_fringe_adder_rate_cents`, and
6722
- * `two_x_fringe_adder_rate_cents`.
6723
- * - A region with neither returns an empty object.
6946
+ * State-specific categorized fringe rates recorded on a Regional determination, as decimal-string
6947
+ * money in cents (e.g. "538.0"). Categorized-fringe regions (currently IL) carry
6948
+ * `combined_health_fringe_rate_cents`, `combined_savings_fringe_rate_cents`,
6949
+ * `combined_holiday_pto_fringe_rate_cents`, `training_fringe_rate_cents`, and
6950
+ * `other_fringe_rate_cents`. These values are non-null when present. Other regions return an empty object.
6724
6951
  *
6725
- * Categorized-fringe values are non-null when present; legacy overtime-adder values may be null.
6726
- * The overtime-adder fields are read-only. Configure new overtime premiums through the
6727
- * determination's rate rules.
6952
+ * Overtime wage and fringe premiums belong to the determination's rate-rule package. They are not
6953
+ * returned as scalar regional rate fields.
6728
6954
  *
6729
6955
  */
6730
6956
  export const zRegionalWageDeterminationFieldsResponse = z.record(z.string(), z.string().nullable());
@@ -9344,6 +9570,14 @@ export const zCreateItemFormAssignmentTaskPath = z.object({
9344
9570
  * Created (recurring, with assignees and reminders)
9345
9571
  */
9346
9572
  export const zCreateItemFormAssignmentTaskResponse = zAssetsItemFormAssignmentResponseObject;
9573
+ export const zDeleteFormAssignmentTaskPath = z.object({
9574
+ item_id: z.string(),
9575
+ id: z.string()
9576
+ });
9577
+ /**
9578
+ * No Content
9579
+ */
9580
+ export const zDeleteFormAssignmentTaskResponse = z.void();
9347
9581
  export const zGetFormAssignmentTaskPath = z.object({
9348
9582
  item_id: z.string(),
9349
9583
  id: z.string()
@@ -9416,6 +9650,10 @@ export const zListVersionsPath = z.object({
9416
9650
  item_id: z.string(),
9417
9651
  document_id: z.string()
9418
9652
  });
9653
+ export const zListVersionsQuery = z.object({
9654
+ filter: z.string().optional(),
9655
+ 'filter[unexpected]': z.string().optional()
9656
+ });
9419
9657
  /**
9420
9658
  * Success
9421
9659
  */
@@ -9815,16 +10053,23 @@ export const zGetAtlasSitePath = z.object({
9815
10053
  */
9816
10054
  export const zGetAtlasSiteResponse = zSiteResponseObject;
9817
10055
  export const zListPwaUserCountsByProjectByMonthsQuery = z.object({
9818
- 'filter[year_month]': z.string().optional(),
10056
+ 'filter[year_month]': z.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
9819
10057
  'filter[project_id]': z.string().optional(),
9820
10058
  'filter[job_id]': z.string().optional(),
10059
+ 'page[cursor]': z.string().optional(),
10060
+ 'page[limit]': z.int().gte(1).optional().default(20),
10061
+ page: z.string().optional(),
9821
10062
  filter: z.string().optional(),
9822
10063
  'filter[unexpected]': z.string().optional()
9823
10064
  });
9824
10065
  /**
9825
10066
  * Success
9826
10067
  */
9827
- export const zListPwaUserCountsByProjectByMonthsResponse = z.array(zBillingPwaUserCountByProjectByMonthResponseObject);
10068
+ export const zListPwaUserCountsByProjectByMonthsResponse = z.object({
10069
+ meta: zMeta,
10070
+ links: zLinks,
10071
+ data: z.array(zBillingPwaUserCountByProjectByMonthResponseObject)
10072
+ });
9828
10073
  export const zListPackagesQuery = z.object({
9829
10074
  'filter[name]': z.string().optional(),
9830
10075
  'filter[created_at][gte]': z.iso.datetime().optional(),
@@ -9944,7 +10189,7 @@ export const zListCertificationsQuery = z.object({
9944
10189
  export const zListCertificationsResponse = zCertificationsResponseObject;
9945
10190
  export const zCreateCertificationBody = zCertificationParameters;
9946
10191
  /**
9947
- * Success
10192
+ * Created
9948
10193
  */
9949
10194
  export const zCreateCertificationResponse = zCertificationResponseObject;
9950
10195
  export const zDeleteCertificationPath = z.object({
@@ -10937,6 +11182,14 @@ export const zCreateJobFormAssignmentTaskPath = z.object({
10937
11182
  * Created (recurring, with assignees and reminders)
10938
11183
  */
10939
11184
  export const zCreateJobFormAssignmentTaskResponse = zJobFormAssignmentResponseObject;
11185
+ export const zDeleteJobFormAssignmentTaskPath = z.object({
11186
+ job_id: z.string(),
11187
+ id: z.string()
11188
+ });
11189
+ /**
11190
+ * No Content
11191
+ */
11192
+ export const zDeleteJobFormAssignmentTaskResponse = z.void();
10940
11193
  export const zGetJobFormAssignmentTaskPath = z.object({
10941
11194
  job_id: z.string(),
10942
11195
  id: z.string()
@@ -10954,6 +11207,118 @@ export const zUpdateJobFormAssignmentTaskPath = z.object({
10954
11207
  * Success
10955
11208
  */
10956
11209
  export const zUpdateJobFormAssignmentTaskResponse = zJobFormAssignmentResponseObject;
11210
+ export const zListDeliveryTargetsPath = z.object({
11211
+ job_id: z.string(),
11212
+ job_scope_price_id: z.string()
11213
+ });
11214
+ export const zListDeliveryTargetsQuery = z.object({
11215
+ 'page[cursor]': z.string().optional(),
11216
+ 'page[limit]': z.int().gte(1).optional().default(20),
11217
+ page: z.string().optional()
11218
+ });
11219
+ /**
11220
+ * Success
11221
+ */
11222
+ export const zListDeliveryTargetsResponse = z.object({
11223
+ meta: zMeta,
11224
+ links: zLinks,
11225
+ data: z.array(zProductionDeliveryTargetResponseObject)
11226
+ });
11227
+ export const zCreateDeliveryTargetBody = zProductionDeliveryTargetParameters;
11228
+ export const zCreateDeliveryTargetPath = z.object({
11229
+ job_id: z.string(),
11230
+ job_scope_price_id: z.string()
11231
+ });
11232
+ /**
11233
+ * Created
11234
+ */
11235
+ export const zCreateDeliveryTargetResponse = zProductionDeliveryTargetResponseObject;
11236
+ export const zDeleteDeliveryTargetPath = z.object({
11237
+ job_id: z.string(),
11238
+ job_scope_price_id: z.string(),
11239
+ id: z.string()
11240
+ });
11241
+ /**
11242
+ * No Content
11243
+ */
11244
+ export const zDeleteDeliveryTargetResponse = z.void();
11245
+ export const zGetDeliveryTargetPath = z.object({
11246
+ job_id: z.string(),
11247
+ job_scope_price_id: z.string(),
11248
+ id: z.string()
11249
+ });
11250
+ /**
11251
+ * Success
11252
+ */
11253
+ export const zGetDeliveryTargetResponse = zProductionDeliveryTargetResponseObject;
11254
+ export const zUpdateDeliveryTargetBody = zProductionDeliveryTargetUpdateParameters;
11255
+ export const zUpdateDeliveryTargetPath = z.object({
11256
+ job_id: z.string(),
11257
+ job_scope_price_id: z.string(),
11258
+ id: z.string()
11259
+ });
11260
+ /**
11261
+ * Success
11262
+ */
11263
+ export const zUpdateDeliveryTargetResponse = zProductionDeliveryTargetResponseObject;
11264
+ export const zUpdateArchiveBody = zProductionPlannedFeatureTaskArchiveParameters;
11265
+ export const zUpdateArchivePath = z.object({
11266
+ job_id: z.string(),
11267
+ job_scope_price_id: z.string(),
11268
+ planned_feature_task_id: z.string()
11269
+ });
11270
+ /**
11271
+ * Success
11272
+ */
11273
+ export const zUpdateArchiveResponse = zProductionPlannedFeatureTaskResponseObject;
11274
+ export const zListPlannedFeatureTasksPath = z.object({
11275
+ job_id: z.string(),
11276
+ job_scope_price_id: z.string()
11277
+ });
11278
+ export const zListPlannedFeatureTasksQuery = z.object({
11279
+ 'filter[archived]': z.boolean().optional(),
11280
+ filter: z.string().optional(),
11281
+ 'filter[unexpected]': z.string().optional(),
11282
+ 'page[cursor]': z.string().optional(),
11283
+ 'page[limit]': z.int().gte(1).optional().default(20),
11284
+ page: z.string().optional()
11285
+ });
11286
+ /**
11287
+ * Success
11288
+ */
11289
+ export const zListPlannedFeatureTasksResponse = z.object({
11290
+ meta: zMeta,
11291
+ links: zLinks,
11292
+ data: z.array(zProductionPlannedFeatureTaskResponseObject)
11293
+ });
11294
+ export const zCreatePlannedFeatureTaskBody = zProductionPlannedFeatureTaskParameters;
11295
+ export const zCreatePlannedFeatureTaskPath = z.object({
11296
+ job_id: z.string(),
11297
+ job_scope_price_id: z.string()
11298
+ });
11299
+ /**
11300
+ * Created
11301
+ */
11302
+ export const zCreatePlannedFeatureTaskResponse = zProductionPlannedFeatureTaskResponseObject;
11303
+ export const zGetPlannedFeatureTaskPath = z.object({
11304
+ job_id: z.string(),
11305
+ job_scope_price_id: z.string(),
11306
+ id: z.string()
11307
+ });
11308
+ /**
11309
+ * Success
11310
+ */
11311
+ export const zGetPlannedFeatureTaskResponse = zProductionPlannedFeatureTaskResponseObject;
11312
+ export const zUpdatePlannedFeatureTaskBody = zProductionPlannedFeatureTaskUpdateParameters;
11313
+ export const zUpdatePlannedFeatureTaskPath = z.object({
11314
+ job_id: z.string(),
11315
+ job_scope_price_id: z.string(),
11316
+ id: z.string()
11317
+ });
11318
+ /**
11319
+ * Success
11320
+ */
11321
+ export const zUpdatePlannedFeatureTaskResponse = zProductionPlannedFeatureTaskResponseObject;
10957
11322
  export const zListJobScopePricesPath = z.object({
10958
11323
  job_id: z.string()
10959
11324
  });
@@ -11057,6 +11422,68 @@ export const zUpdateGoodFaithEffortExceptionPath = z.object({
11057
11422
  * Success
11058
11423
  */
11059
11424
  export const zUpdateGoodFaithEffortExceptionResponse = zJobGoodFaithEffortExceptionResponseObject;
11425
+ export const zListCaEcprXmlExportsPath = z.object({
11426
+ job_id: z.string()
11427
+ });
11428
+ export const zListCaEcprXmlExportsQuery = z.object({
11429
+ 'filter[status]': z.string().optional(),
11430
+ filter: z.string().optional(),
11431
+ 'filter[unexpected]': z.string().optional(),
11432
+ 'page[cursor]': z.string().optional(),
11433
+ 'page[limit]': z.int().gte(1).optional().default(20),
11434
+ page: z.string().optional()
11435
+ });
11436
+ /**
11437
+ * Success
11438
+ */
11439
+ export const zListCaEcprXmlExportsResponse = zJobCaEcprXmlExportsResponseObject;
11440
+ export const zCreateCaEcprXmlExportBody = zJobCaEcprXmlExportCreateParameters;
11441
+ export const zCreateCaEcprXmlExportPath = z.object({
11442
+ job_id: z.string()
11443
+ });
11444
+ /**
11445
+ * Created
11446
+ */
11447
+ export const zCreateCaEcprXmlExportResponse = zJobCaEcprXmlExportResponseObject;
11448
+ export const zGetCaEcprXmlExportPath = z.object({
11449
+ job_id: z.string(),
11450
+ id: z.string()
11451
+ });
11452
+ /**
11453
+ * Success
11454
+ */
11455
+ export const zGetCaEcprXmlExportResponse = zJobCaEcprXmlExportResponseObject;
11456
+ export const zListWh347ExportsPath = z.object({
11457
+ job_id: z.string()
11458
+ });
11459
+ export const zListWh347ExportsQuery = z.object({
11460
+ 'filter[status]': z.string().optional(),
11461
+ filter: z.string().optional(),
11462
+ 'filter[unexpected]': z.string().optional(),
11463
+ 'page[cursor]': z.string().optional(),
11464
+ 'page[limit]': z.int().gte(1).optional().default(20),
11465
+ page: z.string().optional()
11466
+ });
11467
+ /**
11468
+ * Success
11469
+ */
11470
+ export const zListWh347ExportsResponse = zJobWh347ExportsResponseObject;
11471
+ export const zCreateWh347ExportBody = zJobWh347ExportCreateParameters;
11472
+ export const zCreateWh347ExportPath = z.object({
11473
+ job_id: z.string()
11474
+ });
11475
+ /**
11476
+ * Created
11477
+ */
11478
+ export const zCreateWh347ExportResponse = zJobWh347ExportResponseObject;
11479
+ export const zGetWh347ExportPath = z.object({
11480
+ job_id: z.string(),
11481
+ id: z.string()
11482
+ });
11483
+ /**
11484
+ * Success
11485
+ */
11486
+ export const zGetWh347ExportResponse = zJobWh347ExportResponseObject;
11060
11487
  export const zListCurePaymentsPath = z.object({
11061
11488
  job_id: z.string()
11062
11489
  });
@@ -11597,6 +12024,15 @@ export const zCreateFeatureFormAssignmentTaskPath = z.object({
11597
12024
  * Created
11598
12025
  */
11599
12026
  export const zCreateFeatureFormAssignmentTaskResponse = zFeatureFormAssignmentResponseObject;
12027
+ export const zDeleteFeatureFormAssignmentTaskPath = z.object({
12028
+ site_id: z.string(),
12029
+ feature_id: z.string(),
12030
+ id: z.string()
12031
+ });
12032
+ /**
12033
+ * No Content
12034
+ */
12035
+ export const zDeleteFeatureFormAssignmentTaskResponse = z.void();
11600
12036
  export const zGetFeatureFormAssignmentTaskPath = z.object({
11601
12037
  site_id: z.string(),
11602
12038
  feature_id: z.string(),
@@ -11640,6 +12076,14 @@ export const zCreateSiteFormAssignmentTaskPath = z.object({
11640
12076
  * Created
11641
12077
  */
11642
12078
  export const zCreateSiteFormAssignmentTaskResponse = zSiteFormAssignmentResponseObject;
12079
+ export const zDeleteSiteFormAssignmentTaskPath = z.object({
12080
+ site_id: z.string(),
12081
+ id: z.string()
12082
+ });
12083
+ /**
12084
+ * No Content
12085
+ */
12086
+ export const zDeleteSiteFormAssignmentTaskResponse = z.void();
11643
12087
  export const zGetSiteFormAssignmentTaskPath = z.object({
11644
12088
  site_id: z.string(),
11645
12089
  id: z.string()
@@ -12752,6 +13196,41 @@ export const zUpdatePositionFunctionPath = z.object({
12752
13196
  * Success
12753
13197
  */
12754
13198
  export const zUpdatePositionFunctionResponse = zPositionFunctionResponseObject;
13199
+ export const zListCompletionHistoryQuery = z.object({
13200
+ 'filter[job_id]': z.string().optional(),
13201
+ 'filter[scope_kind]': z.string().optional(),
13202
+ 'filter[feature_id]': z.string().optional(),
13203
+ 'filter[work_date][gte]': z.iso.date().optional(),
13204
+ 'filter[work_date][lte]': z.iso.date().optional(),
13205
+ filter: z.string().optional(),
13206
+ 'filter[unexpected]': z.string().optional(),
13207
+ 'page[cursor]': z.string().optional(),
13208
+ 'page[limit]': z.int().gte(1).optional().default(20),
13209
+ page: z.string().optional()
13210
+ });
13211
+ /**
13212
+ * Success
13213
+ */
13214
+ export const zListCompletionHistoryResponse = z.object({
13215
+ meta: zMeta,
13216
+ links: zLinks,
13217
+ data: z.array(zProductionCompletionResponseObject)
13218
+ });
13219
+ export const zGetCompletionHistoryPath = z.object({
13220
+ id: z.string()
13221
+ });
13222
+ /**
13223
+ * Success
13224
+ */
13225
+ export const zGetCompletionHistoryResponse = zProductionCompletionResponseObject;
13226
+ export const zSetCompletionWithdrawalBody = zProductionCompletionWithdrawalParameters;
13227
+ export const zSetCompletionWithdrawalPath = z.object({
13228
+ completion_id: z.string()
13229
+ });
13230
+ /**
13231
+ * Success
13232
+ */
13233
+ export const zSetCompletionWithdrawalResponse = zProductionCompletionResponseObject;
12755
13234
  export const zListCompletionsQuery = z.object({
12756
13235
  'filter[job_id]': z.string().optional(),
12757
13236
  'filter[scope_kind]': z.string().optional(),
@@ -12815,7 +13294,9 @@ export const zListProjectDocumentVersionsPath = z.object({
12815
13294
  export const zListProjectDocumentVersionsQuery = z.object({
12816
13295
  'page[cursor]': z.string().optional(),
12817
13296
  'page[limit]': z.int().gte(1).optional().default(20),
12818
- page: z.string().optional()
13297
+ page: z.string().optional(),
13298
+ filter: z.string().optional(),
13299
+ 'filter[unexpected]': z.string().optional()
12819
13300
  });
12820
13301
  /**
12821
13302
  * Success
@@ -12993,7 +13474,9 @@ export const zListProjectWageDeterminationRateRulesQuery = z.object({
12993
13474
  as_of: z.string().optional(),
12994
13475
  'as_of[bogus_axis]': z.string().optional(),
12995
13476
  'as_of[valid][gte]': z.string().optional(),
12996
- 'as_of[transaction]': z.string().optional()
13477
+ 'as_of[transaction]': z.string().optional(),
13478
+ filter: z.string().optional(),
13479
+ 'filter[unexpected]': z.string().optional()
12997
13480
  });
12998
13481
  /**
12999
13482
  * Success
@@ -13055,7 +13538,9 @@ export const zListProjectSitesPath = z.object({
13055
13538
  export const zListProjectSitesQuery = z.object({
13056
13539
  'page[cursor]': z.string().optional(),
13057
13540
  'page[limit]': z.int().gte(1).optional().default(20),
13058
- page: z.string().optional()
13541
+ page: z.string().optional(),
13542
+ filter: z.string().optional(),
13543
+ 'filter[unexpected]': z.string().optional()
13059
13544
  });
13060
13545
  /**
13061
13546
  * Success
@@ -13229,7 +13714,9 @@ export const zListProjectWageDeterminationsQuery = z.object({
13229
13714
  as_of: z.string().optional(),
13230
13715
  'as_of[bogus_axis]': z.string().optional(),
13231
13716
  'as_of[valid][gte]': z.string().optional(),
13232
- 'as_of[transaction]': z.string().optional()
13717
+ 'as_of[transaction]': z.string().optional(),
13718
+ filter: z.string().optional(),
13719
+ 'filter[unexpected]': z.string().optional()
13233
13720
  });
13234
13721
  /**
13235
13722
  * Success
@@ -14307,7 +14794,7 @@ export const zListUserRolesResponse = z.object({
14307
14794
  });
14308
14795
  export const zAddUserRolesBody = zUserRoleRequest;
14309
14796
  /**
14310
- * Success
14797
+ * Created
14311
14798
  */
14312
14799
  export const zAddUserRolesResponse = zUserRoleResponse;
14313
14800
  export const zDeleteUserRolePath = z.object({