@dsptch-work/api-client 0.11.0 → 0.13.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.
@@ -170,6 +170,12 @@ export type Problem = {
170
170
  *
171
171
  * The resource's timeline already ends at a scheduled termination, and scheduling a second one would silently move it. Moving an end is two steps on purpose: cancel the standing termination, then schedule the one you want.
172
172
  *
173
+ * ### product_archived
174
+ *
175
+ * **Product Archived**
176
+ *
177
+ * The item cannot be unarchived while its product is still archived — an item never lives active inside an archived product. Unarchive the product instead, which restores the item along with the rest of the product's holdings.
178
+ *
173
179
  * ### recorded_since_termination
174
180
  *
175
181
  * **Timecode Changed Since Termination**
@@ -254,9 +260,9 @@ export type Problem = {
254
260
  *
255
261
  * ### invalid_signed_id
256
262
  *
257
- * **Invalid Attachment Signed Id**
263
+ * **Attachment Upload Not Found**
258
264
  *
259
- * An attachment signed id an avatar's, a logo's is not a string or fails signature verification. Obtain a fresh signed id from the direct-uploads endpoint and retry.
265
+ * 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.
260
266
  *
261
267
  * ### non_numeric_cents
262
268
  *
@@ -339,7 +345,7 @@ export type Problem = {
339
345
  * Another write to the same resource held it for longer than this request was willing to wait, so nothing was applied. The request itself is fine — resend it unchanged after the `Retry-After` window.
340
346
  *
341
347
  */
342
- export type ProblemTypeCatalog = 'blank_axis' | 'invalid_cursor' | 'invalid_filter_key' | 'invalid_limit' | 'invalid_signature' | 'malformed_body' | 'non_range_filter_value' | 'non_scalar_axis' | 'non_scalar_filter_value' | 'parameter_missing' | 'parameter_not_object' | 'unknown_axis' | 'unknown_key' | 'unsupported_axis' | 'valid_axis_on_timeline' | 'unauthorized' | 'company_scoped_key_required' | 'forbidden' | 'insufficient_api_key_scope' | 'not_found' | 'already_terminated' | 'recorded_since_termination' | 'span_beyond_timeline_end' | 'version_overlap' | 'precondition_failed' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | 'interval_too_wide' | 'invalid_date' | 'invalid_filter_value' | 'invalid_iso8601_duration' | 'invalid_placement_move' | 'invalid_signed_id' | 'non_numeric_cents' | 'nothing_to_cancel' | 'pagination_failed' | 'subtype_foreign_keys' | 'synced_determination' | 'user_not_company_member' | 'validation_failed' | 'wage_schedule_outside_program' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'write_contended';
348
+ export type ProblemTypeCatalog = 'blank_axis' | 'invalid_cursor' | 'invalid_filter_key' | 'invalid_limit' | 'invalid_signature' | 'malformed_body' | 'non_range_filter_value' | 'non_scalar_axis' | 'non_scalar_filter_value' | 'parameter_missing' | 'parameter_not_object' | 'unknown_axis' | 'unknown_key' | 'unsupported_axis' | 'valid_axis_on_timeline' | 'unauthorized' | 'company_scoped_key_required' | 'forbidden' | 'insufficient_api_key_scope' | 'not_found' | 'already_terminated' | 'product_archived' | 'recorded_since_termination' | 'span_beyond_timeline_end' | 'version_overlap' | 'precondition_failed' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | 'interval_too_wide' | 'invalid_date' | 'invalid_filter_value' | 'invalid_iso8601_duration' | 'invalid_placement_move' | 'invalid_signed_id' | 'non_numeric_cents' | 'nothing_to_cancel' | 'pagination_failed' | 'subtype_foreign_keys' | 'synced_determination' | 'user_not_company_member' | 'validation_failed' | 'wage_schedule_outside_program' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'write_contended';
343
349
  export type ApiKeyScopeResponseObject = {
344
350
  resource: string;
345
351
  action: 'read' | 'create' | 'update' | 'delete';
@@ -349,6 +355,10 @@ export type ApiKeyScopeResponseObject = {
349
355
  * Register a file for direct upload — send its metadata to receive a blob plus a one-time URL for uploading the file's bytes to storage.
350
356
  */
351
357
  export type DirectUploadParameters = {
358
+ /**
359
+ * What the file is for, named as the endpoint that will attach it (for example `assets.vendors`). Required. It decides where the file is stored, and the signed ID this call returns is issued for that resource alone — it will not resolve at any other endpoint, so a vendor logo cannot be attached as an avatar, or an avatar as a logo.
360
+ */
361
+ resource: 'assets.items' | 'assets.items.documents' | 'assets.items.service_events' | 'assets.products' | 'assets.vendors' | 'users';
352
362
  /**
353
363
  * Metadata describing the file being registered, before its bytes are uploaded.
354
364
  */
@@ -424,7 +434,7 @@ export type DirectUploadResponseObject = {
424
434
  */
425
435
  attachable_sgid: string;
426
436
  /**
427
- * Opaque signed reference to this blob; pass it as signed_id in other endpoints to attach the uploaded file to a record.
437
+ * Opaque signed reference to this blob. Pass it to the endpoint for the resource this upload named, in that endpoint's signed-ID property — `file` for an attachment or a document, `avatar_signed_id` for a user, `logo_signed_id` for a vendor — to attach the uploaded file to a record. No endpoint reads a property literally named signed_id. Expires one week after it is issued — register the file again to get a fresh one.
428
438
  */
429
439
  signed_id: string;
430
440
  /**
@@ -1905,10 +1915,6 @@ export type TimeCardPerDiemParameters = {
1905
1915
  * ID of the catalog per diem to record; its rate, currency, and taxable flag are copied onto the entry. Required.
1906
1916
  */
1907
1917
  per_diem_id: string;
1908
- /**
1909
- * Accepted but ignored — the taxable flag is derived from the referenced catalog per diem.
1910
- */
1911
- taxable?: boolean;
1912
1918
  };
1913
1919
  /**
1914
1920
  * A holiday on a pay schedule's holiday calendar — a fixed (month + day) or floating (nth weekday of a month) date that gets holiday-pay treatment when a time entry's timecode opts into holiday handling.
@@ -5918,6 +5924,59 @@ export type ComplianceCheckParameters = {
5918
5924
  */
5919
5925
  time_due?: string | null;
5920
5926
  };
5927
+ /**
5928
+ * One compliance requirement from the catalog. Requirements ship with the application, so the catalog reads the same for every company.
5929
+ */
5930
+ export type ComplianceRequirementResponseObject = {
5931
+ /**
5932
+ * Unique identifier.
5933
+ */
5934
+ id: string;
5935
+ /**
5936
+ * Stable identifier for the requirement, as a class name. Unlike id, it is the same value in every environment, so hard-code this rather than a UUID when you need to address one requirement.
5937
+ */
5938
+ type: string;
5939
+ /**
5940
+ * Human-readable name of the requirement.
5941
+ */
5942
+ title: string;
5943
+ /**
5944
+ * Long-form explanation of what the requirement asks for and why it exists.
5945
+ */
5946
+ description: string;
5947
+ /**
5948
+ * The kind of record this requirement is checked against: a company, job, project, time card, pay period, user, or user employment. Only company, job, and project checks reach the company todos page.
5949
+ */
5950
+ target: 'Company' | 'Job' | 'Project' | 'Timekeeping::TimeCard' | 'Timekeeping::PayPeriod' | 'User' | 'UserCompany';
5951
+ /**
5952
+ * Grouping used for display and filtering.
5953
+ */
5954
+ category: 'apprenticeship' | 'certified_payroll' | 'company' | 'job' | 'payroll' | 'project' | 'regional' | 'tax_credit' | 'timekeeping' | 'worker';
5955
+ /**
5956
+ * Point in the compliance lifecycle at which the requirement applies.
5957
+ */
5958
+ phase: 'after_pay_date' | 'before_approval_deadline' | 'close_out' | 'maintenance' | 'onboarding' | 'setup';
5959
+ /**
5960
+ * How urgent a failure is; null when the requirement declares none.
5961
+ */
5962
+ priority: 'critical' | 'high' | 'medium' | 'low' | null;
5963
+ /**
5964
+ * The regulation or program the requirement derives from; null when it declares none.
5965
+ */
5966
+ requisite: 'apprenticeship' | 'best_practice' | 'dsptch' | 'federal_pwa' | 'ira' | 'ira_tax_credit' | 'payroll' | 'pwa' | 'regional_pwa' | 'timekeeping' | 'wh347' | null;
5967
+ /**
5968
+ * Display order within the requirement's phase; ties are common and broken by the caller.
5969
+ */
5970
+ sort_order: number;
5971
+ /**
5972
+ * When the record was created (ISO 8601).
5973
+ */
5974
+ created_at: string;
5975
+ /**
5976
+ * When the record was last updated (ISO 8601).
5977
+ */
5978
+ updated_at: string;
5979
+ };
5921
5980
  /**
5922
5981
  * A page of paystubs, with pagination metadata and navigation links.
5923
5982
  */
@@ -6003,7 +6062,7 @@ export type PaystubLineItemsResponseObject = {
6003
6062
  data: Array<PaystubLineItemResponseObject>;
6004
6063
  };
6005
6064
  /**
6006
- * An adjustment applied in the current pay period to correct a prior one, tied to the paystub line item it corrects. Read-only.
6065
+ * An adjustment applied in the current pay period to correct a prior one, tied to the paystub line item it corrects.
6007
6066
  */
6008
6067
  export type PriorPeriodAdjustmentResponseObject = {
6009
6068
  /**
@@ -6059,6 +6118,141 @@ export type PriorPeriodAdjustmentResponseObject = {
6059
6118
  */
6060
6119
  updated_at: string;
6061
6120
  };
6121
+ /**
6122
+ * Request body for allocating part of a retroactive-pay line item to an earlier time card. The time card comes from the path; the adjustment is always a retroactive increase.
6123
+ */
6124
+ export type PriorPeriodAdjustmentParameters = {
6125
+ /**
6126
+ * ID of the retroactive-pay line item funding this adjustment — one of the line items listed by the time card's adjustable line items endpoint. Required.
6127
+ */
6128
+ payrolls_paystub_line_item_id: string;
6129
+ /**
6130
+ * ID of the user recording the adjustment; must belong to the authenticated company. Required.
6131
+ */
6132
+ created_by_user_id: string;
6133
+ /**
6134
+ * Adjustment amount, in cents as a decimal string (e.g. "20000.0" is $200.00). Must be positive and may not exceed the line item's remaining adjustable_amount_cents. Required.
6135
+ */
6136
+ amount_cents: string;
6137
+ /**
6138
+ * Why the adjustment is being made: one of hours_correction, rate_correction, pwa_compliance, or other. Required.
6139
+ */
6140
+ rationale: 'hours_correction' | 'other' | 'pwa_compliance' | 'rate_correction';
6141
+ /**
6142
+ * ID of the job on the time card whose obligation this adjustment credits. Required whenever pwa_compliance_eligible is true, since compliance matches adjustments to obligations per job.
6143
+ */
6144
+ job_id?: string | null;
6145
+ /**
6146
+ * Free-text notes on the adjustment.
6147
+ */
6148
+ notes?: string | null;
6149
+ /**
6150
+ * Whether the adjustment counts toward prevailing-wage / apprenticeship (PWA) compliance. Defaults to true.
6151
+ */
6152
+ pwa_compliance_eligible?: boolean;
6153
+ };
6154
+ /**
6155
+ * What one PWA-tracked job on a time card still owes the worker, from the materialized prevailing-wage compliance view. Read-only.
6156
+ */
6157
+ export type PwaComplianceResponseObject = {
6158
+ /**
6159
+ * ID of the time card these figures cover.
6160
+ */
6161
+ timekeeping_time_card_id: string;
6162
+ /**
6163
+ * ID of the pay period the time card belongs to.
6164
+ */
6165
+ timekeeping_pay_period_id: string;
6166
+ /**
6167
+ * ID of the job whose obligation these figures cover.
6168
+ */
6169
+ job_id: string;
6170
+ /**
6171
+ * ID of the worker the obligation is owed to.
6172
+ */
6173
+ user_id: string;
6174
+ /**
6175
+ * Minutes worked on this job that count toward prevailing-wage obligations.
6176
+ */
6177
+ pwa_minutes_worked: number;
6178
+ /**
6179
+ * Federal obligation still outstanding including accrued interest, in cents as a decimal string, before crediting back pay.
6180
+ */
6181
+ federal_post_interest_outstanding_cents: string;
6182
+ /**
6183
+ * Regional (state) obligation still outstanding including accrued interest, in cents as a decimal string, before crediting back pay.
6184
+ */
6185
+ regional_post_interest_outstanding_cents: string;
6186
+ /**
6187
+ * Back pay already allocated to this job on this time card, in cents as a decimal string.
6188
+ */
6189
+ pwa_adjustments_cents: string;
6190
+ /**
6191
+ * Federal balance still due after crediting back pay, in cents as a decimal string.
6192
+ */
6193
+ federal_balance_due_cents: string;
6194
+ /**
6195
+ * Regional balance still due after crediting back pay, in cents as a decimal string.
6196
+ */
6197
+ regional_balance_due_cents: string;
6198
+ /**
6199
+ * The amount that settles every jurisdiction at once, in cents as a decimal string — corrections credit the federal and regional balances equally, so paying the larger clears both. Interest keeps accruing until the correcting payroll run's date, so a later payment has to clear more than this.
6200
+ */
6201
+ balance_due_cents: string;
6202
+ /**
6203
+ * Whether every payroll actual behind these figures has landed. When false, the balances read zero because the data is incomplete, not because the job is compliant.
6204
+ */
6205
+ all_actuals_exist: boolean;
6206
+ /**
6207
+ * Whether the job is settled — true only when actuals are complete and no balance is due.
6208
+ */
6209
+ compliant: boolean;
6210
+ };
6211
+ /**
6212
+ * A retroactive-pay line item that can fund a prior period adjustment on the time card it was requested for. Read-only.
6213
+ */
6214
+ export type AdjustableLineItemResponseObject = {
6215
+ /**
6216
+ * Unique identifier.
6217
+ */
6218
+ id: string;
6219
+ /**
6220
+ * ID of the paystub carrying this line item.
6221
+ */
6222
+ payrolls_paystub_id: string | null;
6223
+ /**
6224
+ * ID of the payroll run the paystub was produced by. Its run date is the correction date for compliance timeliness.
6225
+ */
6226
+ payrolls_payroll_run_id: string | null;
6227
+ /**
6228
+ * ID of the external map defining which compensation element this line item represents.
6229
+ */
6230
+ payrolls_external_map_id: string;
6231
+ /**
6232
+ * ID of the worker paid this line item.
6233
+ */
6234
+ user_id: string | null;
6235
+ /**
6236
+ * Full amount of the line item, in cents as a decimal string (e.g. "50000.0" is $500.00).
6237
+ */
6238
+ amount_cents: string;
6239
+ /**
6240
+ * Who contributes this amount: employee or employer.
6241
+ */
6242
+ contributor: 'employee' | 'employer';
6243
+ /**
6244
+ * What is left to allocate, in cents as a decimal string — the line item's amount less every adjustment already funded by it. A new adjustment may not exceed this.
6245
+ */
6246
+ adjustable_amount_cents: string;
6247
+ /**
6248
+ * When the record was created (ISO 8601).
6249
+ */
6250
+ created_at: string;
6251
+ /**
6252
+ * When the record was last updated (ISO 8601).
6253
+ */
6254
+ updated_at: string;
6255
+ };
6062
6256
  /**
6063
6257
  * What a worker was actually paid for a pay period, derived from imported paystub line items — gross and net pay, employee deductions (taxes, insurance, savings, garnishments), and employer contributions. Read-only. Every amount is a decimal string of cents.
6064
6258
  */
@@ -7349,6 +7543,10 @@ export type FederalJobWageDeterminationResponseObject = {
7349
7543
  * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
7350
7544
  */
7351
7545
  pwa_trade_id: string;
7546
+ /**
7547
+ * ID of the overtime package whose rules apply to this determination, or null when none is set.
7548
+ */
7549
+ overtime_package_id: string | null;
7352
7550
  /**
7353
7551
  * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
7354
7552
  */
@@ -7410,6 +7608,10 @@ export type RegionalJobWageDeterminationResponseObject = {
7410
7608
  * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
7411
7609
  */
7412
7610
  pwa_trade_id: string;
7611
+ /**
7612
+ * ID of the overtime package whose rules apply to this determination, or null when none is set.
7613
+ */
7614
+ overtime_package_id: string | null;
7413
7615
  /**
7414
7616
  * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
7415
7617
  */
@@ -7460,6 +7662,7 @@ export type FederalJobWageDeterminationHistoryVersionObject = {
7460
7662
  job_wage_determination_id: string;
7461
7663
  job_id: string;
7462
7664
  pwa_trade_id: string;
7665
+ overtime_package_id: string | null;
7463
7666
  type: 'Pwa::JobWageDeterminations::Federal';
7464
7667
  labor_classification: string;
7465
7668
  hourly_rate_cents: string;
@@ -7481,6 +7684,7 @@ export type RegionalJobWageDeterminationHistoryVersionObject = {
7481
7684
  job_wage_determination_id: string;
7482
7685
  job_id: string;
7483
7686
  pwa_trade_id: string;
7687
+ overtime_package_id: string | null;
7484
7688
  type: 'Pwa::JobWageDeterminations::Regional';
7485
7689
  labor_classification: string;
7486
7690
  hourly_rate_cents: string;
@@ -7506,6 +7710,7 @@ export type FederalJobWageDeterminationHistoryCorrectionObject = {
7506
7710
  job_wage_determination_id: string;
7507
7711
  job_id: string;
7508
7712
  pwa_trade_id: string;
7713
+ overtime_package_id: string | null;
7509
7714
  type: 'Pwa::JobWageDeterminations::Federal';
7510
7715
  labor_classification: string;
7511
7716
  hourly_rate_cents: string;
@@ -7525,6 +7730,7 @@ export type RegionalJobWageDeterminationHistoryCorrectionObject = {
7525
7730
  job_wage_determination_id: string;
7526
7731
  job_id: string;
7527
7732
  pwa_trade_id: string;
7733
+ overtime_package_id: string | null;
7528
7734
  type: 'Pwa::JobWageDeterminations::Regional';
7529
7735
  labor_classification: string;
7530
7736
  hourly_rate_cents: string;
@@ -7612,7 +7818,7 @@ export type RegionalWageDeterminationFieldsResponse = {
7612
7818
  [key: string]: string | null;
7613
7819
  };
7614
7820
  /**
7615
- * Parameters for creating a job wage determination. Provide the Federal or Regional shape; the type discriminator selects which. There is no update endpoint.
7821
+ * Parameters for creating a job wage determination. Provide the Federal or Regional shape; the type discriminator selects which. Editing an existing determination uses the update parameters, which take an `effective_from` instead of a type.
7616
7822
  */
7617
7823
  export type JobWageDeterminationParameters = ({
7618
7824
  type: 'Pwa::JobWageDeterminations::Federal';
@@ -7686,6 +7892,100 @@ export type RegionalJobWageDeterminationParameters = {
7686
7892
  general_wage_determination?: string | null;
7687
7893
  regional_fields?: RegionalWageDeterminationFields;
7688
7894
  };
7895
+ /**
7896
+ * Parameters for editing a job wage determination from a point in valid time forward. The type is fixed by the determination the id names and is not sent.
7897
+ */
7898
+ export type JobWageDeterminationUpdateParameters = {
7899
+ /**
7900
+ * Where the edit starts applying, as a calendar date (`YYYY-MM-DD`); a value carrying a time component is refused with `422` rather than truncated. Every version from this date forward takes the new values; earlier versions are untouched. Optional; defaults to the start of the version valid now, which corrects that version in place.
7901
+ */
7902
+ effective_from?: string;
7903
+ /**
7904
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
7905
+ */
7906
+ labor_classification?: string;
7907
+ /**
7908
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
7909
+ */
7910
+ pwa_trade_id?: string;
7911
+ /**
7912
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
7913
+ */
7914
+ hourly_rate_cents?: string;
7915
+ /**
7916
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
7917
+ */
7918
+ fringe_rate_cents?: string;
7919
+ /**
7920
+ * The DOL wage-classification code identifying this classification within its general decision (e.g. "LABO0324-014"); null when not recorded.
7921
+ */
7922
+ class_code?: string | null;
7923
+ /**
7924
+ * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
7925
+ */
7926
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
7927
+ /**
7928
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
7929
+ */
7930
+ general_wage_determination?: string | null;
7931
+ regional_fields?: RegionalWageDeterminationFields;
7932
+ };
7933
+ /**
7934
+ * Parameters for an effective-dated change to a job wage determination, applying from a calendar date forward. The type is fixed by the determination the id names and is not sent.
7935
+ */
7936
+ export type JobWageDeterminationScheduledChangeParameters = {
7937
+ /**
7938
+ * Where the change starts applying, as a calendar date (`YYYY-MM-DD`); a value carrying a time component is refused with `422` rather than truncated. A boundary is created at that date when needed, and the new values apply from there forward, carrying through every later version already scheduled. Past, current, and future dates are all accepted, so long as the date falls on or after the determination's timeline begins and before any scheduled termination. A date already reached reconciles derived pay data immediately; a date still ahead reconciles at that date.
7939
+ */
7940
+ effective_date: string;
7941
+ /**
7942
+ * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
7943
+ */
7944
+ labor_classification?: string;
7945
+ /**
7946
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
7947
+ */
7948
+ pwa_trade_id?: string;
7949
+ /**
7950
+ * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
7951
+ */
7952
+ hourly_rate_cents?: string;
7953
+ /**
7954
+ * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
7955
+ */
7956
+ fringe_rate_cents?: string;
7957
+ /**
7958
+ * The DOL wage-classification code identifying this classification within its general decision (e.g. "LABO0324-014"); null when not recorded.
7959
+ */
7960
+ class_code?: string | null;
7961
+ /**
7962
+ * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
7963
+ */
7964
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
7965
+ /**
7966
+ * The DOL general wage determination the rates are drawn from — the general decision number plus its revision (e.g. "CA20230001/5"); null when not recorded.
7967
+ */
7968
+ general_wage_determination?: string | null;
7969
+ regional_fields?: RegionalWageDeterminationFields;
7970
+ };
7971
+ /**
7972
+ * Parameters for moving where a job wage determination's timeline begins.
7973
+ */
7974
+ export type JobWageDeterminationGenesisParameters = {
7975
+ /**
7976
+ * The timeline's new start, as a calendar date (`YYYY-MM-DD`); a value carrying a time component is refused with `422` rather than truncated. Moving it earlier extends the first version back to it. Moving it later drops every version whose coverage ended at or before it and truncates the one spanning it, so what those versions said stops being readable. Refused with `422` when the new start would fall at or after a scheduled termination.
7977
+ */
7978
+ effective_date: string;
7979
+ };
7980
+ /**
7981
+ * Parameters for scheduling when a job wage determination stops being valid.
7982
+ */
7983
+ export type JobWageDeterminationScheduledTerminationParameters = {
7984
+ /**
7985
+ * When the determination stops being valid, as a calendar date (`YYYY-MM-DD`); a value carrying a time component is refused with `422` rather than truncated. Segments beyond it are dropped and one spanning it is truncated. Must fall after the determination's genesis and on or before its current end. A determination holds at most one scheduled termination; cancel the standing one before scheduling another.
7986
+ */
7987
+ effective_date: string;
7988
+ };
7689
7989
  /**
7690
7990
  * The adjustment applied when a rule matches — an addition to the wage or fringe rate.
7691
7991
  */
@@ -8042,6 +8342,10 @@ export type AssetsItemParameters = {
8042
8342
  * Optional, create only. Place the new item inside this container item. Mutually exclusive with assets_site_id and user_id.
8043
8343
  */
8044
8344
  container_item_id?: string;
8345
+ /**
8346
+ * Optional, create only. The storage location within the placement site or container the item lands in; must belong to that holder. Omit for an unbinned placement. Ignored for a user assignment.
8347
+ */
8348
+ assets_sub_location_id?: string;
8045
8349
  /**
8046
8350
  * ID of the user this write is performed on behalf of — recorded as the item's creator or updater and attributed to any placement. Required; must belong to your company.
8047
8351
  */
@@ -8324,7 +8628,7 @@ export type AssetsAttachmentParameters = {
8324
8628
  */
8325
8629
  id?: string;
8326
8630
  /**
8327
- * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach.
8631
+ * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach. Register the upload naming the resource of the endpoint you are calling — `assets.items` for item images, `assets.products` for product images, `assets.items.service_events` for service event attachments — because a signed_id issued for any other resource will not resolve here.
8328
8632
  */
8329
8633
  file?: string;
8330
8634
  /**
@@ -8399,7 +8703,7 @@ export type AssetsDocumentResponseObject = {
8399
8703
  */
8400
8704
  export type AssetsDocumentParameters = {
8401
8705
  /**
8402
- * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach.
8706
+ * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach. Register the upload naming `assets.items.documents` — a signed_id issued for any other resource will not resolve here.
8403
8707
  */
8404
8708
  file: string;
8405
8709
  /**
@@ -8558,7 +8862,7 @@ export type AssetsItemFormAssignmentParameters = {
8558
8862
  };
8559
8863
  };
8560
8864
  /**
8561
- * On-hand stock of an item at a site — one row per item and site. Read-only. A site with none of the item has no row at all, since a row is removed once its count reaches zero.
8865
+ * On-hand stock of an item at a site — one row per item, site, and storage location. Read-only. A site with none of the item has no row at all, since a row is removed once its count reaches zero.
8562
8866
  */
8563
8867
  export type AssetsInventoryResponseObject = {
8564
8868
  /**
@@ -8573,6 +8877,10 @@ export type AssetsInventoryResponseObject = {
8573
8877
  * ID of the site holding the stock.
8574
8878
  */
8575
8879
  assets_site_id: string;
8880
+ /**
8881
+ * ID of the storage location within the site this row's stock sits in; null for the site's unbinned stock. Each storage location keeps its own row.
8882
+ */
8883
+ assets_sub_location_id: string | null;
8576
8884
  /**
8577
8885
  * ID of the company that owns this record.
8578
8886
  */
@@ -8675,6 +8983,10 @@ export type AssetsTransactionEventResponseObject = {
8675
8983
  * ID of the container item the movement was into or out of; null when the endpoint was a site or user.
8676
8984
  */
8677
8985
  container_item_id: string | null;
8986
+ /**
8987
+ * ID of the storage location within the site or container the movement touched; null for an unbinned movement or a custody change.
8988
+ */
8989
+ assets_sub_location_id: string | null;
8678
8990
  /**
8679
8991
  * ID of the transfer that produced this transaction; null unless kind is transfer.
8680
8992
  */
@@ -8990,9 +9302,9 @@ export type AssetsServiceScheduleTemplateParameters = {
8990
9302
  performed_by_user_id: string;
8991
9303
  };
8992
9304
  /**
8993
- * A completed movement of item stock between two holders, each a site, a user, or a container. Each line moves one item; applying the transfer records paired outbound and inbound transactions and updates the on-hand, custody, and containment counts. Transfers created through this API are always completed. One-sided moves (placing or removing an item with only one endpoint) record transactions but no transfer, and so are not represented by this resource.
9305
+ * A node of fixed storage structure inside a site or a container item a zone, aisle, rack, shelf, bin, or drawer. Nodes form a tree per holder, and each carries a scannable path_code composed from its ancestors' codes.
8994
9306
  */
8995
- export type AssetsTransferResponseObject = {
9307
+ export type AssetsSubLocationResponseObject = {
8996
9308
  /**
8997
9309
  * Unique identifier.
8998
9310
  */
@@ -9002,46 +9314,161 @@ export type AssetsTransferResponseObject = {
9002
9314
  */
9003
9315
  company_id: string;
9004
9316
  /**
9005
- * Lifecycle state of the transfer: one of pending, in_transit, completed, or cancelled. Transfers created through this API are always completed.
9317
+ * ID of the site this location belongs to; null when it belongs to a container item. Exactly one of the two is set, inherited from the parent for nested nodes.
9006
9318
  */
9007
- status: 'pending' | 'in_transit' | 'completed' | 'cancelled';
9319
+ assets_site_id: string | null;
9008
9320
  /**
9009
- * ID of the source site; null when the source is a user or container.
9321
+ * ID of the container item this location belongs to; null when it belongs to a site. Exactly one of the two is set, inherited from the parent for nested nodes.
9010
9322
  */
9011
- from_assets_site_id: string | null;
9323
+ container_item_id: string | null;
9012
9324
  /**
9013
- * ID of the source user; null when the source is a site or container.
9325
+ * ID of the enclosing location; null for a top-level node of its holder.
9014
9326
  */
9015
- from_user_id: string | null;
9327
+ parent_id: string | null;
9016
9328
  /**
9017
- * ID of the source container item; null when the source is a site or user.
9329
+ * Advisory level label for the node: zone, aisle, rack, shelf, bin, or drawer. Drives display icons only; any nesting order is allowed.
9018
9330
  */
9019
- from_container_item_id: string | null;
9331
+ kind: 'zone' | 'aisle' | 'rack' | 'shelf' | 'bin' | 'drawer' | null;
9020
9332
  /**
9021
- * ID of the destination site; null when the destination is a user or container.
9333
+ * Display name for the location, unique among its siblings (for example "Aisle A").
9022
9334
  */
9023
- to_assets_site_id: string | null;
9335
+ name: string;
9024
9336
  /**
9025
- * ID of the destination user; null when the destination is a site or container.
9337
+ * This node's own segment of the path code (for example "A" or "01"); unique among its siblings and free of the "-" separator.
9026
9338
  */
9027
- to_user_id: string | null;
9339
+ code: string;
9028
9340
  /**
9029
- * ID of the destination container item; null when the destination is a site or user.
9341
+ * The scannable full code — the node's ancestors' codes and its own, joined by "-" (for example "A-01-03"). Recomputed through the subtree when a code changes; unique within the holder.
9030
9342
  */
9031
- to_container_item_id: string | null;
9343
+ path_code: string;
9032
9344
  /**
9033
- * ID of the user the transfer was performed on behalf of.
9345
+ * When the record was created (ISO 8601).
9034
9346
  */
9035
- initiated_by_user_id: string;
9347
+ created_at: string;
9036
9348
  /**
9037
- * When the transfer was applied (ISO 8601); null for a transfer that is not yet completed.
9349
+ * When the record was last updated (ISO 8601).
9038
9350
  */
9039
- completed_at: string | null;
9351
+ updated_at: string;
9352
+ };
9353
+ /**
9354
+ * Create a storage location. name and code are required. A top-level node names its holder (assets_site_id or container_item_id, exactly one); a nested node names parent_id and inherits the parent's holder. The holder cannot change after creation.
9355
+ */
9356
+ export type AssetsSubLocationParameters = {
9040
9357
  /**
9041
- * The item movements in this transfer, one entry per item.
9358
+ * ID of the site the location belongs to. Top-level nodes only — exactly one of assets_site_id or container_item_id; nested nodes inherit the parent's holder.
9042
9359
  */
9043
- transfer_lines: Array<{
9044
- /**
9360
+ assets_site_id?: string;
9361
+ /**
9362
+ * ID of the container item the location belongs to. Top-level nodes only — exactly one of assets_site_id or container_item_id; the container's product must be flagged as a container.
9363
+ */
9364
+ container_item_id?: string;
9365
+ /**
9366
+ * ID of the enclosing location for a nested node; omit for a top-level node.
9367
+ */
9368
+ parent_id?: string | null;
9369
+ /**
9370
+ * Advisory level label for the node: zone, aisle, rack, shelf, bin, or drawer.
9371
+ */
9372
+ kind?: 'zone' | 'aisle' | 'rack' | 'shelf' | 'bin' | 'drawer';
9373
+ /**
9374
+ * Display name for the location, unique among its siblings.
9375
+ */
9376
+ name: string;
9377
+ /**
9378
+ * This node's own path-code segment; unique among its siblings and free of the "-" separator.
9379
+ */
9380
+ code: string;
9381
+ };
9382
+ /**
9383
+ * Update a storage location. All fields are optional — send only what changes. The holder fields cannot change after creation; renaming code cascades new path codes through the node's subtree.
9384
+ */
9385
+ export type AssetsSubLocationUpdateParameters = {
9386
+ /**
9387
+ * ID of the site the location belongs to. Top-level nodes only — exactly one of assets_site_id or container_item_id; nested nodes inherit the parent's holder.
9388
+ */
9389
+ assets_site_id?: string;
9390
+ /**
9391
+ * ID of the container item the location belongs to. Top-level nodes only — exactly one of assets_site_id or container_item_id; the container's product must be flagged as a container.
9392
+ */
9393
+ container_item_id?: string;
9394
+ /**
9395
+ * ID of the enclosing location for a nested node; omit for a top-level node.
9396
+ */
9397
+ parent_id?: string | null;
9398
+ /**
9399
+ * Advisory level label for the node: zone, aisle, rack, shelf, bin, or drawer.
9400
+ */
9401
+ kind?: 'zone' | 'aisle' | 'rack' | 'shelf' | 'bin' | 'drawer';
9402
+ /**
9403
+ * Display name for the location, unique among its siblings.
9404
+ */
9405
+ name?: string;
9406
+ /**
9407
+ * This node's own path-code segment; unique among its siblings and free of the "-" separator.
9408
+ */
9409
+ code?: string;
9410
+ };
9411
+ /**
9412
+ * A completed movement of item stock between two holders, each a site, a user, or a container. Each line moves one item; applying the transfer records paired outbound and inbound transactions and updates the on-hand, custody, and containment counts. Transfers created through this API are always completed. One-sided moves (placing or removing an item with only one endpoint) record transactions but no transfer, and so are not represented by this resource.
9413
+ */
9414
+ export type AssetsTransferResponseObject = {
9415
+ /**
9416
+ * Unique identifier.
9417
+ */
9418
+ id: string;
9419
+ /**
9420
+ * ID of the company that owns this record.
9421
+ */
9422
+ company_id: string;
9423
+ /**
9424
+ * Lifecycle state of the transfer: one of pending, in_transit, completed, or cancelled. Transfers created through this API are always completed.
9425
+ */
9426
+ status: 'pending' | 'in_transit' | 'completed' | 'cancelled';
9427
+ /**
9428
+ * ID of the source site; null when the source is a user or container.
9429
+ */
9430
+ from_assets_site_id: string | null;
9431
+ /**
9432
+ * ID of the source user; null when the source is a site or container.
9433
+ */
9434
+ from_user_id: string | null;
9435
+ /**
9436
+ * ID of the source container item; null when the source is a site or user.
9437
+ */
9438
+ from_container_item_id: string | null;
9439
+ /**
9440
+ * ID of the destination site; null when the destination is a user or container.
9441
+ */
9442
+ to_assets_site_id: string | null;
9443
+ /**
9444
+ * ID of the destination user; null when the destination is a site or container.
9445
+ */
9446
+ to_user_id: string | null;
9447
+ /**
9448
+ * ID of the destination container item; null when the destination is a site or user.
9449
+ */
9450
+ to_container_item_id: string | null;
9451
+ /**
9452
+ * ID of the storage location within the source site or container the stock drew from; null for an unbinned source or a user source.
9453
+ */
9454
+ from_assets_sub_location_id: string | null;
9455
+ /**
9456
+ * ID of the storage location within the destination site or container the stock landed in; null for an unbinned destination or a user destination.
9457
+ */
9458
+ to_assets_sub_location_id: string | null;
9459
+ /**
9460
+ * ID of the user the transfer was performed on behalf of.
9461
+ */
9462
+ initiated_by_user_id: string;
9463
+ /**
9464
+ * When the transfer was applied (ISO 8601); null for a transfer that is not yet completed.
9465
+ */
9466
+ completed_at: string | null;
9467
+ /**
9468
+ * The item movements in this transfer, one entry per item.
9469
+ */
9470
+ transfer_lines: Array<{
9471
+ /**
9045
9472
  * Unique identifier.
9046
9473
  */
9047
9474
  id: string;
@@ -9091,6 +9518,14 @@ export type AssetsTransferParameters = {
9091
9518
  * ID of the destination container item. At most one destination endpoint (site, user, or container).
9092
9519
  */
9093
9520
  to_container_item_id?: string;
9521
+ /**
9522
+ * Optional. The storage location within the source site or container the stock draws from; must belong to that endpoint. Omit for the source's unbinned stock.
9523
+ */
9524
+ from_assets_sub_location_id?: string;
9525
+ /**
9526
+ * Optional. The storage location within the destination site or container the stock lands in; must belong to that endpoint. Omit for an unbinned destination.
9527
+ */
9528
+ to_assets_sub_location_id?: string;
9094
9529
  /**
9095
9530
  * ID of the user this move is performed on behalf of, recorded as its initiator. Required; must belong to your company.
9096
9531
  */
@@ -9117,6 +9552,10 @@ export type AssetsRestockParameters = {
9117
9552
  * ID of the site to add the stock to.
9118
9553
  */
9119
9554
  assets_site_id: string;
9555
+ /**
9556
+ * Optional. The site's storage location the stock lands in; must belong to the site. Omit for the site's unbinned stock.
9557
+ */
9558
+ assets_sub_location_id?: string;
9120
9559
  /**
9121
9560
  * Number of units to add; greater than 0.
9122
9561
  */
@@ -9134,6 +9573,10 @@ export type AssetsAdjustmentParameters = {
9134
9573
  * ID of the site whose on-hand count is being set.
9135
9574
  */
9136
9575
  assets_site_id: string;
9576
+ /**
9577
+ * Optional. The site's storage location whose count is being set; must belong to the site. Omit to set the site's unbinned count.
9578
+ */
9579
+ assets_sub_location_id?: string;
9137
9580
  /**
9138
9581
  * The corrected on-hand count for the site; 0 or greater. The difference from the current count is recorded as the adjustment.
9139
9582
  */
@@ -9143,6 +9586,15 @@ export type AssetsAdjustmentParameters = {
9143
9586
  */
9144
9587
  performed_by_user_id: string;
9145
9588
  };
9589
+ /**
9590
+ * Archive or unarchive a product or item. Archiving takes it out of circulation without deleting it — history is preserved and it is hidden from listings unless requested with filter[state]. Archiving a product cascades to its items; item operations apply to serial items only.
9591
+ */
9592
+ export type AssetsArchiveParameters = {
9593
+ /**
9594
+ * ID of the user this archive or unarchive is performed on behalf of, recorded for auditing. Required; must belong to your company.
9595
+ */
9596
+ performed_by_user_id: string;
9597
+ };
9146
9598
  export type ListApiKeyScopesData = {
9147
9599
  body?: never;
9148
9600
  path?: never;
@@ -10539,6 +10991,10 @@ export type CreateItemErrors = {
10539
10991
  * Forbidden
10540
10992
  */
10541
10993
  403: Problem;
10994
+ /**
10995
+ * Not Found
10996
+ */
10997
+ 404: Problem;
10542
10998
  /**
10543
10999
  * Unprocessable Content (conflicting placement)
10544
11000
  */
@@ -10618,6 +11074,62 @@ export type UpdateItemResponses = {
10618
11074
  200: AssetsItemResponseObject;
10619
11075
  };
10620
11076
  export type UpdateItemResponse = UpdateItemResponses[keyof UpdateItemResponses];
11077
+ export type UnarchiveItemData = {
11078
+ body: AssetsArchiveParameters;
11079
+ path: {
11080
+ item_id: string;
11081
+ };
11082
+ query?: never;
11083
+ url: '/api/v1/assets/items/{item_id}/archive';
11084
+ };
11085
+ export type UnarchiveItemErrors = {
11086
+ /**
11087
+ * Bad Request (missing performed_by_user_id)
11088
+ */
11089
+ 400: Problem;
11090
+ /**
11091
+ * Forbidden
11092
+ */
11093
+ 403: Problem;
11094
+ /**
11095
+ * Conflict
11096
+ */
11097
+ 409: Problem;
11098
+ };
11099
+ export type UnarchiveItemError = UnarchiveItemErrors[keyof UnarchiveItemErrors];
11100
+ export type UnarchiveItemResponses = {
11101
+ /**
11102
+ * Success
11103
+ */
11104
+ 200: AssetsItemResponseObject;
11105
+ };
11106
+ export type UnarchiveItemResponse = UnarchiveItemResponses[keyof UnarchiveItemResponses];
11107
+ export type ArchiveItemData = {
11108
+ body: AssetsArchiveParameters;
11109
+ path: {
11110
+ item_id: string;
11111
+ };
11112
+ query?: never;
11113
+ url: '/api/v1/assets/items/{item_id}/archive';
11114
+ };
11115
+ export type ArchiveItemErrors = {
11116
+ /**
11117
+ * Bad Request (missing performed_by_user_id)
11118
+ */
11119
+ 400: Problem;
11120
+ /**
11121
+ * Forbidden
11122
+ */
11123
+ 403: Problem;
11124
+ };
11125
+ export type ArchiveItemError = ArchiveItemErrors[keyof ArchiveItemErrors];
11126
+ export type ArchiveItemResponses = {
11127
+ /**
11128
+ * Created
11129
+ */
11130
+ 201: AssetsItemResponseObject;
11131
+ };
11132
+ export type ArchiveItemResponse = ArchiveItemResponses[keyof ArchiveItemResponses];
10621
11133
  export type ListServiceSchedulesData = {
10622
11134
  body?: never;
10623
11135
  path: {
@@ -11388,6 +11900,58 @@ export type UpdateProductResponses = {
11388
11900
  200: AssetsProductResponseObject;
11389
11901
  };
11390
11902
  export type UpdateProductResponse = UpdateProductResponses[keyof UpdateProductResponses];
11903
+ export type UnarchiveProductData = {
11904
+ body: AssetsArchiveParameters;
11905
+ path: {
11906
+ product_id: string;
11907
+ };
11908
+ query?: never;
11909
+ url: '/api/v1/assets/products/{product_id}/archive';
11910
+ };
11911
+ export type UnarchiveProductErrors = {
11912
+ /**
11913
+ * Bad Request (missing performed_by_user_id)
11914
+ */
11915
+ 400: Problem;
11916
+ /**
11917
+ * Forbidden
11918
+ */
11919
+ 403: Problem;
11920
+ };
11921
+ export type UnarchiveProductError = UnarchiveProductErrors[keyof UnarchiveProductErrors];
11922
+ export type UnarchiveProductResponses = {
11923
+ /**
11924
+ * Success
11925
+ */
11926
+ 200: AssetsProductResponseObject;
11927
+ };
11928
+ export type UnarchiveProductResponse = UnarchiveProductResponses[keyof UnarchiveProductResponses];
11929
+ export type ArchiveProductData = {
11930
+ body: AssetsArchiveParameters;
11931
+ path: {
11932
+ product_id: string;
11933
+ };
11934
+ query?: never;
11935
+ url: '/api/v1/assets/products/{product_id}/archive';
11936
+ };
11937
+ export type ArchiveProductErrors = {
11938
+ /**
11939
+ * Bad Request (missing performed_by_user_id)
11940
+ */
11941
+ 400: Problem;
11942
+ /**
11943
+ * Forbidden
11944
+ */
11945
+ 403: Problem;
11946
+ };
11947
+ export type ArchiveProductError = ArchiveProductErrors[keyof ArchiveProductErrors];
11948
+ export type ArchiveProductResponses = {
11949
+ /**
11950
+ * Created
11951
+ */
11952
+ 201: AssetsProductResponseObject;
11953
+ };
11954
+ export type ArchiveProductResponse = ArchiveProductResponses[keyof ArchiveProductResponses];
11391
11955
  export type AdjustProductInventoryData = {
11392
11956
  body: AssetsAdjustmentParameters;
11393
11957
  path: {
@@ -11401,6 +11965,10 @@ export type AdjustProductInventoryErrors = {
11401
11965
  * Forbidden
11402
11966
  */
11403
11967
  403: Problem;
11968
+ /**
11969
+ * Not Found
11970
+ */
11971
+ 404: Problem;
11404
11972
  };
11405
11973
  export type AdjustProductInventoryError = AdjustProductInventoryErrors[keyof AdjustProductInventoryErrors];
11406
11974
  export type AdjustProductInventoryResponses = {
@@ -11423,6 +11991,10 @@ export type RestockProductErrors = {
11423
11991
  * Forbidden
11424
11992
  */
11425
11993
  403: Problem;
11994
+ /**
11995
+ * Not Found
11996
+ */
11997
+ 404: Problem;
11426
11998
  };
11427
11999
  export type RestockProductError = RestockProductErrors[keyof RestockProductErrors];
11428
12000
  export type RestockProductResponses = {
@@ -11792,25 +12364,43 @@ export type UpdateSiteResponses = {
11792
12364
  200: AssetsSiteResponseObject;
11793
12365
  };
11794
12366
  export type UpdateSiteResponse = UpdateSiteResponses[keyof UpdateSiteResponses];
11795
- export type ListTransfersData = {
12367
+ export type ListSubLocationsData = {
11796
12368
  body?: never;
11797
12369
  path?: never;
11798
12370
  query?: {
12371
+ 'filter[assets_site_id]'?: string;
12372
+ 'filter[container_item_id]'?: string;
11799
12373
  /**
11800
- * Filter by status:
11801
- * * `pending`
11802
- * * `in_transit`
11803
- * * `completed`
11804
- * * `cancelled`
12374
+ * :
12375
+ * * `zone`
12376
+ * * `aisle`
12377
+ * * `rack`
12378
+ * * `shelf`
12379
+ * * `bin`
12380
+ * * `drawer`
11805
12381
  *
11806
12382
  */
11807
- 'filter[status]'?: string;
12383
+ 'filter[kind]'?: string;
12384
+ 'filter[created_at][gte]'?: string;
12385
+ 'filter[created_at][lte]'?: string;
12386
+ 'filter[updated_at][gte]'?: string;
12387
+ 'filter[updated_at][lte]'?: string;
11808
12388
  filter?: string;
11809
12389
  'filter[unexpected]'?: string;
12390
+ /**
12391
+ * This pagination cursor corresponds to the cursor value found in the response in
12392
+ * `meta.page.next_cursor`.
12393
+ */
12394
+ 'page[cursor]'?: string;
12395
+ /**
12396
+ * 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`.
12397
+ */
12398
+ 'page[limit]'?: number;
12399
+ page?: string;
11810
12400
  };
11811
- url: '/api/v1/assets/transfers';
12401
+ url: '/api/v1/assets/sub_locations';
11812
12402
  };
11813
- export type ListTransfersErrors = {
12403
+ export type ListSubLocationsErrors = {
11814
12404
  /**
11815
12405
  * Bad Request
11816
12406
  */
@@ -11824,72 +12414,226 @@ export type ListTransfersErrors = {
11824
12414
  */
11825
12415
  422: Problem;
11826
12416
  };
11827
- export type ListTransfersError = ListTransfersErrors[keyof ListTransfersErrors];
11828
- export type ListTransfersResponses = {
12417
+ export type ListSubLocationsError = ListSubLocationsErrors[keyof ListSubLocationsErrors];
12418
+ export type ListSubLocationsResponses = {
11829
12419
  /**
11830
12420
  * Success
11831
12421
  */
11832
12422
  200: {
11833
12423
  meta: Meta;
11834
12424
  links: Links;
11835
- data: Array<AssetsTransferResponseObject>;
12425
+ data: Array<AssetsSubLocationResponseObject>;
11836
12426
  };
11837
12427
  };
11838
- export type ListTransfersResponse = ListTransfersResponses[keyof ListTransfersResponses];
11839
- export type CreateTransferData = {
11840
- body: AssetsTransferParameters;
12428
+ export type ListSubLocationsResponse = ListSubLocationsResponses[keyof ListSubLocationsResponses];
12429
+ export type CreateSubLocationData = {
12430
+ body?: AssetsSubLocationParameters;
11841
12431
  path?: never;
11842
12432
  query?: never;
11843
- url: '/api/v1/assets/transfers';
12433
+ url: '/api/v1/assets/sub_locations';
11844
12434
  };
11845
- export type CreateTransferErrors = {
11846
- /**
11847
- * Bad Request
11848
- */
11849
- 400: Problem;
12435
+ export type CreateSubLocationErrors = {
11850
12436
  /**
11851
12437
  * Forbidden
11852
12438
  */
11853
12439
  403: Problem;
11854
- /**
11855
- * Not Found
11856
- */
11857
- 404: Problem;
11858
12440
  /**
11859
12441
  * Unprocessable Content
11860
12442
  */
11861
12443
  422: Problem;
11862
12444
  };
11863
- export type CreateTransferError = CreateTransferErrors[keyof CreateTransferErrors];
11864
- export type CreateTransferResponses = {
12445
+ export type CreateSubLocationError = CreateSubLocationErrors[keyof CreateSubLocationErrors];
12446
+ export type CreateSubLocationResponses = {
11865
12447
  /**
11866
12448
  * Created
11867
12449
  */
11868
- 201: AssetsTransferResponseObject;
11869
- /**
11870
- * No Content (one-sided move places an unplaced item into a container)
11871
- */
11872
- 204: void;
12450
+ 201: AssetsSubLocationResponseObject;
11873
12451
  };
11874
- export type CreateTransferResponse = CreateTransferResponses[keyof CreateTransferResponses];
11875
- export type GetTransferData = {
12452
+ export type CreateSubLocationResponse = CreateSubLocationResponses[keyof CreateSubLocationResponses];
12453
+ export type DeleteSubLocationData = {
11876
12454
  body?: never;
11877
12455
  path: {
11878
12456
  id: string;
11879
12457
  };
11880
12458
  query?: never;
11881
- url: '/api/v1/assets/transfers/{id}';
12459
+ url: '/api/v1/assets/sub_locations/{id}';
11882
12460
  };
11883
- export type GetTransferErrors = {
12461
+ export type DeleteSubLocationErrors = {
11884
12462
  /**
11885
12463
  * Forbidden
11886
12464
  */
11887
12465
  403: Problem;
11888
- };
11889
- export type GetTransferError = GetTransferErrors[keyof GetTransferErrors];
11890
- export type GetTransferResponses = {
11891
12466
  /**
11892
- * Success
12467
+ * Not Found
12468
+ */
12469
+ 404: Problem;
12470
+ /**
12471
+ * Unprocessable Content
12472
+ */
12473
+ 422: Problem;
12474
+ };
12475
+ export type DeleteSubLocationError = DeleteSubLocationErrors[keyof DeleteSubLocationErrors];
12476
+ export type DeleteSubLocationResponses = {
12477
+ /**
12478
+ * Success
12479
+ */
12480
+ 200: AssetsSubLocationResponseObject;
12481
+ };
12482
+ export type DeleteSubLocationResponse = DeleteSubLocationResponses[keyof DeleteSubLocationResponses];
12483
+ export type GetSubLocationData = {
12484
+ body?: never;
12485
+ path: {
12486
+ id: string;
12487
+ };
12488
+ query?: never;
12489
+ url: '/api/v1/assets/sub_locations/{id}';
12490
+ };
12491
+ export type GetSubLocationErrors = {
12492
+ /**
12493
+ * Forbidden
12494
+ */
12495
+ 403: Problem;
12496
+ /**
12497
+ * Not Found
12498
+ */
12499
+ 404: Problem;
12500
+ };
12501
+ export type GetSubLocationError = GetSubLocationErrors[keyof GetSubLocationErrors];
12502
+ export type GetSubLocationResponses = {
12503
+ /**
12504
+ * Success
12505
+ */
12506
+ 200: AssetsSubLocationResponseObject;
12507
+ };
12508
+ export type GetSubLocationResponse = GetSubLocationResponses[keyof GetSubLocationResponses];
12509
+ export type UpdateSubLocationData = {
12510
+ body?: AssetsSubLocationUpdateParameters;
12511
+ path: {
12512
+ id: string;
12513
+ };
12514
+ query?: never;
12515
+ url: '/api/v1/assets/sub_locations/{id}';
12516
+ };
12517
+ export type UpdateSubLocationErrors = {
12518
+ /**
12519
+ * Forbidden
12520
+ */
12521
+ 403: Problem;
12522
+ /**
12523
+ * Not Found
12524
+ */
12525
+ 404: Problem;
12526
+ /**
12527
+ * Unprocessable Content
12528
+ */
12529
+ 422: Problem;
12530
+ };
12531
+ export type UpdateSubLocationError = UpdateSubLocationErrors[keyof UpdateSubLocationErrors];
12532
+ export type UpdateSubLocationResponses = {
12533
+ /**
12534
+ * Success
12535
+ */
12536
+ 200: AssetsSubLocationResponseObject;
12537
+ };
12538
+ export type UpdateSubLocationResponse = UpdateSubLocationResponses[keyof UpdateSubLocationResponses];
12539
+ export type ListTransfersData = {
12540
+ body?: never;
12541
+ path?: never;
12542
+ query?: {
12543
+ /**
12544
+ * Filter by status:
12545
+ * * `pending`
12546
+ * * `in_transit`
12547
+ * * `completed`
12548
+ * * `cancelled`
12549
+ *
12550
+ */
12551
+ 'filter[status]'?: string;
12552
+ filter?: string;
12553
+ 'filter[unexpected]'?: string;
12554
+ };
12555
+ url: '/api/v1/assets/transfers';
12556
+ };
12557
+ export type ListTransfersErrors = {
12558
+ /**
12559
+ * Bad Request
12560
+ */
12561
+ 400: Problem;
12562
+ /**
12563
+ * Forbidden
12564
+ */
12565
+ 403: Problem;
12566
+ /**
12567
+ * Unprocessable Content
12568
+ */
12569
+ 422: Problem;
12570
+ };
12571
+ export type ListTransfersError = ListTransfersErrors[keyof ListTransfersErrors];
12572
+ export type ListTransfersResponses = {
12573
+ /**
12574
+ * Success
12575
+ */
12576
+ 200: {
12577
+ meta: Meta;
12578
+ links: Links;
12579
+ data: Array<AssetsTransferResponseObject>;
12580
+ };
12581
+ };
12582
+ export type ListTransfersResponse = ListTransfersResponses[keyof ListTransfersResponses];
12583
+ export type CreateTransferData = {
12584
+ body: AssetsTransferParameters;
12585
+ path?: never;
12586
+ query?: never;
12587
+ url: '/api/v1/assets/transfers';
12588
+ };
12589
+ export type CreateTransferErrors = {
12590
+ /**
12591
+ * Bad Request
12592
+ */
12593
+ 400: Problem;
12594
+ /**
12595
+ * Forbidden
12596
+ */
12597
+ 403: Problem;
12598
+ /**
12599
+ * Not Found
12600
+ */
12601
+ 404: Problem;
12602
+ /**
12603
+ * Unprocessable Content
12604
+ */
12605
+ 422: Problem;
12606
+ };
12607
+ export type CreateTransferError = CreateTransferErrors[keyof CreateTransferErrors];
12608
+ export type CreateTransferResponses = {
12609
+ /**
12610
+ * Created
12611
+ */
12612
+ 201: AssetsTransferResponseObject;
12613
+ /**
12614
+ * No Content (one-sided move places an unplaced item into a container)
12615
+ */
12616
+ 204: void;
12617
+ };
12618
+ export type CreateTransferResponse = CreateTransferResponses[keyof CreateTransferResponses];
12619
+ export type GetTransferData = {
12620
+ body?: never;
12621
+ path: {
12622
+ id: string;
12623
+ };
12624
+ query?: never;
12625
+ url: '/api/v1/assets/transfers/{id}';
12626
+ };
12627
+ export type GetTransferErrors = {
12628
+ /**
12629
+ * Forbidden
12630
+ */
12631
+ 403: Problem;
12632
+ };
12633
+ export type GetTransferError = GetTransferErrors[keyof GetTransferErrors];
12634
+ export type GetTransferResponses = {
12635
+ /**
12636
+ * Success
11893
12637
  */
11894
12638
  200: AssetsTransferResponseObject;
11895
12639
  };
@@ -12996,6 +13740,90 @@ export type UpdateCheckResponses = {
12996
13740
  200: ComplianceCheckResponseObject;
12997
13741
  };
12998
13742
  export type UpdateCheckResponse = UpdateCheckResponses[keyof UpdateCheckResponses];
13743
+ export type ListRequirementsData = {
13744
+ body?: never;
13745
+ path?: never;
13746
+ query?: {
13747
+ /**
13748
+ * Fuzzy match against the requirement title
13749
+ */
13750
+ 'filter[search]'?: string;
13751
+ /**
13752
+ * Filter by requirement type (its STI class name)
13753
+ */
13754
+ 'filter[type]'?: string;
13755
+ /**
13756
+ * Filter by requirement category:
13757
+ * * `apprenticeship`
13758
+ * * `certified_payroll`
13759
+ * * `company`
13760
+ * * `job`
13761
+ * * `payroll`
13762
+ * * `project`
13763
+ * * `regional`
13764
+ * * `tax_credit`
13765
+ * * `timekeeping`
13766
+ * * `worker`
13767
+ *
13768
+ */
13769
+ 'filter[category]'?: string;
13770
+ /**
13771
+ * Filter by the compliance phase the requirement belongs to
13772
+ */
13773
+ 'filter[phase]'?: string;
13774
+ /**
13775
+ * Filter by requirement priority
13776
+ */
13777
+ 'filter[priority]'?: string;
13778
+ /**
13779
+ * Filter by the regulation the requirement derives from
13780
+ */
13781
+ 'filter[requisite]'?: string;
13782
+ /**
13783
+ * Filter by the record type the requirement is checked against
13784
+ */
13785
+ 'filter[target]'?: string;
13786
+ filter?: string;
13787
+ 'filter[unexpected]'?: string;
13788
+ /**
13789
+ * This pagination cursor corresponds to the cursor value found in the response in
13790
+ * `meta.page.next_cursor`.
13791
+ */
13792
+ 'page[cursor]'?: string;
13793
+ /**
13794
+ * 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`.
13795
+ */
13796
+ 'page[limit]'?: number;
13797
+ page?: string;
13798
+ };
13799
+ url: '/api/v1/compliance/requirements';
13800
+ };
13801
+ export type ListRequirementsErrors = {
13802
+ /**
13803
+ * Bad Request
13804
+ */
13805
+ 400: Problem;
13806
+ /**
13807
+ * Forbidden
13808
+ */
13809
+ 403: Problem;
13810
+ /**
13811
+ * Unprocessable Content
13812
+ */
13813
+ 422: Problem;
13814
+ };
13815
+ export type ListRequirementsError = ListRequirementsErrors[keyof ListRequirementsErrors];
13816
+ export type ListRequirementsResponses = {
13817
+ /**
13818
+ * Success
13819
+ */
13820
+ 200: {
13821
+ meta: Meta;
13822
+ links: Links;
13823
+ data: Array<ComplianceRequirementResponseObject>;
13824
+ };
13825
+ };
13826
+ export type ListRequirementsResponse = ListRequirementsResponses[keyof ListRequirementsResponses];
12999
13827
  export type ListCustomFieldConfigsData = {
13000
13828
  body?: never;
13001
13829
  path?: never;
@@ -13160,6 +13988,10 @@ export type CreateDirectUploadErrors = {
13160
13988
  * Forbidden
13161
13989
  */
13162
13990
  403: Problem;
13991
+ /**
13992
+ * Unprocessable Content
13993
+ */
13994
+ 422: Problem;
13163
13995
  };
13164
13996
  export type CreateDirectUploadError = CreateDirectUploadErrors[keyof CreateDirectUploadErrors];
13165
13997
  export type CreateDirectUploadResponses = {
@@ -13899,17 +14731,268 @@ export type GetRateRuleData = {
13899
14731
  path: {
13900
14732
  job_id: string;
13901
14733
  wage_determination_id: string;
13902
- id: string;
13903
- };
13904
- query?: {
13905
- /**
13906
- * Read the version valid at this point in time. Defaults to now.
13907
- */
13908
- 'as_of[valid]'?: string;
14734
+ id: string;
14735
+ };
14736
+ query?: {
14737
+ /**
14738
+ * Read the version valid at this point in time. Defaults to now.
14739
+ */
14740
+ 'as_of[valid]'?: string;
14741
+ };
14742
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{id}';
14743
+ };
14744
+ export type GetRateRuleErrors = {
14745
+ /**
14746
+ * Forbidden
14747
+ */
14748
+ 403: Problem;
14749
+ /**
14750
+ * Not Found
14751
+ */
14752
+ 404: Problem;
14753
+ };
14754
+ export type GetRateRuleError = GetRateRuleErrors[keyof GetRateRuleErrors];
14755
+ export type GetRateRuleResponses = {
14756
+ /**
14757
+ * Success
14758
+ */
14759
+ 200: RateRuleResponseObject;
14760
+ };
14761
+ export type GetRateRuleResponse = GetRateRuleResponses[keyof GetRateRuleResponses];
14762
+ export type ShiftJobWageDeterminationGenesisData = {
14763
+ body: JobWageDeterminationGenesisParameters;
14764
+ headers: {
14765
+ /**
14766
+ * Version validator this write is composed against — the `ETag` from a read of this determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
14767
+ */
14768
+ 'If-Match': string;
14769
+ };
14770
+ path: {
14771
+ job_id: string;
14772
+ wage_determination_id: string;
14773
+ };
14774
+ query?: never;
14775
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/genesis';
14776
+ };
14777
+ export type ShiftJobWageDeterminationGenesisErrors = {
14778
+ /**
14779
+ * Bad Request (missing effective_date)
14780
+ */
14781
+ 400: Problem;
14782
+ /**
14783
+ * Forbidden
14784
+ */
14785
+ 403: Problem;
14786
+ /**
14787
+ * Not Found
14788
+ */
14789
+ 404: Problem;
14790
+ /**
14791
+ * Conflict
14792
+ */
14793
+ 409: Problem;
14794
+ /**
14795
+ * Precondition Failed
14796
+ */
14797
+ 412: Problem;
14798
+ /**
14799
+ * Unprocessable Content
14800
+ */
14801
+ 422: Problem;
14802
+ /**
14803
+ * Precondition Required
14804
+ */
14805
+ 428: Problem;
14806
+ };
14807
+ export type ShiftJobWageDeterminationGenesisError = ShiftJobWageDeterminationGenesisErrors[keyof ShiftJobWageDeterminationGenesisErrors];
14808
+ export type ShiftJobWageDeterminationGenesisResponses = {
14809
+ /**
14810
+ * Success
14811
+ */
14812
+ 200: JobWageDeterminationResponseObject;
14813
+ };
14814
+ export type ShiftJobWageDeterminationGenesisResponse = ShiftJobWageDeterminationGenesisResponses[keyof ShiftJobWageDeterminationGenesisResponses];
14815
+ export type ListJobWageDeterminationHistoryData = {
14816
+ body?: never;
14817
+ path: {
14818
+ job_id: string;
14819
+ /**
14820
+ * The determination's version-stable identity, as returned in `id`.
14821
+ */
14822
+ wage_determination_id: string;
14823
+ };
14824
+ query?: {
14825
+ 'as_of[valid]'?: string;
14826
+ };
14827
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/history';
14828
+ };
14829
+ export type ListJobWageDeterminationHistoryErrors = {
14830
+ /**
14831
+ * Bad Request
14832
+ */
14833
+ 400: Problem;
14834
+ /**
14835
+ * Forbidden
14836
+ */
14837
+ 403: Problem;
14838
+ /**
14839
+ * Not Found
14840
+ */
14841
+ 404: Problem;
14842
+ };
14843
+ export type ListJobWageDeterminationHistoryError = ListJobWageDeterminationHistoryErrors[keyof ListJobWageDeterminationHistoryErrors];
14844
+ export type ListJobWageDeterminationHistoryResponses = {
14845
+ /**
14846
+ * Success
14847
+ */
14848
+ 200: {
14849
+ meta: Meta;
14850
+ links: Links;
14851
+ data: Array<JobWageDeterminationHistoryVersionObject>;
14852
+ };
14853
+ };
14854
+ export type ListJobWageDeterminationHistoryResponse = ListJobWageDeterminationHistoryResponses[keyof ListJobWageDeterminationHistoryResponses];
14855
+ export type CancelJobWageDeterminationScheduledChangesData = {
14856
+ body?: never;
14857
+ headers: {
14858
+ /**
14859
+ * Version validator this write is composed against — the `ETag` from a read of this determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
14860
+ */
14861
+ 'If-Match': string;
14862
+ };
14863
+ path: {
14864
+ job_id: string;
14865
+ wage_determination_id: string;
14866
+ };
14867
+ query?: never;
14868
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_changes';
14869
+ };
14870
+ export type CancelJobWageDeterminationScheduledChangesErrors = {
14871
+ /**
14872
+ * Forbidden
14873
+ */
14874
+ 403: Problem;
14875
+ /**
14876
+ * Not Found
14877
+ */
14878
+ 404: Problem;
14879
+ /**
14880
+ * Precondition Failed
14881
+ */
14882
+ 412: Problem;
14883
+ /**
14884
+ * Unprocessable Content
14885
+ */
14886
+ 422: Problem;
14887
+ /**
14888
+ * Precondition Required
14889
+ */
14890
+ 428: Problem;
14891
+ };
14892
+ export type CancelJobWageDeterminationScheduledChangesError = CancelJobWageDeterminationScheduledChangesErrors[keyof CancelJobWageDeterminationScheduledChangesErrors];
14893
+ export type CancelJobWageDeterminationScheduledChangesResponses = {
14894
+ /**
14895
+ * Success
14896
+ */
14897
+ 200: JobWageDeterminationResponseObject;
14898
+ };
14899
+ export type CancelJobWageDeterminationScheduledChangesResponse = CancelJobWageDeterminationScheduledChangesResponses[keyof CancelJobWageDeterminationScheduledChangesResponses];
14900
+ export type ListJobWageDeterminationScheduledChangesData = {
14901
+ body?: never;
14902
+ path: {
14903
+ job_id: string;
14904
+ wage_determination_id: string;
14905
+ };
14906
+ query?: never;
14907
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_changes';
14908
+ };
14909
+ export type ListJobWageDeterminationScheduledChangesErrors = {
14910
+ /**
14911
+ * Forbidden
14912
+ */
14913
+ 403: Problem;
14914
+ /**
14915
+ * Not Found
14916
+ */
14917
+ 404: Problem;
14918
+ };
14919
+ export type ListJobWageDeterminationScheduledChangesError = ListJobWageDeterminationScheduledChangesErrors[keyof ListJobWageDeterminationScheduledChangesErrors];
14920
+ export type ListJobWageDeterminationScheduledChangesResponses = {
14921
+ /**
14922
+ * Success with scheduled changes
14923
+ */
14924
+ 200: Array<JobWageDeterminationResponseObject>;
14925
+ };
14926
+ export type ListJobWageDeterminationScheduledChangesResponse = ListJobWageDeterminationScheduledChangesResponses[keyof ListJobWageDeterminationScheduledChangesResponses];
14927
+ export type ScheduleJobWageDeterminationChangeData = {
14928
+ body: JobWageDeterminationScheduledChangeParameters;
14929
+ headers: {
14930
+ /**
14931
+ * Version validator this write is composed against — the `ETag` from a read of this determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
14932
+ */
14933
+ 'If-Match': string;
14934
+ };
14935
+ path: {
14936
+ job_id: string;
14937
+ wage_determination_id: string;
14938
+ };
14939
+ query?: never;
14940
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_changes';
14941
+ };
14942
+ export type ScheduleJobWageDeterminationChangeErrors = {
14943
+ /**
14944
+ * Bad Request (missing effective_date)
14945
+ */
14946
+ 400: Problem;
14947
+ /**
14948
+ * Forbidden
14949
+ */
14950
+ 403: Problem;
14951
+ /**
14952
+ * Not Found
14953
+ */
14954
+ 404: Problem;
14955
+ /**
14956
+ * Conflict
14957
+ */
14958
+ 409: Problem;
14959
+ /**
14960
+ * Precondition Failed
14961
+ */
14962
+ 412: Problem;
14963
+ /**
14964
+ * Unprocessable Content
14965
+ */
14966
+ 422: Problem;
14967
+ /**
14968
+ * Precondition Required
14969
+ */
14970
+ 428: Problem;
14971
+ };
14972
+ export type ScheduleJobWageDeterminationChangeError = ScheduleJobWageDeterminationChangeErrors[keyof ScheduleJobWageDeterminationChangeErrors];
14973
+ export type ScheduleJobWageDeterminationChangeResponses = {
14974
+ /**
14975
+ * Created
14976
+ */
14977
+ 201: JobWageDeterminationResponseObject;
14978
+ };
14979
+ export type ScheduleJobWageDeterminationChangeResponse = ScheduleJobWageDeterminationChangeResponses[keyof ScheduleJobWageDeterminationChangeResponses];
14980
+ export type CancelJobWageDeterminationScheduledTerminationData = {
14981
+ body?: never;
14982
+ headers: {
14983
+ /**
14984
+ * Version validator this write is composed against — the `ETag` from a read of this determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
14985
+ */
14986
+ 'If-Match': string;
14987
+ };
14988
+ path: {
14989
+ job_id: string;
14990
+ wage_determination_id: string;
13909
14991
  };
13910
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{id}';
14992
+ query?: never;
14993
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_termination';
13911
14994
  };
13912
- export type GetRateRuleErrors = {
14995
+ export type CancelJobWageDeterminationScheduledTerminationErrors = {
13913
14996
  /**
13914
14997
  * Forbidden
13915
14998
  */
@@ -13918,32 +15001,45 @@ export type GetRateRuleErrors = {
13918
15001
  * Not Found
13919
15002
  */
13920
15003
  404: Problem;
15004
+ /**
15005
+ * Precondition Failed
15006
+ */
15007
+ 412: Problem;
15008
+ /**
15009
+ * Unprocessable Content
15010
+ */
15011
+ 422: Problem;
15012
+ /**
15013
+ * Precondition Required
15014
+ */
15015
+ 428: Problem;
13921
15016
  };
13922
- export type GetRateRuleError = GetRateRuleErrors[keyof GetRateRuleErrors];
13923
- export type GetRateRuleResponses = {
15017
+ export type CancelJobWageDeterminationScheduledTerminationError = CancelJobWageDeterminationScheduledTerminationErrors[keyof CancelJobWageDeterminationScheduledTerminationErrors];
15018
+ export type CancelJobWageDeterminationScheduledTerminationResponses = {
13924
15019
  /**
13925
15020
  * Success
13926
15021
  */
13927
- 200: RateRuleResponseObject;
15022
+ 200: JobWageDeterminationResponseObject;
13928
15023
  };
13929
- export type GetRateRuleResponse = GetRateRuleResponses[keyof GetRateRuleResponses];
13930
- export type ListJobWageDeterminationHistoryData = {
13931
- body?: never;
13932
- path: {
13933
- job_id: string;
15024
+ export type CancelJobWageDeterminationScheduledTerminationResponse = CancelJobWageDeterminationScheduledTerminationResponses[keyof CancelJobWageDeterminationScheduledTerminationResponses];
15025
+ export type ScheduleJobWageDeterminationTerminationData = {
15026
+ body: JobWageDeterminationScheduledTerminationParameters;
15027
+ headers: {
13934
15028
  /**
13935
- * The determination's version-stable identity, as returned in `id`.
15029
+ * Version validator this write is composed against — the `ETag` from a read of this determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
13936
15030
  */
13937
- wage_determination_id: string;
15031
+ 'If-Match': string;
13938
15032
  };
13939
- query?: {
13940
- 'as_of[valid]'?: string;
15033
+ path: {
15034
+ job_id: string;
15035
+ wage_determination_id: string;
13941
15036
  };
13942
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/history';
15037
+ query?: never;
15038
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/scheduled_termination';
13943
15039
  };
13944
- export type ListJobWageDeterminationHistoryErrors = {
15040
+ export type ScheduleJobWageDeterminationTerminationErrors = {
13945
15041
  /**
13946
- * Bad Request
15042
+ * Bad Request (missing effective_date)
13947
15043
  */
13948
15044
  400: Problem;
13949
15045
  /**
@@ -13954,19 +15050,31 @@ export type ListJobWageDeterminationHistoryErrors = {
13954
15050
  * Not Found
13955
15051
  */
13956
15052
  404: Problem;
15053
+ /**
15054
+ * Conflict
15055
+ */
15056
+ 409: Problem;
15057
+ /**
15058
+ * Precondition Failed
15059
+ */
15060
+ 412: Problem;
15061
+ /**
15062
+ * Unprocessable Content
15063
+ */
15064
+ 422: Problem;
15065
+ /**
15066
+ * Precondition Required
15067
+ */
15068
+ 428: Problem;
13957
15069
  };
13958
- export type ListJobWageDeterminationHistoryError = ListJobWageDeterminationHistoryErrors[keyof ListJobWageDeterminationHistoryErrors];
13959
- export type ListJobWageDeterminationHistoryResponses = {
15070
+ export type ScheduleJobWageDeterminationTerminationError = ScheduleJobWageDeterminationTerminationErrors[keyof ScheduleJobWageDeterminationTerminationErrors];
15071
+ export type ScheduleJobWageDeterminationTerminationResponses = {
13960
15072
  /**
13961
- * Success
15073
+ * Created
13962
15074
  */
13963
- 200: {
13964
- meta: Meta;
13965
- links: Links;
13966
- data: Array<JobWageDeterminationHistoryVersionObject>;
13967
- };
15075
+ 201: JobWageDeterminationResponseObject;
13968
15076
  };
13969
- export type ListJobWageDeterminationHistoryResponse = ListJobWageDeterminationHistoryResponses[keyof ListJobWageDeterminationHistoryResponses];
15077
+ export type ScheduleJobWageDeterminationTerminationResponse = ScheduleJobWageDeterminationTerminationResponses[keyof ScheduleJobWageDeterminationTerminationResponses];
13970
15078
  export type ListJobWageDeterminationsData = {
13971
15079
  body?: never;
13972
15080
  path: {
@@ -14113,6 +15221,55 @@ export type GetJobWageDeterminationResponses = {
14113
15221
  200: JobWageDeterminationResponseObject;
14114
15222
  };
14115
15223
  export type GetJobWageDeterminationResponse = GetJobWageDeterminationResponses[keyof GetJobWageDeterminationResponses];
15224
+ export type UpdateJobWageDeterminationData = {
15225
+ body: JobWageDeterminationUpdateParameters;
15226
+ headers: {
15227
+ /**
15228
+ * Version validator this write is composed against — the `ETag` from a read of this wage determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
15229
+ */
15230
+ 'If-Match': string;
15231
+ };
15232
+ path: {
15233
+ job_id: string;
15234
+ id: string;
15235
+ };
15236
+ query?: never;
15237
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{id}';
15238
+ };
15239
+ export type UpdateJobWageDeterminationErrors = {
15240
+ /**
15241
+ * Forbidden
15242
+ */
15243
+ 403: Problem;
15244
+ /**
15245
+ * Not Found
15246
+ */
15247
+ 404: Problem;
15248
+ /**
15249
+ * Conflict
15250
+ */
15251
+ 409: Problem;
15252
+ /**
15253
+ * Precondition Failed
15254
+ */
15255
+ 412: Problem;
15256
+ /**
15257
+ * Unprocessable Content
15258
+ */
15259
+ 422: Problem;
15260
+ /**
15261
+ * Precondition Required
15262
+ */
15263
+ 428: Problem;
15264
+ };
15265
+ export type UpdateJobWageDeterminationError = UpdateJobWageDeterminationErrors[keyof UpdateJobWageDeterminationErrors];
15266
+ export type UpdateJobWageDeterminationResponses = {
15267
+ /**
15268
+ * Success
15269
+ */
15270
+ 200: JobWageDeterminationResponseObject;
15271
+ };
15272
+ export type UpdateJobWageDeterminationResponse = UpdateJobWageDeterminationResponses[keyof UpdateJobWageDeterminationResponses];
14116
15273
  export type ListJobsData = {
14117
15274
  body?: never;
14118
15275
  path?: never;
@@ -16236,6 +17393,57 @@ export type ListTemplatesResponses = {
16236
17393
  };
16237
17394
  };
16238
17395
  export type ListTemplatesResponse = ListTemplatesResponses[keyof ListTemplatesResponses];
17396
+ export type ListAdjustableLineItemsData = {
17397
+ body?: never;
17398
+ path: {
17399
+ time_card_id: string;
17400
+ };
17401
+ query?: {
17402
+ /**
17403
+ * Filter by paystub
17404
+ */
17405
+ 'filter[payrolls_paystub_id]'?: string;
17406
+ /**
17407
+ * This pagination cursor corresponds to the cursor value found in the response in
17408
+ * `meta.page.next_cursor`.
17409
+ */
17410
+ 'page[cursor]'?: string;
17411
+ /**
17412
+ * 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`.
17413
+ */
17414
+ 'page[limit]'?: number;
17415
+ page?: string;
17416
+ filter?: string;
17417
+ 'filter[unexpected]'?: string;
17418
+ };
17419
+ url: '/api/v1/time_cards/{time_card_id}/adjustable_line_items';
17420
+ };
17421
+ export type ListAdjustableLineItemsErrors = {
17422
+ /**
17423
+ * Bad Request
17424
+ */
17425
+ 400: Problem;
17426
+ /**
17427
+ * Forbidden
17428
+ */
17429
+ 403: Problem;
17430
+ /**
17431
+ * Not Found
17432
+ */
17433
+ 404: Problem;
17434
+ };
17435
+ export type ListAdjustableLineItemsError = ListAdjustableLineItemsErrors[keyof ListAdjustableLineItemsErrors];
17436
+ export type ListAdjustableLineItemsResponses = {
17437
+ /**
17438
+ * Success
17439
+ */
17440
+ 200: {
17441
+ meta: Meta;
17442
+ links: Links;
17443
+ data: Array<AdjustableLineItemResponseObject>;
17444
+ };
17445
+ };
17446
+ export type ListAdjustableLineItemsResponse = ListAdjustableLineItemsResponses[keyof ListAdjustableLineItemsResponses];
16239
17447
  export type SetTimeCardLockData = {
16240
17448
  body: TimeCardLockParameters;
16241
17449
  path: {
@@ -16481,6 +17689,67 @@ export type ListPriorPeriodAdjustmentsResponses = {
16481
17689
  };
16482
17690
  };
16483
17691
  export type ListPriorPeriodAdjustmentsResponse = ListPriorPeriodAdjustmentsResponses[keyof ListPriorPeriodAdjustmentsResponses];
17692
+ export type CreatePriorPeriodAdjustmentData = {
17693
+ body: PriorPeriodAdjustmentParameters;
17694
+ path: {
17695
+ time_card_id: string;
17696
+ };
17697
+ query?: never;
17698
+ url: '/api/v1/time_cards/{time_card_id}/prior_period_adjustments';
17699
+ };
17700
+ export type CreatePriorPeriodAdjustmentErrors = {
17701
+ /**
17702
+ * Bad Request
17703
+ */
17704
+ 400: Problem;
17705
+ /**
17706
+ * Forbidden
17707
+ */
17708
+ 403: Problem;
17709
+ /**
17710
+ * Not Found
17711
+ */
17712
+ 404: Problem;
17713
+ /**
17714
+ * Unprocessable Content
17715
+ */
17716
+ 422: Problem;
17717
+ };
17718
+ export type CreatePriorPeriodAdjustmentError = CreatePriorPeriodAdjustmentErrors[keyof CreatePriorPeriodAdjustmentErrors];
17719
+ export type CreatePriorPeriodAdjustmentResponses = {
17720
+ /**
17721
+ * Created
17722
+ */
17723
+ 201: PriorPeriodAdjustmentResponseObject;
17724
+ };
17725
+ export type CreatePriorPeriodAdjustmentResponse = CreatePriorPeriodAdjustmentResponses[keyof CreatePriorPeriodAdjustmentResponses];
17726
+ export type DeletePriorPeriodAdjustmentData = {
17727
+ body?: never;
17728
+ path: {
17729
+ time_card_id: string;
17730
+ id: string;
17731
+ };
17732
+ query?: never;
17733
+ url: '/api/v1/time_cards/{time_card_id}/prior_period_adjustments/{id}';
17734
+ };
17735
+ export type DeletePriorPeriodAdjustmentErrors = {
17736
+ /**
17737
+ * Forbidden
17738
+ */
17739
+ 403: Problem;
17740
+ /**
17741
+ * Not Found
17742
+ */
17743
+ 404: Problem;
17744
+ };
17745
+ export type DeletePriorPeriodAdjustmentError = DeletePriorPeriodAdjustmentErrors[keyof DeletePriorPeriodAdjustmentErrors];
17746
+ export type DeletePriorPeriodAdjustmentResponses = {
17747
+ /**
17748
+ * Success
17749
+ */
17750
+ 200: PriorPeriodAdjustmentResponseObject;
17751
+ };
17752
+ export type DeletePriorPeriodAdjustmentResponse = DeletePriorPeriodAdjustmentResponses[keyof DeletePriorPeriodAdjustmentResponses];
16484
17753
  export type GetPriorPeriodAdjustmentData = {
16485
17754
  body?: never;
16486
17755
  path: {
@@ -16508,6 +17777,57 @@ export type GetPriorPeriodAdjustmentResponses = {
16508
17777
  200: PriorPeriodAdjustmentResponseObject;
16509
17778
  };
16510
17779
  export type GetPriorPeriodAdjustmentResponse = GetPriorPeriodAdjustmentResponses[keyof GetPriorPeriodAdjustmentResponses];
17780
+ export type ListPwaCompliancesData = {
17781
+ body?: never;
17782
+ path: {
17783
+ time_card_id: string;
17784
+ };
17785
+ query?: {
17786
+ /**
17787
+ * Filter by job
17788
+ */
17789
+ 'filter[job_id]'?: string;
17790
+ /**
17791
+ * This pagination cursor corresponds to the cursor value found in the response in
17792
+ * `meta.page.next_cursor`.
17793
+ */
17794
+ 'page[cursor]'?: string;
17795
+ /**
17796
+ * 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`.
17797
+ */
17798
+ 'page[limit]'?: number;
17799
+ page?: string;
17800
+ filter?: string;
17801
+ 'filter[unexpected]'?: string;
17802
+ };
17803
+ url: '/api/v1/time_cards/{time_card_id}/pwa_compliances';
17804
+ };
17805
+ export type ListPwaCompliancesErrors = {
17806
+ /**
17807
+ * Bad Request
17808
+ */
17809
+ 400: Problem;
17810
+ /**
17811
+ * Forbidden
17812
+ */
17813
+ 403: Problem;
17814
+ /**
17815
+ * Not Found
17816
+ */
17817
+ 404: Problem;
17818
+ };
17819
+ export type ListPwaCompliancesError = ListPwaCompliancesErrors[keyof ListPwaCompliancesErrors];
17820
+ export type ListPwaCompliancesResponses = {
17821
+ /**
17822
+ * Success
17823
+ */
17824
+ 200: {
17825
+ meta: Meta;
17826
+ links: Links;
17827
+ data: Array<PwaComplianceResponseObject>;
17828
+ };
17829
+ };
17830
+ export type ListPwaCompliancesResponse = ListPwaCompliancesResponses[keyof ListPwaCompliancesResponses];
16511
17831
  export type CreateWorkerTimeCardApprovalData = {
16512
17832
  body: WorkerTimeCardApprovalParameters;
16513
17833
  path: {