@dsptch-work/api-client 0.52.1 → 0.53.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.
@@ -443,7 +443,7 @@ export type DirectUploadParameters = {
443
443
  /**
444
444
  * 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.
445
445
  */
446
- resource: 'assets.items' | 'assets.items.documents' | 'assets.items.service_events' | 'assets.products' | 'assets.products.documents' | 'assets.vendors' | 'compliance.checks' | 'form_submissions' | 'internal.companies' | 'internal.company_todos' | 'internal.job_todos' | 'internal.project_todos' | 'jobs' | 'jobs.documents' | 'jobs.pwa.apprenticeship.good_faith_effort_exceptions' | 'jobs.pwa.cure_payments' | 'pay_periods.imports.aggregate_times' | 'pay_periods.imports.dsptch_cprs' | 'pay_periods.imports.time_entries' | 'payrolls.payroll_runs.imports.paystubs' | 'payrolls.payroll_runs.imports.wide_paystubs' | 'projects' | 'projects.documents' | 'users';
446
+ resource: 'assets.items' | 'assets.items.documents' | 'assets.items.service_events' | 'assets.products' | 'assets.products.documents' | 'assets.vendors' | 'company_documents' | 'compliance.checks' | 'form_submissions' | 'internal.companies' | 'internal.company_todos' | 'internal.job_todos' | 'internal.project_todos' | 'jobs' | 'jobs.documents' | 'jobs.pwa.apprenticeship.good_faith_effort_exceptions' | 'jobs.pwa.cure_payments' | 'pay_periods.imports.aggregate_times' | 'pay_periods.imports.dsptch_cprs' | 'pay_periods.imports.time_entries' | 'payrolls.payroll_runs.imports.paystubs' | 'payrolls.payroll_runs.imports.wide_paystubs' | 'projects' | 'projects.documents' | 'users';
447
447
  /**
448
448
  * Metadata describing the file being registered, before its bytes are uploaded.
449
449
  */
@@ -1276,6 +1276,43 @@ export type ApprenticeshipOccupationResponseObject = {
1276
1276
  */
1277
1277
  updated_at: string;
1278
1278
  };
1279
+ /**
1280
+ * A skill-specific hour bucket within an occupation (for example, rough-in wiring within an electrician occupation). Allocations may optionally name a category. Minutes are stored and published directly.
1281
+ */
1282
+ export type ApprenticeshipWorkProcessCategoryResponseObject = {
1283
+ /**
1284
+ * Unique identifier.
1285
+ */
1286
+ id: string;
1287
+ /**
1288
+ * ID of the occupation this work process category belongs to.
1289
+ */
1290
+ apprenticeship_occupation_id: string;
1291
+ /**
1292
+ * Human-readable name for the work process category.
1293
+ */
1294
+ name: string;
1295
+ /**
1296
+ * Free-text description of the work process category; null when unset.
1297
+ */
1298
+ description: string | null;
1299
+ /**
1300
+ * Minimum on-the-job minutes required in this category.
1301
+ */
1302
+ min_minutes: number;
1303
+ /**
1304
+ * Maximum on-the-job minutes allowed in this category; must exceed min_minutes.
1305
+ */
1306
+ max_minutes: number;
1307
+ /**
1308
+ * When the record was created (ISO 8601).
1309
+ */
1310
+ created_at: string;
1311
+ /**
1312
+ * When the record was last updated (ISO 8601).
1313
+ */
1314
+ updated_at: string;
1315
+ };
1279
1316
  /**
1280
1317
  * A company authorized to employ apprentices in a program; the program's sponsor manages this roster.
1281
1318
  */
@@ -1721,6 +1758,48 @@ export type ApprenticeshipOccupationUpdateParameters = {
1721
1758
  */
1722
1759
  num_journeyworkers?: number;
1723
1760
  };
1761
+ /**
1762
+ * Create a work process category on an occupation; the occupation is taken from the URL path. Minutes are sent as integers. Omitting name, min_minutes, or max_minutes, or sending max_minutes less than or equal to min_minutes, answers 422. A null for a non-nullable field or a wrong JSON type answers 422. An unknown key answers 400.
1763
+ */
1764
+ export type ApprenticeshipWorkProcessCategoryParameters = {
1765
+ /**
1766
+ * Human-readable name for the work process category.
1767
+ */
1768
+ name?: string;
1769
+ /**
1770
+ * Free-text description of the work process category; optional, null to leave unset.
1771
+ */
1772
+ description?: string | null;
1773
+ /**
1774
+ * Minimum on-the-job minutes required in this category.
1775
+ */
1776
+ min_minutes?: number;
1777
+ /**
1778
+ * Maximum on-the-job minutes allowed in this category; must exceed min_minutes.
1779
+ */
1780
+ max_minutes?: number;
1781
+ };
1782
+ /**
1783
+ * Update a work process category on an occupation. Send only the fields to change; the occupation is taken from the URL path. Minutes are sent as integers. A null for a non-nullable field, a wrong JSON type, or max_minutes less than or equal to min_minutes answers 422. An unknown key answers 400.
1784
+ */
1785
+ export type ApprenticeshipWorkProcessCategoryUpdateParameters = {
1786
+ /**
1787
+ * Human-readable name for the work process category; omit to leave it unchanged.
1788
+ */
1789
+ name?: string;
1790
+ /**
1791
+ * Free-text description of the work process category; omit to leave it unchanged, or send null to clear.
1792
+ */
1793
+ description?: string | null;
1794
+ /**
1795
+ * Minimum on-the-job minutes required in this category; omit to leave it unchanged.
1796
+ */
1797
+ min_minutes?: number;
1798
+ /**
1799
+ * Maximum on-the-job minutes allowed in this category; must exceed min_minutes; omit to leave it unchanged.
1800
+ */
1801
+ max_minutes?: number;
1802
+ };
1724
1803
  /**
1725
1804
  * Create an authorization for an employer to employ apprentices in a program; only the program's sponsor may manage this roster.
1726
1805
  */
@@ -3551,6 +3630,149 @@ export type DepartmentUpdateParameters = {
3551
3630
  */
3552
3631
  description?: string | null;
3553
3632
  };
3633
+ /**
3634
+ * A company-level document — either an uploaded file or an external URL, never both.
3635
+ */
3636
+ export type CompanyDocumentResponseObject = {
3637
+ /**
3638
+ * Unique identifier.
3639
+ */
3640
+ id: string;
3641
+ /**
3642
+ * ID of the company that owns this record.
3643
+ */
3644
+ company_id: string;
3645
+ /**
3646
+ * Human-readable document name.
3647
+ */
3648
+ name: string;
3649
+ /**
3650
+ * Optional description; null when absent.
3651
+ */
3652
+ description: string | null;
3653
+ /**
3654
+ * External link when the document is a URL rather than an uploaded file; null when a file is attached.
3655
+ */
3656
+ url: string | null;
3657
+ /**
3658
+ * Labels on the document; empty when none are set.
3659
+ */
3660
+ tags: Array<string>;
3661
+ /**
3662
+ * When true, clients should download the file rather than preview it; null when unset.
3663
+ */
3664
+ always_download: boolean | null;
3665
+ /**
3666
+ * Id of the user recorded as the uploader.
3667
+ */
3668
+ uploaded_by_user_id: string;
3669
+ /**
3670
+ * The attached file's filename, content type, size, and URL; null when the document is a URL.
3671
+ */
3672
+ file: {
3673
+ /**
3674
+ * Stored name of the uploaded file.
3675
+ */
3676
+ filename: string;
3677
+ /**
3678
+ * MIME type of the file; null when not recorded.
3679
+ */
3680
+ content_type: string | null;
3681
+ /**
3682
+ * Size of the file in bytes.
3683
+ */
3684
+ byte_size: number;
3685
+ /**
3686
+ * A URL to download the file.
3687
+ */
3688
+ url: string;
3689
+ } | null;
3690
+ /**
3691
+ * When the record was created (ISO 8601).
3692
+ */
3693
+ created_at: string;
3694
+ /**
3695
+ * When the record was last updated (ISO 8601).
3696
+ */
3697
+ updated_at: string;
3698
+ };
3699
+ /**
3700
+ * A page of the company's documents, with pagination metadata and navigation links.
3701
+ */
3702
+ export type CompanyDocumentsResponseObject = {
3703
+ meta: Meta;
3704
+ links: Links;
3705
+ /**
3706
+ * The page of company documents.
3707
+ */
3708
+ data: Array<CompanyDocumentResponseObject>;
3709
+ };
3710
+ /**
3711
+ * Request body for creating a company document. The company is taken from the API key and is not part of the body. Supply exactly one of `url` or `file`. Company keys must send `performed_by_user_id`; user keys act as themselves.
3712
+ */
3713
+ export type CompanyDocumentParameters = {
3714
+ /**
3715
+ * Human-readable document name. Omission or a blank value answers 422.
3716
+ */
3717
+ name?: string;
3718
+ /**
3719
+ * Optional description. Null clears it on create to absent.
3720
+ */
3721
+ description?: string | null;
3722
+ /**
3723
+ * External https URL. Omit when supplying `file`. Sending both `url` and `file`, or neither, answers 422.
3724
+ */
3725
+ url?: string | null;
3726
+ /**
3727
+ * Labels to store on the document. Omit for none. Null answers 422.
3728
+ */
3729
+ tags?: Array<string>;
3730
+ /**
3731
+ * When true, clients should download the file rather than preview it.
3732
+ */
3733
+ always_download?: boolean;
3734
+ /**
3735
+ * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach. Register the upload naming `company_documents` — a signed_id issued for any other resource will not resolve here. Omit when supplying `url`. Null and a blank string answer 422.
3736
+ */
3737
+ file?: string;
3738
+ /**
3739
+ * Id of the user recorded as the uploader. Required for company keys (omission answers 400; a user outside the company answers 422). User keys act as themselves; a mismatched id answers 403.
3740
+ */
3741
+ performed_by_user_id?: string;
3742
+ };
3743
+ /**
3744
+ * Request body for updating a company document. Every field is optional; omit a field to preserve its current value. The resulting document must still be exactly one of `url` or `file`.
3745
+ */
3746
+ export type CompanyDocumentUpdateParameters = {
3747
+ /**
3748
+ * Replacement human-readable document name. A blank value answers 422.
3749
+ */
3750
+ name?: string;
3751
+ /**
3752
+ * Replacement description. Null clears it.
3753
+ */
3754
+ description?: string | null;
3755
+ /**
3756
+ * Replacement external https URL. Null clears it; the document must then have a file.
3757
+ */
3758
+ url?: string | null;
3759
+ /**
3760
+ * Replacement labels. An empty array clears them.
3761
+ */
3762
+ tags?: Array<string>;
3763
+ /**
3764
+ * When true, clients should download the file rather than preview it.
3765
+ */
3766
+ always_download?: boolean;
3767
+ /**
3768
+ * A signed_id from POST /api/v1/direct_uploads identifying a replacement blob. Register the upload naming `company_documents` — a signed_id issued for any other resource will not resolve here. Null removes the attachment; the document must then have a `url`.
3769
+ */
3770
+ file?: string | null;
3771
+ /**
3772
+ * Id of the user recorded as the filer of a replacement upload. Required for company keys when `file` is a signed id. User keys act as themselves.
3773
+ */
3774
+ performed_by_user_id?: string;
3775
+ };
3554
3776
  /**
3555
3777
  * A per-diem allowance recorded on a time card for a specific date. Its rate, currency, and taxable flag are snapshotted from the referenced catalog per diem when saved.
3556
3778
  */
@@ -5664,7 +5886,7 @@ export type JobUpdateParameters = {
5664
5886
  status?: 'completed' | 'cancelled' | 'disputed';
5665
5887
  };
5666
5888
  /**
5667
- * A reusable job template — a saved job pattern for quickly creating new jobs with the same setup. Read-only through the API (listing only).
5889
+ * A reusable job template — a saved job pattern for quickly creating new jobs with the same setup.
5668
5890
  */
5669
5891
  export type JobTemplateResponseObject = {
5670
5892
  /**
@@ -5679,6 +5901,48 @@ export type JobTemplateResponseObject = {
5679
5901
  * Description of the template; null when unset.
5680
5902
  */
5681
5903
  description: string | null;
5904
+ /**
5905
+ * ID of the Job this template holds.
5906
+ */
5907
+ job_id: string;
5908
+ };
5909
+ /**
5910
+ * Request body for creating a job template. Send fields in JSON; the template belongs to the company that owns the API key. Omit job_id for an empty template job; send it to copy a visible job. Company keys must send performed_by_user_id; user keys act as themselves.
5911
+ */
5912
+ export type JobTemplateParameters = {
5913
+ /**
5914
+ * Required display name. Omission answers 400; supplied null or a wrong type answers 422. Blank names fail model validation with 422.
5915
+ */
5916
+ name: string;
5917
+ /**
5918
+ * Optional description; null when unset.
5919
+ */
5920
+ description?: string | null;
5921
+ /**
5922
+ * ID of a visible job to copy into the new template. Omit or send null for an empty template job. An unknown or other-company id answers 404.
5923
+ */
5924
+ job_id?: string | null;
5925
+ /**
5926
+ * Create-only copy command — `empty` copies unfilled positions, `assigned` copies staffed positions. Omit or send null to copy no positions. Any other value answers 422.
5927
+ */
5928
+ position_option?: 'empty' | 'assigned' | null;
5929
+ /**
5930
+ * Company keys must name a company member who is recorded as the template job's creator. User keys act as themselves; a different id answers 403. Omission on a company key answers 400; a non-member answers 422.
5931
+ */
5932
+ performed_by_user_id?: string;
5933
+ };
5934
+ /**
5935
+ * Request body for updating a job template. Send only fields to change in JSON; omitted fields remain unchanged. job_id, position_option, and performed_by_user_id are create-only and answer 400.
5936
+ */
5937
+ export type JobTemplateUpdateParameters = {
5938
+ /**
5939
+ * The template's display name; omit to leave it unchanged. Supplied null, a wrong type, or a blank name answers 422.
5940
+ */
5941
+ name?: string;
5942
+ /**
5943
+ * The template's description; omit to leave it unchanged. Send null to clear it.
5944
+ */
5945
+ description?: string | null;
5682
5946
  };
5683
5947
  /**
5684
5948
  * A named collection of a company's users, used to organize people for assignment, filtering, and company workflows. Membership is managed through the nested group-users endpoints.
@@ -6911,73 +7175,6 @@ export type UserCompanyCreateParameters = {
6911
7175
  value: string | null;
6912
7176
  }>;
6913
7177
  };
6914
- /**
6915
- * A worker's scheduled compensation timeline at your company — the version currently in effect plus any future-dated versions.
6916
- */
6917
- export type UserCompanyScheduledChangesResponse = {
6918
- /**
6919
- * Id of the worker whose compensation timeline this is.
6920
- */
6921
- user_id: string;
6922
- current_version: UserCompanyScheduledChange;
6923
- /**
6924
- * Future-dated compensation versions, each taking effect on its start date, ordered earliest first.
6925
- */
6926
- scheduled_changes: Array<UserCompanyScheduledChange>;
6927
- };
6928
- /**
6929
- * Request body for scheduling a future-dated compensation change. effective_date sets when the new values take effect; earlier history is preserved as its own version. Covers the pay, benefit, accrual, and department fields.
6930
- */
6931
- export type UserCompanyScheduledChangesParameters = {
6932
- /**
6933
- * Date the new values take effect (YYYY-MM-DD). Must fall on or after the earliest allowed change date and, if the worker is terminating, before the termination date. Required.
6934
- */
6935
- effective_date: string;
6936
- /**
6937
- * Base hourly pay in cents as a decimal string (for example "3250" for 32.50). Omit to carry forward the preceding version, or send null to clear it; send "0" for zero. Applies only to hourly versions. A switch to salary clears it unless it is sent, a change that names no compensation_type leaves later salaried versions without it, and a value for a salaried version answers 422.
6938
- */
6939
- hourly_rate_cents?: string | null;
6940
- /**
6941
- * Annual training-fund contribution in cents as a decimal string. Omit to carry forward the preceding version, or send null to clear it; send "0" for zero.
6942
- */
6943
- training_annual_amount_cents?: string | null;
6944
- /**
6945
- * Employer-paid annual combined health benefit in cents as a decimal string. Omit to carry forward the preceding version, or send null to clear it; send "0" for zero.
6946
- */
6947
- employer_combined_health_amount_cents?: string | null;
6948
- /**
6949
- * Employer-paid annual combined savings and retirement benefit in cents as a decimal string. Omit to carry forward the preceding version, or send null to clear it; send "0" for zero.
6950
- */
6951
- employer_combined_savings_cents?: string | null;
6952
- /**
6953
- * How the worker is paid: hourly or salary.
6954
- */
6955
- compensation_type?: 'hourly' | 'salary';
6956
- /**
6957
- * Whether the worker is eligible for overtime pay.
6958
- */
6959
- overtime_eligible?: boolean;
6960
- /**
6961
- * Annualized minutes the worker is expected to work, used to annualize fringe benefits.
6962
- */
6963
- worked_annual_minutes?: number | null;
6964
- /**
6965
- * Paid time off accrued for the year, in minutes.
6966
- */
6967
- pto_annual_minutes?: number | null;
6968
- /**
6969
- * Holiday time accrued for the year, in minutes.
6970
- */
6971
- holiday_annual_minutes?: number | null;
6972
- /**
6973
- * Paid training time for the year, in minutes.
6974
- */
6975
- training_annual_minutes?: number | null;
6976
- /**
6977
- * Id of the department to assign the worker to from this date. Department is set only through scheduled changes.
6978
- */
6979
- companies_department_id?: string | null;
6980
- };
6981
7178
  /**
6982
7179
  * A work type: a named category of job activity, either a shared global default (no owning company) or an entry scoped to a specific company.
6983
7180
  */
@@ -7011,6 +7208,24 @@ export type WorkTypeResponseObject = {
7011
7208
  */
7012
7209
  updated_at: string;
7013
7210
  };
7211
+ /**
7212
+ * Request body for creating a work type. Send fields in JSON; the work type belongs to the company that owns the API key. `verified`, `specific_to_site_type`, and `scoped_to_company_id` are refused.
7213
+ */
7214
+ export type WorkTypeParameters = {
7215
+ /**
7216
+ * Required job type name (e.g. "Solar Panel Installation"), unique among the company's work types. Omission answers 400; supplied null or a wrong type answers 422. Blank values fail model validation with 422.
7217
+ */
7218
+ value: string;
7219
+ };
7220
+ /**
7221
+ * Request body for updating a work type. Send only fields to change in JSON; omitted fields remain unchanged. `verified`, `specific_to_site_type`, and `scoped_to_company_id` are refused.
7222
+ */
7223
+ export type WorkTypeUpdateParameters = {
7224
+ /**
7225
+ * The job type name (e.g. "Solar Panel Installation"), unique among the company's work types; omit to leave it unchanged. Supplied null, a wrong type, or a blank value answers 422.
7226
+ */
7227
+ value?: string;
7228
+ };
7014
7229
  /**
7015
7230
  * A function a worker can fulfill in a position — an entry in the company's job-title taxonomy (e.g. "Electrician", "Foreman"), either company-owned or a shared global default.
7016
7231
  */
@@ -7323,63 +7538,6 @@ export type TimeEntryDeltasResponse = {
7323
7538
  * Day of the week a job's workweek and time cards start on: 0 (Sunday) through 6 (Saturday).
7324
7539
  */
7325
7540
  export type TimeCardStartDay = 0 | 1 | 2 | 3 | 4 | 5 | 6;
7326
- /**
7327
- * One version of a worker's compensation at your company, effective from its start date until the next version begins.
7328
- */
7329
- export type UserCompanyScheduledChange = {
7330
- /**
7331
- * Unique identifier of this employment version.
7332
- */
7333
- id: string;
7334
- /**
7335
- * Date this version takes effect (ISO 8601). For a scheduled change this equals the effective_date that created it.
7336
- */
7337
- start_date: string;
7338
- /**
7339
- * Base hourly pay for this version in cents as a decimal string; null when unset.
7340
- */
7341
- hourly_rate_cents: string | null;
7342
- /**
7343
- * How the worker is paid: hourly or salary.
7344
- */
7345
- compensation_type: 'hourly' | 'salary';
7346
- /**
7347
- * Whether the worker is eligible for overtime pay in this version.
7348
- */
7349
- overtime_eligible: boolean;
7350
- /**
7351
- * Annual training-fund contribution in cents as a decimal string; null when unset.
7352
- */
7353
- training_annual_amount_cents: string | null;
7354
- /**
7355
- * Employer-paid annual combined health benefit in cents as a decimal string; null when unset.
7356
- */
7357
- employer_combined_health_amount_cents: string | null;
7358
- /**
7359
- * Employer-paid annual combined savings and retirement benefit in cents as a decimal string; null when unset.
7360
- */
7361
- employer_combined_savings_cents: string | null;
7362
- /**
7363
- * Annualized minutes the worker is expected to work in this version; null when unset.
7364
- */
7365
- worked_annual_minutes: number | null;
7366
- /**
7367
- * Paid time off accrued for the year, in minutes; null when unset.
7368
- */
7369
- pto_annual_minutes: number | null;
7370
- /**
7371
- * Holiday time accrued for the year, in minutes; null when unset.
7372
- */
7373
- holiday_annual_minutes: number | null;
7374
- /**
7375
- * Paid training time for the year, in minutes; null when unset.
7376
- */
7377
- training_annual_minutes: number | null;
7378
- /**
7379
- * Id of the department the worker is assigned to in this version; null when none.
7380
- */
7381
- companies_department_id: string | null;
7382
- };
7383
7541
  /**
7384
7542
  * Request body for scheduling the end of a worker's employment at your company. Sets the employment's end date; cancel the scheduled termination to restore open-ended employment. Deleting the employment record instead (DELETE on the membership) removes it entirely and is not reversible.
7385
7543
  */
@@ -11389,11 +11547,11 @@ export type JobCaEcprXmlExportCreateParameters = {
11389
11547
  end_date: string;
11390
11548
  };
11391
11549
  /**
11392
- * 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.
11550
+ * A job-scoped NY DOL 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.
11393
11551
  */
11394
- export type JobWh347ExportResponseObject = {
11552
+ export type JobNyDolXmlExportResponseObject = {
11395
11553
  /**
11396
- * Id of the WH-347 export row.
11554
+ * Id of the NY DOL XML export row.
11397
11555
  */
11398
11556
  id: string;
11399
11557
  /**
@@ -11409,15 +11567,15 @@ export type JobWh347ExportResponseObject = {
11409
11567
  */
11410
11568
  end_date: string;
11411
11569
  /**
11412
- * Generation-handle status — `pending`, `processing`, `signing`, `signed`, `certifying`, `success`, or `failed`. Create never enters the signing states; those appear only on jobs created in the web app.
11570
+ * Generation-handle status — `pending`, `processing`, `signing`, `signed`, `certifying`, `success`, or `failed`. NY DOL generation does not enter the signing states.
11413
11571
  */
11414
11572
  status: 'pending' | 'processing' | 'signing' | 'signed' | 'certifying' | 'success' | 'failed';
11415
11573
  /**
11416
- * The generated ZIP's filename, content type, size, and URL; null when no file is attached.
11574
+ * The generated file's filename, content type, size, and URL; null when no file is attached.
11417
11575
  */
11418
11576
  file: {
11419
11577
  /**
11420
- * Stored name of the generated ZIP.
11578
+ * Stored name of the generated file.
11421
11579
  */
11422
11580
  filename: string;
11423
11581
  /**
@@ -11442,29 +11600,25 @@ export type JobWh347ExportResponseObject = {
11442
11600
  */
11443
11601
  invalidation_reason: 'source_data_changed' | 'source_records_deleted' | 'ratio_status_changed' | null;
11444
11602
  /**
11445
- * WH-347 form version that was or will be generated — `v1` or `v2`. Server-selected on create.
11446
- */
11447
- version: 'v1' | 'v2';
11448
- /**
11449
- * When the WH-347 export row was created.
11603
+ * When the NY DOL XML export row was created.
11450
11604
  */
11451
11605
  created_at: string;
11452
11606
  };
11453
11607
  /**
11454
- * A page of a job's WH-347 certified-payroll exports, with pagination metadata and navigation links.
11608
+ * A page of a job's NY DOL XML certified-payroll exports, with pagination metadata and navigation links.
11455
11609
  */
11456
- export type JobWh347ExportsResponseObject = {
11610
+ export type JobNyDolXmlExportsResponseObject = {
11457
11611
  meta: Meta;
11458
11612
  links: Links;
11459
11613
  /**
11460
- * The page of WH-347 exports.
11614
+ * The page of NY DOL XML exports.
11461
11615
  */
11462
- data: Array<JobWh347ExportResponseObject>;
11616
+ data: Array<JobNyDolXmlExportResponseObject>;
11463
11617
  };
11464
11618
  /**
11465
- * Start a job-scoped WH-347 certified-payroll export over a calendar window. Creation requires a user-scoped API key, because the generation handle attributes the export to a person. The response is the pending export; poll the member GET for status and the file URL. Version, filename, and signing are server-owned. A job that does not offer WH-347 answers 422 certified_payroll_format_unavailable. A window with no reportable pay periods answers 422 nothing_exportable.
11619
+ * Start a job-scoped NY DOL 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 NY DOL XML answers 422 certified_payroll_format_unavailable. Failing compliance checks that block the export answer 422 certified_payroll_export_blocked. A window with no reportable pay periods answers 422 nothing_exportable.
11466
11620
  */
11467
- export type JobWh347ExportCreateParameters = {
11621
+ export type JobNyDolXmlExportCreateParameters = {
11468
11622
  /**
11469
11623
  * First calendar day of the filing window, `YYYY-MM-DD`. Required; omission answers 400. Must be on or before `end_date`.
11470
11624
  */
@@ -11475,113 +11629,35 @@ export type JobWh347ExportCreateParameters = {
11475
11629
  end_date: string;
11476
11630
  };
11477
11631
  /**
11478
- * A form-completion task attached to a job — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::JobFormAssignmentTask` id, not the web show `Task#uid`.
11479
- */
11480
- export type JobFormAssignmentResponseObject = {
11481
- /**
11482
- * Unique identifier.
11483
- */
11484
- id: string;
11485
- /**
11486
- * ID of the job this form task belongs to; always matches the job in the URL path.
11487
- */
11488
- job_id: string;
11489
- /**
11490
- * ID of the form definition (a SurveyJS form template) this assignment is for.
11491
- */
11492
- form_definition_id: string;
11493
- /**
11494
- * Name of the form task; defaults to the form definition's name.
11495
- */
11496
- name: string;
11497
- /**
11498
- * Free-text description of the task.
11499
- */
11500
- description: string | null;
11501
- /**
11502
- * IANA time zone in which time_due is interpreted; always set, defaulting to US/Central.
11503
- */
11504
- tz_name: string;
11505
- /**
11506
- * When the form task is due (ISO 8601), interpreted in tz_name; null for an unscheduled task.
11507
- */
11508
- time_due: string | null;
11509
- /**
11510
- * How often this form task recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment; on write, applied only when recurring is true.
11511
- */
11512
- frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
11513
- /**
11514
- * When recurrence stops (ISO 8601); null for a non-recurring or open-ended task.
11515
- */
11516
- recurrence_end_time: string | null;
11517
- /**
11518
- * IDs of the users this form task is assigned to.
11519
- */
11520
- task_assignee_user_ids: Array<string>;
11521
- /**
11522
- * Reminder notifications for this task, each scheduled at an offset from the due time.
11523
- */
11524
- reminders: Array<{
11525
- /**
11526
- * ISO 8601 duration offset from the due time for the reminder (e.g. -PT1H for one hour before); must be one of the preset reminder times.
11527
- */
11528
- offset: string;
11529
- /**
11530
- * When the reminder fires (ISO 8601), computed as the due time plus the offset.
11531
- */
11532
- remind_at: string;
11533
- }>;
11534
- };
11535
- /**
11536
- * A corrective payment recorded against a job's PWA obligations. Does not include pretty type, currency, or a Money amount.
11632
+ * 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.
11537
11633
  */
11538
- export type JobCurePaymentResponseObject = {
11634
+ export type JobWh347ExportResponseObject = {
11539
11635
  /**
11540
- * Id of the cure payment.
11636
+ * Id of the WH-347 export row.
11541
11637
  */
11542
11638
  id: string;
11543
11639
  /**
11544
- * Id of the job this payment belongs to.
11640
+ * Id of the job this export is scoped to. Always matches the job in the URL path.
11545
11641
  */
11546
11642
  job_id: string;
11547
11643
  /**
11548
- * Stored STI class name — `Pwa::CurePayments::Federal` or `Pwa::CurePayments::Regional`. The full class name, not a demodulized label.
11549
- */
11550
- type: 'Pwa::CurePayments::Federal' | 'Pwa::CurePayments::Regional';
11551
- /**
11552
- * Payment amount in cents as a decimal string (numeric(19,2)), for example `"150000.0"`. Not an integer, not dollars, and not rounded.
11553
- */
11554
- amount_cents: string;
11555
- /**
11556
- * Calendar date the payment was made.
11557
- */
11558
- paid_on_date: string;
11559
- /**
11560
- * First calendar day of the window this payment cures.
11561
- */
11562
- cures_from_date: string;
11563
- /**
11564
- * Last calendar day of the window this payment cures.
11644
+ * First calendar day of the filing window.
11565
11645
  */
11566
- cures_to_date: string;
11646
+ start_date: string;
11567
11647
  /**
11568
- * Optional notes; null when absent.
11648
+ * Last calendar day of the filing window.
11569
11649
  */
11570
- notes: string | null;
11650
+ end_date: string;
11571
11651
  /**
11572
- * Id of the user who recorded the payment.
11652
+ * Generation-handle status — `pending`, `processing`, `signing`, `signed`, `certifying`, `success`, or `failed`. Create never enters the signing states; those appear only on jobs created in the web app.
11573
11653
  */
11574
- created_by_user_id: string;
11654
+ status: 'pending' | 'processing' | 'signing' | 'signed' | 'certifying' | 'success' | 'failed';
11575
11655
  /**
11576
- * Attestation file for this payment, or null when none is attached.
11656
+ * The generated ZIP's filename, content type, size, and URL; null when no file is attached.
11577
11657
  */
11578
- attestation: {
11579
- /**
11580
- * ID of the attestation document; unchanged when the file is replaced.
11581
- */
11582
- id: string;
11658
+ file: {
11583
11659
  /**
11584
- * Stored name of the uploaded file.
11660
+ * Stored name of the generated ZIP.
11585
11661
  */
11586
11662
  filename: string;
11587
11663
  /**
@@ -11598,107 +11674,271 @@ export type JobCurePaymentResponseObject = {
11598
11674
  url: string;
11599
11675
  } | null;
11600
11676
  /**
11601
- * When the payment was created.
11602
- */
11603
- created_at: string;
11604
- /**
11605
- * When the payment was last updated.
11606
- */
11607
- updated_at: string;
11608
- };
11609
- /**
11610
- * Request body for creating a job PWA cure payment. `job_id` comes from the path and is not part of the body. `type`, `amount_cents`, the three dates, and `performed_by_user_id` are required; omitting any of those returns 400. The attestation file attaches through `attestation_signed_id` (a purpose-bound `jobs.pwa.cure_payments` signed id). Undeclared body keys return 400, and a null for a field that is not nullable or a wrongly typed value returns 422 at its pointer, before any payment is saved.
11611
- */
11612
- export type JobCurePaymentParameters = {
11613
- /**
11614
- * Payment amount in whole cents as a digit string, for example `"150000"`. A JSON integer, a fractional string, or a non-digit value answers 422.
11615
- */
11616
- amount_cents: string;
11617
- /**
11618
- * Calendar date the payment was made, as `YYYY-MM-DD`. Any other string, a timestamp included, answers 422. Must not be in the future.
11619
- */
11620
- paid_on_date: string;
11621
- /**
11622
- * First calendar day of the window this payment cures, as `YYYY-MM-DD`. Must be on or before `cures_to_date` and not in the future.
11623
- */
11624
- cures_from_date: string;
11625
- /**
11626
- * Last calendar day of the window this payment cures, as `YYYY-MM-DD`. Must be on or after `cures_from_date` and not in the future.
11627
- */
11628
- cures_to_date: string;
11629
- /**
11630
- * Optional notes; null stores absence.
11677
+ * When source data was observed to have drifted from this export; null when it has not.
11631
11678
  */
11632
- notes?: string | null;
11679
+ invalidated_at: string | null;
11633
11680
  /**
11634
- * A signed_id from POST /api/v1/direct_uploads registered for `jobs.pwa.cure_payments`. Omit the key to keep the stored file; a signed id creates or replaces the attestation document. Null or a blank string answers 422 — there is no clear.
11681
+ * Why the export was invalidated — `source_data_changed`, `source_records_deleted`, or `ratio_status_changed`. Null when `invalidated_at` is null.
11635
11682
  */
11636
- attestation_signed_id?: string;
11683
+ invalidation_reason: 'source_data_changed' | 'source_records_deleted' | 'ratio_status_changed' | null;
11637
11684
  /**
11638
- * ID of the user recorded as creator of the payment (and of a newly attached attestation). Required on create (omission answers 400). On update it is required when `attestation_signed_id` is present and ignored when that key is omitted. Supplied null, a blank ID, or a wrong type answers 422. A user the API key cannot see answers 404 `reference_not_found`. Replacing a populated attestation keeps the original document creator and records this user as the actor on the replacement's document history.
11685
+ * WH-347 form version that was or will be generated — `v1` or `v2`. Server-selected on create.
11639
11686
  */
11640
- performed_by_user_id: string;
11687
+ version: 'v1' | 'v2';
11641
11688
  /**
11642
- * Stored STI class name — `Pwa::CurePayments::Federal` or `Pwa::CurePayments::Regional`. Create-only; every update that includes it returns 400, even when unchanged.
11689
+ * When the WH-347 export row was created.
11643
11690
  */
11644
- type: 'Pwa::CurePayments::Federal' | 'Pwa::CurePayments::Regional';
11691
+ created_at: string;
11645
11692
  };
11646
11693
  /**
11647
- * Request body for updating a job PWA cure payment. Every field is optional; omit a field to preserve its current value. `type` is create-only; omit it on PATCH. Every update that includes it returns 400, even when unchanged. The attestation file attaches through the same `attestation_signed_id` key as create; omit the key to keep the stored file, and send `performed_by_user_id` when a signed id is present. Undeclared body keys return 400, and a null for a field that is not nullable or a wrongly typed value returns 422 at its pointer, before any payment changes.
11694
+ * A page of a job's WH-347 certified-payroll exports, with pagination metadata and navigation links.
11648
11695
  */
11649
- export type JobCurePaymentUpdateParameters = {
11650
- /**
11651
- * Replacement payment amount in whole cents as a digit string. A JSON integer, a fractional string, or a non-digit value answers 422. Omit to preserve the current amount.
11652
- */
11653
- amount_cents?: string;
11654
- /**
11655
- * Replacement calendar date the payment was made, as `YYYY-MM-DD`. Must not be in the future.
11656
- */
11657
- paid_on_date?: string;
11658
- /**
11659
- * Replacement first calendar day of the cured window, as `YYYY-MM-DD`.
11660
- */
11661
- cures_from_date?: string;
11662
- /**
11663
- * Replacement last calendar day of the cured window, as `YYYY-MM-DD`.
11664
- */
11665
- cures_to_date?: string;
11666
- /**
11667
- * Replacement notes; null stores absence. Omit to preserve the current value.
11668
- */
11669
- notes?: string | null;
11670
- /**
11671
- * A signed_id from POST /api/v1/direct_uploads registered for `jobs.pwa.cure_payments`. Omit the key to keep the stored file; a signed id creates or replaces the attestation document. Null or a blank string answers 422 — there is no clear. When this key is present, `performed_by_user_id` is required.
11672
- */
11673
- attestation_signed_id?: string;
11696
+ export type JobWh347ExportsResponseObject = {
11697
+ meta: Meta;
11698
+ links: Links;
11674
11699
  /**
11675
- * ID of the user recorded as creator of a newly attached attestation. Required when `attestation_signed_id` is present (omission then answers 400); ignored when that key is omitted. A user the API key cannot see answers 404 `reference_not_found`. Replacing a populated slot keeps the original creator and records this user as the actor on the replacement's document history.
11700
+ * The page of WH-347 exports.
11676
11701
  */
11677
- performed_by_user_id?: string;
11702
+ data: Array<JobWh347ExportResponseObject>;
11678
11703
  };
11679
11704
  /**
11680
- * A page of a job's PWA cure payments, with pagination metadata and navigation links.
11705
+ * Start a job-scoped WH-347 certified-payroll export over a calendar window. Creation requires a user-scoped API key, because the generation handle attributes the export to a person. The response is the pending export; poll the member GET for status and the file URL. Version, filename, and signing are server-owned. A job that does not offer WH-347 answers 422 certified_payroll_format_unavailable. A window with no reportable pay periods answers 422 nothing_exportable.
11681
11706
  */
11682
- export type JobCurePaymentsResponseObject = {
11683
- meta: Meta;
11684
- links: Links;
11707
+ export type JobWh347ExportCreateParameters = {
11685
11708
  /**
11686
- * The page of cure payments.
11709
+ * First calendar day of the filing window, `YYYY-MM-DD`. Required; omission answers 400. Must be on or before `end_date`.
11687
11710
  */
11688
- data: Array<JobCurePaymentResponseObject>;
11711
+ start_date: string;
11712
+ /**
11713
+ * Last calendar day of the filing window, `YYYY-MM-DD`. Required; omission answers 400. Must be on or after `start_date`.
11714
+ */
11715
+ end_date: string;
11689
11716
  };
11690
11717
  /**
11691
- * A form-completion task attached to a site — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::SiteFormAssignmentTask` id, not the web show `Task#uid`. Sites are shared across companies; another company's assignment on the same site is not found. An empty assignee list is valid.
11718
+ * A form-completion task attached to a job — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::JobFormAssignmentTask` id, not the web show `Task#uid`.
11692
11719
  */
11693
- export type SiteFormAssignmentResponseObject = {
11720
+ export type JobFormAssignmentResponseObject = {
11694
11721
  /**
11695
11722
  * Unique identifier.
11696
11723
  */
11697
11724
  id: string;
11698
11725
  /**
11699
- * ID of the site this form task belongs to; always matches the site in the URL path.
11726
+ * ID of the job this form task belongs to; always matches the job in the URL path.
11700
11727
  */
11701
- site_id: string;
11728
+ job_id: string;
11729
+ /**
11730
+ * ID of the form definition (a SurveyJS form template) this assignment is for.
11731
+ */
11732
+ form_definition_id: string;
11733
+ /**
11734
+ * Name of the form task; defaults to the form definition's name.
11735
+ */
11736
+ name: string;
11737
+ /**
11738
+ * Free-text description of the task.
11739
+ */
11740
+ description: string | null;
11741
+ /**
11742
+ * IANA time zone in which time_due is interpreted; always set, defaulting to US/Central.
11743
+ */
11744
+ tz_name: string;
11745
+ /**
11746
+ * When the form task is due (ISO 8601), interpreted in tz_name; null for an unscheduled task.
11747
+ */
11748
+ time_due: string | null;
11749
+ /**
11750
+ * How often this form task recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment; on write, applied only when recurring is true.
11751
+ */
11752
+ frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
11753
+ /**
11754
+ * When recurrence stops (ISO 8601); null for a non-recurring or open-ended task.
11755
+ */
11756
+ recurrence_end_time: string | null;
11757
+ /**
11758
+ * IDs of the users this form task is assigned to.
11759
+ */
11760
+ task_assignee_user_ids: Array<string>;
11761
+ /**
11762
+ * Reminder notifications for this task, each scheduled at an offset from the due time.
11763
+ */
11764
+ reminders: Array<{
11765
+ /**
11766
+ * ISO 8601 duration offset from the due time for the reminder (e.g. -PT1H for one hour before); must be one of the preset reminder times.
11767
+ */
11768
+ offset: string;
11769
+ /**
11770
+ * When the reminder fires (ISO 8601), computed as the due time plus the offset.
11771
+ */
11772
+ remind_at: string;
11773
+ }>;
11774
+ };
11775
+ /**
11776
+ * A corrective payment recorded against a job's PWA obligations. Does not include pretty type, currency, or a Money amount.
11777
+ */
11778
+ export type JobCurePaymentResponseObject = {
11779
+ /**
11780
+ * Id of the cure payment.
11781
+ */
11782
+ id: string;
11783
+ /**
11784
+ * Id of the job this payment belongs to.
11785
+ */
11786
+ job_id: string;
11787
+ /**
11788
+ * Stored STI class name — `Pwa::CurePayments::Federal` or `Pwa::CurePayments::Regional`. The full class name, not a demodulized label.
11789
+ */
11790
+ type: 'Pwa::CurePayments::Federal' | 'Pwa::CurePayments::Regional';
11791
+ /**
11792
+ * Payment amount in cents as a decimal string (numeric(19,2)), for example `"150000.0"`. Not an integer, not dollars, and not rounded.
11793
+ */
11794
+ amount_cents: string;
11795
+ /**
11796
+ * Calendar date the payment was made.
11797
+ */
11798
+ paid_on_date: string;
11799
+ /**
11800
+ * First calendar day of the window this payment cures.
11801
+ */
11802
+ cures_from_date: string;
11803
+ /**
11804
+ * Last calendar day of the window this payment cures.
11805
+ */
11806
+ cures_to_date: string;
11807
+ /**
11808
+ * Optional notes; null when absent.
11809
+ */
11810
+ notes: string | null;
11811
+ /**
11812
+ * Id of the user who recorded the payment.
11813
+ */
11814
+ created_by_user_id: string;
11815
+ /**
11816
+ * Attestation file for this payment, or null when none is attached.
11817
+ */
11818
+ attestation: {
11819
+ /**
11820
+ * ID of the attestation document; unchanged when the file is replaced.
11821
+ */
11822
+ id: string;
11823
+ /**
11824
+ * Stored name of the uploaded file.
11825
+ */
11826
+ filename: string;
11827
+ /**
11828
+ * MIME type of the file; null when not recorded.
11829
+ */
11830
+ content_type: string | null;
11831
+ /**
11832
+ * Size of the file in bytes.
11833
+ */
11834
+ byte_size: number;
11835
+ /**
11836
+ * A URL to download the file.
11837
+ */
11838
+ url: string;
11839
+ } | null;
11840
+ /**
11841
+ * When the payment was created.
11842
+ */
11843
+ created_at: string;
11844
+ /**
11845
+ * When the payment was last updated.
11846
+ */
11847
+ updated_at: string;
11848
+ };
11849
+ /**
11850
+ * Request body for creating a job PWA cure payment. `job_id` comes from the path and is not part of the body. `type`, `amount_cents`, the three dates, and `performed_by_user_id` are required; omitting any of those returns 400. The attestation file attaches through `attestation_signed_id` (a purpose-bound `jobs.pwa.cure_payments` signed id). Undeclared body keys return 400, and a null for a field that is not nullable or a wrongly typed value returns 422 at its pointer, before any payment is saved.
11851
+ */
11852
+ export type JobCurePaymentParameters = {
11853
+ /**
11854
+ * Payment amount in whole cents as a digit string, for example `"150000"`. A JSON integer, a fractional string, or a non-digit value answers 422.
11855
+ */
11856
+ amount_cents: string;
11857
+ /**
11858
+ * Calendar date the payment was made, as `YYYY-MM-DD`. Any other string, a timestamp included, answers 422. Must not be in the future.
11859
+ */
11860
+ paid_on_date: string;
11861
+ /**
11862
+ * First calendar day of the window this payment cures, as `YYYY-MM-DD`. Must be on or before `cures_to_date` and not in the future.
11863
+ */
11864
+ cures_from_date: string;
11865
+ /**
11866
+ * Last calendar day of the window this payment cures, as `YYYY-MM-DD`. Must be on or after `cures_from_date` and not in the future.
11867
+ */
11868
+ cures_to_date: string;
11869
+ /**
11870
+ * Optional notes; null stores absence.
11871
+ */
11872
+ notes?: string | null;
11873
+ /**
11874
+ * A signed_id from POST /api/v1/direct_uploads registered for `jobs.pwa.cure_payments`. Omit the key to keep the stored file; a signed id creates or replaces the attestation document. Null or a blank string answers 422 — there is no clear.
11875
+ */
11876
+ attestation_signed_id?: string;
11877
+ /**
11878
+ * ID of the user recorded as creator of the payment (and of a newly attached attestation). Required on create (omission answers 400). On update it is required when `attestation_signed_id` is present and ignored when that key is omitted. Supplied null, a blank ID, or a wrong type answers 422. A user the API key cannot see answers 404 `reference_not_found`. Replacing a populated attestation keeps the original document creator and records this user as the actor on the replacement's document history.
11879
+ */
11880
+ performed_by_user_id: string;
11881
+ /**
11882
+ * Stored STI class name — `Pwa::CurePayments::Federal` or `Pwa::CurePayments::Regional`. Create-only; every update that includes it returns 400, even when unchanged.
11883
+ */
11884
+ type: 'Pwa::CurePayments::Federal' | 'Pwa::CurePayments::Regional';
11885
+ };
11886
+ /**
11887
+ * Request body for updating a job PWA cure payment. Every field is optional; omit a field to preserve its current value. `type` is create-only; omit it on PATCH. Every update that includes it returns 400, even when unchanged. The attestation file attaches through the same `attestation_signed_id` key as create; omit the key to keep the stored file, and send `performed_by_user_id` when a signed id is present. Undeclared body keys return 400, and a null for a field that is not nullable or a wrongly typed value returns 422 at its pointer, before any payment changes.
11888
+ */
11889
+ export type JobCurePaymentUpdateParameters = {
11890
+ /**
11891
+ * Replacement payment amount in whole cents as a digit string. A JSON integer, a fractional string, or a non-digit value answers 422. Omit to preserve the current amount.
11892
+ */
11893
+ amount_cents?: string;
11894
+ /**
11895
+ * Replacement calendar date the payment was made, as `YYYY-MM-DD`. Must not be in the future.
11896
+ */
11897
+ paid_on_date?: string;
11898
+ /**
11899
+ * Replacement first calendar day of the cured window, as `YYYY-MM-DD`.
11900
+ */
11901
+ cures_from_date?: string;
11902
+ /**
11903
+ * Replacement last calendar day of the cured window, as `YYYY-MM-DD`.
11904
+ */
11905
+ cures_to_date?: string;
11906
+ /**
11907
+ * Replacement notes; null stores absence. Omit to preserve the current value.
11908
+ */
11909
+ notes?: string | null;
11910
+ /**
11911
+ * A signed_id from POST /api/v1/direct_uploads registered for `jobs.pwa.cure_payments`. Omit the key to keep the stored file; a signed id creates or replaces the attestation document. Null or a blank string answers 422 — there is no clear. When this key is present, `performed_by_user_id` is required.
11912
+ */
11913
+ attestation_signed_id?: string;
11914
+ /**
11915
+ * ID of the user recorded as creator of a newly attached attestation. Required when `attestation_signed_id` is present (omission then answers 400); ignored when that key is omitted. A user the API key cannot see answers 404 `reference_not_found`. Replacing a populated slot keeps the original creator and records this user as the actor on the replacement's document history.
11916
+ */
11917
+ performed_by_user_id?: string;
11918
+ };
11919
+ /**
11920
+ * A page of a job's PWA cure payments, with pagination metadata and navigation links.
11921
+ */
11922
+ export type JobCurePaymentsResponseObject = {
11923
+ meta: Meta;
11924
+ links: Links;
11925
+ /**
11926
+ * The page of cure payments.
11927
+ */
11928
+ data: Array<JobCurePaymentResponseObject>;
11929
+ };
11930
+ /**
11931
+ * A form-completion task attached to a site — a SurveyJS form assigned to users with a due time, optional recurrence, and reminders. Path `{id}` is the `Tasks::SiteFormAssignmentTask` id, not the web show `Task#uid`. Sites are shared across companies; another company's assignment on the same site is not found. An empty assignee list is valid.
11932
+ */
11933
+ export type SiteFormAssignmentResponseObject = {
11934
+ /**
11935
+ * Unique identifier.
11936
+ */
11937
+ id: string;
11938
+ /**
11939
+ * ID of the site this form task belongs to; always matches the site in the URL path.
11940
+ */
11941
+ site_id: string;
11702
11942
  /**
11703
11943
  * ID of the form definition (a SurveyJS form template) this assignment is for.
11704
11944
  */
@@ -15416,6 +15656,61 @@ export type PayRatesRuleHistoryVersionObject = {
15416
15656
  version_status: 'scheduled' | 'current' | 'historical';
15417
15657
  corrections: Array<PayRatesRuleHistoryCorrectionObject>;
15418
15658
  };
15659
+ /**
15660
+ * A company-owned collection of overtime rules, used as an employment and wage-determination fallback.
15661
+ */
15662
+ export type OvertimePackageResponseObject = {
15663
+ /**
15664
+ * Unique identifier of the overtime package.
15665
+ */
15666
+ id: string;
15667
+ /**
15668
+ * Human-readable package name.
15669
+ */
15670
+ name: string;
15671
+ /**
15672
+ * Free-form package description.
15673
+ */
15674
+ description: string;
15675
+ /**
15676
+ * Whether this is the company's default overtime package. Setting it to true demotes the previous default and migrates eligible employments onto this package.
15677
+ */
15678
+ default: boolean;
15679
+ };
15680
+ /**
15681
+ * Parameters for creating a company overtime package. `name` and `description` are required by the model; omitting either answers 422. The company and selectability are stamped by the server.
15682
+ */
15683
+ export type OvertimePackageParameters = {
15684
+ /**
15685
+ * Human-readable package name.
15686
+ */
15687
+ name?: string;
15688
+ /**
15689
+ * Free-form package description.
15690
+ */
15691
+ description?: string;
15692
+ /**
15693
+ * Whether this package becomes the company default. Omit or send false to leave the current default in place.
15694
+ */
15695
+ default?: boolean;
15696
+ };
15697
+ /**
15698
+ * Request body for updating a company overtime package. Send only the fields to change. Setting `default` to true demotes the previous default and migrates eligible employments onto this package.
15699
+ */
15700
+ export type OvertimePackageUpdateParameters = {
15701
+ /**
15702
+ * Human-readable package name. Omit to leave it unchanged.
15703
+ */
15704
+ name?: string;
15705
+ /**
15706
+ * Free-form package description. Omit to leave it unchanged.
15707
+ */
15708
+ description?: string;
15709
+ /**
15710
+ * Whether this package is the company default. Omit to leave it unchanged.
15711
+ */
15712
+ default?: boolean;
15713
+ };
15419
15714
  /**
15420
15715
  * An overtime rule (daily or weekly) belonging to an overtime package. It sets a pay multiplier that applies once a worked-hours threshold — and any day or date qualifier — is met. `valid_from`/`valid_to` bound the window this version is in effect.
15421
15716
  */
@@ -19155,6 +19450,184 @@ export type UpdateWageScheduleResponses = {
19155
19450
  200: ApprenticeshipWageScheduleResponseObject;
19156
19451
  };
19157
19452
  export type UpdateWageScheduleResponse = UpdateWageScheduleResponses[keyof UpdateWageScheduleResponses];
19453
+ export type ListWorkProcessCategoriesData = {
19454
+ body?: never;
19455
+ path: {
19456
+ occupation_id: string;
19457
+ };
19458
+ query?: {
19459
+ 'filter[created_at][gte]'?: string;
19460
+ 'filter[created_at][lte]'?: string;
19461
+ 'filter[updated_at][gte]'?: string;
19462
+ 'filter[updated_at][lte]'?: string;
19463
+ filter?: string;
19464
+ 'filter[unexpected]'?: string;
19465
+ /**
19466
+ * This pagination cursor corresponds to the cursor value found in the response in
19467
+ * `meta.page.next_cursor`.
19468
+ */
19469
+ 'page[cursor]'?: string;
19470
+ /**
19471
+ * 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`.
19472
+ */
19473
+ 'page[limit]'?: number;
19474
+ page?: string;
19475
+ };
19476
+ url: '/api/v1/apprenticeship/occupations/{occupation_id}/work_process_categories';
19477
+ };
19478
+ export type ListWorkProcessCategoriesErrors = {
19479
+ /**
19480
+ * Bad Request
19481
+ */
19482
+ 400: Problem;
19483
+ /**
19484
+ * Forbidden
19485
+ */
19486
+ 403: Problem;
19487
+ /**
19488
+ * Not Found
19489
+ */
19490
+ 404: Problem;
19491
+ /**
19492
+ * Unprocessable Content
19493
+ */
19494
+ 422: Problem;
19495
+ };
19496
+ export type ListWorkProcessCategoriesError = ListWorkProcessCategoriesErrors[keyof ListWorkProcessCategoriesErrors];
19497
+ export type ListWorkProcessCategoriesResponses = {
19498
+ /**
19499
+ * Success
19500
+ */
19501
+ 200: {
19502
+ meta: Meta;
19503
+ links: Links;
19504
+ data: Array<ApprenticeshipWorkProcessCategoryResponseObject>;
19505
+ };
19506
+ };
19507
+ export type ListWorkProcessCategoriesResponse = ListWorkProcessCategoriesResponses[keyof ListWorkProcessCategoriesResponses];
19508
+ export type CreateWorkProcessCategoryData = {
19509
+ body?: ApprenticeshipWorkProcessCategoryParameters;
19510
+ path: {
19511
+ occupation_id: string;
19512
+ };
19513
+ query?: never;
19514
+ url: '/api/v1/apprenticeship/occupations/{occupation_id}/work_process_categories';
19515
+ };
19516
+ export type CreateWorkProcessCategoryErrors = {
19517
+ /**
19518
+ * Bad Request
19519
+ */
19520
+ 400: Problem;
19521
+ /**
19522
+ * Forbidden
19523
+ */
19524
+ 403: Problem;
19525
+ /**
19526
+ * Unprocessable Content
19527
+ */
19528
+ 422: Problem;
19529
+ };
19530
+ export type CreateWorkProcessCategoryError = CreateWorkProcessCategoryErrors[keyof CreateWorkProcessCategoryErrors];
19531
+ export type CreateWorkProcessCategoryResponses = {
19532
+ /**
19533
+ * Created
19534
+ */
19535
+ 201: ApprenticeshipWorkProcessCategoryResponseObject;
19536
+ };
19537
+ export type CreateWorkProcessCategoryResponse = CreateWorkProcessCategoryResponses[keyof CreateWorkProcessCategoryResponses];
19538
+ export type DeleteWorkProcessCategoryData = {
19539
+ body?: never;
19540
+ path: {
19541
+ occupation_id: string;
19542
+ id: string;
19543
+ };
19544
+ query?: never;
19545
+ url: '/api/v1/apprenticeship/occupations/{occupation_id}/work_process_categories/{id}';
19546
+ };
19547
+ export type DeleteWorkProcessCategoryErrors = {
19548
+ /**
19549
+ * Forbidden
19550
+ */
19551
+ 403: Problem;
19552
+ /**
19553
+ * Not Found
19554
+ */
19555
+ 404: Problem;
19556
+ /**
19557
+ * Unprocessable Content
19558
+ */
19559
+ 422: Problem;
19560
+ };
19561
+ export type DeleteWorkProcessCategoryError = DeleteWorkProcessCategoryErrors[keyof DeleteWorkProcessCategoryErrors];
19562
+ export type DeleteWorkProcessCategoryResponses = {
19563
+ /**
19564
+ * No Content
19565
+ */
19566
+ 204: void;
19567
+ };
19568
+ export type DeleteWorkProcessCategoryResponse = DeleteWorkProcessCategoryResponses[keyof DeleteWorkProcessCategoryResponses];
19569
+ export type GetWorkProcessCategoryData = {
19570
+ body?: never;
19571
+ path: {
19572
+ occupation_id: string;
19573
+ id: string;
19574
+ };
19575
+ query?: never;
19576
+ url: '/api/v1/apprenticeship/occupations/{occupation_id}/work_process_categories/{id}';
19577
+ };
19578
+ export type GetWorkProcessCategoryErrors = {
19579
+ /**
19580
+ * Forbidden
19581
+ */
19582
+ 403: Problem;
19583
+ /**
19584
+ * Not Found
19585
+ */
19586
+ 404: Problem;
19587
+ };
19588
+ export type GetWorkProcessCategoryError = GetWorkProcessCategoryErrors[keyof GetWorkProcessCategoryErrors];
19589
+ export type GetWorkProcessCategoryResponses = {
19590
+ /**
19591
+ * Success
19592
+ */
19593
+ 200: ApprenticeshipWorkProcessCategoryResponseObject;
19594
+ };
19595
+ export type GetWorkProcessCategoryResponse = GetWorkProcessCategoryResponses[keyof GetWorkProcessCategoryResponses];
19596
+ export type UpdateWorkProcessCategoryData = {
19597
+ body?: ApprenticeshipWorkProcessCategoryUpdateParameters;
19598
+ path: {
19599
+ occupation_id: string;
19600
+ id: string;
19601
+ };
19602
+ query?: never;
19603
+ url: '/api/v1/apprenticeship/occupations/{occupation_id}/work_process_categories/{id}';
19604
+ };
19605
+ export type UpdateWorkProcessCategoryErrors = {
19606
+ /**
19607
+ * Bad Request
19608
+ */
19609
+ 400: Problem;
19610
+ /**
19611
+ * Forbidden
19612
+ */
19613
+ 403: Problem;
19614
+ /**
19615
+ * Not Found
19616
+ */
19617
+ 404: Problem;
19618
+ /**
19619
+ * Unprocessable Content
19620
+ */
19621
+ 422: Problem;
19622
+ };
19623
+ export type UpdateWorkProcessCategoryError = UpdateWorkProcessCategoryErrors[keyof UpdateWorkProcessCategoryErrors];
19624
+ export type UpdateWorkProcessCategoryResponses = {
19625
+ /**
19626
+ * Success
19627
+ */
19628
+ 200: ApprenticeshipWorkProcessCategoryResponseObject;
19629
+ };
19630
+ export type UpdateWorkProcessCategoryResponse = UpdateWorkProcessCategoryResponses[keyof UpdateWorkProcessCategoryResponses];
19158
19631
  export type ListAttributesData = {
19159
19632
  body?: never;
19160
19633
  path?: never;
@@ -23616,6 +24089,165 @@ export type UpdateCompanyProfileResponses = {
23616
24089
  200: CompanyResponseObject;
23617
24090
  };
23618
24091
  export type UpdateCompanyProfileResponse = UpdateCompanyProfileResponses[keyof UpdateCompanyProfileResponses];
24092
+ export type ListCompanyDocumentsData = {
24093
+ body?: never;
24094
+ path?: never;
24095
+ query?: {
24096
+ 'filter[created_at][gte]'?: string;
24097
+ 'filter[created_at][lte]'?: string;
24098
+ 'filter[updated_at][gte]'?: string;
24099
+ 'filter[updated_at][lte]'?: string;
24100
+ filter?: string;
24101
+ 'filter[unexpected]'?: string;
24102
+ /**
24103
+ * This pagination cursor corresponds to the cursor value found in the response in
24104
+ * `meta.page.next_cursor`.
24105
+ */
24106
+ 'page[cursor]'?: string;
24107
+ /**
24108
+ * 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`.
24109
+ */
24110
+ 'page[limit]'?: number;
24111
+ page?: string;
24112
+ };
24113
+ url: '/api/v1/company_documents';
24114
+ };
24115
+ export type ListCompanyDocumentsErrors = {
24116
+ /**
24117
+ * Bad Request
24118
+ */
24119
+ 400: Problem;
24120
+ /**
24121
+ * Forbidden
24122
+ */
24123
+ 403: Problem;
24124
+ /**
24125
+ * Unprocessable Content
24126
+ */
24127
+ 422: Problem;
24128
+ };
24129
+ export type ListCompanyDocumentsError = ListCompanyDocumentsErrors[keyof ListCompanyDocumentsErrors];
24130
+ export type ListCompanyDocumentsResponses = {
24131
+ /**
24132
+ * Success
24133
+ */
24134
+ 200: CompanyDocumentsResponseObject;
24135
+ };
24136
+ export type ListCompanyDocumentsResponse = ListCompanyDocumentsResponses[keyof ListCompanyDocumentsResponses];
24137
+ export type CreateCompanyDocumentData = {
24138
+ body: CompanyDocumentParameters;
24139
+ path?: never;
24140
+ query?: never;
24141
+ url: '/api/v1/company_documents';
24142
+ };
24143
+ export type CreateCompanyDocumentErrors = {
24144
+ /**
24145
+ * Bad Request (missing performed_by_user_id)
24146
+ */
24147
+ 400: Problem;
24148
+ /**
24149
+ * Forbidden
24150
+ */
24151
+ 403: Problem;
24152
+ /**
24153
+ * Unprocessable Content
24154
+ */
24155
+ 422: Problem;
24156
+ };
24157
+ export type CreateCompanyDocumentError = CreateCompanyDocumentErrors[keyof CreateCompanyDocumentErrors];
24158
+ export type CreateCompanyDocumentResponses = {
24159
+ /**
24160
+ * Created
24161
+ */
24162
+ 201: CompanyDocumentResponseObject;
24163
+ };
24164
+ export type CreateCompanyDocumentResponse = CreateCompanyDocumentResponses[keyof CreateCompanyDocumentResponses];
24165
+ export type DeleteCompanyDocumentData = {
24166
+ body?: never;
24167
+ path: {
24168
+ id: string;
24169
+ };
24170
+ query?: never;
24171
+ url: '/api/v1/company_documents/{id}';
24172
+ };
24173
+ export type DeleteCompanyDocumentErrors = {
24174
+ /**
24175
+ * Forbidden
24176
+ */
24177
+ 403: Problem;
24178
+ /**
24179
+ * Not Found
24180
+ */
24181
+ 404: Problem;
24182
+ };
24183
+ export type DeleteCompanyDocumentError = DeleteCompanyDocumentErrors[keyof DeleteCompanyDocumentErrors];
24184
+ export type DeleteCompanyDocumentResponses = {
24185
+ /**
24186
+ * No Content
24187
+ */
24188
+ 204: void;
24189
+ };
24190
+ export type DeleteCompanyDocumentResponse = DeleteCompanyDocumentResponses[keyof DeleteCompanyDocumentResponses];
24191
+ export type GetCompanyDocumentData = {
24192
+ body?: never;
24193
+ path: {
24194
+ id: string;
24195
+ };
24196
+ query?: never;
24197
+ url: '/api/v1/company_documents/{id}';
24198
+ };
24199
+ export type GetCompanyDocumentErrors = {
24200
+ /**
24201
+ * Forbidden
24202
+ */
24203
+ 403: Problem;
24204
+ /**
24205
+ * Not Found
24206
+ */
24207
+ 404: Problem;
24208
+ };
24209
+ export type GetCompanyDocumentError = GetCompanyDocumentErrors[keyof GetCompanyDocumentErrors];
24210
+ export type GetCompanyDocumentResponses = {
24211
+ /**
24212
+ * Success
24213
+ */
24214
+ 200: CompanyDocumentResponseObject;
24215
+ };
24216
+ export type GetCompanyDocumentResponse = GetCompanyDocumentResponses[keyof GetCompanyDocumentResponses];
24217
+ export type UpdateCompanyDocumentData = {
24218
+ body: CompanyDocumentUpdateParameters;
24219
+ path: {
24220
+ id: string;
24221
+ };
24222
+ query?: never;
24223
+ url: '/api/v1/company_documents/{id}';
24224
+ };
24225
+ export type UpdateCompanyDocumentErrors = {
24226
+ /**
24227
+ * Bad Request
24228
+ */
24229
+ 400: Problem;
24230
+ /**
24231
+ * Forbidden
24232
+ */
24233
+ 403: Problem;
24234
+ /**
24235
+ * Not Found
24236
+ */
24237
+ 404: Problem;
24238
+ /**
24239
+ * Unprocessable Content
24240
+ */
24241
+ 422: Problem;
24242
+ };
24243
+ export type UpdateCompanyDocumentError = UpdateCompanyDocumentErrors[keyof UpdateCompanyDocumentErrors];
24244
+ export type UpdateCompanyDocumentResponses = {
24245
+ /**
24246
+ * Success
24247
+ */
24248
+ 200: CompanyDocumentResponseObject;
24249
+ };
24250
+ export type UpdateCompanyDocumentResponse = UpdateCompanyDocumentResponses[keyof UpdateCompanyDocumentResponses];
23619
24251
  export type ListAssessmentsData = {
23620
24252
  body?: never;
23621
24253
  path?: never;
@@ -27314,6 +27946,114 @@ export type GetCaEcprXmlExportResponses = {
27314
27946
  200: JobCaEcprXmlExportResponseObject;
27315
27947
  };
27316
27948
  export type GetCaEcprXmlExportResponse = GetCaEcprXmlExportResponses[keyof GetCaEcprXmlExportResponses];
27949
+ export type ListNyDolXmlExportsData = {
27950
+ body?: never;
27951
+ path: {
27952
+ job_id: string;
27953
+ };
27954
+ query?: {
27955
+ /**
27956
+ * 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.
27957
+ */
27958
+ 'filter[status]'?: string;
27959
+ filter?: string;
27960
+ 'filter[unexpected]'?: string;
27961
+ /**
27962
+ * This pagination cursor corresponds to the cursor value found in the response in
27963
+ * `meta.page.next_cursor`.
27964
+ */
27965
+ 'page[cursor]'?: string;
27966
+ /**
27967
+ * 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`.
27968
+ */
27969
+ 'page[limit]'?: number;
27970
+ page?: string;
27971
+ };
27972
+ url: '/api/v1/jobs/{job_id}/pwa/certified_payrolls/ny_dol_xml_exports';
27973
+ };
27974
+ export type ListNyDolXmlExportsErrors = {
27975
+ /**
27976
+ * Bad Request
27977
+ */
27978
+ 400: Problem;
27979
+ /**
27980
+ * Forbidden
27981
+ */
27982
+ 403: Problem;
27983
+ /**
27984
+ * Not Found
27985
+ */
27986
+ 404: Problem;
27987
+ };
27988
+ export type ListNyDolXmlExportsError = ListNyDolXmlExportsErrors[keyof ListNyDolXmlExportsErrors];
27989
+ export type ListNyDolXmlExportsResponses = {
27990
+ /**
27991
+ * Success
27992
+ */
27993
+ 200: JobNyDolXmlExportsResponseObject;
27994
+ };
27995
+ export type ListNyDolXmlExportsResponse = ListNyDolXmlExportsResponses[keyof ListNyDolXmlExportsResponses];
27996
+ export type CreateNyDolXmlExportData = {
27997
+ body: JobNyDolXmlExportCreateParameters;
27998
+ path: {
27999
+ job_id: string;
28000
+ };
28001
+ query?: never;
28002
+ url: '/api/v1/jobs/{job_id}/pwa/certified_payrolls/ny_dol_xml_exports';
28003
+ };
28004
+ export type CreateNyDolXmlExportErrors = {
28005
+ /**
28006
+ * Bad Request
28007
+ */
28008
+ 400: Problem;
28009
+ /**
28010
+ * Forbidden
28011
+ */
28012
+ 403: Problem;
28013
+ /**
28014
+ * Not Found
28015
+ */
28016
+ 404: Problem;
28017
+ /**
28018
+ * Unprocessable Content
28019
+ */
28020
+ 422: Problem;
28021
+ };
28022
+ export type CreateNyDolXmlExportError = CreateNyDolXmlExportErrors[keyof CreateNyDolXmlExportErrors];
28023
+ export type CreateNyDolXmlExportResponses = {
28024
+ /**
28025
+ * Created
28026
+ */
28027
+ 201: JobNyDolXmlExportResponseObject;
28028
+ };
28029
+ export type CreateNyDolXmlExportResponse = CreateNyDolXmlExportResponses[keyof CreateNyDolXmlExportResponses];
28030
+ export type GetNyDolXmlExportData = {
28031
+ body?: never;
28032
+ path: {
28033
+ job_id: string;
28034
+ id: string;
28035
+ };
28036
+ query?: never;
28037
+ url: '/api/v1/jobs/{job_id}/pwa/certified_payrolls/ny_dol_xml_exports/{id}';
28038
+ };
28039
+ export type GetNyDolXmlExportErrors = {
28040
+ /**
28041
+ * Forbidden
28042
+ */
28043
+ 403: Problem;
28044
+ /**
28045
+ * Not Found
28046
+ */
28047
+ 404: Problem;
28048
+ };
28049
+ export type GetNyDolXmlExportError = GetNyDolXmlExportErrors[keyof GetNyDolXmlExportErrors];
28050
+ export type GetNyDolXmlExportResponses = {
28051
+ /**
28052
+ * Success
28053
+ */
28054
+ 200: JobNyDolXmlExportResponseObject;
28055
+ };
28056
+ export type GetNyDolXmlExportResponse = GetNyDolXmlExportResponses[keyof GetNyDolXmlExportResponses];
27317
28057
  export type ListWh347ExportsData = {
27318
28058
  body?: never;
27319
28059
  path: {
@@ -30055,6 +30795,165 @@ export type UpdateOvertimeRuleResponses = {
30055
30795
  200: OvertimeRuleResponseObject;
30056
30796
  };
30057
30797
  export type UpdateOvertimeRuleResponse = UpdateOvertimeRuleResponses[keyof UpdateOvertimeRuleResponses];
30798
+ export type ListOvertimePackagesData = {
30799
+ body?: never;
30800
+ path?: never;
30801
+ query?: {
30802
+ filter?: string;
30803
+ 'filter[unexpected]'?: string;
30804
+ /**
30805
+ * This pagination cursor corresponds to the cursor value found in the response in
30806
+ * `meta.page.next_cursor`.
30807
+ */
30808
+ 'page[cursor]'?: string;
30809
+ /**
30810
+ * 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`.
30811
+ */
30812
+ 'page[limit]'?: number;
30813
+ page?: string;
30814
+ };
30815
+ url: '/api/v1/overtime_packages';
30816
+ };
30817
+ export type ListOvertimePackagesErrors = {
30818
+ /**
30819
+ * Bad Request
30820
+ */
30821
+ 400: Problem;
30822
+ /**
30823
+ * Forbidden
30824
+ */
30825
+ 403: Problem;
30826
+ };
30827
+ export type ListOvertimePackagesError = ListOvertimePackagesErrors[keyof ListOvertimePackagesErrors];
30828
+ export type ListOvertimePackagesResponses = {
30829
+ /**
30830
+ * Success
30831
+ */
30832
+ 200: {
30833
+ meta: Meta;
30834
+ links: Links;
30835
+ data: Array<OvertimePackageResponseObject>;
30836
+ };
30837
+ };
30838
+ export type ListOvertimePackagesResponse = ListOvertimePackagesResponses[keyof ListOvertimePackagesResponses];
30839
+ export type CreateOvertimePackageData = {
30840
+ body: OvertimePackageParameters;
30841
+ path?: never;
30842
+ query?: never;
30843
+ url: '/api/v1/overtime_packages';
30844
+ };
30845
+ export type CreateOvertimePackageErrors = {
30846
+ /**
30847
+ * Bad Request
30848
+ */
30849
+ 400: Problem;
30850
+ /**
30851
+ * Forbidden
30852
+ */
30853
+ 403: Problem;
30854
+ /**
30855
+ * Unprocessable Content
30856
+ */
30857
+ 422: Problem;
30858
+ };
30859
+ export type CreateOvertimePackageError = CreateOvertimePackageErrors[keyof CreateOvertimePackageErrors];
30860
+ export type CreateOvertimePackageResponses = {
30861
+ /**
30862
+ * Created
30863
+ */
30864
+ 201: OvertimePackageResponseObject;
30865
+ };
30866
+ export type CreateOvertimePackageResponse = CreateOvertimePackageResponses[keyof CreateOvertimePackageResponses];
30867
+ export type DeleteOvertimePackageData = {
30868
+ body?: never;
30869
+ path: {
30870
+ id: string;
30871
+ };
30872
+ query?: never;
30873
+ url: '/api/v1/overtime_packages/{id}';
30874
+ };
30875
+ export type DeleteOvertimePackageErrors = {
30876
+ /**
30877
+ * Forbidden
30878
+ */
30879
+ 403: Problem;
30880
+ /**
30881
+ * Not Found
30882
+ */
30883
+ 404: Problem;
30884
+ /**
30885
+ * Unprocessable Content
30886
+ */
30887
+ 422: Problem;
30888
+ };
30889
+ export type DeleteOvertimePackageError = DeleteOvertimePackageErrors[keyof DeleteOvertimePackageErrors];
30890
+ export type DeleteOvertimePackageResponses = {
30891
+ /**
30892
+ * No Content
30893
+ */
30894
+ 204: void;
30895
+ };
30896
+ export type DeleteOvertimePackageResponse = DeleteOvertimePackageResponses[keyof DeleteOvertimePackageResponses];
30897
+ export type GetOvertimePackageData = {
30898
+ body?: never;
30899
+ path: {
30900
+ id: string;
30901
+ };
30902
+ query?: never;
30903
+ url: '/api/v1/overtime_packages/{id}';
30904
+ };
30905
+ export type GetOvertimePackageErrors = {
30906
+ /**
30907
+ * Forbidden
30908
+ */
30909
+ 403: Problem;
30910
+ /**
30911
+ * Not Found
30912
+ */
30913
+ 404: Problem;
30914
+ };
30915
+ export type GetOvertimePackageError = GetOvertimePackageErrors[keyof GetOvertimePackageErrors];
30916
+ export type GetOvertimePackageResponses = {
30917
+ /**
30918
+ * Success
30919
+ */
30920
+ 200: OvertimePackageResponseObject;
30921
+ };
30922
+ export type GetOvertimePackageResponse = GetOvertimePackageResponses[keyof GetOvertimePackageResponses];
30923
+ export type UpdateOvertimePackageData = {
30924
+ body?: OvertimePackageUpdateParameters;
30925
+ path: {
30926
+ id: string;
30927
+ };
30928
+ query?: never;
30929
+ url: '/api/v1/overtime_packages/{id}';
30930
+ };
30931
+ export type UpdateOvertimePackageErrors = {
30932
+ /**
30933
+ * Bad Request
30934
+ */
30935
+ 400: Problem;
30936
+ /**
30937
+ * Forbidden
30938
+ */
30939
+ 403: Problem;
30940
+ /**
30941
+ * Not Found
30942
+ */
30943
+ 404: Problem;
30944
+ /**
30945
+ * Unprocessable Content
30946
+ */
30947
+ 422: Problem;
30948
+ };
30949
+ export type UpdateOvertimePackageError = UpdateOvertimePackageErrors[keyof UpdateOvertimePackageErrors];
30950
+ export type UpdateOvertimePackageResponses = {
30951
+ /**
30952
+ * Success
30953
+ */
30954
+ 200: OvertimePackageResponseObject;
30955
+ };
30956
+ export type UpdateOvertimePackageResponse = UpdateOvertimePackageResponses[keyof UpdateOvertimePackageResponses];
30058
30957
  export type ShiftPayRateRuleGenesisData = {
30059
30958
  body: PayRatesRuleGenesisParameters;
30060
30959
  headers: {
@@ -36479,6 +37378,128 @@ export type ListTemplatesResponses = {
36479
37378
  };
36480
37379
  };
36481
37380
  export type ListTemplatesResponse = ListTemplatesResponses[keyof ListTemplatesResponses];
37381
+ export type CreateTemplateData = {
37382
+ body?: JobTemplateParameters;
37383
+ path?: never;
37384
+ query?: never;
37385
+ url: '/api/v1/jobs/templates';
37386
+ };
37387
+ export type CreateTemplateErrors = {
37388
+ /**
37389
+ * Bad Request (missing performed_by_user_id)
37390
+ */
37391
+ 400: Problem;
37392
+ /**
37393
+ * Forbidden
37394
+ */
37395
+ 403: Problem;
37396
+ /**
37397
+ * Not Found
37398
+ */
37399
+ 404: Problem;
37400
+ /**
37401
+ * Unprocessable Content
37402
+ */
37403
+ 422: Problem;
37404
+ };
37405
+ export type CreateTemplateError = CreateTemplateErrors[keyof CreateTemplateErrors];
37406
+ export type CreateTemplateResponses = {
37407
+ /**
37408
+ * Created
37409
+ */
37410
+ 201: JobTemplateResponseObject;
37411
+ };
37412
+ export type CreateTemplateResponse = CreateTemplateResponses[keyof CreateTemplateResponses];
37413
+ export type DeleteTemplateData = {
37414
+ body?: never;
37415
+ path: {
37416
+ id: string;
37417
+ };
37418
+ query?: never;
37419
+ url: '/api/v1/jobs/templates/{id}';
37420
+ };
37421
+ export type DeleteTemplateErrors = {
37422
+ /**
37423
+ * Forbidden
37424
+ */
37425
+ 403: Problem;
37426
+ /**
37427
+ * Not Found
37428
+ */
37429
+ 404: Problem;
37430
+ /**
37431
+ * Unprocessable Content
37432
+ */
37433
+ 422: Problem;
37434
+ };
37435
+ export type DeleteTemplateError = DeleteTemplateErrors[keyof DeleteTemplateErrors];
37436
+ export type DeleteTemplateResponses = {
37437
+ /**
37438
+ * No Content
37439
+ */
37440
+ 204: void;
37441
+ };
37442
+ export type DeleteTemplateResponse = DeleteTemplateResponses[keyof DeleteTemplateResponses];
37443
+ export type GetTemplateData = {
37444
+ body?: never;
37445
+ path: {
37446
+ id: string;
37447
+ };
37448
+ query?: never;
37449
+ url: '/api/v1/jobs/templates/{id}';
37450
+ };
37451
+ export type GetTemplateErrors = {
37452
+ /**
37453
+ * Forbidden
37454
+ */
37455
+ 403: Problem;
37456
+ /**
37457
+ * Not Found
37458
+ */
37459
+ 404: Problem;
37460
+ };
37461
+ export type GetTemplateError = GetTemplateErrors[keyof GetTemplateErrors];
37462
+ export type GetTemplateResponses = {
37463
+ /**
37464
+ * Success
37465
+ */
37466
+ 200: JobTemplateResponseObject;
37467
+ };
37468
+ export type GetTemplateResponse = GetTemplateResponses[keyof GetTemplateResponses];
37469
+ export type UpdateTemplateData = {
37470
+ body?: JobTemplateUpdateParameters;
37471
+ path: {
37472
+ id: string;
37473
+ };
37474
+ query?: never;
37475
+ url: '/api/v1/jobs/templates/{id}';
37476
+ };
37477
+ export type UpdateTemplateErrors = {
37478
+ /**
37479
+ * Bad Request (create-only job_id)
37480
+ */
37481
+ 400: Problem;
37482
+ /**
37483
+ * Forbidden
37484
+ */
37485
+ 403: Problem;
37486
+ /**
37487
+ * Not Found
37488
+ */
37489
+ 404: Problem;
37490
+ /**
37491
+ * Unprocessable Content
37492
+ */
37493
+ 422: Problem;
37494
+ };
37495
+ export type UpdateTemplateError = UpdateTemplateErrors[keyof UpdateTemplateErrors];
37496
+ export type UpdateTemplateResponses = {
37497
+ /**
37498
+ * Success
37499
+ */
37500
+ 200: JobTemplateResponseObject;
37501
+ };
37502
+ export type UpdateTemplateResponse = UpdateTemplateResponses[keyof UpdateTemplateResponses];
36482
37503
  export type ListAdjustableLineItemsData = {
36483
37504
  body?: never;
36484
37505
  path: {
@@ -38936,136 +39957,6 @@ export type DeleteUserRoleResponses = {
38936
39957
  200: UserRoleResponse;
38937
39958
  };
38938
39959
  export type DeleteUserRoleResponse = DeleteUserRoleResponses[keyof DeleteUserRoleResponses];
38939
- export type ListUserCompanyScheduledChangesData = {
38940
- body?: never;
38941
- path: {
38942
- user_id: string;
38943
- company_id: string;
38944
- };
38945
- query?: never;
38946
- url: '/api/v1/users/{user_id}/companies/{company_id}/scheduled_changes';
38947
- };
38948
- export type ListUserCompanyScheduledChangesErrors = {
38949
- /**
38950
- * Forbidden
38951
- */
38952
- 403: Problem;
38953
- /**
38954
- * Not Found
38955
- */
38956
- 404: Problem;
38957
- };
38958
- export type ListUserCompanyScheduledChangesError = ListUserCompanyScheduledChangesErrors[keyof ListUserCompanyScheduledChangesErrors];
38959
- export type ListUserCompanyScheduledChangesResponses = {
38960
- /**
38961
- * Success
38962
- */
38963
- 200: UserCompanyScheduledChangesResponse;
38964
- };
38965
- export type ListUserCompanyScheduledChangesResponse = ListUserCompanyScheduledChangesResponses[keyof ListUserCompanyScheduledChangesResponses];
38966
- export type CreateUserCompanyScheduledChangeData = {
38967
- body: UserCompanyScheduledChangesParameters;
38968
- path: {
38969
- user_id: string;
38970
- company_id: string;
38971
- };
38972
- query?: never;
38973
- url: '/api/v1/users/{user_id}/companies/{company_id}/scheduled_changes';
38974
- };
38975
- export type CreateUserCompanyScheduledChangeErrors = {
38976
- /**
38977
- * Bad Request
38978
- */
38979
- 400: Problem;
38980
- /**
38981
- * Forbidden
38982
- */
38983
- 403: Problem;
38984
- /**
38985
- * Not Found
38986
- */
38987
- 404: Problem;
38988
- /**
38989
- * Unprocessable Content
38990
- */
38991
- 422: Problem;
38992
- };
38993
- export type CreateUserCompanyScheduledChangeError = CreateUserCompanyScheduledChangeErrors[keyof CreateUserCompanyScheduledChangeErrors];
38994
- export type CreateUserCompanyScheduledChangeResponses = {
38995
- /**
38996
- * Success
38997
- */
38998
- 200: UserCompanyScheduledChangesResponse;
38999
- };
39000
- export type CreateUserCompanyScheduledChangeResponse = CreateUserCompanyScheduledChangeResponses[keyof CreateUserCompanyScheduledChangeResponses];
39001
- export type CancelUserCompanyScheduledChangeData = {
39002
- body?: never;
39003
- path: {
39004
- user_id: string;
39005
- company_id: string;
39006
- id: string;
39007
- };
39008
- query?: never;
39009
- url: '/api/v1/users/{user_id}/companies/{company_id}/scheduled_changes/{id}';
39010
- };
39011
- export type CancelUserCompanyScheduledChangeErrors = {
39012
- /**
39013
- * Forbidden
39014
- */
39015
- 403: Problem;
39016
- /**
39017
- * Not Found
39018
- */
39019
- 404: Problem;
39020
- /**
39021
- * Unprocessable Content
39022
- */
39023
- 422: Problem;
39024
- };
39025
- export type CancelUserCompanyScheduledChangeError = CancelUserCompanyScheduledChangeErrors[keyof CancelUserCompanyScheduledChangeErrors];
39026
- export type CancelUserCompanyScheduledChangeResponses = {
39027
- /**
39028
- * Success
39029
- */
39030
- 200: UserCompanyScheduledChangesResponse;
39031
- };
39032
- export type CancelUserCompanyScheduledChangeResponse = CancelUserCompanyScheduledChangeResponses[keyof CancelUserCompanyScheduledChangeResponses];
39033
- export type UpdateScheduledChangeData = {
39034
- body: UserCompanyScheduledChangesParameters;
39035
- path: {
39036
- user_id: string;
39037
- company_id: string;
39038
- id: string;
39039
- };
39040
- query?: never;
39041
- url: '/api/v1/users/{user_id}/companies/{company_id}/scheduled_changes/{id}';
39042
- };
39043
- export type UpdateScheduledChangeErrors = {
39044
- /**
39045
- * Bad Request
39046
- */
39047
- 400: Problem;
39048
- /**
39049
- * Forbidden
39050
- */
39051
- 403: Problem;
39052
- /**
39053
- * Not Found
39054
- */
39055
- 404: Problem;
39056
- /**
39057
- * Unprocessable Content
39058
- */
39059
- 422: Problem;
39060
- };
39061
- export type UpdateScheduledChangeError = UpdateScheduledChangeErrors[keyof UpdateScheduledChangeErrors];
39062
- export type UpdateScheduledChangeResponses = {
39063
- /**
39064
- * Success
39065
- */
39066
- 200: UserCompanyScheduledChangesResponse;
39067
- };
39068
- export type UpdateScheduledChangeResponse = UpdateScheduledChangeResponses[keyof UpdateScheduledChangeResponses];
39069
39960
  export type CreateScheduledTerminationData = {
39070
39961
  body: UserCompanyScheduledTerminationParameters;
39071
39962
  path: {
@@ -39795,6 +40686,10 @@ export type ListWorkTypesData = {
39795
40686
  body?: never;
39796
40687
  path?: never;
39797
40688
  query?: {
40689
+ /**
40690
+ * Fuzzy-search work types by value
40691
+ */
40692
+ 'filter[value]'?: string;
39798
40693
  /**
39799
40694
  * This pagination cursor corresponds to the cursor value found in the response in
39800
40695
  * `meta.page.next_cursor`.
@@ -39805,6 +40700,8 @@ export type ListWorkTypesData = {
39805
40700
  */
39806
40701
  'page[limit]'?: number;
39807
40702
  page?: string;
40703
+ filter?: string;
40704
+ 'filter[unexpected]'?: string;
39808
40705
  };
39809
40706
  url: '/api/v1/work_types';
39810
40707
  };
@@ -39830,3 +40727,121 @@ export type ListWorkTypesResponses = {
39830
40727
  };
39831
40728
  };
39832
40729
  export type ListWorkTypesResponse = ListWorkTypesResponses[keyof ListWorkTypesResponses];
40730
+ export type CreateWorkTypeData = {
40731
+ body?: WorkTypeParameters;
40732
+ path?: never;
40733
+ query?: never;
40734
+ url: '/api/v1/work_types';
40735
+ };
40736
+ export type CreateWorkTypeErrors = {
40737
+ /**
40738
+ * Bad Request
40739
+ */
40740
+ 400: Problem;
40741
+ /**
40742
+ * Forbidden
40743
+ */
40744
+ 403: Problem;
40745
+ /**
40746
+ * Unprocessable Content
40747
+ */
40748
+ 422: Problem;
40749
+ };
40750
+ export type CreateWorkTypeError = CreateWorkTypeErrors[keyof CreateWorkTypeErrors];
40751
+ export type CreateWorkTypeResponses = {
40752
+ /**
40753
+ * Created
40754
+ */
40755
+ 201: WorkTypeResponseObject;
40756
+ };
40757
+ export type CreateWorkTypeResponse = CreateWorkTypeResponses[keyof CreateWorkTypeResponses];
40758
+ export type DeleteWorkTypeData = {
40759
+ body?: never;
40760
+ path: {
40761
+ id: string;
40762
+ };
40763
+ query?: never;
40764
+ url: '/api/v1/work_types/{id}';
40765
+ };
40766
+ export type DeleteWorkTypeErrors = {
40767
+ /**
40768
+ * Forbidden
40769
+ */
40770
+ 403: Problem;
40771
+ /**
40772
+ * Not Found
40773
+ */
40774
+ 404: Problem;
40775
+ /**
40776
+ * Unprocessable Content
40777
+ */
40778
+ 422: Problem;
40779
+ };
40780
+ export type DeleteWorkTypeError = DeleteWorkTypeErrors[keyof DeleteWorkTypeErrors];
40781
+ export type DeleteWorkTypeResponses = {
40782
+ /**
40783
+ * No Content
40784
+ */
40785
+ 204: void;
40786
+ };
40787
+ export type DeleteWorkTypeResponse = DeleteWorkTypeResponses[keyof DeleteWorkTypeResponses];
40788
+ export type GetWorkTypeData = {
40789
+ body?: never;
40790
+ path: {
40791
+ id: string;
40792
+ };
40793
+ query?: never;
40794
+ url: '/api/v1/work_types/{id}';
40795
+ };
40796
+ export type GetWorkTypeErrors = {
40797
+ /**
40798
+ * Forbidden
40799
+ */
40800
+ 403: Problem;
40801
+ /**
40802
+ * Not Found
40803
+ */
40804
+ 404: Problem;
40805
+ };
40806
+ export type GetWorkTypeError = GetWorkTypeErrors[keyof GetWorkTypeErrors];
40807
+ export type GetWorkTypeResponses = {
40808
+ /**
40809
+ * Success
40810
+ */
40811
+ 200: WorkTypeResponseObject;
40812
+ };
40813
+ export type GetWorkTypeResponse = GetWorkTypeResponses[keyof GetWorkTypeResponses];
40814
+ export type UpdateWorkTypeData = {
40815
+ body?: WorkTypeUpdateParameters;
40816
+ path: {
40817
+ id: string;
40818
+ };
40819
+ query?: never;
40820
+ url: '/api/v1/work_types/{id}';
40821
+ };
40822
+ export type UpdateWorkTypeErrors = {
40823
+ /**
40824
+ * Bad Request
40825
+ */
40826
+ 400: Problem;
40827
+ /**
40828
+ * Forbidden
40829
+ */
40830
+ 403: Problem;
40831
+ /**
40832
+ * Not Found
40833
+ */
40834
+ 404: Problem;
40835
+ /**
40836
+ * Unprocessable Content
40837
+ */
40838
+ 422: Problem;
40839
+ };
40840
+ export type UpdateWorkTypeError = UpdateWorkTypeErrors[keyof UpdateWorkTypeErrors];
40841
+ export type UpdateWorkTypeResponses = {
40842
+ /**
40843
+ * Success
40844
+ */
40845
+ 200: WorkTypeResponseObject;
40846
+ };
40847
+ export type UpdateWorkTypeResponse = UpdateWorkTypeResponses[keyof UpdateWorkTypeResponses];