@dsptch-work/api-client 0.42.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.
@@ -263,7 +263,7 @@ export type Problem = {
263
263
  *
264
264
  * **Certified Payroll Format Unavailable**
265
265
  *
266
- * The named job does not offer this certified payroll format. WH-347 is available only on a job that tracks federal prevailing wage. Use a job that offers the format.
266
+ * 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.
267
267
  *
268
268
  * ### company_not_employer
269
269
  *
@@ -10944,6 +10944,88 @@ export type JobGoodFaithEffortExceptionsResponseObject = {
10944
10944
  */
10945
10945
  data: Array<JobGoodFaithEffortExceptionResponseObject>;
10946
10946
  };
10947
+ /**
10948
+ * 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.
10949
+ */
10950
+ export type JobCaEcprXmlExportResponseObject = {
10951
+ /**
10952
+ * Id of the CA eCPR XML export row.
10953
+ */
10954
+ id: string;
10955
+ /**
10956
+ * Id of the job this export is scoped to. Always matches the job in the URL path.
10957
+ */
10958
+ job_id: string;
10959
+ /**
10960
+ * First calendar day of the filing window.
10961
+ */
10962
+ start_date: string;
10963
+ /**
10964
+ * Last calendar day of the filing window.
10965
+ */
10966
+ end_date: string;
10967
+ /**
10968
+ * Generation-handle status — `pending`, `processing`, `signing`, `signed`, `certifying`, `success`, or `failed`. CA eCPR generation does not enter the signing states.
10969
+ */
10970
+ status: 'pending' | 'processing' | 'signing' | 'signed' | 'certifying' | 'success' | 'failed';
10971
+ /**
10972
+ * The generated file's filename, content type, size, and URL; null when no file is attached.
10973
+ */
10974
+ file: {
10975
+ /**
10976
+ * Stored name of the generated file.
10977
+ */
10978
+ filename: string;
10979
+ /**
10980
+ * MIME type of the file; null when not recorded.
10981
+ */
10982
+ content_type: string | null;
10983
+ /**
10984
+ * Size of the file in bytes.
10985
+ */
10986
+ byte_size: number;
10987
+ /**
10988
+ * A URL to download the file.
10989
+ */
10990
+ url: string;
10991
+ } | null;
10992
+ /**
10993
+ * When source data was observed to have drifted from this export; null when it has not.
10994
+ */
10995
+ invalidated_at: string | null;
10996
+ /**
10997
+ * Why the export was invalidated — `source_data_changed`, `source_records_deleted`, or `ratio_status_changed`. Null when `invalidated_at` is null.
10998
+ */
10999
+ invalidation_reason: 'source_data_changed' | 'source_records_deleted' | 'ratio_status_changed' | null;
11000
+ /**
11001
+ * When the CA eCPR XML export row was created.
11002
+ */
11003
+ created_at: string;
11004
+ };
11005
+ /**
11006
+ * A page of a job's CA DIR eCPR XML certified-payroll exports, with pagination metadata and navigation links.
11007
+ */
11008
+ export type JobCaEcprXmlExportsResponseObject = {
11009
+ meta: Meta;
11010
+ links: Links;
11011
+ /**
11012
+ * The page of CA eCPR XML exports.
11013
+ */
11014
+ data: Array<JobCaEcprXmlExportResponseObject>;
11015
+ };
11016
+ /**
11017
+ * 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.
11018
+ */
11019
+ export type JobCaEcprXmlExportCreateParameters = {
11020
+ /**
11021
+ * First calendar day of the filing window, `YYYY-MM-DD`. Required; omission answers 400. Must be on or before `end_date`.
11022
+ */
11023
+ start_date: string;
11024
+ /**
11025
+ * Last calendar day of the filing window, `YYYY-MM-DD`. Required; omission answers 400. Must be on or after `start_date`.
11026
+ */
11027
+ end_date: string;
11028
+ };
10947
11029
  /**
10948
11030
  * 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.
10949
11031
  */
@@ -12015,6 +12097,245 @@ export type ProductionJobScopePriceResponseObject = {
12015
12097
  */
12016
12098
  updated_at: string;
12017
12099
  };
12100
+ /**
12101
+ * Add one named intention. Re-adding a retained pair preserves omitted metadata and restores its membership.
12102
+ */
12103
+ export type ProductionPlannedFeatureTaskParameters = {
12104
+ /**
12105
+ * Optional operational title; a new pair defaults to the Feature name. Does not define production identity.
12106
+ */
12107
+ name?: string;
12108
+ /**
12109
+ * Optional instructions. Null clears the description.
12110
+ */
12111
+ description?: string | null;
12112
+ /**
12113
+ * Optional intended deadline as an instant with a UTC offset. Null clears it; it is independent from actual work_date.
12114
+ */
12115
+ time_due?: string | null;
12116
+ /**
12117
+ * Time zone for the intended deadline. Omit to keep the Task zone.
12118
+ */
12119
+ tz_name?: string;
12120
+ /**
12121
+ * Replacement set of intended authorized company-member people; omission preserves, [] clears. Independent from actual Completion crew.
12122
+ */
12123
+ task_assignee_user_ids?: Array<string>;
12124
+ /**
12125
+ * Required on every company-key write: responsible company-member human UUID. User keys may omit it or send their own ID; a different ID is forbidden. Human attribution does not replace authorization or audit principal.
12126
+ */
12127
+ performed_by_user_id?: string;
12128
+ /**
12129
+ * An authorized active Feature on a Site of the URL Job. Fixed after creation.
12130
+ */
12131
+ feature_id: string;
12132
+ };
12133
+ /**
12134
+ * Edit only intended Task metadata, preserving every omitted field and the original creator.
12135
+ */
12136
+ export type ProductionPlannedFeatureTaskUpdateParameters = {
12137
+ /**
12138
+ * Operational title; does not define production identity.
12139
+ */
12140
+ name?: string;
12141
+ /**
12142
+ * Optional instructions. Null clears the description.
12143
+ */
12144
+ description?: string | null;
12145
+ /**
12146
+ * Optional intended deadline as an instant with a UTC offset. Null clears it; it is independent from actual work_date.
12147
+ */
12148
+ time_due?: string | null;
12149
+ /**
12150
+ * Time zone for the intended deadline. Omit to keep the Task zone.
12151
+ */
12152
+ tz_name?: string;
12153
+ /**
12154
+ * Replacement set of intended authorized company-member people; omission preserves, [] clears. Independent from actual Completion crew.
12155
+ */
12156
+ task_assignee_user_ids?: Array<string>;
12157
+ /**
12158
+ * Required for company keys on every write. User keys use only their authenticated user; a different supplied UUID is forbidden.
12159
+ */
12160
+ performed_by_user_id?: string;
12161
+ };
12162
+ /**
12163
+ * Set retained membership idempotently, without removing the pair, its Task or actual evidence.
12164
+ */
12165
+ export type ProductionPlannedFeatureTaskArchiveParameters = {
12166
+ /**
12167
+ * True archives current named membership; false restores it after current admission validity is checked.
12168
+ */
12169
+ archived: boolean;
12170
+ /**
12171
+ * Required for company keys on every archive or restore. User keys use only their authenticated user; a different supplied UUID is forbidden.
12172
+ */
12173
+ performed_by_user_id?: string;
12174
+ };
12175
+ /**
12176
+ * One retained scope/Feature intention and its optional intended metadata. Actual Completion remains the sole production evidence.
12177
+ */
12178
+ export type ProductionPlannedFeatureTaskResponseObject = {
12179
+ /**
12180
+ * Stable retained intention identifier.
12181
+ */
12182
+ id: string;
12183
+ /**
12184
+ * Owning service scope on the URL Job.
12185
+ */
12186
+ production_job_scope_price_id: string;
12187
+ /**
12188
+ * Named Feature identity, fixed for the retained pair.
12189
+ */
12190
+ feature_id: string;
12191
+ /**
12192
+ * Stable paired Task identity. Generic Task completion, dismissal, copying and recurrence are unsupported.
12193
+ */
12194
+ task_id: string;
12195
+ /**
12196
+ * Nullable supporting effective actual report. Actual crew and work_date belong to that Completion.
12197
+ */
12198
+ production_completion_id: string | null;
12199
+ /**
12200
+ * Null for current named membership; set for an archived retained intention.
12201
+ */
12202
+ archived_at: string | null;
12203
+ /**
12204
+ * Operational Task title; not production identity.
12205
+ */
12206
+ name: string;
12207
+ /**
12208
+ * Plain-text intended instructions; empty when absent.
12209
+ */
12210
+ description: string;
12211
+ /**
12212
+ * Nullable intended deadline as a UTC instant; independent from actual work_date.
12213
+ */
12214
+ time_due: string | null;
12215
+ /**
12216
+ * Time zone for the intended deadline.
12217
+ */
12218
+ tz_name: string;
12219
+ /**
12220
+ * Intended people, independently from the actual Completion crew.
12221
+ */
12222
+ task_assignee_user_ids: Array<string>;
12223
+ /**
12224
+ * When the record was created (ISO 8601).
12225
+ */
12226
+ created_at: string;
12227
+ /**
12228
+ * When the record was last updated (ISO 8601).
12229
+ */
12230
+ updated_at: string;
12231
+ };
12232
+ /**
12233
+ * 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.
12234
+ */
12235
+ export type ProductionDeliveryTargetParameters = {
12236
+ /**
12237
+ * Inclusive contractual deadline as a calendar date (YYYY-MM-DD) in the Job's time zone. Null or an invalid calendar date answers 422.
12238
+ */
12239
+ due_date: string;
12240
+ /**
12241
+ * The whole-service requirement. Null, a wrong type or an unknown nested key answers 422.
12242
+ */
12243
+ condition_attributes: {
12244
+ /**
12245
+ * Use count for a fixed positive N, or all for the current named Feature set. Null or another value answers 422.
12246
+ */
12247
+ requirement_kind: 'count' | 'all';
12248
+ /**
12249
+ * Positive integer N for count; required for that mode. Omit or send null for all. The resulting whole rule must be valid or the write answers 422 atomically.
12250
+ */
12251
+ required_count?: number | null;
12252
+ };
12253
+ };
12254
+ /**
12255
+ * 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.
12256
+ */
12257
+ export type ProductionDeliveryTargetUpdateParameters = {
12258
+ /**
12259
+ * Inclusive Job-local calendar deadline; omit to preserve it. Null or an invalid calendar date answers 422.
12260
+ */
12261
+ due_date?: string;
12262
+ /**
12263
+ * Partial whole-service rule. Omit to preserve the rule; an empty object preserves both fields. Null answers 422.
12264
+ */
12265
+ condition_attributes?: {
12266
+ /**
12267
+ * count or all; omit to preserve the mode. The resulting complete rule must be valid.
12268
+ */
12269
+ requirement_kind?: 'count' | 'all';
12270
+ /**
12271
+ * Positive integer N for count, or null for all. Omission preserves the existing value even when requirement_kind changes.
12272
+ */
12273
+ required_count?: number | null;
12274
+ };
12275
+ };
12276
+ /**
12277
+ * 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.
12278
+ */
12279
+ export type ProductionDeliveryTargetResponseObject = {
12280
+ /**
12281
+ * Unique target identifier.
12282
+ */
12283
+ id: string;
12284
+ /**
12285
+ * Scope that owns the target; fixed at creation.
12286
+ */
12287
+ production_job_scope_price_id: string;
12288
+ /**
12289
+ * Inclusive contractual deadline in the Job's time zone.
12290
+ */
12291
+ due_date: string;
12292
+ /**
12293
+ * Server-owned whole-service rule; its internal type and identity are not public write inputs.
12294
+ */
12295
+ condition: {
12296
+ /**
12297
+ * count for a fixed N, or all for the current named Feature set.
12298
+ */
12299
+ requirement_kind: 'count' | 'all';
12300
+ /**
12301
+ * Explicit positive N for count; null for all. Remains visible when the assessment is unavailable.
12302
+ */
12303
+ required_count: number | null;
12304
+ };
12305
+ /**
12306
+ * Current deadline assessment. Missing caller visibility of named membership or named evidence makes it unavailable, without disclosing hidden identities or counts.
12307
+ */
12308
+ assessment: {
12309
+ /**
12310
+ * Explicit N for count; current named set size for all. Null for an empty all set or when an all assessment is unavailable.
12311
+ */
12312
+ required_total: number | null;
12313
+ /**
12314
+ * Current named Features with effective whole-service completion work dates on or before due_date; null when unavailable.
12315
+ */
12316
+ qualifying_count: number | null;
12317
+ /**
12318
+ * Current named Features with effective whole-service completions at any work date, including after due_date; null when unavailable.
12319
+ */
12320
+ current_achieved_count: number | null;
12321
+ /**
12322
+ * Nonnegative difference between the requirement and qualifying count; null when the requirement is unknown or assessment unavailable.
12323
+ */
12324
+ shortfall: number | null;
12325
+ /**
12326
+ * unavailable when caller visibility omits named membership or evidence; awaiting_named_scope when there are no active names; met_by_date when the deadline requirement is met; remaining_before_deadline through the Job-local due date; shortfall_after_deadline afterwards. Assessments are current facts, not forecasts or a declaration that the named plan covers the entire contract.
12327
+ */
12328
+ state: 'unavailable' | 'awaiting_named_scope' | 'met_by_date' | 'remaining_before_deadline' | 'shortfall_after_deadline';
12329
+ };
12330
+ /**
12331
+ * When the record was created (ISO 8601).
12332
+ */
12333
+ created_at: string;
12334
+ /**
12335
+ * When the record was last updated (ISO 8601).
12336
+ */
12337
+ updated_at: string;
12338
+ };
12018
12339
  /**
12019
12340
  * 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.
12020
12341
  */
@@ -12079,6 +12400,15 @@ export type ProductionCompletionUpdateParameters = {
12079
12400
  quantity_completed?: number;
12080
12401
  };
12081
12402
  };
12403
+ /**
12404
+ * Explicit retained Feature lifecycle command. Both states are idempotent; Quantity withdrawal and restoration return 422.
12405
+ */
12406
+ export type ProductionCompletionWithdrawalParameters = {
12407
+ /**
12408
+ * Boolean required. True withdraws the Feature claim; false restores the same retained ID if no effective replacement exists. The server sets or clears withdrawn_at.
12409
+ */
12410
+ withdrawn: boolean;
12411
+ };
12082
12412
  /**
12083
12413
  * A recorded production completion. The completable_type discriminator selects the feature-tracked or quantity-tracked representation.
12084
12414
  */
@@ -12147,6 +12477,10 @@ export type ProductionFeatureCompletionResponseObject = {
12147
12477
  * Date the work was performed (YYYY-MM-DD), in the job's time zone.
12148
12478
  */
12149
12479
  work_date: string;
12480
+ /**
12481
+ * Server-recorded withdrawal instant for a Feature claim; null when effective. Always null for Quantity completions. Withdrawal retains the identity and current corrected facts, excludes the claim from ordinary reads and output, and is reversible only when no effective replacement exists.
12482
+ */
12483
+ withdrawn_at: string | null;
12150
12484
  };
12151
12485
  /**
12152
12486
  * A completion recorded on a quantity-tracked job — a unit of scoped work finished by a crew, counting how many units were completed.
@@ -12208,6 +12542,10 @@ export type ProductionQuantityCompletionResponseObject = {
12208
12542
  * Date the work was performed (YYYY-MM-DD), in the job's time zone.
12209
12543
  */
12210
12544
  work_date: string;
12545
+ /**
12546
+ * Server-recorded withdrawal instant for a Feature claim; null when effective. Always null for Quantity completions. Withdrawal retains the identity and current corrected facts, excludes the claim from ordinary reads and output, and is reversible only when no effective replacement exists.
12547
+ */
12548
+ withdrawn_at: string | null;
12211
12549
  };
12212
12550
  /**
12213
12551
  * The form-assignment tasks created by one request — assigning a form to one or more users, each with a due time and optional recurrence and reminders. Returned as an array because a request can spread the assignment into one task per assignee.
@@ -24448,19 +24786,13 @@ export type UpdateJobFormAssignmentTaskResponses = {
24448
24786
  200: JobFormAssignmentResponseObject;
24449
24787
  };
24450
24788
  export type UpdateJobFormAssignmentTaskResponse = UpdateJobFormAssignmentTaskResponses[keyof UpdateJobFormAssignmentTaskResponses];
24451
- export type ListJobScopePricesData = {
24789
+ export type ListDeliveryTargetsData = {
24452
24790
  body?: never;
24453
24791
  path: {
24454
24792
  job_id: string;
24793
+ job_scope_price_id: string;
24455
24794
  };
24456
24795
  query?: {
24457
- 'filter[scope_kind]'?: string;
24458
- 'filter[created_at][gte]'?: string;
24459
- 'filter[created_at][lte]'?: string;
24460
- 'filter[updated_at][gte]'?: string;
24461
- 'filter[updated_at][lte]'?: string;
24462
- filter?: string;
24463
- 'filter[unexpected]'?: string;
24464
24796
  /**
24465
24797
  * This pagination cursor corresponds to the cursor value found in the response in
24466
24798
  * `meta.page.next_cursor`.
@@ -24472,9 +24804,9 @@ export type ListJobScopePricesData = {
24472
24804
  'page[limit]'?: number;
24473
24805
  page?: string;
24474
24806
  };
24475
- url: '/api/v1/jobs/{job_id}/production/job_scope_prices';
24807
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/delivery_targets';
24476
24808
  };
24477
- export type ListJobScopePricesErrors = {
24809
+ export type ListDeliveryTargetsErrors = {
24478
24810
  /**
24479
24811
  * Bad Request
24480
24812
  */
@@ -24487,32 +24819,391 @@ export type ListJobScopePricesErrors = {
24487
24819
  * Not Found
24488
24820
  */
24489
24821
  404: Problem;
24490
- /**
24491
- * Unprocessable Content
24492
- */
24493
- 422: Problem;
24494
24822
  };
24495
- export type ListJobScopePricesError = ListJobScopePricesErrors[keyof ListJobScopePricesErrors];
24496
- export type ListJobScopePricesResponses = {
24823
+ export type ListDeliveryTargetsError = ListDeliveryTargetsErrors[keyof ListDeliveryTargetsErrors];
24824
+ export type ListDeliveryTargetsResponses = {
24497
24825
  /**
24498
24826
  * Success
24499
24827
  */
24500
24828
  200: {
24501
24829
  meta: Meta;
24502
24830
  links: Links;
24503
- data: Array<ProductionJobScopePriceResponseObject>;
24831
+ data: Array<ProductionDeliveryTargetResponseObject>;
24504
24832
  };
24505
24833
  };
24506
- export type ListJobScopePricesResponse = ListJobScopePricesResponses[keyof ListJobScopePricesResponses];
24507
- export type CreateJobScopePriceData = {
24508
- body?: ProductionJobScopePriceParameters;
24834
+ export type ListDeliveryTargetsResponse = ListDeliveryTargetsResponses[keyof ListDeliveryTargetsResponses];
24835
+ export type CreateDeliveryTargetData = {
24836
+ body: ProductionDeliveryTargetParameters;
24509
24837
  path: {
24510
24838
  job_id: string;
24839
+ job_scope_price_id: string;
24511
24840
  };
24512
24841
  query?: never;
24513
- url: '/api/v1/jobs/{job_id}/production/job_scope_prices';
24842
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/delivery_targets';
24514
24843
  };
24515
- export type CreateJobScopePriceErrors = {
24844
+ export type CreateDeliveryTargetErrors = {
24845
+ /**
24846
+ * Bad Request
24847
+ */
24848
+ 400: Problem;
24849
+ /**
24850
+ * Forbidden
24851
+ */
24852
+ 403: Problem;
24853
+ /**
24854
+ * Not Found
24855
+ */
24856
+ 404: Problem;
24857
+ /**
24858
+ * Unprocessable Content
24859
+ */
24860
+ 422: Problem;
24861
+ };
24862
+ export type CreateDeliveryTargetError = CreateDeliveryTargetErrors[keyof CreateDeliveryTargetErrors];
24863
+ export type CreateDeliveryTargetResponses = {
24864
+ /**
24865
+ * Created
24866
+ */
24867
+ 201: ProductionDeliveryTargetResponseObject;
24868
+ };
24869
+ export type CreateDeliveryTargetResponse = CreateDeliveryTargetResponses[keyof CreateDeliveryTargetResponses];
24870
+ export type DeleteDeliveryTargetData = {
24871
+ body?: never;
24872
+ path: {
24873
+ job_id: string;
24874
+ job_scope_price_id: string;
24875
+ id: string;
24876
+ };
24877
+ query?: never;
24878
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/delivery_targets/{id}';
24879
+ };
24880
+ export type DeleteDeliveryTargetErrors = {
24881
+ /**
24882
+ * Forbidden
24883
+ */
24884
+ 403: Problem;
24885
+ /**
24886
+ * Not Found
24887
+ */
24888
+ 404: Problem;
24889
+ };
24890
+ export type DeleteDeliveryTargetError = DeleteDeliveryTargetErrors[keyof DeleteDeliveryTargetErrors];
24891
+ export type DeleteDeliveryTargetResponses = {
24892
+ /**
24893
+ * No Content
24894
+ */
24895
+ 204: void;
24896
+ };
24897
+ export type DeleteDeliveryTargetResponse = DeleteDeliveryTargetResponses[keyof DeleteDeliveryTargetResponses];
24898
+ export type GetDeliveryTargetData = {
24899
+ body?: never;
24900
+ path: {
24901
+ job_id: string;
24902
+ job_scope_price_id: string;
24903
+ id: string;
24904
+ };
24905
+ query?: never;
24906
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/delivery_targets/{id}';
24907
+ };
24908
+ export type GetDeliveryTargetErrors = {
24909
+ /**
24910
+ * Forbidden
24911
+ */
24912
+ 403: Problem;
24913
+ /**
24914
+ * Not Found
24915
+ */
24916
+ 404: Problem;
24917
+ };
24918
+ export type GetDeliveryTargetError = GetDeliveryTargetErrors[keyof GetDeliveryTargetErrors];
24919
+ export type GetDeliveryTargetResponses = {
24920
+ /**
24921
+ * Success
24922
+ */
24923
+ 200: ProductionDeliveryTargetResponseObject;
24924
+ };
24925
+ export type GetDeliveryTargetResponse = GetDeliveryTargetResponses[keyof GetDeliveryTargetResponses];
24926
+ export type UpdateDeliveryTargetData = {
24927
+ body: ProductionDeliveryTargetUpdateParameters;
24928
+ path: {
24929
+ job_id: string;
24930
+ job_scope_price_id: string;
24931
+ id: string;
24932
+ };
24933
+ query?: never;
24934
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/delivery_targets/{id}';
24935
+ };
24936
+ export type UpdateDeliveryTargetErrors = {
24937
+ /**
24938
+ * Bad Request
24939
+ */
24940
+ 400: Problem;
24941
+ /**
24942
+ * Forbidden
24943
+ */
24944
+ 403: Problem;
24945
+ /**
24946
+ * Not Found
24947
+ */
24948
+ 404: Problem;
24949
+ /**
24950
+ * Unprocessable Content
24951
+ */
24952
+ 422: Problem;
24953
+ };
24954
+ export type UpdateDeliveryTargetError = UpdateDeliveryTargetErrors[keyof UpdateDeliveryTargetErrors];
24955
+ export type UpdateDeliveryTargetResponses = {
24956
+ /**
24957
+ * Success
24958
+ */
24959
+ 200: ProductionDeliveryTargetResponseObject;
24960
+ };
24961
+ export type UpdateDeliveryTargetResponse = UpdateDeliveryTargetResponses[keyof UpdateDeliveryTargetResponses];
24962
+ export type UpdateArchiveData = {
24963
+ body: ProductionPlannedFeatureTaskArchiveParameters;
24964
+ path: {
24965
+ job_id: string;
24966
+ job_scope_price_id: string;
24967
+ planned_feature_task_id: string;
24968
+ };
24969
+ query?: never;
24970
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/planned_feature_tasks/{planned_feature_task_id}/archive';
24971
+ };
24972
+ export type UpdateArchiveErrors = {
24973
+ /**
24974
+ * Bad Request
24975
+ */
24976
+ 400: Problem;
24977
+ /**
24978
+ * Forbidden
24979
+ */
24980
+ 403: Problem;
24981
+ /**
24982
+ * Unprocessable Content
24983
+ */
24984
+ 422: Problem;
24985
+ };
24986
+ export type UpdateArchiveError = UpdateArchiveErrors[keyof UpdateArchiveErrors];
24987
+ export type UpdateArchiveResponses = {
24988
+ /**
24989
+ * Success
24990
+ */
24991
+ 200: ProductionPlannedFeatureTaskResponseObject;
24992
+ };
24993
+ export type UpdateArchiveResponse = UpdateArchiveResponses[keyof UpdateArchiveResponses];
24994
+ export type ListPlannedFeatureTasksData = {
24995
+ body?: never;
24996
+ path: {
24997
+ job_id: string;
24998
+ job_scope_price_id: string;
24999
+ };
25000
+ query?: {
25001
+ 'filter[archived]'?: boolean;
25002
+ filter?: string;
25003
+ 'filter[unexpected]'?: string;
25004
+ /**
25005
+ * This pagination cursor corresponds to the cursor value found in the response in
25006
+ * `meta.page.next_cursor`.
25007
+ */
25008
+ 'page[cursor]'?: string;
25009
+ /**
25010
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
25011
+ */
25012
+ 'page[limit]'?: number;
25013
+ page?: string;
25014
+ };
25015
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/planned_feature_tasks';
25016
+ };
25017
+ export type ListPlannedFeatureTasksErrors = {
25018
+ /**
25019
+ * Bad Request
25020
+ */
25021
+ 400: Problem;
25022
+ /**
25023
+ * Forbidden
25024
+ */
25025
+ 403: Problem;
25026
+ /**
25027
+ * Unprocessable Content
25028
+ */
25029
+ 422: Problem;
25030
+ };
25031
+ export type ListPlannedFeatureTasksError = ListPlannedFeatureTasksErrors[keyof ListPlannedFeatureTasksErrors];
25032
+ export type ListPlannedFeatureTasksResponses = {
25033
+ /**
25034
+ * Success
25035
+ */
25036
+ 200: {
25037
+ meta: Meta;
25038
+ links: Links;
25039
+ data: Array<ProductionPlannedFeatureTaskResponseObject>;
25040
+ };
25041
+ };
25042
+ export type ListPlannedFeatureTasksResponse = ListPlannedFeatureTasksResponses[keyof ListPlannedFeatureTasksResponses];
25043
+ export type CreatePlannedFeatureTaskData = {
25044
+ body: ProductionPlannedFeatureTaskParameters;
25045
+ path: {
25046
+ job_id: string;
25047
+ job_scope_price_id: string;
25048
+ };
25049
+ query?: never;
25050
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/planned_feature_tasks';
25051
+ };
25052
+ export type CreatePlannedFeatureTaskErrors = {
25053
+ /**
25054
+ * Bad Request
25055
+ */
25056
+ 400: Problem;
25057
+ /**
25058
+ * Forbidden
25059
+ */
25060
+ 403: Problem;
25061
+ /**
25062
+ * Not Found
25063
+ */
25064
+ 404: Problem;
25065
+ /**
25066
+ * Unprocessable Content
25067
+ */
25068
+ 422: Problem;
25069
+ };
25070
+ export type CreatePlannedFeatureTaskError = CreatePlannedFeatureTaskErrors[keyof CreatePlannedFeatureTaskErrors];
25071
+ export type CreatePlannedFeatureTaskResponses = {
25072
+ /**
25073
+ * Created
25074
+ */
25075
+ 201: ProductionPlannedFeatureTaskResponseObject;
25076
+ };
25077
+ export type CreatePlannedFeatureTaskResponse = CreatePlannedFeatureTaskResponses[keyof CreatePlannedFeatureTaskResponses];
25078
+ export type GetPlannedFeatureTaskData = {
25079
+ body?: never;
25080
+ path: {
25081
+ job_id: string;
25082
+ job_scope_price_id: string;
25083
+ id: string;
25084
+ };
25085
+ query?: never;
25086
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/planned_feature_tasks/{id}';
25087
+ };
25088
+ export type GetPlannedFeatureTaskErrors = {
25089
+ /**
25090
+ * Forbidden
25091
+ */
25092
+ 403: Problem;
25093
+ /**
25094
+ * Not Found
25095
+ */
25096
+ 404: Problem;
25097
+ };
25098
+ export type GetPlannedFeatureTaskError = GetPlannedFeatureTaskErrors[keyof GetPlannedFeatureTaskErrors];
25099
+ export type GetPlannedFeatureTaskResponses = {
25100
+ /**
25101
+ * Success
25102
+ */
25103
+ 200: ProductionPlannedFeatureTaskResponseObject;
25104
+ };
25105
+ export type GetPlannedFeatureTaskResponse = GetPlannedFeatureTaskResponses[keyof GetPlannedFeatureTaskResponses];
25106
+ export type UpdatePlannedFeatureTaskData = {
25107
+ body?: ProductionPlannedFeatureTaskUpdateParameters;
25108
+ path: {
25109
+ job_id: string;
25110
+ job_scope_price_id: string;
25111
+ id: string;
25112
+ };
25113
+ query?: never;
25114
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices/{job_scope_price_id}/planned_feature_tasks/{id}';
25115
+ };
25116
+ export type UpdatePlannedFeatureTaskErrors = {
25117
+ /**
25118
+ * Bad Request
25119
+ */
25120
+ 400: Problem;
25121
+ /**
25122
+ * Forbidden
25123
+ */
25124
+ 403: Problem;
25125
+ /**
25126
+ * Not Found
25127
+ */
25128
+ 404: Problem;
25129
+ /**
25130
+ * Unprocessable Content
25131
+ */
25132
+ 422: Problem;
25133
+ };
25134
+ export type UpdatePlannedFeatureTaskError = UpdatePlannedFeatureTaskErrors[keyof UpdatePlannedFeatureTaskErrors];
25135
+ export type UpdatePlannedFeatureTaskResponses = {
25136
+ /**
25137
+ * Success
25138
+ */
25139
+ 200: ProductionPlannedFeatureTaskResponseObject;
25140
+ };
25141
+ export type UpdatePlannedFeatureTaskResponse = UpdatePlannedFeatureTaskResponses[keyof UpdatePlannedFeatureTaskResponses];
25142
+ export type ListJobScopePricesData = {
25143
+ body?: never;
25144
+ path: {
25145
+ job_id: string;
25146
+ };
25147
+ query?: {
25148
+ 'filter[scope_kind]'?: string;
25149
+ 'filter[created_at][gte]'?: string;
25150
+ 'filter[created_at][lte]'?: string;
25151
+ 'filter[updated_at][gte]'?: string;
25152
+ 'filter[updated_at][lte]'?: string;
25153
+ filter?: string;
25154
+ 'filter[unexpected]'?: string;
25155
+ /**
25156
+ * This pagination cursor corresponds to the cursor value found in the response in
25157
+ * `meta.page.next_cursor`.
25158
+ */
25159
+ 'page[cursor]'?: string;
25160
+ /**
25161
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
25162
+ */
25163
+ 'page[limit]'?: number;
25164
+ page?: string;
25165
+ };
25166
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices';
25167
+ };
25168
+ export type ListJobScopePricesErrors = {
25169
+ /**
25170
+ * Bad Request
25171
+ */
25172
+ 400: Problem;
25173
+ /**
25174
+ * Forbidden
25175
+ */
25176
+ 403: Problem;
25177
+ /**
25178
+ * Not Found
25179
+ */
25180
+ 404: Problem;
25181
+ /**
25182
+ * Unprocessable Content
25183
+ */
25184
+ 422: Problem;
25185
+ };
25186
+ export type ListJobScopePricesError = ListJobScopePricesErrors[keyof ListJobScopePricesErrors];
25187
+ export type ListJobScopePricesResponses = {
25188
+ /**
25189
+ * Success
25190
+ */
25191
+ 200: {
25192
+ meta: Meta;
25193
+ links: Links;
25194
+ data: Array<ProductionJobScopePriceResponseObject>;
25195
+ };
25196
+ };
25197
+ export type ListJobScopePricesResponse = ListJobScopePricesResponses[keyof ListJobScopePricesResponses];
25198
+ export type CreateJobScopePriceData = {
25199
+ body?: ProductionJobScopePriceParameters;
25200
+ path: {
25201
+ job_id: string;
25202
+ };
25203
+ query?: never;
25204
+ url: '/api/v1/jobs/{job_id}/production/job_scope_prices';
25205
+ };
25206
+ export type CreateJobScopePriceErrors = {
24516
25207
  /**
24517
25208
  * Bad Request
24518
25209
  */
@@ -24797,6 +25488,114 @@ export type UpdateGoodFaithEffortExceptionResponses = {
24797
25488
  200: JobGoodFaithEffortExceptionResponseObject;
24798
25489
  };
24799
25490
  export type UpdateGoodFaithEffortExceptionResponse = UpdateGoodFaithEffortExceptionResponses[keyof UpdateGoodFaithEffortExceptionResponses];
25491
+ export type ListCaEcprXmlExportsData = {
25492
+ body?: never;
25493
+ path: {
25494
+ job_id: string;
25495
+ };
25496
+ query?: {
25497
+ /**
25498
+ * Returns exports whose generation handle has any of these statuses. Comma-separate to match multiple (e.g. `pending,processing`). One of pending, processing, signing, signed, certifying, success, or failed.
25499
+ */
25500
+ 'filter[status]'?: string;
25501
+ filter?: string;
25502
+ 'filter[unexpected]'?: string;
25503
+ /**
25504
+ * This pagination cursor corresponds to the cursor value found in the response in
25505
+ * `meta.page.next_cursor`.
25506
+ */
25507
+ 'page[cursor]'?: string;
25508
+ /**
25509
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
25510
+ */
25511
+ 'page[limit]'?: number;
25512
+ page?: string;
25513
+ };
25514
+ url: '/api/v1/jobs/{job_id}/pwa/certified_payrolls/ca_ecpr_xml_exports';
25515
+ };
25516
+ export type ListCaEcprXmlExportsErrors = {
25517
+ /**
25518
+ * Bad Request
25519
+ */
25520
+ 400: Problem;
25521
+ /**
25522
+ * Forbidden
25523
+ */
25524
+ 403: Problem;
25525
+ /**
25526
+ * Not Found
25527
+ */
25528
+ 404: Problem;
25529
+ };
25530
+ export type ListCaEcprXmlExportsError = ListCaEcprXmlExportsErrors[keyof ListCaEcprXmlExportsErrors];
25531
+ export type ListCaEcprXmlExportsResponses = {
25532
+ /**
25533
+ * Success
25534
+ */
25535
+ 200: JobCaEcprXmlExportsResponseObject;
25536
+ };
25537
+ export type ListCaEcprXmlExportsResponse = ListCaEcprXmlExportsResponses[keyof ListCaEcprXmlExportsResponses];
25538
+ export type CreateCaEcprXmlExportData = {
25539
+ body: JobCaEcprXmlExportCreateParameters;
25540
+ path: {
25541
+ job_id: string;
25542
+ };
25543
+ query?: never;
25544
+ url: '/api/v1/jobs/{job_id}/pwa/certified_payrolls/ca_ecpr_xml_exports';
25545
+ };
25546
+ export type CreateCaEcprXmlExportErrors = {
25547
+ /**
25548
+ * Bad Request
25549
+ */
25550
+ 400: Problem;
25551
+ /**
25552
+ * Forbidden
25553
+ */
25554
+ 403: Problem;
25555
+ /**
25556
+ * Not Found
25557
+ */
25558
+ 404: Problem;
25559
+ /**
25560
+ * Unprocessable Content
25561
+ */
25562
+ 422: Problem;
25563
+ };
25564
+ export type CreateCaEcprXmlExportError = CreateCaEcprXmlExportErrors[keyof CreateCaEcprXmlExportErrors];
25565
+ export type CreateCaEcprXmlExportResponses = {
25566
+ /**
25567
+ * Created
25568
+ */
25569
+ 201: JobCaEcprXmlExportResponseObject;
25570
+ };
25571
+ export type CreateCaEcprXmlExportResponse = CreateCaEcprXmlExportResponses[keyof CreateCaEcprXmlExportResponses];
25572
+ export type GetCaEcprXmlExportData = {
25573
+ body?: never;
25574
+ path: {
25575
+ job_id: string;
25576
+ id: string;
25577
+ };
25578
+ query?: never;
25579
+ url: '/api/v1/jobs/{job_id}/pwa/certified_payrolls/ca_ecpr_xml_exports/{id}';
25580
+ };
25581
+ export type GetCaEcprXmlExportErrors = {
25582
+ /**
25583
+ * Forbidden
25584
+ */
25585
+ 403: Problem;
25586
+ /**
25587
+ * Not Found
25588
+ */
25589
+ 404: Problem;
25590
+ };
25591
+ export type GetCaEcprXmlExportError = GetCaEcprXmlExportErrors[keyof GetCaEcprXmlExportErrors];
25592
+ export type GetCaEcprXmlExportResponses = {
25593
+ /**
25594
+ * Success
25595
+ */
25596
+ 200: JobCaEcprXmlExportResponseObject;
25597
+ };
25598
+ export type GetCaEcprXmlExportResponse = GetCaEcprXmlExportResponses[keyof GetCaEcprXmlExportResponses];
24800
25599
  export type ListWh347ExportsData = {
24801
25600
  body?: never;
24802
25601
  path: {
@@ -30964,6 +31763,116 @@ export type UpdatePositionFunctionResponses = {
30964
31763
  200: PositionFunctionResponseObject;
30965
31764
  };
30966
31765
  export type UpdatePositionFunctionResponse = UpdatePositionFunctionResponses[keyof UpdatePositionFunctionResponses];
31766
+ export type ListCompletionHistoryData = {
31767
+ body?: never;
31768
+ path?: never;
31769
+ query?: {
31770
+ 'filter[job_id]'?: string;
31771
+ 'filter[scope_kind]'?: string;
31772
+ 'filter[feature_id]'?: string;
31773
+ 'filter[work_date][gte]'?: string;
31774
+ 'filter[work_date][lte]'?: string;
31775
+ filter?: string;
31776
+ 'filter[unexpected]'?: string;
31777
+ /**
31778
+ * This pagination cursor corresponds to the cursor value found in the response in
31779
+ * `meta.page.next_cursor`.
31780
+ */
31781
+ 'page[cursor]'?: string;
31782
+ /**
31783
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
31784
+ */
31785
+ 'page[limit]'?: number;
31786
+ page?: string;
31787
+ };
31788
+ url: '/api/v1/production/completions/history';
31789
+ };
31790
+ export type ListCompletionHistoryErrors = {
31791
+ /**
31792
+ * Bad Request
31793
+ */
31794
+ 400: Problem;
31795
+ /**
31796
+ * Forbidden
31797
+ */
31798
+ 403: Problem;
31799
+ /**
31800
+ * Unprocessable Content
31801
+ */
31802
+ 422: Problem;
31803
+ };
31804
+ export type ListCompletionHistoryError = ListCompletionHistoryErrors[keyof ListCompletionHistoryErrors];
31805
+ export type ListCompletionHistoryResponses = {
31806
+ /**
31807
+ * Success
31808
+ */
31809
+ 200: {
31810
+ meta: Meta;
31811
+ links: Links;
31812
+ data: Array<ProductionCompletionResponseObject>;
31813
+ };
31814
+ };
31815
+ export type ListCompletionHistoryResponse = ListCompletionHistoryResponses[keyof ListCompletionHistoryResponses];
31816
+ export type GetCompletionHistoryData = {
31817
+ body?: never;
31818
+ path: {
31819
+ id: string;
31820
+ };
31821
+ query?: never;
31822
+ url: '/api/v1/production/completions/history/{id}';
31823
+ };
31824
+ export type GetCompletionHistoryErrors = {
31825
+ /**
31826
+ * Forbidden
31827
+ */
31828
+ 403: Problem;
31829
+ /**
31830
+ * Not Found
31831
+ */
31832
+ 404: Problem;
31833
+ };
31834
+ export type GetCompletionHistoryError = GetCompletionHistoryErrors[keyof GetCompletionHistoryErrors];
31835
+ export type GetCompletionHistoryResponses = {
31836
+ /**
31837
+ * Success
31838
+ */
31839
+ 200: ProductionCompletionResponseObject;
31840
+ };
31841
+ export type GetCompletionHistoryResponse = GetCompletionHistoryResponses[keyof GetCompletionHistoryResponses];
31842
+ export type SetCompletionWithdrawalData = {
31843
+ body: ProductionCompletionWithdrawalParameters;
31844
+ path: {
31845
+ completion_id: string;
31846
+ };
31847
+ query?: never;
31848
+ url: '/api/v1/production/completions/{completion_id}/withdrawal';
31849
+ };
31850
+ export type SetCompletionWithdrawalErrors = {
31851
+ /**
31852
+ * Bad Request (missing state)
31853
+ */
31854
+ 400: Problem;
31855
+ /**
31856
+ * Forbidden
31857
+ */
31858
+ 403: Problem;
31859
+ /**
31860
+ * Not Found
31861
+ */
31862
+ 404: Problem;
31863
+ /**
31864
+ * Unprocessable Content
31865
+ */
31866
+ 422: Problem;
31867
+ };
31868
+ export type SetCompletionWithdrawalError = SetCompletionWithdrawalErrors[keyof SetCompletionWithdrawalErrors];
31869
+ export type SetCompletionWithdrawalResponses = {
31870
+ /**
31871
+ * Success
31872
+ */
31873
+ 200: ProductionCompletionResponseObject;
31874
+ };
31875
+ export type SetCompletionWithdrawalResponse = SetCompletionWithdrawalResponses[keyof SetCompletionWithdrawalResponses];
30967
31876
  export type ListCompletionsData = {
30968
31877
  body?: never;
30969
31878
  path?: never;