@dsptch-work/api-client 0.35.0 → 0.36.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.
@@ -413,7 +413,7 @@ export type DirectUploadParameters = {
413
413
  /**
414
414
  * 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.
415
415
  */
416
- resource: 'assets.items' | 'assets.items.documents' | 'assets.items.service_events' | 'assets.products' | 'assets.vendors' | 'compliance.checks' | 'internal.companies' | 'internal.company_todos' | 'internal.job_todos' | 'internal.project_todos' | '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' | 'users';
416
+ resource: 'assets.items' | 'assets.items.documents' | 'assets.items.service_events' | 'assets.products' | 'assets.vendors' | 'compliance.checks' | 'internal.companies' | 'internal.company_todos' | 'internal.job_todos' | 'internal.project_todos' | '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.documents' | 'users';
417
417
  /**
418
418
  * Metadata describing the file being registered, before its bytes are uploaded.
419
419
  */
@@ -1706,7 +1706,7 @@ export type ApprenticeshipProgramEmployerUpdateParameters = {
1706
1706
  require_timecard_allocation?: boolean;
1707
1707
  };
1708
1708
  /**
1709
- * Create a period on a wage schedule; the wage schedule is taken from the URL path. wage_cents and fringe_cents are sent as integer cents.
1709
+ * Create a period on a wage schedule; the wage schedule is taken from the URL path. wage_cents and fringe_cents are sent as integer cents. Omitting period_number, wage_percent, or wage_cents answers 400. A wrong JSON type, a negative number, or a null for any field but min_minutes, max_minutes, num_competencies, description, fringe_percent, and fringe_cents answers 422 at that field; a null in one of those leaves it unset, but a period with none of min_minutes, max_minutes, or num_competencies answers 422.
1710
1710
  */
1711
1711
  export type ApprenticeshipWageSchedulePeriodParameters = {
1712
1712
  /**
@@ -1747,7 +1747,7 @@ export type ApprenticeshipWageSchedulePeriodParameters = {
1747
1747
  fringe_cents?: number | null;
1748
1748
  };
1749
1749
  /**
1750
- * Update a period on a wage schedule. Send only the fields to change; the wage schedule is taken from the URL path, and wage_cents and fringe_cents are sent as integer cents.
1750
+ * Update a period on a wage schedule. Send only the fields to change; the wage schedule is taken from the URL path, and wage_cents and fringe_cents are sent as integer cents. A wrong JSON type, a negative number, or a null for any field but min_minutes, max_minutes, num_competencies, description, fringe_percent, and fringe_cents answers 422 at that field; a null in one of those clears it, but a period left with none of min_minutes, max_minutes, or num_competencies answers 422.
1751
1751
  */
1752
1752
  export type ApprenticeshipWageSchedulePeriodUpdateParameters = {
1753
1753
  /**
@@ -1755,15 +1755,15 @@ export type ApprenticeshipWageSchedulePeriodUpdateParameters = {
1755
1755
  */
1756
1756
  period_number?: number;
1757
1757
  /**
1758
- * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1758
+ * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; omit to leave it unchanged, or send null to clear. Every period must keep at least one of min_minutes, max_minutes, or num_competencies; a write that leaves all three null answers 422.
1759
1759
  */
1760
1760
  min_minutes?: number | null;
1761
1761
  /**
1762
- * Upper bound on this period's duration, in minutes; informational only, not used to compute advancement; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1762
+ * Upper bound on this period's duration, in minutes; informational only, not used to compute advancement; omit to leave it unchanged, or send null to clear. Every period must keep at least one of min_minutes, max_minutes, or num_competencies; a write that leaves all three null answers 422.
1763
1763
  */
1764
1764
  max_minutes?: number | null;
1765
1765
  /**
1766
- * Number of competencies required to complete this period; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1766
+ * Number of competencies required to complete this period; omit to leave it unchanged, or send null to clear. Every period must keep at least one of min_minutes, max_minutes, or num_competencies; a write that leaves all three null answers 422.
1767
1767
  */
1768
1768
  num_competencies?: number | null;
1769
1769
  /**
@@ -1788,7 +1788,7 @@ export type ApprenticeshipWageSchedulePeriodUpdateParameters = {
1788
1788
  fringe_cents?: number | null;
1789
1789
  };
1790
1790
  /**
1791
- * Create a wage schedule for an occupation; the occupation is taken from the URL path. Money is sent as integer cents; periods may be created inline via periods_attributes.
1791
+ * Create a wage schedule for an occupation; the occupation is taken from the URL path. Money is sent as integer cents; periods may be created inline via periods_attributes. Omitting name, wage_unit, journeyworker_wage_unit, or period_unit answers 400. A blank name, a unit outside its listed values, a wrong JSON type, or a null for any field but description and journeyworker_fringe_cents answers 422; a null in either of those leaves the field unset.
1792
1792
  */
1793
1793
  export type ApprenticeshipWageScheduleParameters = {
1794
1794
  /**
@@ -1824,7 +1824,7 @@ export type ApprenticeshipWageScheduleParameters = {
1824
1824
  */
1825
1825
  end_wage_cents?: number;
1826
1826
  /**
1827
- * Periods to create, update, or remove alongside the schedule; omit a period's id to add one, include its id to update it, or send its id with _destroy true to remove it; optional.
1827
+ * Periods to create, update, or remove alongside the schedule, as a list of row objects; omit a period's id to add one, include its id to update it, or send its id with _destroy true to remove it; optional. In a row, an unknown key, a wrong JSON type, a negative number, or a null for any field but min_minutes, max_minutes, num_competencies, description, fringe_percent, and fringe_cents answers 422 at that field; a null in one of those leaves it unset, but a period with none of min_minutes, max_minutes, or num_competencies answers 422.
1828
1828
  */
1829
1829
  periods_attributes?: Array<{
1830
1830
  /**
@@ -1834,7 +1834,7 @@ export type ApprenticeshipWageScheduleParameters = {
1834
1834
  /**
1835
1835
  * 0-indexed position of this period in the progression. Required.
1836
1836
  */
1837
- period_number: number;
1837
+ period_number?: number;
1838
1838
  /**
1839
1839
  * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; optional, but at least one of min_minutes, max_minutes, or num_competencies must be set; null to clear.
1840
1840
  */
@@ -1854,11 +1854,11 @@ export type ApprenticeshipWageScheduleParameters = {
1854
1854
  /**
1855
1855
  * Percentage of the journeyworker wage paid during this period (e.g. 75 for 75%). Required.
1856
1856
  */
1857
- wage_percent: number;
1857
+ wage_percent?: number;
1858
1858
  /**
1859
1859
  * Wage rate for this period, in cents; denominated in the parent schedule's wage_unit. Required.
1860
1860
  */
1861
- wage_cents: number;
1861
+ wage_cents?: number;
1862
1862
  /**
1863
1863
  * Apprentice fringe for this period, as a percentage of the fringe on the wage determination the apprentice charges (e.g. 70 for 70%); optional, omit or send null when the period does not list fringe as a percentage. A period lists fringe one way at most, so sending both fringe_percent and fringe_cents non-null is rejected with a 422.
1864
1864
  */
@@ -1874,7 +1874,7 @@ export type ApprenticeshipWageScheduleParameters = {
1874
1874
  }>;
1875
1875
  };
1876
1876
  /**
1877
- * Update a wage schedule for an occupation. Send only the fields to change; money is sent as integer cents and periods may be created, updated, or removed inline via periods_attributes.
1877
+ * Update a wage schedule for an occupation. Send only the fields to change; money is sent as integer cents and periods may be created, updated, or removed inline via periods_attributes. A blank name, a unit outside its listed values, a wrong JSON type, or a null for any field but description and journeyworker_fringe_cents answers 422; a null in either of those clears the field.
1878
1878
  */
1879
1879
  export type ApprenticeshipWageScheduleUpdateParameters = {
1880
1880
  /**
@@ -1910,17 +1910,9 @@ export type ApprenticeshipWageScheduleUpdateParameters = {
1910
1910
  */
1911
1911
  end_wage_cents?: number;
1912
1912
  /**
1913
- * Periods to create, update, or remove alongside the schedule; omit a period's id to add one, include its id to update it, or send its id with _destroy true to remove it.
1913
+ * Periods to create, update, or remove alongside the schedule, as a list of row objects; omit a period's id to add one, include its id to update it, or send its id with _destroy true to remove it; omit the list to leave every period unchanged. In a row, an unknown key, a wrong JSON type, a negative number, or a null for any field but min_minutes, max_minutes, num_competencies, description, fringe_percent, and fringe_cents answers 422 at that field; a null in one of those clears it, but a period left with none of min_minutes, max_minutes, or num_competencies answers 422.
1914
1914
  */
1915
- periods_attributes?: Array<(unknown | {
1916
- min_minutes: number;
1917
- } | {
1918
- max_minutes: number;
1919
- } | {
1920
- num_competencies: number;
1921
- } | {
1922
- _destroy: true;
1923
- }) & {
1915
+ periods_attributes?: Array<{
1924
1916
  /**
1925
1917
  * Unique identifier.
1926
1918
  */
@@ -1930,15 +1922,15 @@ export type ApprenticeshipWageScheduleUpdateParameters = {
1930
1922
  */
1931
1923
  period_number?: number;
1932
1924
  /**
1933
- * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1925
+ * Duration of this period, in on-the-job minutes spent within it — not a cumulative threshold; omit to leave it unchanged, or send null to clear. Every period must keep at least one of min_minutes, max_minutes, or num_competencies; a write that leaves all three null answers 422.
1934
1926
  */
1935
1927
  min_minutes?: number | null;
1936
1928
  /**
1937
- * Upper bound on this period's duration, in minutes; informational only, not used to compute advancement; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1929
+ * Upper bound on this period's duration, in minutes; informational only, not used to compute advancement; omit to leave it unchanged, or send null to clear. Every period must keep at least one of min_minutes, max_minutes, or num_competencies; a write that leaves all three null answers 422.
1938
1930
  */
1939
1931
  max_minutes?: number | null;
1940
1932
  /**
1941
- * Number of competencies required to complete this period; omit to leave it unchanged, or send null to clear. A newly added period must set at least one of min_minutes, max_minutes, or num_competencies.
1933
+ * Number of competencies required to complete this period; omit to leave it unchanged, or send null to clear. Every period must keep at least one of min_minutes, max_minutes, or num_competencies; a write that leaves all three null answers 422.
1942
1934
  */
1943
1935
  num_competencies?: number | null;
1944
1936
  /**
@@ -2553,6 +2545,10 @@ export type TimecodeHistoryVersionObject = {
2553
2545
  * Request body for creating or updating a timecode; only `name` is required. On create, omitted fields take their model/DB defaults (noted per field). On update the request applies a bitemporal correction, so omitted fields keep the current version's values rather than reverting to defaults.
2554
2546
  */
2555
2547
  export type TimecodeParameters = {
2548
+ /**
2549
+ * When the new timecode becomes effective. Defaults to the time of the request. Accepted on create only.
2550
+ */
2551
+ effective_date?: string;
2556
2552
  /**
2557
2553
  * Human-readable name of the timecode. Required; must be unique within the company.
2558
2554
  */
@@ -2613,10 +2609,6 @@ export type TimecodeParameters = {
2613
2609
  * Where the timecode may be applied: none, job, non_job, or job_with_timecode. Defaults to none on create.
2614
2610
  */
2615
2611
  restricted_to?: 'none' | 'job' | 'non_job' | 'job_with_timecode';
2616
- /**
2617
- * When the new timecode becomes effective. Defaults to the time of the request. Accepted on create only.
2618
- */
2619
- effective_date?: string;
2620
2612
  };
2621
2613
  /**
2622
2614
  * Request body for correcting a timecode over a valid-time span. Send only the fields to change; omitted fields retain their current values. `effective_from` defaults to the addressed version's start, and `effective_to` is optional.
@@ -2710,7 +2702,7 @@ export type TimecodeScheduledTerminationParameters = {
2710
2702
  effective_date: string;
2711
2703
  };
2712
2704
  /**
2713
- * Request body for scheduling a future change to a timecode: an effective_date paired with the attribute values to apply from that date. `effective_date` and `name` are required; omitted attributes inherit the current version's values.
2705
+ * Request body for scheduling a future change to a timecode: an effective_date paired with the attribute values to apply from that date. Only `effective_date` is required; omitted attributes inherit the current version's values.
2714
2706
  */
2715
2707
  export type TimecodeScheduledChangeParameters = {
2716
2708
  /**
@@ -2718,9 +2710,9 @@ export type TimecodeScheduledChangeParameters = {
2718
2710
  */
2719
2711
  effective_date: string;
2720
2712
  /**
2721
- * Timecode name to apply from the effective date. Required.
2713
+ * Timecode name to apply from the effective date; omit it to keep the current name.
2722
2714
  */
2723
- name: string;
2715
+ name?: string;
2724
2716
  /**
2725
2717
  * Free-text description to apply; null clears it.
2726
2718
  */
@@ -3213,7 +3205,7 @@ export type AssetsAttributeResponseObject = {
3213
3205
  updated_at: string;
3214
3206
  };
3215
3207
  /**
3216
- * Create or update an attribute definition. Options apply only to a select attribute and are ignored otherwise; data_type cannot be changed once any value has been filled.
3208
+ * Create an attribute definition. Omitting name or data_type answers 400, and a blank or null name or any wrong-typed value answers 422. Options apply only to a select attribute and are ignored otherwise.
3217
3209
  */
3218
3210
  export type AssetsAttributeParameters = {
3219
3211
  /**
@@ -3225,7 +3217,7 @@ export type AssetsAttributeParameters = {
3225
3217
  */
3226
3218
  data_type: 'text' | 'number' | 'date' | 'boolean' | 'select';
3227
3219
  /**
3228
- * Choices for a select attribute, ignored for other data types. Include id to update an existing option, omit id to add one, or set _destroy to remove one.
3220
+ * Choices for a select attribute, ignored for other data types. Include id to update an existing option, omit id to add one, or set _destroy to remove one. An unknown or wrongly typed row field answers 422 at that row.
3229
3221
  */
3230
3222
  options?: Array<{
3231
3223
  /**
@@ -3247,7 +3239,7 @@ export type AssetsAttributeParameters = {
3247
3239
  }>;
3248
3240
  };
3249
3241
  /**
3250
- * Update an attribute definition. All fields are optional — send only what changes. Options apply only to a select attribute and are ignored otherwise; data_type cannot be changed once any value has been filled.
3242
+ * Update an attribute definition. All fields are optional — send only what changes. A blank or null name or any wrong-typed value answers 422. Options apply only to a select attribute and are ignored otherwise; data_type cannot be changed once any value has been filled.
3251
3243
  */
3252
3244
  export type AssetsAttributeUpdateParameters = {
3253
3245
  /**
@@ -3259,7 +3251,7 @@ export type AssetsAttributeUpdateParameters = {
3259
3251
  */
3260
3252
  data_type?: 'text' | 'number' | 'date' | 'boolean' | 'select';
3261
3253
  /**
3262
- * Choices for a select attribute, ignored for other data types. Include id to update an existing option, omit id to add one, or set _destroy to remove one.
3254
+ * Choices for a select attribute, ignored for other data types. Include id to update an existing option, omit id to add one, or set _destroy to remove one. An unknown or wrongly typed row field answers 422 at that row.
3263
3255
  */
3264
3256
  options?: Array<{
3265
3257
  /**
@@ -5232,7 +5224,7 @@ export type UserResponseObject = {
5232
5224
  } | null;
5233
5225
  };
5234
5226
  /**
5235
- * Request body for updating a worker's profile. Limited to person-level identity fields; employment, roles, and compliance are managed through onboarding (create) and the user-company endpoints.
5227
+ * Request body for updating a worker's profile. Limited to person-level identity fields; employment, roles, and compliance are managed through onboarding (create) and the user-company endpoints. Include only the fields to change. A null or blank legal name, or any wrong-typed value, answers 422.
5236
5228
  */
5237
5229
  export type UserUpdateParameters = {
5238
5230
  /**
@@ -5272,7 +5264,7 @@ export type UserUpdateParameters = {
5272
5264
  */
5273
5265
  state?: string | null;
5274
5266
  /**
5275
- * Date of birth (YYYY-MM-DD).
5267
+ * Date of birth as a YYYY-MM-DD calendar date; send null to clear it.
5276
5268
  */
5277
5269
  birth_date?: string | null;
5278
5270
  /**
@@ -5438,9 +5430,9 @@ export type UserParameters = ({
5438
5430
  */
5439
5431
  hire_date?: string;
5440
5432
  /**
5441
- * Ids of the groups to add the worker to at your company.
5433
+ * Unique nonblank IDs of the groups at your company to add the worker to. Omit or send an empty array to add the worker to none. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before the worker is created.
5442
5434
  */
5443
- group_ids?: Array<string> | null;
5435
+ group_ids?: Array<string>;
5444
5436
  /**
5445
5437
  * Values for the employment's custom fields, as a list of configurations and their values. Each configuration may appear only once. Every visible configuration gets a stored value; one left out of the list, or an omitted or empty list, stores null.
5446
5438
  */
@@ -5713,23 +5705,27 @@ export type ManagerTimeEntryApprovalParameters = {
5713
5705
  approver_user_id: string;
5714
5706
  };
5715
5707
  /**
5716
- * The time-entry body fields shared by the create and update bodies; each of those declares its own requiredness.
5708
+ * Request body for creating a time entry. timekeeping_time_card_id, start_time, and end_time are required, and omitting one answers 400.
5717
5709
  */
5718
- export type TimeEntryParameters = {
5710
+ export type TimeEntryCreateParameters = {
5719
5711
  /**
5720
- * these will be rounded to the nearest second
5712
+ * Id of the time card to attach the entry to; user_id is derived server-side from it. Required and set at creation. Null or a value that is not a nonblank string answers 422; a card outside the key's scope answers 404.
5721
5713
  */
5722
- start_time?: string;
5714
+ timekeeping_time_card_id: string;
5723
5715
  /**
5724
- * these will be rounded to the nearest second
5716
+ * Start of the work as a timestamp string, rounded to the nearest second. Null or a non-string answers 422 at its pointer; a string that does not parse as a date and time answers 422 invalid_date.
5725
5717
  */
5726
- end_time?: string;
5718
+ start_time: string;
5727
5719
  /**
5728
- * Id of the job to work against; the worker must have a Position covering that job at start_time. Send null (or omit) for no job.
5720
+ * End of the work as a timestamp string, rounded to the nearest second. Null or a non-string answers 422 at its pointer; a string that does not parse as a date and time answers 422 invalid_date.
5721
+ */
5722
+ end_time: string;
5723
+ /**
5724
+ * Id of the job to work against; the worker must have a Position covering that job at start_time. Send null for no job; a blank string answers 422.
5729
5725
  */
5730
5726
  job_id?: string | null;
5731
5727
  /**
5732
- * Id of the timecode to classify the entry; must be one of the company's default timecodes. Send null for none.
5728
+ * Id of the timecode to classify the entry; must be one of the company's default timecodes. Send null for none; a blank string answers 422.
5733
5729
  */
5734
5730
  timekeeping_timecode_id?: string | null;
5735
5731
  /**
@@ -5745,31 +5741,54 @@ export type TimeEntryParameters = {
5745
5741
  */
5746
5742
  hourly_rate_cents?: string | null;
5747
5743
  /**
5748
- * Feature ids to allocate to this time entry. Only features your company can view are accepted.
5744
+ * Complete desired set of unique nonblank IDs of the features to allocate to this time entry. Only features your company can view are accepted. Omit to keep the allocations (none on create); send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
5745
+ */
5746
+ feature_ids?: Array<string>;
5747
+ /**
5748
+ * Send true to record an explicit "no feature" answer when the job requires a feature allocation and you're not supplying one; false or omission records none. Null or any non-boolean value answers 422.
5749
5749
  */
5750
- feature_ids?: Array<string> | null;
5750
+ feature_allocation_acknowledged?: boolean;
5751
5751
  };
5752
5752
  /**
5753
- * Request body for creating a time entry — the time_entry_parameters fields plus the time card and the explicit "no feature" acknowledgement. timekeeping_time_card_id, start_time, and end_time are required.
5753
+ * Request body for updating a time entry. Every field is optional, and an omitted field keeps its value.
5754
5754
  */
5755
- export type TimeEntryCreateParameters = TimeEntryParameters & {
5755
+ export type TimeEntryUpdateParameters = {
5756
5756
  /**
5757
- * Id of the time card to attach the entry to; user_id is derived server-side from it. Set at creation.
5757
+ * Start of the work as a timestamp string, rounded to the nearest second. Null or a non-string answers 422 at its pointer; a string that does not parse as a date and time answers 422 invalid_date.
5758
5758
  */
5759
- timekeeping_time_card_id: string;
5759
+ start_time?: string;
5760
5760
  /**
5761
- * Set true to record an explicit "no feature" answer when the job requires a feature allocation and you're not supplying one.
5761
+ * End of the work as a timestamp string, rounded to the nearest second. Null or a non-string answers 422 at its pointer; a string that does not parse as a date and time answers 422 invalid_date.
5762
5762
  */
5763
- feature_allocation_acknowledged?: boolean | null;
5764
- };
5765
- /**
5766
- * Request body for updating a time entry — the time_entry_parameters fields, every one optional, plus the acknowledgement that clears an apprenticeship allocation conflict.
5767
- */
5768
- export type TimeEntryUpdateParameters = TimeEntryParameters & {
5763
+ end_time?: string;
5769
5764
  /**
5770
- * Set true to accept dropping the time card's apprenticeship hour allocations when the new times invalidate them; without it such an update returns 422.
5765
+ * Id of the job to work against; the worker must have a Position covering that job at start_time. Send null for no job; a blank string answers 422.
5766
+ */
5767
+ job_id?: string | null;
5768
+ /**
5769
+ * Id of the timecode to classify the entry; must be one of the company's default timecodes. Send null for none; a blank string answers 422.
5770
+ */
5771
+ timekeeping_timecode_id?: string | null;
5772
+ /**
5773
+ * Two-letter US state code where the work occurred; null to clear.
5771
5774
  */
5772
- confirm_allocation_conflict?: boolean | null;
5775
+ state?: string | null;
5776
+ /**
5777
+ * Free-text note on the entry (maximum 10,000 characters); null to clear.
5778
+ */
5779
+ description?: string | null;
5780
+ /**
5781
+ * Base hourly rate in cents, sent as a string to preserve precision; omit it to let the system derive the rate from the position/user default, and null also derives the default. Admin only on user-scoped keys.
5782
+ */
5783
+ hourly_rate_cents?: string | null;
5784
+ /**
5785
+ * Complete desired set of unique nonblank IDs of the features to allocate to this time entry. Only features your company can view are accepted. Omit to keep the allocations (none on create); send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
5786
+ */
5787
+ feature_ids?: Array<string>;
5788
+ /**
5789
+ * Send true to accept dropping the time card's apprenticeship hour allocations when the new times invalidate them; without it such an update returns 422. Null or any non-boolean value answers 422.
5790
+ */
5791
+ confirm_allocation_conflict?: boolean;
5773
5792
  };
5774
5793
  /**
5775
5794
  * A form definition — a SurveyJS form template built and versioned in the web app's form builder. The same object the list door serializes. Read-only.
@@ -5934,16 +5953,19 @@ export type FormSubmissionResponseObject = {
5934
5953
  updated_at: string;
5935
5954
  };
5936
5955
  /**
5937
- * Request body for updating a worker's employment at your company. Corrects administrative fields (employment type, title, manager, payroll id, hire date, and time-and-attendance enrollment) across the whole employment history, and changes the custom-field values it lists. For time-effective pay changes, use the scheduled-changes endpoints instead.
5956
+ * Request body for updating a worker's employment at your company. Corrects administrative fields (employment type, title, manager, payroll id, hire date, and time-and-attendance enrollment) across the whole employment history, and changes the custom-field values it lists. For time-effective pay changes, use the scheduled-changes endpoints instead. A value of the wrong JSON type, a null for a field that is not nullable, or a value outside a listed set answers 422 at its pointer, and nothing is written.
5938
5957
  */
5939
5958
  export type UserCompanyParameters = {
5940
- type?: UserCompanyType;
5959
+ /**
5960
+ * Whether the worker is an `EMPLOYEE` (W-2) or a `CONTRACTOR` (1099), in upper case. Null is not accepted.
5961
+ */
5962
+ type?: 'EMPLOYEE' | 'CONTRACTOR';
5941
5963
  /**
5942
5964
  * Job title at your company.
5943
5965
  */
5944
5966
  title?: string | null;
5945
5967
  /**
5946
- * Id of the worker's manager at your company (another user).
5968
+ * Id of the worker's manager at your company (another user). Send null to clear it; blank text answers 422.
5947
5969
  */
5948
5970
  manager_user_id?: string | null;
5949
5971
  /**
@@ -5951,13 +5973,13 @@ export type UserCompanyParameters = {
5951
5973
  */
5952
5974
  payroll_id?: string | null;
5953
5975
  /**
5954
- * Employment start date (YYYY-MM-DD). Changing it moves the start of the employment history.
5976
+ * Whether the worker is enrolled in Time and Attendance (time tracking). Null is not accepted.
5955
5977
  */
5956
- hire_date?: string | null;
5978
+ enrolled_in_t_and_a?: boolean;
5957
5979
  /**
5958
- * Whether the worker is enrolled in Time and Attendance (time tracking).
5980
+ * Employment start date (YYYY-MM-DD). Changing it moves the start of the employment history. Null or blank text leaves it where it is.
5959
5981
  */
5960
- enrolled_in_t_and_a?: boolean;
5982
+ hire_date?: string | null;
5961
5983
  /**
5962
5984
  * Custom-field values to change, as a list of configurations and their replacement values. Each configuration may appear only once. Only the listed configurations change; every other configuration keeps its stored value, and an omitted or empty list changes none.
5963
5985
  */
@@ -5973,52 +5995,55 @@ export type UserCompanyParameters = {
5973
5995
  }>;
5974
5996
  };
5975
5997
  /**
5976
- * Request body for adding a worker to your company, creating their employment record and its custom-field values. hire_date is required and sets when employment begins; the remaining fields seed the initial title, pay, benefits, and accruals. Returns the worker with the new employment flattened onto it.
5998
+ * Request body for adding a worker to your company, creating their employment record and its custom-field values. hire_date is required and sets when employment begins; the remaining fields seed the initial title, pay, benefits, and accruals. Returns the worker with the new employment flattened onto it. Omitting hire_date answers 400. A value of the wrong JSON type, a null for a field that is not nullable, or a value outside a listed set answers 422 at its pointer, and nothing is written.
5977
5999
  */
5978
6000
  export type UserCompanyCreateParameters = {
5979
6001
  /**
5980
- * Employment start date (YYYY-MM-DD). Sets when employment begins. Required.
6002
+ * Employment start date (YYYY-MM-DD). Sets when employment begins. Required; null, blank text, or any other form answers 422.
5981
6003
  */
5982
6004
  hire_date: string;
5983
- type?: UserCompanyType;
6005
+ /**
6006
+ * Whether the worker is an `EMPLOYEE` (W-2) or a `CONTRACTOR` (1099), in upper case. Omit to use `EMPLOYEE`; null is not accepted.
6007
+ */
6008
+ type?: 'EMPLOYEE' | 'CONTRACTOR';
5984
6009
  /**
5985
6010
  * Job title at your company.
5986
6011
  */
5987
6012
  title?: string | null;
5988
6013
  /**
5989
- * Id of the worker's manager at your company (another user).
6014
+ * Id of the worker's manager at your company (another user). Omit or send null for no manager; blank text answers 422.
5990
6015
  */
5991
6016
  manager_user_id?: string | null;
5992
6017
  /**
5993
- * How the worker is paid: hourly or salary.
6018
+ * The worker's identifier in your payroll system of record.
5994
6019
  */
5995
- compensation_type?: 'hourly' | 'salary';
6020
+ payroll_id?: string | null;
5996
6021
  /**
5997
- * Whether to enroll the worker in Time and Attendance (time tracking).
6022
+ * Whether to enroll the worker in Time and Attendance (time tracking). Null is not accepted.
5998
6023
  */
5999
6024
  enrolled_in_t_and_a?: boolean;
6000
6025
  /**
6001
- * The worker's identifier in your payroll system of record.
6026
+ * How the worker is paid: `hourly` or `salary`, in lower case. Null is not accepted.
6002
6027
  */
6003
- payroll_id?: string | null;
6028
+ compensation_type?: 'hourly' | 'salary';
6004
6029
  /**
6005
- * Base pay rate as a decimal string (for example "32.50"), in the company's currency.
6030
+ * Base pay rate as a decimal string (for example "32.50"), in the company's currency. A JSON number answers 422; send the amount as a string.
6006
6031
  */
6007
6032
  hourly_rate?: string | null;
6008
6033
  /**
6009
- * Whether the worker is eligible for overtime pay.
6034
+ * Whether the worker is eligible for overtime pay. Omit to use true; null is not accepted.
6010
6035
  */
6011
6036
  overtime_eligible?: boolean;
6012
6037
  /**
6013
- * Annual training-fund contribution as a decimal string. Used in prevailing-wage fringe calculations.
6038
+ * Annual training-fund contribution as a decimal string. Used in prevailing-wage fringe calculations. A JSON number answers 422.
6014
6039
  */
6015
6040
  training_annual_amount?: string | null;
6016
6041
  /**
6017
- * Employer-paid annual combined health benefit as a decimal string.
6042
+ * Employer-paid annual combined health benefit as a decimal string. A JSON number answers 422.
6018
6043
  */
6019
6044
  employer_combined_health_amount?: string | null;
6020
6045
  /**
6021
- * Employer-paid annual combined savings and retirement benefit as a decimal string.
6046
+ * Employer-paid annual combined savings and retirement benefit as a decimal string. A JSON number answers 422.
6022
6047
  */
6023
6048
  employer_combined_savings?: string | null;
6024
6049
  /**
@@ -6407,7 +6432,7 @@ export type UserGroupResponse = {
6407
6432
  */
6408
6433
  export type UserGroupParameters = {
6409
6434
  /**
6410
- * Required nonempty array of user ID strings to add to the group. Users already in the group are ignored, and the full membership list is returned.
6435
+ * Required nonempty array of unique nonblank IDs of the users to add to the group. Users already in the group are ignored, and the full membership list is returned. Omission answers 400; an empty array, null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anyone is added.
6411
6436
  */
6412
6437
  user_ids: Array<string>;
6413
6438
  };
@@ -6529,6 +6554,47 @@ export type UserCompanyScheduledTerminationParameters = {
6529
6554
  */
6530
6555
  termination_date: string;
6531
6556
  };
6557
+ /**
6558
+ * A pay period — a bounded pay window generated automatically by its pay schedule (PayPeriodConfig).
6559
+ */
6560
+ export type PayPeriodResponseObject = {
6561
+ /**
6562
+ * Unique identifier.
6563
+ */
6564
+ id: string;
6565
+ /**
6566
+ * ID of the pay schedule (PayPeriodConfig) that owns this pay period, stable across all of its versions.
6567
+ */
6568
+ timekeeping_pay_period_config_id: string;
6569
+ /**
6570
+ * Calendar date (YYYY-MM-DD) that workers are paid for this period.
6571
+ */
6572
+ pay_date: string;
6573
+ /**
6574
+ * Start of the pay-period window (ISO 8601).
6575
+ */
6576
+ start_time: string;
6577
+ /**
6578
+ * End of the pay-period window (ISO 8601).
6579
+ */
6580
+ end_time: string;
6581
+ /**
6582
+ * When payroll must be run for this period (ISO 8601).
6583
+ */
6584
+ pay_run_deadline: string;
6585
+ /**
6586
+ * When time-card approvals are due for this period (ISO 8601).
6587
+ */
6588
+ approvals_deadline: string;
6589
+ /**
6590
+ * When the record was created (ISO 8601).
6591
+ */
6592
+ created_at: string;
6593
+ /**
6594
+ * When the record was last updated (ISO 8601).
6595
+ */
6596
+ updated_at: string;
6597
+ };
6532
6598
  /**
6533
6599
  * A page of pay periods. A pay period is a bounded pay window generated automatically by its pay schedule (PayPeriodConfig), so this API is read-only.
6534
6600
  */
@@ -6538,44 +6604,7 @@ export type PayPeriodsResponseObject = {
6538
6604
  /**
6539
6605
  * The page of pay periods.
6540
6606
  */
6541
- data: Array<{
6542
- /**
6543
- * Unique identifier.
6544
- */
6545
- id: string;
6546
- /**
6547
- * ID of the pay schedule (PayPeriodConfig) that owns this pay period, stable across all of its versions.
6548
- */
6549
- timekeeping_pay_period_config_id: string;
6550
- /**
6551
- * Calendar date (YYYY-MM-DD) that workers are paid for this period.
6552
- */
6553
- pay_date: string;
6554
- /**
6555
- * Start of the pay-period window (ISO 8601).
6556
- */
6557
- start_time: string;
6558
- /**
6559
- * End of the pay-period window (ISO 8601).
6560
- */
6561
- end_time: string;
6562
- /**
6563
- * When payroll must be run for this period (ISO 8601).
6564
- */
6565
- pay_run_deadline: string;
6566
- /**
6567
- * When time-card approvals are due for this period (ISO 8601).
6568
- */
6569
- approvals_deadline: string;
6570
- /**
6571
- * When the record was created (ISO 8601).
6572
- */
6573
- created_at: string;
6574
- /**
6575
- * When the record was last updated (ISO 8601).
6576
- */
6577
- updated_at: string;
6578
- }>;
6607
+ data: Array<PayPeriodResponseObject>;
6579
6608
  };
6580
6609
  /**
6581
6610
  * One problem found while processing an accepted import, whatever its type.
@@ -8053,7 +8082,7 @@ export type ProjectResponseObject = {
8053
8082
  updated_at: string;
8054
8083
  };
8055
8084
  /**
8056
- * Request body for creating a project. `name` and `created_by_user_id` are required; the creator must be a member of the owning company. The owning company is inferred from the API key and is not part of the body. Undeclared body keys return 400 before any project or relationship is saved.
8085
+ * Request body for creating a project. `name` and `created_by_user_id` are required, and omitting either returns 400; the creator must be a member of the owning company. The owning company is inferred from the API key and is not part of the body. 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 project or relationship is saved.
8057
8086
  */
8058
8087
  export type ProjectParameters = {
8059
8088
  /**
@@ -8061,7 +8090,7 @@ export type ProjectParameters = {
8061
8090
  */
8062
8091
  external_id?: string | null;
8063
8092
  /**
8064
- * Human-readable project name; required, and must be unique within the owning company.
8093
+ * Human-readable project name; required, and must be unique within the owning company. Null, a blank string, or a wrong type answers 422.
8065
8094
  */
8066
8095
  name: string;
8067
8096
  /**
@@ -8069,11 +8098,7 @@ export type ProjectParameters = {
8069
8098
  */
8070
8099
  description?: string | null;
8071
8100
  /**
8072
- * User recorded as the project's creator; must be a member of the owning company. Required on create and immutable thereafter. Send it only on create; every update that includes it returns 400, even when unchanged.
8073
- */
8074
- created_by_user_id: string;
8075
- /**
8076
- * ID of a project visible to the API key's policy. The parent must be owned by this project's owner or list that owner in its participating_company_ids. Send null to make the project a root; the child schedule must fit within the parent's schedule.
8101
+ * ID of a project visible to the API key's policy. The parent must be owned by this project's owner or list that owner in its participating_company_ids. Send null to make the project a root; a blank ID or a wrong type answers 422. The child schedule must fit within the parent's schedule.
8077
8102
  */
8078
8103
  parent_id?: string | null;
8079
8104
  /**
@@ -8081,35 +8106,35 @@ export type ProjectParameters = {
8081
8106
  */
8082
8107
  participating_company_ids?: Array<string>;
8083
8108
  /**
8084
- * Schedule start date as an ISO8601 date (YYYY-MM-DD), or null; requires tz_name to be set.
8109
+ * Schedule start date as an ISO8601 date (YYYY-MM-DD), or null; requires tz_name to be set. Any other string, a timestamp included, answers 422.
8085
8110
  */
8086
8111
  start_date?: string | null;
8087
8112
  /**
8088
- * Schedule end date as an ISO8601 date (YYYY-MM-DD), or null; must be on or after start_date.
8113
+ * Schedule end date as an ISO8601 date (YYYY-MM-DD), or null; must be on or after start_date. Any other string, a timestamp included, answers 422.
8089
8114
  */
8090
8115
  end_date?: string | null;
8091
8116
  /**
8092
- * IANA time zone name. Required when start_date is set.
8117
+ * IANA time zone name, or null. Required when start_date is set. A blank or unlisted name answers 422.
8093
8118
  */
8094
8119
  tz_name?: string | null;
8095
8120
  /**
8096
- * Day of week billing starts: 0 (Sunday) through 6 (Saturday).
8121
+ * Day of week billing starts, as an integer: 0 (Sunday) through 6 (Saturday), or null. Any other value, a numeric string included, answers 422.
8097
8122
  */
8098
8123
  billing_start_day?: number | null;
8099
8124
  /**
8100
- * Federal PWA tracking mode: `all` (prevailing wage + apprenticeship), `pw_only`, `ap_only`, or `none`. Any other value returns 422.
8125
+ * Federal PWA tracking mode: `all` (prevailing wage + apprenticeship), `pw_only`, `ap_only`, or `none`. Null or any other value returns 422.
8101
8126
  */
8102
8127
  federal_pwa_mode?: 'all' | 'pw_only' | 'ap_only' | 'none';
8103
8128
  /**
8104
- * Any value other than `none` requires `region`.
8129
+ * Regional PWA tracking mode, with the same values as `federal_pwa_mode`; null or any other value returns 422. Any value other than `none` requires `region`.
8105
8130
  */
8106
8131
  regional_pwa_mode?: 'all' | 'pw_only' | 'ap_only' | 'none';
8107
8132
  /**
8108
- * US state abbreviation; must be one of the owning company's operating regions.
8133
+ * US state abbreviation, or null; must be one of the owning company's operating regions.
8109
8134
  */
8110
8135
  region?: string | null;
8111
8136
  /**
8112
- * Gates IRA tax-credit checks. Applies only while `federal_pwa_mode` is not `none` — sending `true` or null while federal tracking is off returns 422, and switching to `none` sets it back to `false`.
8137
+ * Gates IRA tax-credit checks. A boolean; null or any other type returns 422. Applies only while `federal_pwa_mode` is not `none` — sending `true` while federal tracking is off returns 422, and switching to `none` sets it back to `false`.
8113
8138
  */
8114
8139
  asset_owner?: boolean;
8115
8140
  /**
@@ -8125,24 +8150,28 @@ export type ProjectParameters = {
8125
8150
  */
8126
8151
  administrator_phone?: string | null;
8127
8152
  /**
8128
- * Decimal string (e.g. "5000.0"). Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8153
+ * Decimal string (e.g. "5000.0"), or null to clear it; a JSON number or any other type returns 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8129
8154
  */
8130
- budget?: string;
8155
+ budget?: string | null;
8131
8156
  /**
8132
- * Prevailing-wage lock-in date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8157
+ * Prevailing-wage lock-in date as an ISO8601 date (YYYY-MM-DD); any other string, a timestamp included, answers 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8133
8158
  */
8134
8159
  prevailing_wage_lock_in_date?: string | null;
8135
8160
  /**
8136
- * IRA beginning-of-construction date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8161
+ * IRA beginning-of-construction date as an ISO8601 date (YYYY-MM-DD); any other string, a timestamp included, answers 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8137
8162
  */
8138
8163
  beginning_of_construction_date?: string | null;
8139
8164
  /**
8140
- * IRA placed-in-service date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8165
+ * IRA placed-in-service date as an ISO8601 date (YYYY-MM-DD); any other string, a timestamp included, answers 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8141
8166
  */
8142
8167
  placed_in_service_date?: string | null;
8168
+ /**
8169
+ * User recorded as the project's creator; must be a member of the owning company. Required on create and immutable thereafter. Omission answers 400; null, a blank ID, or a wrong type answers 422. Send it only on create; every update that includes it returns 400, even when unchanged.
8170
+ */
8171
+ created_by_user_id: string;
8143
8172
  };
8144
8173
  /**
8145
- * Request body for updating a project. Every field is optional; omit a field to preserve its current value. The resulting project must still satisfy conditional PWA, regional, and schedule validation rules. `created_by_user_id` is create-only; omit it on PATCH. Every update that includes it returns 400, even when unchanged. Undeclared body keys return 400 before any project or relationship changes.
8174
+ * Request body for updating a project. Every field is optional; omit a field to preserve its current value. The resulting project must still satisfy conditional PWA, regional, and schedule validation rules. `created_by_user_id` is create-only; omit it on PATCH. Every update that includes it returns 400, even when unchanged. 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 project or relationship changes.
8146
8175
  */
8147
8176
  export type ProjectUpdateParameters = {
8148
8177
  /**
@@ -8150,7 +8179,7 @@ export type ProjectUpdateParameters = {
8150
8179
  */
8151
8180
  external_id?: string | null;
8152
8181
  /**
8153
- * Human-readable project name; omit to preserve the current value. The resulting project name must remain present and unique within the owning company.
8182
+ * Human-readable project name; omit to preserve the current value. Null, a blank string, or a wrong type answers 422, and the name must remain unique within the owning company.
8154
8183
  */
8155
8184
  name?: string;
8156
8185
  /**
@@ -8158,7 +8187,7 @@ export type ProjectUpdateParameters = {
8158
8187
  */
8159
8188
  description?: string | null;
8160
8189
  /**
8161
- * ID of a project visible to the API key's policy. The parent must be owned by this project's owner or list that owner in its participating_company_ids. Send null to make the project a root; the child schedule must fit within the parent's schedule.
8190
+ * ID of a project visible to the API key's policy. The parent must be owned by this project's owner or list that owner in its participating_company_ids. Send null to make the project a root; a blank ID or a wrong type answers 422. The child schedule must fit within the parent's schedule.
8162
8191
  */
8163
8192
  parent_id?: string | null;
8164
8193
  /**
@@ -8166,35 +8195,35 @@ export type ProjectUpdateParameters = {
8166
8195
  */
8167
8196
  participating_company_ids?: Array<string>;
8168
8197
  /**
8169
- * Schedule start date as an ISO8601 date (YYYY-MM-DD), or null; requires tz_name to be set.
8198
+ * Schedule start date as an ISO8601 date (YYYY-MM-DD), or null; requires tz_name to be set. Any other string, a timestamp included, answers 422.
8170
8199
  */
8171
8200
  start_date?: string | null;
8172
8201
  /**
8173
- * Schedule end date as an ISO8601 date (YYYY-MM-DD), or null; must be on or after start_date.
8202
+ * Schedule end date as an ISO8601 date (YYYY-MM-DD), or null; must be on or after start_date. Any other string, a timestamp included, answers 422.
8174
8203
  */
8175
8204
  end_date?: string | null;
8176
8205
  /**
8177
- * IANA time zone name. Required when start_date is set.
8206
+ * IANA time zone name, or null. Required when start_date is set. A blank or unlisted name answers 422.
8178
8207
  */
8179
8208
  tz_name?: string | null;
8180
8209
  /**
8181
- * Day of week billing starts: 0 (Sunday) through 6 (Saturday).
8210
+ * Day of week billing starts, as an integer: 0 (Sunday) through 6 (Saturday), or null. Any other value, a numeric string included, answers 422.
8182
8211
  */
8183
8212
  billing_start_day?: number | null;
8184
8213
  /**
8185
- * Federal PWA tracking mode: `all` (prevailing wage + apprenticeship), `pw_only`, `ap_only`, or `none`. Any other value returns 422.
8214
+ * Federal PWA tracking mode: `all` (prevailing wage + apprenticeship), `pw_only`, `ap_only`, or `none`. Null or any other value returns 422.
8186
8215
  */
8187
8216
  federal_pwa_mode?: 'all' | 'pw_only' | 'ap_only' | 'none';
8188
8217
  /**
8189
- * Any value other than `none` requires `region`.
8218
+ * Regional PWA tracking mode, with the same values as `federal_pwa_mode`; null or any other value returns 422. Any value other than `none` requires `region`.
8190
8219
  */
8191
8220
  regional_pwa_mode?: 'all' | 'pw_only' | 'ap_only' | 'none';
8192
8221
  /**
8193
- * US state abbreviation; must be one of the owning company's operating regions.
8222
+ * US state abbreviation, or null; must be one of the owning company's operating regions.
8194
8223
  */
8195
8224
  region?: string | null;
8196
8225
  /**
8197
- * Gates IRA tax-credit checks. Applies only while `federal_pwa_mode` is not `none` — sending `true` or null while federal tracking is off returns 422, and switching to `none` sets it back to `false`.
8226
+ * Gates IRA tax-credit checks. A boolean; null or any other type returns 422. Applies only while `federal_pwa_mode` is not `none` — sending `true` while federal tracking is off returns 422, and switching to `none` sets it back to `false`.
8198
8227
  */
8199
8228
  asset_owner?: boolean;
8200
8229
  /**
@@ -8210,19 +8239,19 @@ export type ProjectUpdateParameters = {
8210
8239
  */
8211
8240
  administrator_phone?: string | null;
8212
8241
  /**
8213
- * Decimal string (e.g. "5000.0"). Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8242
+ * Decimal string (e.g. "5000.0"), or null to clear it; a JSON number or any other type returns 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8214
8243
  */
8215
- budget?: string;
8244
+ budget?: string | null;
8216
8245
  /**
8217
- * Prevailing-wage lock-in date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8246
+ * Prevailing-wage lock-in date as an ISO8601 date (YYYY-MM-DD); any other string, a timestamp included, answers 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8218
8247
  */
8219
8248
  prevailing_wage_lock_in_date?: string | null;
8220
8249
  /**
8221
- * IRA beginning-of-construction date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8250
+ * IRA beginning-of-construction date as an ISO8601 date (YYYY-MM-DD); any other string, a timestamp included, answers 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8222
8251
  */
8223
8252
  beginning_of_construction_date?: string | null;
8224
8253
  /**
8225
- * IRA placed-in-service date as an ISO8601 date. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8254
+ * IRA placed-in-service date as an ISO8601 date (YYYY-MM-DD); any other string, a timestamp included, answers 422. Applies only while `federal_pwa_mode` is not `none` — sending it while federal tracking is off, even as null, returns 422, and switching to `none` clears the stored value.
8226
8255
  */
8227
8256
  placed_in_service_date?: string | null;
8228
8257
  };
@@ -8265,6 +8294,127 @@ export type ProjectSiteUpdateParameters = {
8265
8294
  */
8266
8295
  feature_ids?: Array<string>;
8267
8296
  };
8297
+ /**
8298
+ * A file attached to a project. Uploaded through the direct-upload flow. `name` is always "document" and is not client-writable.
8299
+ */
8300
+ export type ProjectDocumentResponseObject = {
8301
+ /**
8302
+ * Unique identifier.
8303
+ */
8304
+ id: string;
8305
+ /**
8306
+ * ID of the project this document belongs to.
8307
+ */
8308
+ project_id: string;
8309
+ /**
8310
+ * Read-only document label; this API does not set it, so it is always "document".
8311
+ */
8312
+ name: string;
8313
+ /**
8314
+ * The file's human-readable download name; null when not set.
8315
+ */
8316
+ filename: string | null;
8317
+ /**
8318
+ * Free-text description of the document; null when none.
8319
+ */
8320
+ description: string | null;
8321
+ /**
8322
+ * ID of the user who uploaded the document.
8323
+ */
8324
+ created_by_user_id: string;
8325
+ /**
8326
+ * The attached file; null while no blob is attached.
8327
+ */
8328
+ file: {
8329
+ /**
8330
+ * Stored name of the uploaded file.
8331
+ */
8332
+ filename: string;
8333
+ /**
8334
+ * MIME type of the file; null when not recorded.
8335
+ */
8336
+ content_type: string | null;
8337
+ /**
8338
+ * Size of the file in bytes.
8339
+ */
8340
+ byte_size: number;
8341
+ /**
8342
+ * A URL to download the file.
8343
+ */
8344
+ url: string;
8345
+ } | null;
8346
+ /**
8347
+ * When the record was created (ISO 8601).
8348
+ */
8349
+ created_at: string;
8350
+ /**
8351
+ * When the record was last updated (ISO 8601).
8352
+ */
8353
+ updated_at: string;
8354
+ };
8355
+ /**
8356
+ * Attach a file to a project as a document. file is required and takes a signed_id from the direct-upload endpoint.
8357
+ */
8358
+ export type ProjectDocumentParameters = {
8359
+ /**
8360
+ * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach. Register the upload naming `projects.documents` — a signed_id issued for any other resource will not resolve here. Null and a blank string answer 422. Omitting file answers 400.
8361
+ */
8362
+ file: string;
8363
+ /**
8364
+ * The file's human-readable download name; null when not set.
8365
+ */
8366
+ filename?: string | null;
8367
+ /**
8368
+ * Free-text description of the document; null when none.
8369
+ */
8370
+ description?: string | null;
8371
+ /**
8372
+ * ID of the user this document is attached on behalf of, recorded as its creator. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
8373
+ */
8374
+ performed_by_user_id: string;
8375
+ };
8376
+ /**
8377
+ * Update a project document. All fields are optional — send only what changes. Omit file to retain the existing attachment, or supply a new signed_id to replace it. A document always holds a file, so null answers 422, as does a blank string. `name` is read-only; sending it answers 400.
8378
+ */
8379
+ export type ProjectDocumentUpdateParameters = {
8380
+ /**
8381
+ * A signed_id from POST /api/v1/direct_uploads identifying a replacement blob. Register the upload naming `projects.documents` — a signed_id issued for any other resource will not resolve here.
8382
+ */
8383
+ file?: string;
8384
+ /**
8385
+ * The file's human-readable download name; null when not set.
8386
+ */
8387
+ filename?: string | null;
8388
+ /**
8389
+ * Free-text description of the document; null when none.
8390
+ */
8391
+ description?: string | null;
8392
+ };
8393
+ /**
8394
+ * One entry in a project document's PaperTrail change history, recorded whenever the document is created, updated, or deleted — including when only its attached file is replaced. This is transaction-time audit data, not a temporal valid-time version.
8395
+ */
8396
+ export type ProjectDocumentVersionResponseObject = {
8397
+ /**
8398
+ * Unique identifier.
8399
+ */
8400
+ id: number;
8401
+ /**
8402
+ * ID of the document this version belongs to.
8403
+ */
8404
+ document_id: string;
8405
+ /**
8406
+ * The change this version records: one of create, update, or destroy.
8407
+ */
8408
+ event: 'create' | 'update' | 'destroy';
8409
+ /**
8410
+ * ID of the user who made the change; null when it was not attributed to a user.
8411
+ */
8412
+ whodunnit: string | null;
8413
+ /**
8414
+ * When the record was created (ISO 8601).
8415
+ */
8416
+ created_at: string;
8417
+ };
8268
8418
  export type SiteCheckInResponseObject = {
8269
8419
  id: string;
8270
8420
  site_id: string;
@@ -8710,19 +8860,19 @@ export type ComplianceCheckDocumentObject = {
8710
8860
  created_at: string;
8711
8861
  };
8712
8862
  /**
8713
- * Update a compliance check. Every field is optional.
8863
+ * Update a compliance check. Every field is optional. Undeclared body keys return 400, and a wrong-typed value, a null for a field that is not nullable, or a status outside the list returns 422 at its pointer before anything is written.
8714
8864
  */
8715
8865
  export type ComplianceCheckParameters = {
8716
8866
  /**
8717
- * Only the person-settable statuses are writable, mirroring the web app: `dismissed` excludes the check from automatic re-evaluation; `pending` re-evaluates it on save. Evaluation owns `passed`/`failed`.
8867
+ * Only the person-settable statuses are writable, mirroring the web app: `dismissed` excludes the check from automatic re-evaluation; `pending` re-evaluates it on save. Evaluation owns `passed`/`failed`, so sending either, or null, answers 422.
8718
8868
  */
8719
8869
  status?: 'dismissed' | 'pending';
8720
8870
  /**
8721
- * When the check is due (ISO 8601); send null to clear it, or omit to leave it unchanged.
8871
+ * When the check is due, as an ISO 8601 date-time; send null to clear it, or omit to leave it unchanged. A value that is not a string answers 422.
8722
8872
  */
8723
8873
  time_due?: string | null;
8724
8874
  /**
8725
- * Replaces the check's assignees: send every user id that should be assigned, or an empty array to clear them. Every id must belong to a person in your company. Omit to leave the assignees unchanged.
8875
+ * Replaces the check's assignees: send every user id that should be assigned, each once, or an empty array to clear them. Every id must belong to a person in your company. Omit to leave the assignees unchanged. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
8726
8876
  */
8727
8877
  assignee_user_ids?: Array<string>;
8728
8878
  /**
@@ -9818,7 +9968,7 @@ export type SiteFormAssignmentParameters = {
9818
9968
  */
9819
9969
  recurrence_end_time?: string | null;
9820
9970
  /**
9821
- * IDs of the users this form task is assigned to.
9971
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
9822
9972
  */
9823
9973
  task_assignee_user_ids?: Array<string>;
9824
9974
  /**
@@ -9873,7 +10023,7 @@ export type SiteFormAssignmentUpdateParameters = {
9873
10023
  */
9874
10024
  recurrence_end_time?: string | null;
9875
10025
  /**
9876
- * IDs of the users this form task is assigned to.
10026
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
9877
10027
  */
9878
10028
  task_assignee_user_ids?: Array<string>;
9879
10029
  /**
@@ -9990,7 +10140,7 @@ export type FeatureFormAssignmentParameters = {
9990
10140
  */
9991
10141
  recurrence_end_time?: string | null;
9992
10142
  /**
9993
- * IDs of the users this form task is assigned to.
10143
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
9994
10144
  */
9995
10145
  task_assignee_user_ids?: Array<string>;
9996
10146
  /**
@@ -10045,7 +10195,7 @@ export type FeatureFormAssignmentUpdateParameters = {
10045
10195
  */
10046
10196
  recurrence_end_time?: string | null;
10047
10197
  /**
10048
- * IDs of the users this form task is assigned to.
10198
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
10049
10199
  */
10050
10200
  task_assignee_user_ids?: Array<string>;
10051
10201
  /**
@@ -10104,7 +10254,7 @@ export type JobFormAssignmentParameters = {
10104
10254
  */
10105
10255
  recurrence_end_time?: string | null;
10106
10256
  /**
10107
- * IDs of the users this form task is assigned to.
10257
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
10108
10258
  */
10109
10259
  task_assignee_user_ids?: Array<string>;
10110
10260
  /**
@@ -10159,7 +10309,7 @@ export type JobFormAssignmentUpdateParameters = {
10159
10309
  */
10160
10310
  recurrence_end_time?: string | null;
10161
10311
  /**
10162
- * IDs of the users this form task is assigned to.
10312
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
10163
10313
  */
10164
10314
  task_assignee_user_ids?: Array<string>;
10165
10315
  /**
@@ -10736,7 +10886,7 @@ export type FormAssignmentTaskResponseObject = Array<{
10736
10886
  }>;
10737
10887
  }>;
10738
10888
  /**
10739
- * Request body for creating a certification — a named qualification a worker can hold. You can only manage your own company's certifications; global (platform) certifications are read-only.
10889
+ * Request body for creating a certification — a named qualification a worker can hold. You can only manage your own company's certifications; global (platform) certifications are read-only. Omitting company_id or name answers 400, and a null or blank one, or any wrong-typed value, answers 422.
10740
10890
  */
10741
10891
  export type CertificationParameters = {
10742
10892
  /**
@@ -10761,7 +10911,7 @@ export type CertificationParameters = {
10761
10911
  duration?: string | null;
10762
10912
  };
10763
10913
  /**
10764
- * Request body for updating a certification — a named qualification a worker can hold. Include only the fields to change. You can only manage your own company's certifications; global (platform) certifications are read-only. The certification's company is fixed at creation.
10914
+ * Request body for updating a certification — a named qualification a worker can hold. Include only the fields to change. You can only manage your own company's certifications; global (platform) certifications are read-only. The certification's company is fixed at creation. A null or blank name, or any wrong-typed value, answers 422.
10765
10915
  */
10766
10916
  export type CertificationUpdateParameters = {
10767
10917
  /**
@@ -10997,11 +11147,11 @@ export type UserCertificationUpdateParameters = {
10997
11147
  archived_at?: string | null;
10998
11148
  };
10999
11149
  /**
11000
- * Request body for approving a certification held by a worker. A user key approves in its own user's name and sends no body.
11150
+ * Request body for approving a certification held by a worker. A user key approves in its own user's name and must omit approved_by_user_id. A company key must name the approver.
11001
11151
  */
11002
11152
  export type UserCertificationApprovalParameters = {
11003
11153
  /**
11004
- * Company keys only: a visible admin, manager, or safety manager at the key's company to record as approver. Required with a company key.
11154
+ * Id of a visible admin, manager, or safety manager at the key's company to record as approver. Required for a company key. A user key that sends it is refused.
11005
11155
  */
11006
11156
  approved_by_user_id?: string;
11007
11157
  };
@@ -11786,62 +11936,6 @@ export type RegionalJobWageDeterminationHistoryCorrectionObject = {
11786
11936
  created_at: string;
11787
11937
  updated_at: string;
11788
11938
  };
11789
- /**
11790
- * State-specific rate fields for a Regional determination, as decimal-string money in cents
11791
- * (e.g. "538.0"). These nine properties are the whole write vocabulary, but which of them a
11792
- * request may send is set by the job's region, not the request — sending a key the job's
11793
- * region does not allow returns a 422:
11794
- *
11795
- * - Categorized-fringe regions (currently IL) accept `combined_health_fringe_rate_cents`,
11796
- * `combined_savings_fringe_rate_cents`, `combined_holiday_pto_fringe_rate_cents`,
11797
- * `training_fringe_rate_cents`, and `other_fringe_rate_cents`.
11798
- * - Overtime-adder regions (currently IL and NY) accept `one_five_x_adder_rate_cents`,
11799
- * `two_x_adder_rate_cents`, `one_five_x_fringe_adder_rate_cents`, and
11800
- * `two_x_fringe_adder_rate_cents`.
11801
- *
11802
- * In a categorized-fringe region the five fringe keys are required, not merely accepted —
11803
- * omitting any of them returns a 422. Categorized-fringe values are non-null when present;
11804
- * overtime-adder values may be null.
11805
- *
11806
- */
11807
- export type RegionalWageDeterminationFields = {
11808
- /**
11809
- * Combined health fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
11810
- */
11811
- combined_health_fringe_rate_cents?: string;
11812
- /**
11813
- * Combined savings fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
11814
- */
11815
- combined_savings_fringe_rate_cents?: string;
11816
- /**
11817
- * Combined holiday/PTO fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
11818
- */
11819
- combined_holiday_pto_fringe_rate_cents?: string;
11820
- /**
11821
- * Training fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
11822
- */
11823
- training_fringe_rate_cents?: string;
11824
- /**
11825
- * Other (uncategorized) fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
11826
- */
11827
- other_fringe_rate_cents?: string;
11828
- /**
11829
- * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
11830
- */
11831
- one_five_x_adder_rate_cents?: string | null;
11832
- /**
11833
- * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
11834
- */
11835
- two_x_adder_rate_cents?: string | null;
11836
- /**
11837
- * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
11838
- */
11839
- one_five_x_fringe_adder_rate_cents?: string | null;
11840
- /**
11841
- * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
11842
- */
11843
- two_x_fringe_adder_rate_cents?: string | null;
11844
- };
11845
11939
  /**
11846
11940
  * State-specific rate fields recorded on a Regional determination, as decimal-string money in
11847
11941
  * cents (e.g. "538.0"). Which keys appear is set by the job's region, so this object is always
@@ -11870,7 +11964,7 @@ export type JobWageDeterminationParameters = ({
11870
11964
  type: 'Pwa::JobWageDeterminations::Regional';
11871
11965
  } & RegionalJobWageDeterminationParameters);
11872
11966
  /**
11873
- * Parameters for creating a Federal (Davis-Bacon) wage determination on a job.
11967
+ * Parameters for creating a Federal (Davis-Bacon) wage determination on a job. A Federal determination holds no regional rates, so a body sending `regional_fields` returns a 422.
11874
11968
  */
11875
11969
  export type FederalJobWageDeterminationParameters = {
11876
11970
  /**
@@ -11905,6 +11999,10 @@ export type FederalJobWageDeterminationParameters = {
11905
11999
  * 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.
11906
12000
  */
11907
12001
  general_wage_determination?: string | null;
12002
+ /**
12003
+ * Overtime package whose rules govern overtime on work under this determination. It attaches to every version of the new determination. Null, or an omitted key, attaches none. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
12004
+ */
12005
+ overtime_package_id?: string | null;
11908
12006
  };
11909
12007
  /**
11910
12008
  * Parameters for creating a Regional (state prevailing-wage) wage determination on a job.
@@ -11927,18 +12025,66 @@ export type RegionalJobWageDeterminationParameters = {
11927
12025
  */
11928
12026
  hourly_rate_cents: string;
11929
12027
  /**
11930
- * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
12028
+ * The hourly fringe rate, in cents as a decimal string. Required except in a categorized-fringe region (currently IL), which sums it from the five categorized fringe rates.
11931
12029
  */
11932
12030
  fringe_rate_cents?: string;
12031
+ /**
12032
+ * Not recorded on a Regional determination; a value sent here is dropped.
12033
+ */
12034
+ class_code?: string | null;
12035
+ /**
12036
+ * Not recorded on a Regional determination; a listed value sent here is dropped.
12037
+ */
12038
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
11933
12039
  /**
11934
12040
  * 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.
11935
12041
  */
11936
12042
  general_wage_determination?: string | null;
11937
12043
  /**
11938
- * Overtime package whose rules govern overtime on work under this determination. This is not a versioned attribute: setting it points every version at that package, not only the one this request writes, and `effective_from` does not date it. Send null to detach, leaving the determination with no overtime package of its own. Omit the key to leave the current attachment alone. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
12044
+ * State-specific rates, as decimal-string money in cents (e.g. "538.0"). The determination's region decides which rates it holds: categorized-fringe regions (currently IL) require the five fringe rates, and overtime-adder regions (currently IL and NY) accept the four adder rates. A value for a rate the region does not hold returns a 422.
12045
+ */
12046
+ regional_fields?: {
12047
+ /**
12048
+ * Combined health fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12049
+ */
12050
+ combined_health_fringe_rate_cents?: string | null;
12051
+ /**
12052
+ * Combined savings fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12053
+ */
12054
+ combined_savings_fringe_rate_cents?: string | null;
12055
+ /**
12056
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12057
+ */
12058
+ combined_holiday_pto_fringe_rate_cents?: string | null;
12059
+ /**
12060
+ * Training fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12061
+ */
12062
+ training_fringe_rate_cents?: string | null;
12063
+ /**
12064
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12065
+ */
12066
+ other_fringe_rate_cents?: string | null;
12067
+ /**
12068
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12069
+ */
12070
+ one_five_x_adder_rate_cents?: string | null;
12071
+ /**
12072
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12073
+ */
12074
+ two_x_adder_rate_cents?: string | null;
12075
+ /**
12076
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12077
+ */
12078
+ one_five_x_fringe_adder_rate_cents?: string | null;
12079
+ /**
12080
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12081
+ */
12082
+ two_x_fringe_adder_rate_cents?: string | null;
12083
+ };
12084
+ /**
12085
+ * Overtime package whose rules govern overtime on work under this determination. It attaches to every version of the new determination. Null, or an omitted key, attaches none. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
11939
12086
  */
11940
12087
  overtime_package_id?: string | null;
11941
- regional_fields?: RegionalWageDeterminationFields;
11942
12088
  };
11943
12089
  /**
11944
12090
  * 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.
@@ -11980,7 +12126,47 @@ export type JobWageDeterminationUpdateParameters = {
11980
12126
  * 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.
11981
12127
  */
11982
12128
  general_wage_determination?: string | null;
11983
- regional_fields?: RegionalWageDeterminationFields;
12129
+ /**
12130
+ * State-specific rates for a Regional determination, as decimal-string money in cents (e.g. "538.0"). The determination's region decides which rates it holds: categorized-fringe regions (currently IL) require the five fringe rates, and overtime-adder regions (currently IL and NY) accept the four adder rates. A value for a rate the region does not hold returns a 422; send null to clear one. An omitted rate keeps its current value.
12131
+ */
12132
+ regional_fields?: {
12133
+ /**
12134
+ * Combined health fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12135
+ */
12136
+ combined_health_fringe_rate_cents?: string | null;
12137
+ /**
12138
+ * Combined savings fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12139
+ */
12140
+ combined_savings_fringe_rate_cents?: string | null;
12141
+ /**
12142
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12143
+ */
12144
+ combined_holiday_pto_fringe_rate_cents?: string | null;
12145
+ /**
12146
+ * Training fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12147
+ */
12148
+ training_fringe_rate_cents?: string | null;
12149
+ /**
12150
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12151
+ */
12152
+ other_fringe_rate_cents?: string | null;
12153
+ /**
12154
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12155
+ */
12156
+ one_five_x_adder_rate_cents?: string | null;
12157
+ /**
12158
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12159
+ */
12160
+ two_x_adder_rate_cents?: string | null;
12161
+ /**
12162
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12163
+ */
12164
+ one_five_x_fringe_adder_rate_cents?: string | null;
12165
+ /**
12166
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12167
+ */
12168
+ two_x_fringe_adder_rate_cents?: string | null;
12169
+ };
11984
12170
  };
11985
12171
  /**
11986
12172
  * 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.
@@ -12014,7 +12200,47 @@ export type JobWageDeterminationScheduledChangeParameters = {
12014
12200
  * 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.
12015
12201
  */
12016
12202
  general_wage_determination?: string | null;
12017
- regional_fields?: RegionalWageDeterminationFields;
12203
+ /**
12204
+ * State-specific rates for a Regional determination, as decimal-string money in cents (e.g. "538.0"). The determination's region decides which rates it holds: categorized-fringe regions (currently IL) require the five fringe rates, and overtime-adder regions (currently IL and NY) accept the four adder rates. A value for a rate the region does not hold returns a 422; send null to clear one. An omitted rate keeps its current value.
12205
+ */
12206
+ regional_fields?: {
12207
+ /**
12208
+ * Combined health fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12209
+ */
12210
+ combined_health_fringe_rate_cents?: string | null;
12211
+ /**
12212
+ * Combined savings fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12213
+ */
12214
+ combined_savings_fringe_rate_cents?: string | null;
12215
+ /**
12216
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12217
+ */
12218
+ combined_holiday_pto_fringe_rate_cents?: string | null;
12219
+ /**
12220
+ * Training fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12221
+ */
12222
+ training_fringe_rate_cents?: string | null;
12223
+ /**
12224
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12225
+ */
12226
+ other_fringe_rate_cents?: string | null;
12227
+ /**
12228
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12229
+ */
12230
+ one_five_x_adder_rate_cents?: string | null;
12231
+ /**
12232
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12233
+ */
12234
+ two_x_adder_rate_cents?: string | null;
12235
+ /**
12236
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12237
+ */
12238
+ one_five_x_fringe_adder_rate_cents?: string | null;
12239
+ /**
12240
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12241
+ */
12242
+ two_x_fringe_adder_rate_cents?: string | null;
12243
+ };
12018
12244
  };
12019
12245
  /**
12020
12246
  * Parameters for moving where a job wage determination's timeline begins.
@@ -12278,7 +12504,7 @@ export type ProjectWageDeterminationParameters = ({
12278
12504
  type: 'Pwa::ProjectWageDeterminations::Regional';
12279
12505
  } & RegionalProjectWageDeterminationParameters);
12280
12506
  /**
12281
- * Parameters for creating a Federal (Davis-Bacon) wage determination on a project.
12507
+ * Parameters for creating a Federal (Davis-Bacon) wage determination on a project. A Federal determination holds no regional rates, so a body sending `regional_fields` returns a 422.
12282
12508
  */
12283
12509
  export type FederalProjectWageDeterminationParameters = {
12284
12510
  /**
@@ -12313,6 +12539,10 @@ export type FederalProjectWageDeterminationParameters = {
12313
12539
  * 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.
12314
12540
  */
12315
12541
  general_wage_determination?: string | null;
12542
+ /**
12543
+ * Overtime package whose rules govern overtime on work under this determination. It attaches to every version of the new determination. Null, or an omitted key, attaches none. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
12544
+ */
12545
+ overtime_package_id?: string | null;
12316
12546
  };
12317
12547
  /**
12318
12548
  * Parameters for creating a Regional (state prevailing-wage) wage determination on a project.
@@ -12335,18 +12565,66 @@ export type RegionalProjectWageDeterminationParameters = {
12335
12565
  */
12336
12566
  hourly_rate_cents: string;
12337
12567
  /**
12338
- * Hourly fringe rate, in cents as a decimal string (e.g. "1200.0" is $12.00).
12568
+ * The hourly fringe rate, in cents as a decimal string. Required except in a categorized-fringe region (currently IL), which sums it from the five categorized fringe rates.
12339
12569
  */
12340
12570
  fringe_rate_cents?: string;
12571
+ /**
12572
+ * Not recorded on a Regional determination; a value sent here is dropped.
12573
+ */
12574
+ class_code?: string | null;
12575
+ /**
12576
+ * Not recorded on a Regional determination; a listed value sent here is dropped.
12577
+ */
12578
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
12341
12579
  /**
12342
12580
  * 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.
12343
12581
  */
12344
12582
  general_wage_determination?: string | null;
12345
12583
  /**
12346
- * Overtime package whose rules govern overtime on work under this determination. This is not a versioned attribute: setting it points every version at that package, not only the one this request writes, and `effective_from` does not date it. Send null to detach, leaving the determination with no overtime package of its own. Omit the key to leave the current attachment alone. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
12584
+ * State-specific rates, as decimal-string money in cents (e.g. "538.0"). The determination's region decides which rates it holds: categorized-fringe regions (currently IL) require the five fringe rates, and overtime-adder regions (currently IL and NY) accept the four adder rates. A value for a rate the region does not hold returns a 422.
12585
+ */
12586
+ regional_fields?: {
12587
+ /**
12588
+ * Combined health fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12589
+ */
12590
+ combined_health_fringe_rate_cents?: string | null;
12591
+ /**
12592
+ * Combined savings fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12593
+ */
12594
+ combined_savings_fringe_rate_cents?: string | null;
12595
+ /**
12596
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12597
+ */
12598
+ combined_holiday_pto_fringe_rate_cents?: string | null;
12599
+ /**
12600
+ * Training fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12601
+ */
12602
+ training_fringe_rate_cents?: string | null;
12603
+ /**
12604
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12605
+ */
12606
+ other_fringe_rate_cents?: string | null;
12607
+ /**
12608
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12609
+ */
12610
+ one_five_x_adder_rate_cents?: string | null;
12611
+ /**
12612
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12613
+ */
12614
+ two_x_adder_rate_cents?: string | null;
12615
+ /**
12616
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12617
+ */
12618
+ one_five_x_fringe_adder_rate_cents?: string | null;
12619
+ /**
12620
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12621
+ */
12622
+ two_x_fringe_adder_rate_cents?: string | null;
12623
+ };
12624
+ /**
12625
+ * Overtime package whose rules govern overtime on work under this determination. It attaches to every version of the new determination. Null, or an omitted key, attaches none. A package belonging to another company is refused, and a Federal determination refuses one outright — only a Regional determination carries overtime rules.
12347
12626
  */
12348
12627
  overtime_package_id?: string | null;
12349
- regional_fields?: RegionalWageDeterminationFields;
12350
12628
  };
12351
12629
  /**
12352
12630
  * Parameters for editing a project wage determination from a point in valid time forward. The type is fixed by the determination the id names and is not sent.
@@ -12388,7 +12666,47 @@ export type ProjectWageDeterminationUpdateParameters = {
12388
12666
  * 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.
12389
12667
  */
12390
12668
  general_wage_determination?: string | null;
12391
- regional_fields?: RegionalWageDeterminationFields;
12669
+ /**
12670
+ * State-specific rates for a Regional determination, as decimal-string money in cents (e.g. "538.0"). The determination's region decides which rates it holds: categorized-fringe regions (currently IL) require the five fringe rates, and overtime-adder regions (currently IL and NY) accept the four adder rates. A value for a rate the region does not hold returns a 422; send null to clear one. An omitted rate keeps its current value.
12671
+ */
12672
+ regional_fields?: {
12673
+ /**
12674
+ * Combined health fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12675
+ */
12676
+ combined_health_fringe_rate_cents?: string | null;
12677
+ /**
12678
+ * Combined savings fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12679
+ */
12680
+ combined_savings_fringe_rate_cents?: string | null;
12681
+ /**
12682
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12683
+ */
12684
+ combined_holiday_pto_fringe_rate_cents?: string | null;
12685
+ /**
12686
+ * Training fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12687
+ */
12688
+ training_fringe_rate_cents?: string | null;
12689
+ /**
12690
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12691
+ */
12692
+ other_fringe_rate_cents?: string | null;
12693
+ /**
12694
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12695
+ */
12696
+ one_five_x_adder_rate_cents?: string | null;
12697
+ /**
12698
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12699
+ */
12700
+ two_x_adder_rate_cents?: string | null;
12701
+ /**
12702
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12703
+ */
12704
+ one_five_x_fringe_adder_rate_cents?: string | null;
12705
+ /**
12706
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12707
+ */
12708
+ two_x_fringe_adder_rate_cents?: string | null;
12709
+ };
12392
12710
  };
12393
12711
  /**
12394
12712
  * Parameters for an effective-dated change to a project wage determination, applying from a calendar date forward. The type is fixed by the determination the id names and is not sent.
@@ -12422,7 +12740,47 @@ export type ProjectWageDeterminationScheduledChangeParameters = {
12422
12740
  * 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.
12423
12741
  */
12424
12742
  general_wage_determination?: string | null;
12425
- regional_fields?: RegionalWageDeterminationFields;
12743
+ /**
12744
+ * State-specific rates for a Regional determination, as decimal-string money in cents (e.g. "538.0"). The determination's region decides which rates it holds: categorized-fringe regions (currently IL) require the five fringe rates, and overtime-adder regions (currently IL and NY) accept the four adder rates. A value for a rate the region does not hold returns a 422; send null to clear one. An omitted rate keeps its current value.
12745
+ */
12746
+ regional_fields?: {
12747
+ /**
12748
+ * Combined health fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12749
+ */
12750
+ combined_health_fringe_rate_cents?: string | null;
12751
+ /**
12752
+ * Combined savings fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12753
+ */
12754
+ combined_savings_fringe_rate_cents?: string | null;
12755
+ /**
12756
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12757
+ */
12758
+ combined_holiday_pto_fringe_rate_cents?: string | null;
12759
+ /**
12760
+ * Training fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12761
+ */
12762
+ training_fringe_rate_cents?: string | null;
12763
+ /**
12764
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Required in categorized-fringe regions, which refuse null; null elsewhere.
12765
+ */
12766
+ other_fringe_rate_cents?: string | null;
12767
+ /**
12768
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12769
+ */
12770
+ one_five_x_adder_rate_cents?: string | null;
12771
+ /**
12772
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12773
+ */
12774
+ two_x_adder_rate_cents?: string | null;
12775
+ /**
12776
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12777
+ */
12778
+ one_five_x_fringe_adder_rate_cents?: string | null;
12779
+ /**
12780
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
12781
+ */
12782
+ two_x_fringe_adder_rate_cents?: string | null;
12783
+ };
12426
12784
  };
12427
12785
  /**
12428
12786
  * Parameters for moving where a project wage determination's timeline begins.
@@ -13934,7 +14292,7 @@ export type AssetsItemFormAssignmentParameters = {
13934
14292
  */
13935
14293
  recurrence_end_time?: string | null;
13936
14294
  /**
13937
- * IDs of the users this form task is assigned to.
14295
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
13938
14296
  */
13939
14297
  task_assignee_user_ids?: Array<string>;
13940
14298
  /**
@@ -13989,7 +14347,7 @@ export type AssetsItemFormAssignmentUpdateParameters = {
13989
14347
  */
13990
14348
  recurrence_end_time?: string | null;
13991
14349
  /**
13992
- * IDs of the users this form task is assigned to.
14350
+ * Unique nonblank IDs of the users this form task is assigned to; the list replaces the assignees. Omit it to keep them (none on create), or send an empty array to clear them. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422 before anything is written.
13993
14351
  */
13994
14352
  task_assignee_user_ids?: Array<string>;
13995
14353
  /**
@@ -14734,55 +15092,55 @@ export type AssetsTransferResponseObject = {
14734
15092
  updated_at: string;
14735
15093
  };
14736
15094
  /**
14737
- * Move item stock. Each endpoint is a site, a user, or a container — give at most one per side. With both a source and a destination this is a two-sided transfer (returns the created transfer, 201). With a single open end it is a one-sided move — placing an unplaced item (destination only) or removing it from its holder (source only) — which records transactions but no transfer and returns 204. Moves are applied immediately, so the source must hold enough of each item.
15095
+ * Move item stock. Each endpoint is a site, a user, or a container — give at most one per side; more than one on a side, or no endpoint at all, answers 422. With both a source and a destination this is a two-sided transfer (returns the created transfer, 201). With a single open end it is a one-sided move — placing an unplaced item (destination only) or removing it from its holder (source only) — which records transactions but no transfer and returns 204. Moves are applied immediately, so the source must hold enough of each item.
14738
15096
  */
14739
15097
  export type AssetsTransferParameters = {
14740
15098
  /**
14741
- * ID of the source site. At most one source endpoint (site, user, or container).
15099
+ * ID of the source site. At most one source endpoint (site, user, or container); omit the others. Null, a blank ID, or a wrong type answers 422, and a site outside the company that owns the API key answers 404.
14742
15100
  */
14743
15101
  from_assets_site_id?: string;
14744
15102
  /**
14745
- * ID of the source user. At most one source endpoint (site, user, or container).
15103
+ * ID of the source user. At most one source endpoint (site, user, or container); omit the others. Null, a blank ID, or a wrong type answers 422, and a user holding none of the line items answers 404.
14746
15104
  */
14747
15105
  from_user_id?: string;
14748
15106
  /**
14749
- * ID of the source container item. At most one source endpoint (site, user, or container).
15107
+ * ID of the source container item. At most one source endpoint (site, user, or container); omit the others. Null, a blank ID, or a wrong type answers 422, and an item outside the company that owns the API key answers 404.
14750
15108
  */
14751
15109
  from_container_item_id?: string;
14752
15110
  /**
14753
- * ID of the destination site. At most one destination endpoint (site, user, or container).
15111
+ * Optional. The storage location within the source site or container the stock draws from. Omit or send null for the source's unbinned stock. A blank ID or a wrong type answers 422, a storage location outside the company that owns the API key answers 404, and one named without a source site or container, or not belonging to it, answers 422.
15112
+ */
15113
+ from_assets_sub_location_id?: string | null;
15114
+ /**
15115
+ * ID of the destination site. At most one destination endpoint (site, user, or container); omit the others. Null, a blank ID, or a wrong type answers 422, and a site outside the company that owns the API key answers 404.
14754
15116
  */
14755
15117
  to_assets_site_id?: string;
14756
15118
  /**
14757
- * ID of the destination user. At most one destination endpoint (site, user, or container).
15119
+ * ID of the destination user. At most one destination endpoint (site, user, or container); omit the others. Null, a blank ID, or a wrong type answers 422, and a user neither currently employed by nor holding a role in the company that owns the API key answers 404.
14758
15120
  */
14759
15121
  to_user_id?: string;
14760
15122
  /**
14761
- * ID of the destination container item. At most one destination endpoint (site, user, or container).
15123
+ * ID of the destination container item. At most one destination endpoint (site, user, or container); omit the others. Null, a blank ID, or a wrong type answers 422, and an item outside the company that owns the API key answers 404.
14762
15124
  */
14763
15125
  to_container_item_id?: string;
14764
15126
  /**
14765
- * 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.
14766
- */
14767
- from_assets_sub_location_id?: string;
14768
- /**
14769
- * Optional. The storage location within the destination site or container the stock lands in; must belong to that endpoint. Omit for an unbinned destination.
15127
+ * Optional. The storage location within the destination site or container the stock lands in. Omit or send null for an unbinned destination. A blank ID or a wrong type answers 422, a storage location outside the company that owns the API key answers 404, and one named without a destination site or container, or not belonging to it, answers 422.
14770
15128
  */
14771
- to_assets_sub_location_id?: string;
15129
+ to_assets_sub_location_id?: string | null;
14772
15130
  /**
14773
15131
  * ID of the user this move is performed on behalf of, recorded as its initiator. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
14774
15132
  */
14775
15133
  performed_by_user_id: string;
14776
15134
  /**
14777
- * The items and quantities to move; at least one is required.
15135
+ * The items and quantities to move, as a list of row objects; at least one is required. Omission answers 400, and null, an empty list, or a value that is not a list answers 422. A row missing a field answers 400 naming it, and an unknown or wrongly typed row field answers 422 at that row.
14778
15136
  */
14779
15137
  line_items: Array<{
14780
15138
  /**
14781
- * ID of the asset item to move.
15139
+ * ID of the asset item to move. A blank ID or a wrong type answers 422 at its row, and an item outside the company that owns the API key answers 404.
14782
15140
  */
14783
15141
  assets_item_id: string;
14784
15142
  /**
14785
- * Number of units of the item to move; greater than 0.
15143
+ * Number of units of the item to move, as an integer of 1 or more. Any other value, a fraction or a numeric string included, answers 422 at its row.
14786
15144
  */
14787
15145
  quantity: number;
14788
15146
  }>;
@@ -15832,6 +16190,10 @@ export type CreatePeriodErrors = {
15832
16190
  * Forbidden
15833
16191
  */
15834
16192
  403: Problem;
16193
+ /**
16194
+ * Not Found
16195
+ */
16196
+ 404: Problem;
15835
16197
  /**
15836
16198
  * Unprocessable Content
15837
16199
  */
@@ -16103,6 +16465,10 @@ export type UpdateWageScheduleErrors = {
16103
16465
  * Not Found
16104
16466
  */
16105
16467
  404: Problem;
16468
+ /**
16469
+ * Unprocessable Content
16470
+ */
16471
+ 422: Problem;
16106
16472
  };
16107
16473
  export type UpdateWageScheduleError = UpdateWageScheduleErrors[keyof UpdateWageScheduleErrors];
16108
16474
  export type UpdateWageScheduleResponses = {
@@ -25847,6 +26213,10 @@ export type ListPayPeriodsData = {
25847
26213
  body?: never;
25848
26214
  path?: never;
25849
26215
  query?: {
26216
+ /**
26217
+ * The pay schedule family id, the same value each period returns as timekeeping_pay_period_config_id.
26218
+ */
26219
+ 'filter[timekeeping_pay_period_config_id]'?: string;
25850
26220
  'filter[start_time][gte]'?: string;
25851
26221
  'filter[start_time][lte]'?: string;
25852
26222
  filter?: string;
@@ -25886,6 +26256,32 @@ export type ListPayPeriodsResponses = {
25886
26256
  200: PayPeriodsResponseObject;
25887
26257
  };
25888
26258
  export type ListPayPeriodsResponse = ListPayPeriodsResponses[keyof ListPayPeriodsResponses];
26259
+ export type GetPayPeriodData = {
26260
+ body?: never;
26261
+ path: {
26262
+ id: string;
26263
+ };
26264
+ query?: never;
26265
+ url: '/api/v1/pay_periods/{id}';
26266
+ };
26267
+ export type GetPayPeriodErrors = {
26268
+ /**
26269
+ * Forbidden
26270
+ */
26271
+ 403: Problem;
26272
+ /**
26273
+ * Not Found
26274
+ */
26275
+ 404: Problem;
26276
+ };
26277
+ export type GetPayPeriodError = GetPayPeriodErrors[keyof GetPayPeriodErrors];
26278
+ export type GetPayPeriodResponses = {
26279
+ /**
26280
+ * Success
26281
+ */
26282
+ 200: PayPeriodResponseObject;
26283
+ };
26284
+ export type GetPayPeriodResponse = GetPayPeriodResponses[keyof GetPayPeriodResponses];
25889
26285
  export type ListCompensationElementsData = {
25890
26286
  body?: never;
25891
26287
  path?: never;
@@ -27536,6 +27932,10 @@ export type ListEmploymentsData = {
27536
27932
  * Return employments for this user ID.
27537
27933
  */
27538
27934
  'filter[user_id]'?: string;
27935
+ /**
27936
+ * Return employments whose version at the lens time (now, or `as_of[valid]`) belongs to this department.
27937
+ */
27938
+ 'filter[companies_department_id]'?: string;
27539
27939
  filter?: string;
27540
27940
  'filter[unexpected]'?: string;
27541
27941
  /**
@@ -28287,6 +28687,226 @@ export type UpdateCompletionResponses = {
28287
28687
  200: ProductionCompletionResponseObject;
28288
28688
  };
28289
28689
  export type UpdateCompletionResponse = UpdateCompletionResponses[keyof UpdateCompletionResponses];
28690
+ export type ListProjectDocumentVersionsData = {
28691
+ body?: never;
28692
+ path: {
28693
+ project_id: string;
28694
+ document_id: string;
28695
+ };
28696
+ query?: {
28697
+ /**
28698
+ * This pagination cursor corresponds to the cursor value found in the response in
28699
+ * `meta.page.next_cursor`.
28700
+ */
28701
+ 'page[cursor]'?: string;
28702
+ /**
28703
+ * 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`.
28704
+ */
28705
+ 'page[limit]'?: number;
28706
+ page?: string;
28707
+ };
28708
+ url: '/api/v1/projects/{project_id}/documents/{document_id}/versions';
28709
+ };
28710
+ export type ListProjectDocumentVersionsErrors = {
28711
+ /**
28712
+ * Bad Request
28713
+ */
28714
+ 400: Problem;
28715
+ /**
28716
+ * Forbidden
28717
+ */
28718
+ 403: Problem;
28719
+ /**
28720
+ * Not Found
28721
+ */
28722
+ 404: Problem;
28723
+ };
28724
+ export type ListProjectDocumentVersionsError = ListProjectDocumentVersionsErrors[keyof ListProjectDocumentVersionsErrors];
28725
+ export type ListProjectDocumentVersionsResponses = {
28726
+ /**
28727
+ * Success
28728
+ */
28729
+ 200: {
28730
+ meta: Meta;
28731
+ links: Links;
28732
+ data: Array<ProjectDocumentVersionResponseObject>;
28733
+ };
28734
+ };
28735
+ export type ListProjectDocumentVersionsResponse = ListProjectDocumentVersionsResponses[keyof ListProjectDocumentVersionsResponses];
28736
+ export type ListProjectDocumentsData = {
28737
+ body?: never;
28738
+ path: {
28739
+ project_id: string;
28740
+ };
28741
+ query?: {
28742
+ 'filter[created_at][gte]'?: string;
28743
+ 'filter[created_at][lte]'?: string;
28744
+ 'filter[updated_at][gte]'?: string;
28745
+ 'filter[updated_at][lte]'?: string;
28746
+ /**
28747
+ * This pagination cursor corresponds to the cursor value found in the response in
28748
+ * `meta.page.next_cursor`.
28749
+ */
28750
+ 'page[cursor]'?: string;
28751
+ /**
28752
+ * 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`.
28753
+ */
28754
+ 'page[limit]'?: number;
28755
+ page?: string;
28756
+ filter?: string;
28757
+ 'filter[unexpected]'?: string;
28758
+ };
28759
+ url: '/api/v1/projects/{project_id}/documents';
28760
+ };
28761
+ export type ListProjectDocumentsErrors = {
28762
+ /**
28763
+ * Bad Request
28764
+ */
28765
+ 400: Problem;
28766
+ /**
28767
+ * Forbidden
28768
+ */
28769
+ 403: Problem;
28770
+ /**
28771
+ * Not Found
28772
+ */
28773
+ 404: Problem;
28774
+ /**
28775
+ * Unprocessable Content
28776
+ */
28777
+ 422: Problem;
28778
+ };
28779
+ export type ListProjectDocumentsError = ListProjectDocumentsErrors[keyof ListProjectDocumentsErrors];
28780
+ export type ListProjectDocumentsResponses = {
28781
+ /**
28782
+ * Success
28783
+ */
28784
+ 200: {
28785
+ meta: Meta;
28786
+ links: Links;
28787
+ data: Array<ProjectDocumentResponseObject>;
28788
+ };
28789
+ };
28790
+ export type ListProjectDocumentsResponse = ListProjectDocumentsResponses[keyof ListProjectDocumentsResponses];
28791
+ export type CreateProjectDocumentData = {
28792
+ body: ProjectDocumentParameters;
28793
+ path: {
28794
+ project_id: string;
28795
+ };
28796
+ query?: never;
28797
+ url: '/api/v1/projects/{project_id}/documents';
28798
+ };
28799
+ export type CreateProjectDocumentErrors = {
28800
+ /**
28801
+ * Bad Request (missing performed_by_user_id)
28802
+ */
28803
+ 400: Problem;
28804
+ /**
28805
+ * Forbidden
28806
+ */
28807
+ 403: Problem;
28808
+ /**
28809
+ * Not Found
28810
+ */
28811
+ 404: Problem;
28812
+ /**
28813
+ * Unprocessable Content
28814
+ */
28815
+ 422: Problem;
28816
+ };
28817
+ export type CreateProjectDocumentError = CreateProjectDocumentErrors[keyof CreateProjectDocumentErrors];
28818
+ export type CreateProjectDocumentResponses = {
28819
+ /**
28820
+ * Created
28821
+ */
28822
+ 201: ProjectDocumentResponseObject;
28823
+ };
28824
+ export type CreateProjectDocumentResponse = CreateProjectDocumentResponses[keyof CreateProjectDocumentResponses];
28825
+ export type DeleteProjectDocumentData = {
28826
+ body?: never;
28827
+ path: {
28828
+ project_id: string;
28829
+ id: string;
28830
+ };
28831
+ query?: never;
28832
+ url: '/api/v1/projects/{project_id}/documents/{id}';
28833
+ };
28834
+ export type DeleteProjectDocumentErrors = {
28835
+ /**
28836
+ * Forbidden
28837
+ */
28838
+ 403: Problem;
28839
+ /**
28840
+ * Not Found
28841
+ */
28842
+ 404: Problem;
28843
+ };
28844
+ export type DeleteProjectDocumentError = DeleteProjectDocumentErrors[keyof DeleteProjectDocumentErrors];
28845
+ export type DeleteProjectDocumentResponses = {
28846
+ /**
28847
+ * No Content
28848
+ */
28849
+ 204: void;
28850
+ };
28851
+ export type DeleteProjectDocumentResponse = DeleteProjectDocumentResponses[keyof DeleteProjectDocumentResponses];
28852
+ export type GetProjectDocumentData = {
28853
+ body?: never;
28854
+ path: {
28855
+ project_id: string;
28856
+ id: string;
28857
+ };
28858
+ query?: never;
28859
+ url: '/api/v1/projects/{project_id}/documents/{id}';
28860
+ };
28861
+ export type GetProjectDocumentErrors = {
28862
+ /**
28863
+ * Forbidden
28864
+ */
28865
+ 403: Problem;
28866
+ /**
28867
+ * Not Found
28868
+ */
28869
+ 404: Problem;
28870
+ };
28871
+ export type GetProjectDocumentError = GetProjectDocumentErrors[keyof GetProjectDocumentErrors];
28872
+ export type GetProjectDocumentResponses = {
28873
+ /**
28874
+ * Success
28875
+ */
28876
+ 200: ProjectDocumentResponseObject;
28877
+ };
28878
+ export type GetProjectDocumentResponse = GetProjectDocumentResponses[keyof GetProjectDocumentResponses];
28879
+ export type UpdateProjectDocumentData = {
28880
+ body: ProjectDocumentUpdateParameters;
28881
+ path: {
28882
+ project_id: string;
28883
+ id: string;
28884
+ };
28885
+ query?: never;
28886
+ url: '/api/v1/projects/{project_id}/documents/{id}';
28887
+ };
28888
+ export type UpdateProjectDocumentErrors = {
28889
+ /**
28890
+ * Bad Request
28891
+ */
28892
+ 400: Problem;
28893
+ /**
28894
+ * Forbidden
28895
+ */
28896
+ 403: Problem;
28897
+ /**
28898
+ * Not Found
28899
+ */
28900
+ 404: Problem;
28901
+ };
28902
+ export type UpdateProjectDocumentError = UpdateProjectDocumentErrors[keyof UpdateProjectDocumentErrors];
28903
+ export type UpdateProjectDocumentResponses = {
28904
+ /**
28905
+ * Success
28906
+ */
28907
+ 200: ProjectDocumentResponseObject;
28908
+ };
28909
+ export type UpdateProjectDocumentResponse = UpdateProjectDocumentResponses[keyof UpdateProjectDocumentResponses];
28290
28910
  export type CreateProjectTradeData = {
28291
28911
  body: PwaTradeParameters;
28292
28912
  path: {
@@ -32564,10 +33184,10 @@ export type RemoveUserFromCompanyData = {
32564
33184
  body?: never;
32565
33185
  path: {
32566
33186
  user_id: string;
32567
- company_id: string;
33187
+ id: string;
32568
33188
  };
32569
33189
  query?: never;
32570
- url: '/api/v1/users/{user_id}/companies/{company_id}';
33190
+ url: '/api/v1/users/{user_id}/companies/{id}';
32571
33191
  };
32572
33192
  export type RemoveUserFromCompanyErrors = {
32573
33193
  /**
@@ -32594,10 +33214,10 @@ export type UpdateCompanyData = {
32594
33214
  body: UserCompanyParameters;
32595
33215
  path: {
32596
33216
  user_id: string;
32597
- company_id: string;
33217
+ id: string;
32598
33218
  };
32599
33219
  query?: never;
32600
- url: '/api/v1/users/{user_id}/companies/{company_id}';
33220
+ url: '/api/v1/users/{user_id}/companies/{id}';
32601
33221
  };
32602
33222
  export type UpdateCompanyErrors = {
32603
33223
  /**