@dsptch-work/api-client 0.9.0 → 0.10.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.
@@ -66,6 +66,12 @@ export type Problem = {
66
66
  *
67
67
  * A signed token in the request fails signature verification. Re-obtain the token from the endpoint that issued it.
68
68
  *
69
+ * ### malformed_body
70
+ *
71
+ * **Malformed Request Body**
72
+ *
73
+ * The request body could not be parsed in the declared content type — most commonly a body that is not valid JSON. Send a well-formed body matching the `Content-Type` header.
74
+ *
69
75
  * ### non_range_filter_value
70
76
  *
71
77
  * **Range Filter Needs Bounds**
@@ -94,7 +100,7 @@ export type Problem = {
94
100
  *
95
101
  * **Parameter Must Be An Object**
96
102
  *
97
- * A container query parameter — `filter`, `page`, or `as_of` — arrived as a scalar, array, or blank value instead of a nested object. Use the object syntax, for example `filter[key]=value`.
103
+ * Something that must be an object arrived as something else. Either a container query parameter — `filter`, `page`, or `as_of` — arrived as a scalar, array, or blank value, in which case use the object syntax, for example `filter[key]=value`; or the request body of a write that documents this failure parsed to `null`, an array, or a bare scalar, in which case send a JSON object. An absent or empty body is not this failure.
98
104
  *
99
105
  * ### unknown_axis
100
106
  *
@@ -104,9 +110,9 @@ export type Problem = {
104
110
  *
105
111
  * ### unknown_key
106
112
  *
107
- * **Unknown Query Parameter**
113
+ * **Unknown Key**
108
114
  *
109
- * The query string carries a top-level key outside the declared containers — typically a misspelled container. Remove or correct it; unknown keys are never silently ignored.
115
+ * The query string carries a top-level key outside the declared containers, or the request body carries a key the operation's contract does not declare — typically a misspelled container or field. Remove or correct the keys the detail names; unknown keys are never silently ignored.
110
116
  *
111
117
  * ### unsupported_axis
112
118
  *
@@ -333,7 +339,7 @@ export type Problem = {
333
339
  * Another write to the same resource held it for longer than this request was willing to wait, so nothing was applied. The request itself is fine — resend it unchanged after the `Retry-After` window.
334
340
  *
335
341
  */
336
- export type ProblemTypeCatalog = 'blank_axis' | 'invalid_cursor' | 'invalid_filter_key' | 'invalid_limit' | 'invalid_signature' | 'non_range_filter_value' | 'non_scalar_axis' | 'non_scalar_filter_value' | 'parameter_missing' | 'parameter_not_object' | 'unknown_axis' | 'unknown_key' | 'unsupported_axis' | 'valid_axis_on_timeline' | 'unauthorized' | 'company_scoped_key_required' | 'forbidden' | 'insufficient_api_key_scope' | 'not_found' | 'already_terminated' | 'recorded_since_termination' | 'span_beyond_timeline_end' | 'version_overlap' | 'precondition_failed' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | 'interval_too_wide' | 'invalid_date' | 'invalid_filter_value' | 'invalid_iso8601_duration' | 'invalid_placement_move' | 'invalid_signed_id' | 'non_numeric_cents' | 'nothing_to_cancel' | 'pagination_failed' | 'subtype_foreign_keys' | 'synced_determination' | 'user_not_company_member' | 'validation_failed' | 'wage_schedule_outside_program' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'write_contended';
342
+ export type ProblemTypeCatalog = 'blank_axis' | 'invalid_cursor' | 'invalid_filter_key' | 'invalid_limit' | 'invalid_signature' | 'malformed_body' | 'non_range_filter_value' | 'non_scalar_axis' | 'non_scalar_filter_value' | 'parameter_missing' | 'parameter_not_object' | 'unknown_axis' | 'unknown_key' | 'unsupported_axis' | 'valid_axis_on_timeline' | 'unauthorized' | 'company_scoped_key_required' | 'forbidden' | 'insufficient_api_key_scope' | 'not_found' | 'already_terminated' | 'recorded_since_termination' | 'span_beyond_timeline_end' | 'version_overlap' | 'precondition_failed' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | 'interval_too_wide' | 'invalid_date' | 'invalid_filter_value' | 'invalid_iso8601_duration' | 'invalid_placement_move' | 'invalid_signed_id' | 'non_numeric_cents' | 'nothing_to_cancel' | 'pagination_failed' | 'subtype_foreign_keys' | 'synced_determination' | 'user_not_company_member' | 'validation_failed' | 'wage_schedule_outside_program' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'write_contended';
337
343
  export type ApiKeyScopeResponseObject = {
338
344
  resource: string;
339
345
  action: 'read' | 'create' | 'update' | 'delete';
@@ -468,7 +474,7 @@ export type ApprenticeshipProgramResponseObject = {
468
474
  /**
469
475
  * Agency that registered the program: federal (DOL Office of Apprenticeship) or regional (a recognized state apprenticeship agency); null when not recorded.
470
476
  */
471
- registration_agency_type: 'federal' | 'regional';
477
+ registration_agency_type: 'federal' | 'regional' | null;
472
478
  /**
473
479
  * When the record was created (ISO 8601).
474
480
  */
@@ -709,7 +715,7 @@ export type ApprenticeshipApprenticeResponseObject = {
709
715
  /**
710
716
  * Result of the last DOL status-verification attempt: one of pending, in_progress, failed, or success; null when never attempted.
711
717
  */
712
- status_verification_result: 'pending' | 'in_progress' | 'failed' | 'success';
718
+ status_verification_result: 'pending' | 'in_progress' | 'failed' | 'success' | null;
713
719
  /**
714
720
  * Date the apprentice is expected to begin the apprenticeship.
715
721
  */
@@ -799,7 +805,7 @@ export type ApprenticeshipProgramParameters = {
799
805
  /**
800
806
  * Agency that registered the program: federal or regional; optional, null to clear.
801
807
  */
802
- registration_agency_type?: 'federal' | 'regional';
808
+ registration_agency_type?: 'federal' | 'regional' | null;
803
809
  };
804
810
  /**
805
811
  * Create or update an occupation (trade) within a sponsored program; the program is taken from the URL path.
@@ -967,7 +973,7 @@ export type ApprenticeshipWageScheduleParameters = {
967
973
  */
968
974
  export type TimecodeResponseObject = {
969
975
  /**
970
- * Version-stable identifier; always equal to bitemporal_id, never a per-version row id (UUID string).
976
+ * Version-stable identifier the identity every version of the timecode shares, never a per-version row id (UUID string).
971
977
  */
972
978
  id: string;
973
979
  /**
@@ -1031,9 +1037,9 @@ export type TimecodeResponseObject = {
1031
1037
  */
1032
1038
  restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1033
1039
  /**
1034
- * Id of the company that owns this timecode as a company-wide default; null for job-scoped timecodes (a timecode is either company-default or job-scoped, never both). Timecodes created through this API are always company-owned by the caller's company.
1040
+ * Id of the company that owns this timecode as a company-wide default. Always your company a timecode is either company-default or job-scoped, and this API only exposes the company-default ones.
1035
1041
  */
1036
- default_for_company_id: string | null;
1042
+ default_for_company_id: string;
1037
1043
  /**
1038
1044
  * ISO8601 timestamp at which this version's validity window begins (bitemporal valid-time start); never null for this resource — a lower bound is always recorded.
1039
1045
  */
@@ -1059,8 +1065,39 @@ export type TimecodeResponseObject = {
1059
1065
  */
1060
1066
  updated_at: string;
1061
1067
  };
1068
+ export type TimecodeHistoryCorrectionObject = {
1069
+ /**
1070
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1071
+ */
1072
+ timekeeping_timecode_id: string;
1073
+ name: string;
1074
+ description: string | null;
1075
+ description_is_required: boolean;
1076
+ billable: boolean;
1077
+ overtime_eligible: boolean;
1078
+ unpaid: boolean;
1079
+ holiday: boolean;
1080
+ pto: boolean;
1081
+ safety: boolean;
1082
+ lunch_shortcut: boolean;
1083
+ break_shortcut: boolean;
1084
+ pwa: boolean;
1085
+ rest_and_recovery: boolean;
1086
+ incentive_pay_eligible: boolean;
1087
+ restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1088
+ default_for_company_id: string;
1089
+ valid_from: string | null;
1090
+ valid_to: string | null;
1091
+ transaction_from: string;
1092
+ transaction_to: string | null;
1093
+ created_at: string;
1094
+ updated_at: string;
1095
+ };
1062
1096
  export type TimecodeHistoryVersionObject = {
1063
- id: string;
1097
+ /**
1098
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
1099
+ */
1100
+ timekeeping_timecode_id: string;
1064
1101
  name: string;
1065
1102
  description: string | null;
1066
1103
  description_is_required: boolean;
@@ -1076,7 +1113,7 @@ export type TimecodeHistoryVersionObject = {
1076
1113
  rest_and_recovery: boolean;
1077
1114
  incentive_pay_eligible: boolean;
1078
1115
  restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1079
- default_for_company_id: string | null;
1116
+ default_for_company_id: string;
1080
1117
  valid_from: string | null;
1081
1118
  valid_to: string | null;
1082
1119
  transaction_from: string;
@@ -1084,7 +1121,7 @@ export type TimecodeHistoryVersionObject = {
1084
1121
  created_at: string;
1085
1122
  updated_at: string;
1086
1123
  version_status: 'scheduled' | 'current' | 'historical';
1087
- corrections: Array<TimecodeResponseObject>;
1124
+ corrections: Array<TimecodeHistoryCorrectionObject>;
1088
1125
  };
1089
1126
  /**
1090
1127
  * 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.
@@ -1950,7 +1987,7 @@ export type AttestationConfigResponseObject = {
1950
1987
  /**
1951
1988
  * The attestation question presented to the worker when a shift ends.
1952
1989
  */
1953
- content: string | null;
1990
+ content: string;
1954
1991
  /**
1955
1992
  * The answer expected for a compliant shift (true or false).
1956
1993
  */
@@ -2028,7 +2065,7 @@ export type PayPeriodConfigResponseObject = {
2028
2065
  /**
2029
2066
  * Granularity at which payroll actuals are collected: none (not collected), base (from paystub line items), or aggregate (pre-summed totals). Null when unset.
2030
2067
  */
2031
- payroll_mode: 'none' | 'base' | 'aggregate';
2068
+ payroll_mode: 'none' | 'base' | 'aggregate' | null;
2032
2069
  /**
2033
2070
  * Granularity at which time is tracked: none, base (individual time entries, auto-aggregated), or aggregate (day-level totals only, no entries).
2034
2071
  */
@@ -2036,7 +2073,7 @@ export type PayPeriodConfigResponseObject = {
2036
2073
  /**
2037
2074
  * External payroll provider this schedule integrates with: one of rippling, quickbooks_online, paychex, or gusto. Null when none.
2038
2075
  */
2039
- payroll_system: 'rippling' | 'quickbooks_online' | 'paychex' | 'gusto';
2076
+ payroll_system: 'rippling' | 'quickbooks_online' | 'paychex' | 'gusto' | null;
2040
2077
  /**
2041
2078
  * Whether paystub line-item actuals are imported from the payroll system. Null when unset.
2042
2079
  */
@@ -2066,8 +2103,34 @@ export type PayPeriodConfigResponseObject = {
2066
2103
  */
2067
2104
  created_at: string;
2068
2105
  };
2106
+ export type PayPeriodConfigHistoryCorrectionObject = {
2107
+ /**
2108
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
2109
+ */
2110
+ timekeeping_pay_period_config_id: string;
2111
+ company_id: string;
2112
+ name: string;
2113
+ frequency: 'weekly' | 'biweekly';
2114
+ start_day_of_week: number;
2115
+ tz_name: string;
2116
+ currency: string;
2117
+ status: 'synced' | 'pending' | 'failed';
2118
+ payroll_mode: 'none' | 'base' | 'aggregate' | null;
2119
+ time_mode: 'none' | 'base' | 'aggregate';
2120
+ payroll_system: 'rippling' | 'quickbooks_online' | 'paychex' | 'gusto' | null;
2121
+ actuals_enabled: boolean | null;
2122
+ requires_external_map_contributor: boolean;
2123
+ paid_after_holiday: boolean;
2124
+ demo: boolean | null;
2125
+ valid_from: string | null;
2126
+ valid_to: string | null;
2127
+ created_at: string;
2128
+ };
2069
2129
  export type PayPeriodConfigHistoryVersionObject = {
2070
- id: string;
2130
+ /**
2131
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
2132
+ */
2133
+ timekeeping_pay_period_config_id: string;
2071
2134
  company_id: string;
2072
2135
  name: string;
2073
2136
  frequency: 'weekly' | 'biweekly';
@@ -2075,9 +2138,9 @@ export type PayPeriodConfigHistoryVersionObject = {
2075
2138
  tz_name: string;
2076
2139
  currency: string;
2077
2140
  status: 'synced' | 'pending' | 'failed';
2078
- payroll_mode: 'none' | 'base' | 'aggregate';
2141
+ payroll_mode: 'none' | 'base' | 'aggregate' | null;
2079
2142
  time_mode: 'none' | 'base' | 'aggregate';
2080
- payroll_system: 'rippling' | 'quickbooks_online' | 'paychex' | 'gusto';
2143
+ payroll_system: 'rippling' | 'quickbooks_online' | 'paychex' | 'gusto' | null;
2081
2144
  actuals_enabled: boolean | null;
2082
2145
  requires_external_map_contributor: boolean;
2083
2146
  paid_after_holiday: boolean;
@@ -2086,7 +2149,7 @@ export type PayPeriodConfigHistoryVersionObject = {
2086
2149
  valid_to: string | null;
2087
2150
  created_at: string;
2088
2151
  version_status: 'scheduled' | 'current' | 'historical';
2089
- corrections: Array<PayPeriodConfigResponseObject>;
2152
+ corrections: Array<PayPeriodConfigHistoryCorrectionObject>;
2090
2153
  };
2091
2154
  /**
2092
2155
  * Create or update a holiday on a pay schedule. name, holiday_type, and month are required; mday is required for fixed holidays and wday + week for floating holidays (enforced by model validation).
@@ -2184,7 +2247,7 @@ export type PwaCompanyUserDetailsResponseObject = {
2184
2247
  /**
2185
2248
  * Worker sex for demographic reporting: one of female, male, non_binary, or not_specified; null when unset.
2186
2249
  */
2187
- sex: 'female' | 'male' | 'non_binary' | 'not_specified';
2250
+ sex: 'female' | 'male' | 'non_binary' | 'not_specified' | null;
2188
2251
  /**
2189
2252
  * Local business license number, when a jurisdiction requires it on certified payroll; null when unset.
2190
2253
  */
@@ -2204,11 +2267,11 @@ export type PwaCompanyUserDetailsResponseObject = {
2204
2267
  /**
2205
2268
  * Veteran status per US Census definitions: one of protected_veteran, not_protected_veteran, reserves, guard, or not_specified; null when unset.
2206
2269
  */
2207
- veteran_status: 'protected_veteran' | 'not_protected_veteran' | 'reserves' | 'guard' | 'not_specified';
2270
+ veteran_status: 'protected_veteran' | 'not_protected_veteran' | 'reserves' | 'guard' | 'not_specified' | null;
2208
2271
  /**
2209
2272
  * Whether the worker is of Hispanic origin per US Census definitions: one of yes, no, or not_specified; null when unset.
2210
2273
  */
2211
- hispanic_origin: 'yes' | 'no' | 'not_specified';
2274
+ hispanic_origin: 'yes' | 'no' | 'not_specified' | null;
2212
2275
  /**
2213
2276
  * Number of payroll withholding exemptions reported on California DIR certified payroll (eCPR), 0 to 99; null when unset.
2214
2277
  */
@@ -2220,11 +2283,11 @@ export type PwaCompanyUserDetailsResponseObject = {
2220
2283
  /**
2221
2284
  * Illinois DOL race classification for Illinois prevailing-wage reporting, as a single code (e.g. white, black, hispanic_or_latino); null when unset. See the schema enum for the full set.
2222
2285
  */
2223
- il_dol_race: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other';
2286
+ il_dol_race: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other' | null;
2224
2287
  /**
2225
2288
  * Illinois SHINES employment type: one of part_time, full_time, seasonal_temporary, or independent_contract; null when unset.
2226
2289
  */
2227
- il_shines_employment_type: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract';
2290
+ il_shines_employment_type: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract' | null;
2228
2291
  /**
2229
2292
  * Illinois SHINES Equity Eligible Person (EEP) qualifiers for the worker, as an array of codes (e.g. eep_program_completed, foster_care, formerly_incarcerated); null when unset. See the schema enum for the full set.
2230
2293
  */
@@ -2236,7 +2299,7 @@ export type PwaCompanyUserDetailsResponseObject = {
2236
2299
  /**
2237
2300
  * Oregon BOLI workweek schedule: five_eight (five eight-hour days) or four_ten (four ten-hour days); null when unset.
2238
2301
  */
2239
- or_boli_schedule_type: 'five_eight' | 'four_ten';
2302
+ or_boli_schedule_type: 'five_eight' | 'four_ten' | null;
2240
2303
  /**
2241
2304
  * Oregon BOLI race classification, as an array of codes (e.g. white, asian, hispanic_or_latino, black_or_african_american); null when unset. See the schema enum for the full set.
2242
2305
  */
@@ -2281,7 +2344,7 @@ export type PwaCompanyUserDetailsParameters = {
2281
2344
  /**
2282
2345
  * Worker sex for demographic reporting: one of female, male, non_binary, or not_specified.
2283
2346
  */
2284
- sex?: 'female' | 'male' | 'non_binary' | 'not_specified';
2347
+ sex?: 'female' | 'male' | 'non_binary' | 'not_specified' | null;
2285
2348
  /**
2286
2349
  * Local business license number, when a jurisdiction requires it on certified payroll.
2287
2350
  */
@@ -2301,11 +2364,11 @@ export type PwaCompanyUserDetailsParameters = {
2301
2364
  /**
2302
2365
  * Veteran status per US Census definitions: one of protected_veteran, not_protected_veteran, reserves, guard, or not_specified.
2303
2366
  */
2304
- veteran_status?: 'protected_veteran' | 'not_protected_veteran' | 'reserves' | 'guard' | 'not_specified';
2367
+ veteran_status?: 'protected_veteran' | 'not_protected_veteran' | 'reserves' | 'guard' | 'not_specified' | null;
2305
2368
  /**
2306
2369
  * Whether the worker is of Hispanic origin per US Census definitions: one of yes, no, or not_specified.
2307
2370
  */
2308
- hispanic_origin?: 'yes' | 'no' | 'not_specified';
2371
+ hispanic_origin?: 'yes' | 'no' | 'not_specified' | null;
2309
2372
  /**
2310
2373
  * Number of payroll withholding exemptions reported on California DIR certified payroll (eCPR), 0 to 99.
2311
2374
  */
@@ -2317,11 +2380,11 @@ export type PwaCompanyUserDetailsParameters = {
2317
2380
  /**
2318
2381
  * Illinois DOL race classification for Illinois prevailing-wage reporting, as a single code (e.g. white, black, hispanic_or_latino). See the schema enum for the full set.
2319
2382
  */
2320
- il_dol_race?: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other';
2383
+ il_dol_race?: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other' | null;
2321
2384
  /**
2322
2385
  * Illinois SHINES employment type: one of part_time, full_time, seasonal_temporary, or independent_contract.
2323
2386
  */
2324
- il_shines_employment_type?: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract';
2387
+ il_shines_employment_type?: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract' | null;
2325
2388
  /**
2326
2389
  * Illinois SHINES Equity Eligible Person (EEP) qualifiers for the worker, as an array of codes (e.g. eep_program_completed, foster_care, formerly_incarcerated). See the schema enum for the full set.
2327
2390
  */
@@ -2333,7 +2396,7 @@ export type PwaCompanyUserDetailsParameters = {
2333
2396
  /**
2334
2397
  * Oregon BOLI workweek schedule: five_eight (five eight-hour days) or four_ten (four ten-hour days).
2335
2398
  */
2336
- or_boli_schedule_type?: 'five_eight' | 'four_ten';
2399
+ or_boli_schedule_type?: 'five_eight' | 'four_ten' | null;
2337
2400
  /**
2338
2401
  * Oregon BOLI race classification, as an array of codes (e.g. white, asian, hispanic_or_latino, black_or_african_american).
2339
2402
  */
@@ -2475,52 +2538,7 @@ export type JobResponseObject = {
2475
2538
  */
2476
2539
  project_id: string | null;
2477
2540
  /**
2478
- * Deprecated. The creating company as a minimal object; use created_by_company_id instead.
2479
- *
2480
- * @deprecated
2481
- */
2482
- created_by_company: {
2483
- /**
2484
- * ID of the creating company.
2485
- */
2486
- id?: string;
2487
- /**
2488
- * Name of the creating company.
2489
- */
2490
- name?: string;
2491
- };
2492
- /**
2493
- * Deprecated. The requesting company as a minimal object; use requested_by_company_id instead.
2494
- *
2495
- * @deprecated
2496
- */
2497
- requested_by_company: {
2498
- /**
2499
- * ID of the requesting company.
2500
- */
2501
- id?: string;
2502
- /**
2503
- * Name of the requesting company.
2504
- */
2505
- name?: string;
2506
- };
2507
- /**
2508
- * Deprecated. The job's primary manager as a minimal object; null when the job has no manager.
2509
- *
2510
- * @deprecated
2511
- */
2512
- manager_user: {
2513
- /**
2514
- * ID of the manager user.
2515
- */
2516
- id?: string;
2517
- /**
2518
- * Name of the manager user.
2519
- */
2520
- name?: string;
2521
- } | null;
2522
- /**
2523
- * The job's managers, each as a minimal object; empty when the job has no managers. This is the current field — the singular manager_user is deprecated.
2541
+ * The job's managers, each as a minimal object; empty when the job has no managers.
2524
2542
  */
2525
2543
  manager_users: Array<{
2526
2544
  /**
@@ -2539,30 +2557,30 @@ export type JobResponseObject = {
2539
2557
  /**
2540
2558
  * ID of the creating user.
2541
2559
  */
2542
- id?: string;
2560
+ id: string;
2543
2561
  /**
2544
2562
  * Name of the creating user.
2545
2563
  */
2546
- name?: string;
2564
+ name: string;
2547
2565
  };
2548
2566
  /**
2549
- * Sites (geofenced locations) associated with the job; null when none.
2567
+ * Sites (geofenced locations) associated with the job; empty when none.
2550
2568
  */
2551
2569
  sites: Array<{
2552
2570
  /**
2553
2571
  * Name of the site.
2554
2572
  */
2555
- name?: string;
2573
+ name: string;
2556
2574
  /**
2557
- * Geofenced features within the site; null when none.
2575
+ * Geofenced features within the site; empty when none.
2558
2576
  */
2559
- features?: Array<{
2577
+ features: Array<{
2560
2578
  /**
2561
2579
  * Name of the feature.
2562
2580
  */
2563
- name?: string;
2564
- }> | null;
2565
- }> | null;
2581
+ name: string;
2582
+ }>;
2583
+ }>;
2566
2584
  /**
2567
2585
  * The job's structured address; null when unset.
2568
2586
  */
@@ -2570,18 +2588,18 @@ export type JobResponseObject = {
2570
2588
  /**
2571
2589
  * Human-readable one-line address label.
2572
2590
  */
2573
- label?: string;
2591
+ label: string;
2574
2592
  } | null;
2575
2593
  /**
2576
- * Positions on the job — the worker assignments that track time against it; null when none.
2594
+ * Positions on the job — the worker assignments that track time against it; empty when none.
2577
2595
  */
2578
2596
  positions: Array<{
2579
- position_function?: PositionFunction;
2597
+ position_function: PositionFunction;
2580
2598
  /**
2581
2599
  * ID of the worker assigned to the position; null when unfilled.
2582
2600
  */
2583
- fulfilled_by_user_id?: string | null;
2584
- }> | null;
2601
+ fulfilled_by_user_id: string | null;
2602
+ }>;
2585
2603
  /**
2586
2604
  * The project this job belongs to; null when none.
2587
2605
  */
@@ -2589,22 +2607,22 @@ export type JobResponseObject = {
2589
2607
  /**
2590
2608
  * Name of the project.
2591
2609
  */
2592
- name?: string;
2610
+ name: string;
2593
2611
  } | null;
2594
2612
  pwa_details: PwaJobDetailsResponseObject;
2595
2613
  /**
2596
- * Work types (trade or scope categories) associated with the job; null when none.
2614
+ * Work types (trade or scope categories) associated with the job; empty when none.
2597
2615
  */
2598
2616
  work_types: Array<{
2599
2617
  /**
2600
2618
  * The work-type name.
2601
2619
  */
2602
- value?: string;
2603
- }> | null;
2620
+ value: string;
2621
+ }>;
2604
2622
  /**
2605
- * IDs of the timecodes currently associated with the job; null when none.
2623
+ * IDs of the timecodes currently associated with the job; empty when none.
2606
2624
  */
2607
- timekeeping_timecode_ids: Array<string> | null;
2625
+ timekeeping_timecode_ids: Array<string>;
2608
2626
  /**
2609
2627
  * Whether the feature-allocation selector is shown for this job.
2610
2628
  */
@@ -2705,15 +2723,13 @@ export type JobParameters = {
2705
2723
  */
2706
2724
  description?: string;
2707
2725
  /**
2708
- * ID of the user creating the job. Required.
2726
+ * ID of the company that requested the job (for example a general contractor). Required.
2709
2727
  */
2710
- created_by_user_id: string;
2728
+ requested_by_company_id: string;
2711
2729
  /**
2712
- * Deprecated and ignored; set the job's managers through manager_user_ids instead.
2713
- *
2714
- * @deprecated
2730
+ * ID of the user creating the job. Required.
2715
2731
  */
2716
- manager_user_id?: string | null;
2732
+ created_by_user_id: string;
2717
2733
  /**
2718
2734
  * IDs of the users who manage the job; null when the job has no managers.
2719
2735
  */
@@ -3048,6 +3064,10 @@ export type UserResponseObject = {
3048
3064
  * URL of the worker's LinkedIn profile. Null when unset.
3049
3065
  */
3050
3066
  linkedin_url: string | null;
3067
+ /**
3068
+ * Identity of the worker's employment at your company, stable across employment versions — a title change or a raise versions the employment without changing this id. It names the employment that this object's employment fields (type through employment_window, plus manager_user_id and any employment custom fields) describe: a worker rehired after an earlier stint holds a second employment with its own id, and exactly one of them is published here.
3069
+ */
3070
+ employment_id: string;
3051
3071
  type: UserCompanyType;
3052
3072
  /**
3053
3073
  * Job title at your company. Null when unset.
@@ -3110,7 +3130,7 @@ export type UserResponseObject = {
3110
3130
  */
3111
3131
  termination_date: string | null;
3112
3132
  /**
3113
- * Window over which the employment version in this response is in effect. Employment is versioned, so a worker whose title or pay changed has several versions and exactly one is published here. The version in effect now is served; where none is in effect the nearest is served instead most recently ended first, else soonest to open — so this window is how you tell a current employment from an ended or a not-yet-started one. Distinct from hire_date and termination_date, which bound the whole employment rather than this one version.
3133
+ * Window over which the employment version in this response is in effect. Employment is versioned, so a worker whose title or pay changed has several versions and exactly one is published here. The version in effect now is served; where none is in effect, the soonest to begin is served, else the most recently ended a scheduled hire outranks an ended stint — so this window is how you tell a current employment from an ended or a not-yet-started one. Distinct from hire_date and termination_date, which bound the whole employment rather than this one version.
3114
3134
  */
3115
3135
  employment_window: {
3116
3136
  /**
@@ -3118,7 +3138,7 @@ export type UserResponseObject = {
3118
3138
  */
3119
3139
  valid_from: string | null;
3120
3140
  /**
3121
- * When this version of the employment stopped applying (ISO 8601); null while it is still in effect. A value in the past means this is the nearest version rather than a current one.
3141
+ * When this version of the employment stopped applying (ISO 8601); null while it is still in effect. A value in the past means an ended version is being served because the worker has nothing current or scheduled.
3122
3142
  */
3123
3143
  valid_to: string | null;
3124
3144
  };
@@ -3137,91 +3157,91 @@ export type UserResponseObject = {
3137
3157
  /**
3138
3158
  * Unique identifier of the compliance record.
3139
3159
  */
3140
- id?: string;
3160
+ id: string;
3141
3161
  /**
3142
3162
  * Home street address line 1, for certified-payroll reporting. Null when unset.
3143
3163
  */
3144
- address1?: string | null;
3164
+ address1: string | null;
3145
3165
  /**
3146
3166
  * Home street address line 2. Null when unset.
3147
3167
  */
3148
- address2?: string | null;
3168
+ address2: string | null;
3149
3169
  /**
3150
3170
  * Home address city. Null when unset.
3151
3171
  */
3152
- city?: string | null;
3172
+ city: string | null;
3153
3173
  /**
3154
3174
  * Home address two-letter US state code. Null when unset.
3155
3175
  */
3156
- state?: string | null;
3176
+ state: string | null;
3157
3177
  /**
3158
3178
  * Home address ZIP code. Null when unset.
3159
3179
  */
3160
- zip?: string | null;
3180
+ zip: string | null;
3161
3181
  /**
3162
3182
  * Worker race for demographic reporting, as an array of codes such as CAUCASIAN, AFRICAN_AMERICAN, ASIAN, NATIVE_AMERICAN, OTHER, and NOT_SPECIFIED. Null when unset.
3163
3183
  */
3164
- race?: Array<string> | null;
3184
+ race: Array<string> | null;
3165
3185
  /**
3166
3186
  * Worker sex for demographic reporting: one of female, male, non_binary, or not_specified. Null when unset.
3167
3187
  */
3168
- sex?: string | null;
3188
+ sex: string | null;
3169
3189
  /**
3170
3190
  * Local business license number, when a jurisdiction requires it on certified payroll. Null when unset.
3171
3191
  */
3172
- local_business_license?: string | null;
3192
+ local_business_license: string | null;
3173
3193
  /**
3174
3194
  * Two-letter US state that issued the worker's driver's license. Null when unset.
3175
3195
  */
3176
- drivers_license_state?: string | null;
3196
+ drivers_license_state: string | null;
3177
3197
  /**
3178
3198
  * Worker's driver's license number (stored encrypted). Null when unset.
3179
3199
  */
3180
- drivers_license_number?: string | null;
3200
+ drivers_license_number: string | null;
3181
3201
  /**
3182
3202
  * Veteran status per US Census definitions: one of protected_veteran, not_protected_veteran, reserves, guard, or not_specified. Null when unset.
3183
3203
  */
3184
- veteran_status?: string | null;
3204
+ veteran_status: string | null;
3185
3205
  /**
3186
3206
  * Whether the worker is of Hispanic origin per US Census definitions: one of yes, no, or not_specified. Null when unset.
3187
3207
  */
3188
- hispanic_origin?: string | null;
3208
+ hispanic_origin: string | null;
3189
3209
  /**
3190
3210
  * Worker Social Security Number (nine digits, stored encrypted), required on certified payroll in some jurisdictions. Null when unset.
3191
3211
  */
3192
- ssn?: string | null;
3212
+ ssn: string | null;
3193
3213
  /**
3194
3214
  * Whether the worker has a disability, for demographic reporting. Null when unset.
3195
3215
  */
3196
- disabled?: boolean | null;
3216
+ disabled: boolean | null;
3197
3217
  /**
3198
3218
  * Number of payroll withholding exemptions reported on California DIR certified payroll (eCPR); an integer from 0 to 99. Null when unset.
3199
3219
  */
3200
- ca_dir_withholding_exemptions?: number | null;
3220
+ ca_dir_withholding_exemptions: number | null;
3201
3221
  /**
3202
3222
  * Illinois DOL race classification for Illinois prevailing-wage reporting, as a single code such as white, black, or hispanic_or_latino. Null when unset. See the schema enum for the full set.
3203
3223
  */
3204
- il_dol_race?: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other';
3224
+ il_dol_race: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other' | null;
3205
3225
  /**
3206
3226
  * Illinois SHINES employment type: one of part_time, full_time, seasonal_temporary, or independent_contract. Null when unset.
3207
3227
  */
3208
- il_shines_employment_type?: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract';
3228
+ il_shines_employment_type: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract' | null;
3209
3229
  /**
3210
3230
  * Illinois SHINES Equity Eligible Person (EEP) qualifiers for the worker, as an array of codes such as eep_program_completed, foster_care, and formerly_incarcerated. Null when unset.
3211
3231
  */
3212
- il_shines_eep_qualifiers?: Array<'eep_program_completed' | 'foster_care' | 'formerly_incarcerated' | 'equity_investment_eligible_community' | 'self_registered_or_unknown'> | null;
3232
+ il_shines_eep_qualifiers: Array<'eep_program_completed' | 'foster_care' | 'formerly_incarcerated' | 'equity_investment_eligible_community' | 'self_registered_or_unknown'> | null;
3213
3233
  /**
3214
3234
  * Illinois SHINES workforce-program participation for the worker, as an array of program codes such as solar_training_pipeline_program and craft_apprenticeship_program. Null when unset.
3215
3235
  */
3216
- il_shines_other_programs?: Array<'solar_training_pipeline_program' | 'craft_apprenticeship_program' | 'multi_cultural_jobs_program' | 'clean_jobs_workforce_network_program' | 'illinois_climate_works_prep_apprenticeship_program' | 'returning_residents_clean_jobs_training_program' | 'other'> | null;
3236
+ il_shines_other_programs: Array<'solar_training_pipeline_program' | 'craft_apprenticeship_program' | 'multi_cultural_jobs_program' | 'clean_jobs_workforce_network_program' | 'illinois_climate_works_prep_apprenticeship_program' | 'returning_residents_clean_jobs_training_program' | 'other'> | null;
3217
3237
  /**
3218
3238
  * Oregon BOLI workweek schedule: five_eight (five eight-hour days) or four_ten (four ten-hour days). Null when unset.
3219
3239
  */
3220
- or_boli_schedule_type?: 'five_eight' | 'four_ten';
3240
+ or_boli_schedule_type: 'five_eight' | 'four_ten' | null;
3221
3241
  /**
3222
3242
  * Oregon BOLI race classification, as an array of codes such as white, asian, hispanic_or_latino, and black_or_african_american. Null when unset.
3223
3243
  */
3224
- or_boli_race?: Array<'american_indian_or_alaska_native' | 'asian' | 'hispanic_or_latino' | 'black_or_african_american' | 'native_hawaiian_or_pacific_islander' | 'white' | 'portuguese_or_brazilian'> | null;
3244
+ or_boli_race: Array<'american_indian_or_alaska_native' | 'asian' | 'hispanic_or_latino' | 'black_or_african_american' | 'native_hawaiian_or_pacific_islander' | 'white' | 'portuguese_or_brazilian'> | null;
3225
3245
  } | null;
3226
3246
  [key: string]: unknown;
3227
3247
  };
@@ -3490,11 +3510,11 @@ export type UserParameters = {
3490
3510
  /**
3491
3511
  * Illinois DOL race classification for Illinois prevailing-wage reporting, as a single code such as white, black, or hispanic_or_latino. See the schema enum for the full set.
3492
3512
  */
3493
- il_dol_race?: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other';
3513
+ il_dol_race?: 'white' | 'black' | 'hispanic_or_latino' | 'american_indian_or_alaska_native' | 'chinese' | 'filipino' | 'asian_india' | 'vietnamese' | 'korean' | 'japanese' | 'native_hawaiian' | 'samoan' | 'chamorro' | 'other_asian' | 'other_pacific_islander' | 'other' | null;
3494
3514
  /**
3495
3515
  * Illinois SHINES employment type: one of part_time, full_time, seasonal_temporary, or independent_contract.
3496
3516
  */
3497
- il_shines_employment_type?: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract';
3517
+ il_shines_employment_type?: 'part_time' | 'full_time' | 'seasonal_temporary' | 'independent_contract' | null;
3498
3518
  /**
3499
3519
  * Illinois SHINES Equity Eligible Person (EEP) qualifiers for the worker, as an array of codes such as eep_program_completed, foster_care, and formerly_incarcerated.
3500
3520
  */
@@ -3506,7 +3526,7 @@ export type UserParameters = {
3506
3526
  /**
3507
3527
  * Oregon BOLI workweek schedule: five_eight (five eight-hour days) or four_ten (four ten-hour days).
3508
3528
  */
3509
- or_boli_schedule_type?: 'five_eight' | 'four_ten';
3529
+ or_boli_schedule_type?: 'five_eight' | 'four_ten' | null;
3510
3530
  /**
3511
3531
  * Oregon BOLI race classification, as an array of codes such as white, asian, hispanic_or_latino, and black_or_african_american.
3512
3532
  */
@@ -3518,12 +3538,12 @@ export type UserParameters = {
3518
3538
  * A page of time entries, with pagination metadata and navigation links.
3519
3539
  */
3520
3540
  export type TimeEntryIndexObject = {
3521
- meta?: Meta;
3522
- links?: Links;
3541
+ meta: Meta;
3542
+ links: Links;
3523
3543
  /**
3524
3544
  * The page of time entries.
3525
3545
  */
3526
- data?: Array<TimeEntryResponseObject>;
3546
+ data: Array<TimeEntryResponseObject>;
3527
3547
  };
3528
3548
  /**
3529
3549
  * A single time entry: one atomic block of tracked work with its start/end times, optional timecode classification, optional job, pay rate, and manager approval status.
@@ -3580,15 +3600,15 @@ export type TimeEntryResponseObject = {
3580
3600
  /**
3581
3601
  * Straight-time minutes worked (1.0× pay multiplier).
3582
3602
  */
3583
- 1?: number;
3603
+ 1: number;
3584
3604
  /**
3585
3605
  * Time-and-a-half minutes worked (1.5× pay multiplier).
3586
3606
  */
3587
- 1.5?: number;
3607
+ 1.5: number;
3588
3608
  /**
3589
3609
  * Double-time minutes worked (2.0× pay multiplier).
3590
3610
  */
3591
- 2?: number;
3611
+ 2: number;
3592
3612
  };
3593
3613
  /**
3594
3614
  * The "1.5" (time-and-a-half) slice of the entry's incentive-pay overtime minutes, in minutes; an integer.
@@ -3599,9 +3619,9 @@ export type TimeEntryResponseObject = {
3599
3619
  */
3600
3620
  hourly_rate_cents: string | null;
3601
3621
  /**
3602
- * ISO currency code for the money fields, delegated from the time card; null when unset.
3622
+ * ISO currency code for the money fields, delegated from the time card's pay schedule.
3603
3623
  */
3604
- currency: string | null;
3624
+ currency: string;
3605
3625
  /**
3606
3626
  * Where the base rate came from: one of user_default, position, prevailing_wage, or custom; null when no rate is set. (The schema types this as a free-form nullable string; the value set is defined by the model enum.)
3607
3627
  */
@@ -3637,44 +3657,8 @@ export type TimeEntryResponseObject = {
3637
3657
  /**
3638
3658
  * Name of the allocated feature.
3639
3659
  */
3640
- name?: string;
3660
+ name: string;
3641
3661
  }>;
3642
- /**
3643
- * Deprecated. The worker as a nested object with id and name; prefer user_id.
3644
- *
3645
- * @deprecated
3646
- */
3647
- user: {
3648
- /**
3649
- * Unique identifier of the time entry.
3650
- */
3651
- id?: string;
3652
- /**
3653
- * The worker's name.
3654
- */
3655
- name?: string;
3656
- };
3657
- /**
3658
- * Deprecated. The timecode as a nested object with id and name; null when none is set; prefer timekeeping_timecode_id.
3659
- *
3660
- * @deprecated
3661
- */
3662
- timecode: {
3663
- /**
3664
- * Unique identifier of the time entry.
3665
- */
3666
- id?: string;
3667
- /**
3668
- * The timecode's name.
3669
- */
3670
- name?: string;
3671
- } | null;
3672
- /**
3673
- * Deprecated. Same value as hours_worked, retained for backward compatibility.
3674
- *
3675
- * @deprecated
3676
- */
3677
- total_hours: number;
3678
3662
  };
3679
3663
  /**
3680
3664
  * A record of a single approval or decline action taken against a time entry.
@@ -3776,93 +3760,93 @@ export type FormDefinitionResponseObject = {
3776
3760
  /**
3777
3761
  * Unique identifier.
3778
3762
  */
3779
- id?: string;
3763
+ id: string;
3780
3764
  /**
3781
3765
  * Human-readable name of the form.
3782
3766
  */
3783
- name?: string;
3767
+ name: string;
3784
3768
  /**
3785
3769
  * Free-text description of the form.
3786
3770
  */
3787
- description?: string;
3771
+ description: string;
3788
3772
  /**
3789
3773
  * ID of the company that owns this form.
3790
3774
  */
3791
- company_id?: string;
3775
+ company_id: string;
3792
3776
  /**
3793
3777
  * ID of the user who last modified the form; null when unknown.
3794
3778
  */
3795
- modified_by_user_id?: string | null;
3779
+ modified_by_user_id: string | null;
3796
3780
  /**
3797
3781
  * Lowercase tags on the form; null when none are set.
3798
3782
  */
3799
- tags?: Array<string> | null;
3783
+ tags: Array<string> | null;
3800
3784
  /**
3801
3785
  * Names of the questions whose answers make up a submission's title; null when none are set.
3802
3786
  */
3803
- title_keys?: Array<string> | null;
3787
+ title_keys: Array<string> | null;
3804
3788
  /**
3805
3789
  * Whether the form can be edited.
3806
3790
  */
3807
- editable?: boolean;
3791
+ editable: boolean;
3808
3792
  /**
3809
3793
  * Whether the form is always shown to users.
3810
3794
  */
3811
- always_visible?: boolean;
3795
+ always_visible: boolean;
3812
3796
  /**
3813
3797
  * Whether the form collects sensitive data.
3814
3798
  */
3815
- sensitive_form?: boolean;
3799
+ sensitive_form: boolean;
3816
3800
  /**
3817
3801
  * Whether a user's prior answers can be carried forward into a new submission.
3818
3802
  */
3819
- allow_carry_forward?: boolean;
3803
+ allow_carry_forward: boolean;
3820
3804
  /**
3821
3805
  * Revision number of the form's active version; null when it has no active version.
3822
3806
  */
3823
- current_revision?: number;
3807
+ current_revision: number | null;
3824
3808
  /**
3825
3809
  * The SurveyJS form schema (questions, pages, and logic).
3826
3810
  */
3827
- json?: {
3811
+ json: {
3828
3812
  [key: string]: unknown;
3829
3813
  };
3830
3814
  /**
3831
3815
  * When the record was created (ISO 8601).
3832
3816
  */
3833
- created_at?: string;
3817
+ created_at: string;
3834
3818
  }>;
3835
3819
  };
3836
3820
  /**
3837
3821
  * A page of form submissions — the lighter list representation. A submission is a user's completed form; submissions are created in the app, so this API is read-only.
3838
3822
  */
3839
3823
  export type FormSubmissionIndexObject = {
3840
- meta?: Meta;
3841
- links?: Links;
3824
+ meta: Meta;
3825
+ links: Links;
3842
3826
  /**
3843
3827
  * The page of form submissions.
3844
3828
  */
3845
- data?: Array<{
3829
+ data: Array<{
3846
3830
  /**
3847
3831
  * Unique identifier.
3848
3832
  */
3849
- id?: string;
3833
+ id: string;
3850
3834
  /**
3851
3835
  * ID of the user who owns the submission.
3852
3836
  */
3853
- user_id?: string;
3837
+ user_id: string;
3854
3838
  /**
3855
3839
  * ID of the user who last updated the submission.
3856
3840
  */
3857
- updated_by_user_id?: string;
3841
+ updated_by_user_id: string;
3858
3842
  /**
3859
3843
  * When the record was created (ISO 8601).
3860
3844
  */
3861
- created_at?: string;
3845
+ created_at: string;
3862
3846
  /**
3863
3847
  * When the record was last updated (ISO 8601).
3864
3848
  */
3865
- updated_at?: string;
3849
+ updated_at: string;
3866
3850
  }>;
3867
3851
  };
3868
3852
  /**
@@ -3876,11 +3860,11 @@ export type FormSubmissionResponseObject = {
3876
3860
  /**
3877
3861
  * Unique identifier.
3878
3862
  */
3879
- id?: string;
3863
+ id: string;
3880
3864
  /**
3881
3865
  * The submitting user's name.
3882
3866
  */
3883
- name?: string;
3867
+ name: string;
3884
3868
  };
3885
3869
  /**
3886
3870
  * Human-readable title derived from the submission's title-key answers; null when none.
@@ -4009,6 +3993,7 @@ export type UserCompanyCreateParameters = {
4009
3993
  * Paid training time for the year, in minutes.
4010
3994
  */
4011
3995
  training_annual_minutes?: number | null;
3996
+ [key: string]: unknown;
4012
3997
  };
4013
3998
  /**
4014
3999
  * A worker's scheduled compensation timeline at your company — the version currently in effect plus any future-dated versions.
@@ -4017,12 +4002,12 @@ export type UserCompanyScheduledChangesResponse = {
4017
4002
  /**
4018
4003
  * Id of the worker whose compensation timeline this is.
4019
4004
  */
4020
- user_id?: string;
4021
- current_version?: UserCompanyScheduledChange;
4005
+ user_id: string;
4006
+ current_version: UserCompanyScheduledChange;
4022
4007
  /**
4023
4008
  * Future-dated compensation versions, each taking effect on its start date, ordered earliest first.
4024
4009
  */
4025
- scheduled_changes?: Array<UserCompanyScheduledChange>;
4010
+ scheduled_changes: Array<UserCompanyScheduledChange>;
4026
4011
  };
4027
4012
  /**
4028
4013
  * Request body for scheduling a future-dated compensation change. effective_date sets when the new values take effect; earlier history is preserved as its own version. Covers the pay, benefit, accrual, and department fields.
@@ -4306,11 +4291,11 @@ export type UserGroupResponse = {
4306
4291
  /**
4307
4292
  * Unique identifier.
4308
4293
  */
4309
- id?: string;
4294
+ id: string;
4310
4295
  /**
4311
4296
  * ID of the user who belongs to the group.
4312
4297
  */
4313
- user_id?: string;
4298
+ user_id: string;
4314
4299
  };
4315
4300
  /**
4316
4301
  * Request body for adding users to a group. The group is taken from the URL path.
@@ -4349,24 +4334,24 @@ export type FormSubmissionDeltasResponse = {
4349
4334
  * A page of change events (create, update, destroy) for time entries, drawn from version history; scoped by the surviving parent time card, so a destroyed entry's history stays visible.
4350
4335
  */
4351
4336
  export type TimeEntryDeltasResponse = {
4352
- meta?: DeltaMeta;
4353
- links?: Links;
4337
+ meta: DeltaMeta;
4338
+ links: Links;
4354
4339
  /**
4355
4340
  * The page of time-entry change events.
4356
4341
  */
4357
- data?: Array<{
4342
+ data: Array<{
4358
4343
  /**
4359
4344
  * The change this event records: one of create, update, or destroy.
4360
4345
  */
4361
- event?: 'create' | 'update' | 'destroy';
4346
+ event: 'create' | 'update' | 'destroy';
4362
4347
  /**
4363
4348
  * ID of the time entry this event applies to — the entry's own id, not a version-record id; for a destroy event, the id of the now-deleted entry.
4364
4349
  */
4365
- id?: string;
4350
+ id: string;
4366
4351
  /**
4367
4352
  * When this event occurred (ISO 8601).
4368
4353
  */
4369
- timestamp?: string;
4354
+ timestamp: string;
4370
4355
  }>;
4371
4356
  };
4372
4357
  /**
@@ -4380,55 +4365,55 @@ export type UserCompanyScheduledChange = {
4380
4365
  /**
4381
4366
  * Unique identifier of this employment version.
4382
4367
  */
4383
- id?: string;
4368
+ id: string;
4384
4369
  /**
4385
4370
  * Date this version takes effect (ISO 8601). For a scheduled change this equals the effective_date that created it.
4386
4371
  */
4387
- start_date?: string;
4372
+ start_date: string;
4388
4373
  /**
4389
4374
  * Base pay rate for this version, formatted as a currency string; null when unset.
4390
4375
  */
4391
- hourly_rate?: string | null;
4376
+ hourly_rate: string | null;
4392
4377
  /**
4393
4378
  * How the worker is paid: hourly or salary.
4394
4379
  */
4395
- compensation_type?: string;
4380
+ compensation_type: string;
4396
4381
  /**
4397
4382
  * Whether the worker is eligible for overtime pay in this version.
4398
4383
  */
4399
- overtime_eligible?: boolean;
4384
+ overtime_eligible: boolean;
4400
4385
  /**
4401
4386
  * Annual training-fund contribution, formatted as a currency string; null when unset.
4402
4387
  */
4403
- training_annual_amount?: string | null;
4388
+ training_annual_amount: string | null;
4404
4389
  /**
4405
4390
  * Employer-paid annual combined health benefit, formatted as a currency string; null when unset.
4406
4391
  */
4407
- employer_combined_health_amount?: string | null;
4392
+ employer_combined_health_amount: string | null;
4408
4393
  /**
4409
4394
  * Employer-paid annual combined savings and retirement benefit, formatted as a currency string; null when unset.
4410
4395
  */
4411
- employer_combined_savings?: string | null;
4396
+ employer_combined_savings: string | null;
4412
4397
  /**
4413
4398
  * Annualized minutes the worker is expected to work in this version; null when unset.
4414
4399
  */
4415
- worked_annual_minutes?: number | null;
4400
+ worked_annual_minutes: number | null;
4416
4401
  /**
4417
4402
  * Paid time off accrued for the year, in minutes; null when unset.
4418
4403
  */
4419
- pto_annual_minutes?: number | null;
4404
+ pto_annual_minutes: number | null;
4420
4405
  /**
4421
4406
  * Holiday time accrued for the year, in minutes; null when unset.
4422
4407
  */
4423
- holiday_annual_minutes?: number | null;
4408
+ holiday_annual_minutes: number | null;
4424
4409
  /**
4425
4410
  * Paid training time for the year, in minutes; null when unset.
4426
4411
  */
4427
- training_annual_minutes?: number | null;
4412
+ training_annual_minutes: number | null;
4428
4413
  /**
4429
4414
  * Id of the department the worker is assigned to in this version; null when none.
4430
4415
  */
4431
- companies_department_id?: string | null;
4416
+ companies_department_id: string | null;
4432
4417
  };
4433
4418
  /**
4434
4419
  * Request body for scheduling the end of a worker's employment at your company. Sets the employment's end date; cancel the scheduled termination to restore open-ended employment. Deleting the employment record instead (DELETE on the membership) removes it entirely and is not reversible.
@@ -4452,39 +4437,39 @@ export type PayPeriodsResponseObject = {
4452
4437
  /**
4453
4438
  * Unique identifier.
4454
4439
  */
4455
- id?: string;
4440
+ id: string;
4456
4441
  /**
4457
4442
  * ID of the pay schedule (PayPeriodConfig) that owns this pay period, stable across all of its versions.
4458
4443
  */
4459
- timekeeping_pay_period_config_id?: string;
4444
+ timekeeping_pay_period_config_id: string;
4460
4445
  /**
4461
4446
  * Calendar date (YYYY-MM-DD) that workers are paid for this period.
4462
4447
  */
4463
- pay_date?: string;
4448
+ pay_date: string;
4464
4449
  /**
4465
4450
  * Start of the pay-period window (ISO 8601).
4466
4451
  */
4467
- start_time?: string;
4452
+ start_time: string;
4468
4453
  /**
4469
4454
  * End of the pay-period window (ISO 8601).
4470
4455
  */
4471
- end_time?: string;
4456
+ end_time: string;
4472
4457
  /**
4473
4458
  * When payroll must be run for this period (ISO 8601).
4474
4459
  */
4475
- pay_run_deadline?: string;
4460
+ pay_run_deadline: string;
4476
4461
  /**
4477
4462
  * When time-card approvals are due for this period (ISO 8601).
4478
4463
  */
4479
- approvals_deadline?: string;
4464
+ approvals_deadline: string;
4480
4465
  /**
4481
4466
  * When the record was created (ISO 8601).
4482
4467
  */
4483
- created_at?: string;
4468
+ created_at: string;
4484
4469
  /**
4485
4470
  * When the record was last updated (ISO 8601).
4486
4471
  */
4487
- updated_at?: string;
4472
+ updated_at: string;
4488
4473
  }>;
4489
4474
  };
4490
4475
  /**
@@ -4574,15 +4559,15 @@ export type TimeCardResponseObject = {
4574
4559
  /**
4575
4560
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4576
4561
  */
4577
- 1?: number;
4562
+ 1: number;
4578
4563
  /**
4579
4564
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4580
4565
  */
4581
- 1.5?: number;
4566
+ 1.5: number;
4582
4567
  /**
4583
4568
  * Minutes at the 2.0x (double-time) overtime multiplier.
4584
4569
  */
4585
- 2?: number;
4570
+ 2: number;
4586
4571
  };
4587
4572
  /**
4588
4573
  * Incentive-pay-eligible overtime minutes bucketed by pay-rate multiplier.
@@ -4591,15 +4576,15 @@ export type TimeCardResponseObject = {
4591
4576
  /**
4592
4577
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4593
4578
  */
4594
- 1?: number;
4579
+ 1: number;
4595
4580
  /**
4596
4581
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4597
4582
  */
4598
- 1.5?: number;
4583
+ 1.5: number;
4599
4584
  /**
4600
4585
  * Minutes at the 2.0x (double-time) overtime multiplier.
4601
4586
  */
4602
- 2?: number;
4587
+ 2: number;
4603
4588
  };
4604
4589
  /**
4605
4590
  * Total pay for the period in integer cents, as a decimal string.
@@ -4697,15 +4682,15 @@ export type JobTimeCardDayResponseObject = {
4697
4682
  /**
4698
4683
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4699
4684
  */
4700
- 1?: number;
4685
+ 1: number;
4701
4686
  /**
4702
4687
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4703
4688
  */
4704
- 1.5?: number;
4689
+ 1.5: number;
4705
4690
  /**
4706
4691
  * Minutes at the 2.0x (double-time) overtime multiplier.
4707
4692
  */
4708
- 2?: number;
4693
+ 2: number;
4709
4694
  };
4710
4695
  /**
4711
4696
  * Incentive-pay-eligible overtime minutes bucketed by pay-rate multiplier.
@@ -4714,15 +4699,15 @@ export type JobTimeCardDayResponseObject = {
4714
4699
  /**
4715
4700
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4716
4701
  */
4717
- 1?: number;
4702
+ 1: number;
4718
4703
  /**
4719
4704
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4720
4705
  */
4721
- 1.5?: number;
4706
+ 1.5: number;
4722
4707
  /**
4723
4708
  * Minutes at the 2.0x (double-time) overtime multiplier.
4724
4709
  */
4725
- 2?: number;
4710
+ 2: number;
4726
4711
  };
4727
4712
  /**
4728
4713
  * Total pay for this date in integer cents, as a decimal string.
@@ -4831,15 +4816,15 @@ export type JobTimeCardDayResponseObject = {
4831
4816
  /**
4832
4817
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4833
4818
  */
4834
- 1?: number;
4819
+ 1: number;
4835
4820
  /**
4836
4821
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4837
4822
  */
4838
- 1.5?: number;
4823
+ 1.5: number;
4839
4824
  /**
4840
4825
  * Minutes at the 2.0x (double-time) overtime multiplier.
4841
4826
  */
4842
- 2?: number;
4827
+ 2: number;
4843
4828
  };
4844
4829
  /**
4845
4830
  * Week-to-date running total of overtime minutes bucketed by pay-rate multiplier, through this date.
@@ -4848,15 +4833,15 @@ export type JobTimeCardDayResponseObject = {
4848
4833
  /**
4849
4834
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4850
4835
  */
4851
- 1?: number;
4836
+ 1: number;
4852
4837
  /**
4853
4838
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4854
4839
  */
4855
- 1.5?: number;
4840
+ 1.5: number;
4856
4841
  /**
4857
4842
  * Minutes at the 2.0x (double-time) overtime multiplier.
4858
4843
  */
4859
- 2?: number;
4844
+ 2: number;
4860
4845
  };
4861
4846
  /**
4862
4847
  * Pay-period-to-date running total of incentive-pay overtime minutes bucketed by pay-rate multiplier, through this date.
@@ -4865,15 +4850,15 @@ export type JobTimeCardDayResponseObject = {
4865
4850
  /**
4866
4851
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4867
4852
  */
4868
- 1?: number;
4853
+ 1: number;
4869
4854
  /**
4870
4855
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4871
4856
  */
4872
- 1.5?: number;
4857
+ 1.5: number;
4873
4858
  /**
4874
4859
  * Minutes at the 2.0x (double-time) overtime multiplier.
4875
4860
  */
4876
- 2?: number;
4861
+ 2: number;
4877
4862
  };
4878
4863
  /**
4879
4864
  * Week-to-date running total of incentive-pay overtime minutes bucketed by pay-rate multiplier, through this date.
@@ -4882,15 +4867,15 @@ export type JobTimeCardDayResponseObject = {
4882
4867
  /**
4883
4868
  * Minutes at the 1.0x (straight-time) pay-rate multiplier.
4884
4869
  */
4885
- 1?: number;
4870
+ 1: number;
4886
4871
  /**
4887
4872
  * Minutes at the 1.5x (time-and-a-half) overtime multiplier.
4888
4873
  */
4889
- 1.5?: number;
4874
+ 1.5: number;
4890
4875
  /**
4891
4876
  * Minutes at the 2.0x (double-time) overtime multiplier.
4892
4877
  */
4893
- 2?: number;
4878
+ 2: number;
4894
4879
  };
4895
4880
  /**
4896
4881
  * Pay-period-to-date running total of total pay in integer cents, as a decimal string, through this date.
@@ -5102,7 +5087,7 @@ export type PayrollFringeBenefitPlanResponseObject = {
5102
5087
  /**
5103
5088
  * Which employer contribution this plan covers: one of employer_combined_health, employer_combined_savings, employer_combined_holiday_pto, employer_training, or employer_other_contributions. Null when unset.
5104
5089
  */
5105
- benefit_category: 'employer_combined_health' | 'employer_combined_savings' | 'employer_combined_holiday_pto' | 'employer_training' | 'employer_other_contributions';
5090
+ benefit_category: 'employer_combined_health' | 'employer_combined_savings' | 'employer_combined_holiday_pto' | 'employer_training' | 'employer_other_contributions' | null;
5106
5091
  /**
5107
5092
  * Whether this is a jointly-managed (Taft-Hartley) fund, which is exempt from the detailed Illinois fund fields.
5108
5093
  */
@@ -5244,7 +5229,7 @@ export type PayrollExternalMapResponseObject = {
5244
5229
  /**
5245
5230
  * Who the amount is attributed to: one of any, employee, or employer. Null when unset.
5246
5231
  */
5247
- contributor: 'any' | 'employee' | 'employer';
5232
+ contributor: 'any' | 'employee' | 'employer' | null;
5248
5233
  /**
5249
5234
  * Number of pay periods per year, used to annualize this element's amounts.
5250
5235
  */
@@ -5282,15 +5267,40 @@ export type PayrollExternalMapResponseObject = {
5282
5267
  */
5283
5268
  updated_at: string;
5284
5269
  };
5270
+ export type PayrollExternalMapHistoryCorrectionObject = {
5271
+ /**
5272
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
5273
+ */
5274
+ payrolls_external_map_id: string;
5275
+ name: string;
5276
+ payrolls_compensation_element_id: string;
5277
+ compensation_element_name: string;
5278
+ compensation_element_category: 'tax' | 'health' | 'retirement' | 'insurance' | 'earning' | 'garnishment' | 'other';
5279
+ timekeeping_pay_period_config_id: string | null;
5280
+ payrolls_fringe_benefit_plan_id: string | null;
5281
+ contributor: 'any' | 'employee' | 'employer' | null;
5282
+ annual_periods: number;
5283
+ created_by_user_id: string | null;
5284
+ global: boolean;
5285
+ valid_from: string | null;
5286
+ valid_to: string | null;
5287
+ transaction_from: string;
5288
+ transaction_to: string | null;
5289
+ created_at: string;
5290
+ updated_at: string;
5291
+ };
5285
5292
  export type PayrollExternalMapHistoryVersionObject = {
5286
- id: string;
5293
+ /**
5294
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
5295
+ */
5296
+ payrolls_external_map_id: string;
5287
5297
  name: string;
5288
5298
  payrolls_compensation_element_id: string;
5289
5299
  compensation_element_name: string;
5290
5300
  compensation_element_category: 'tax' | 'health' | 'retirement' | 'insurance' | 'earning' | 'garnishment' | 'other';
5291
5301
  timekeeping_pay_period_config_id: string | null;
5292
5302
  payrolls_fringe_benefit_plan_id: string | null;
5293
- contributor: 'any' | 'employee' | 'employer';
5303
+ contributor: 'any' | 'employee' | 'employer' | null;
5294
5304
  annual_periods: number;
5295
5305
  created_by_user_id: string | null;
5296
5306
  global: boolean;
@@ -5301,7 +5311,7 @@ export type PayrollExternalMapHistoryVersionObject = {
5301
5311
  created_at: string;
5302
5312
  updated_at: string;
5303
5313
  version_status: 'scheduled' | 'current' | 'historical';
5304
- corrections: Array<PayrollExternalMapResponseObject>;
5314
+ corrections: Array<PayrollExternalMapHistoryCorrectionObject>;
5305
5315
  };
5306
5316
  /**
5307
5317
  * A payroll run — a record of one payroll-processing event, synced from an external payroll system or reported to DSPTCH (never a run DSPTCH itself initiates). Paystubs belong to a run.
@@ -5725,7 +5735,7 @@ export type FeatureResponseObject = {
5725
5735
  */
5726
5736
  geometry: {
5727
5737
  [key: string]: unknown;
5728
- } | null;
5738
+ };
5729
5739
  /**
5730
5740
  * When the feature became active.
5731
5741
  */
@@ -5817,9 +5827,9 @@ export type ComplianceCheckResponseObject = {
5817
5827
  */
5818
5828
  user_id: string | null;
5819
5829
  /**
5820
- * UID of the employment (user-company) this check applies to; set only when type is "Compliances::UserCompanyCheck", else null.
5830
+ * ID of the employment (user-company) this check applies to, stable across all of its versions; set only when type is "Compliances::UserCompanyCheck", else null.
5821
5831
  */
5822
- user_company_uid: string | null;
5832
+ employment_id: string | null;
5823
5833
  /**
5824
5834
  * From the check's requirement.
5825
5835
  */
@@ -5839,7 +5849,7 @@ export type ComplianceCheckResponseObject = {
5839
5849
  /**
5840
5850
  * Urgency of the requirement: one of critical, high, medium, or low; null when the requirement sets no priority.
5841
5851
  */
5842
- priority: 'critical' | 'high' | 'medium' | 'low';
5852
+ priority: 'critical' | 'high' | 'medium' | 'low' | null;
5843
5853
  /**
5844
5854
  * When the check was last evaluated (ISO 8601); null when never evaluated.
5845
5855
  */
@@ -6229,7 +6239,7 @@ export type PaystubLineItemResponseObject = {
6229
6239
  */
6230
6240
  id: string;
6231
6241
  /**
6232
- * ID (bitemporal identity) of the external map that defines what this line item represents.
6242
+ * ID of the external map that defines what this line item represents — the identity every version of the map shares.
6233
6243
  */
6234
6244
  payrolls_external_map_id: string;
6235
6245
  /**
@@ -6251,23 +6261,23 @@ export type PaystubLineItemResponseObject = {
6251
6261
  /**
6252
6262
  * The external system's field name for the mapped compensation element.
6253
6263
  */
6254
- name?: string;
6264
+ name: string;
6255
6265
  /**
6256
6266
  * The DSPTCH compensation element the external map points to.
6257
6267
  */
6258
- compensation_element?: {
6268
+ compensation_element: {
6259
6269
  /**
6260
6270
  * Name of the compensation element (e.g. "401(k)").
6261
6271
  */
6262
- name?: string;
6272
+ name: string;
6263
6273
  /**
6264
6274
  * Free-text description of the compensation element; null when none.
6265
6275
  */
6266
- description?: string | null;
6276
+ description: string | null;
6267
6277
  /**
6268
6278
  * Internal categorization of the compensation element: one of tax, health, retirement, insurance, earning, garnishment, or other.
6269
6279
  */
6270
- category?: 'tax' | 'health' | 'retirement' | 'insurance' | 'earning' | 'garnishment' | 'other';
6280
+ category: 'tax' | 'health' | 'retirement' | 'insurance' | 'earning' | 'garnishment' | 'other';
6271
6281
  };
6272
6282
  };
6273
6283
  /**
@@ -6370,13 +6380,13 @@ export type PositionResponseObject = {
6370
6380
  */
6371
6381
  pwa: boolean;
6372
6382
  /**
6373
- * UIDs of the federal (Davis-Bacon) wage determinations applied to this position; empty when none.
6383
+ * IDs of the federal (Davis-Bacon) wage determinations applied to this position; empty when none.
6374
6384
  */
6375
- federal_wage_determination_uids: Array<string>;
6385
+ federal_wage_determination_ids: Array<string>;
6376
6386
  /**
6377
- * UIDs of the regional (state) wage determinations applied to this position; empty when none.
6387
+ * IDs of the regional (state) wage determinations applied to this position; empty when none.
6378
6388
  */
6379
- regional_wage_determination_uids: Array<string>;
6389
+ regional_wage_determination_ids: Array<string>;
6380
6390
  /**
6381
6391
  * PWA classification detail for this position; carries skill_level, the apprenticeship or skill classification, which is null when unset.
6382
6392
  */
@@ -6385,7 +6395,7 @@ export type PositionResponseObject = {
6385
6395
  * The apprenticeship or skill classification; null when unset.
6386
6396
  */
6387
6397
  skill_level: string | null;
6388
- } | null;
6398
+ };
6389
6399
  /**
6390
6400
  * Start of the position's scheduled window (ISO 8601); null when unscheduled.
6391
6401
  */
@@ -6467,7 +6477,7 @@ export type PositionParameters = {
6467
6477
  */
6468
6478
  wage_adder_rate_cents?: number | null;
6469
6479
  /**
6470
- * Wage determinations to attach or detach, each by job_wage_determination_uid (with the join record id when updating or removing an existing one).
6480
+ * Wage determinations to attach, each by job_wage_determination_id (with the join record id when updating an existing attachment). Detaching is not available through this API.
6471
6481
  */
6472
6482
  job_wage_determinations_positions_attributes?: Array<{
6473
6483
  /**
@@ -6475,9 +6485,9 @@ export type PositionParameters = {
6475
6485
  */
6476
6486
  id?: number | null;
6477
6487
  /**
6478
- * UID of the job wage determination to attach or detach.
6488
+ * ID of the job wage determination to attach.
6479
6489
  */
6480
- job_wage_determination_uid?: string | null;
6490
+ job_wage_determination_id?: string | null;
6481
6491
  }>;
6482
6492
  /**
6483
6493
  * PWA classification detail to set; skill_level sets the apprenticeship or skill classification.
@@ -6735,51 +6745,51 @@ export type FormAssignmentTaskResponseObject = Array<{
6735
6745
  /**
6736
6746
  * Unique identifier of the assignment task.
6737
6747
  */
6738
- id?: string;
6748
+ id: string;
6739
6749
  /**
6740
6750
  * ID of the form being assigned.
6741
6751
  */
6742
- form_definition_id?: string;
6752
+ form_definition_id: string;
6743
6753
  /**
6744
6754
  * Recurrence frequency (e.g. DAILY, WEEKLY); null when the assignment does not recur.
6745
6755
  */
6746
- frequency?: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
6756
+ frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
6747
6757
  /**
6748
6758
  * When the recurrence stops (ISO 8601); null when the assignment does not recur.
6749
6759
  */
6750
- recurrence_end_time?: string | null;
6760
+ recurrence_end_time: string | null;
6751
6761
  /**
6752
6762
  * When the assigned form is due (ISO 8601).
6753
6763
  */
6754
- time_due?: string;
6764
+ time_due: string;
6755
6765
  /**
6756
6766
  * Timezone for the due time.
6757
6767
  */
6758
- tz_name?: string;
6768
+ tz_name: string;
6759
6769
  /**
6760
6770
  * Display name of the task; falls back to the form's name.
6761
6771
  */
6762
- name?: string;
6772
+ name: string;
6763
6773
  /**
6764
6774
  * Free-text task description; null when none.
6765
6775
  */
6766
- description?: string | null;
6776
+ description: string | null;
6767
6777
  /**
6768
6778
  * IDs of the users the form is assigned to.
6769
6779
  */
6770
- task_assignee_user_ids?: Array<string>;
6780
+ task_assignee_user_ids: Array<string>;
6771
6781
  /**
6772
6782
  * Reminder schedule for the assignment.
6773
6783
  */
6774
- reminders?: Array<{
6784
+ reminders: Array<{
6775
6785
  /**
6776
6786
  * Lead time before the due time, as an ISO 8601 duration.
6777
6787
  */
6778
- offset?: string;
6788
+ offset: string;
6779
6789
  /**
6780
6790
  * Absolute time the reminder fires (ISO 8601).
6781
6791
  */
6782
- remind_at?: string;
6792
+ remind_at: string;
6783
6793
  }>;
6784
6794
  }>;
6785
6795
  /**
@@ -6975,12 +6985,12 @@ export type UserCertificationParameters = {
6975
6985
  * A page of certifications held by your company's workers.
6976
6986
  */
6977
6987
  export type UserCertificationsResponseObj = {
6978
- meta?: Meta;
6979
- links?: Links;
6988
+ meta: Meta;
6989
+ links: Links;
6980
6990
  /**
6981
6991
  * The page of held certifications.
6982
6992
  */
6983
- data?: Array<UserCertificationResponseObject>;
6993
+ data: Array<UserCertificationResponseObject>;
6984
6994
  };
6985
6995
  /**
6986
6996
  * A certification held by a worker — the record that a worker earned a certification, with its receipt date, optional expiry, and verification state.
@@ -7054,15 +7064,15 @@ export type PositionFunction = {
7054
7064
  /**
7055
7065
  * Unique identifier.
7056
7066
  */
7057
- id?: string;
7067
+ id: string;
7058
7068
  /**
7059
7069
  * The function name (e.g. "Electrician", "Foreman").
7060
7070
  */
7061
- value?: string;
7071
+ value: string;
7062
7072
  /**
7063
7073
  * Free-text description of what the function covers.
7064
7074
  */
7065
- description?: string;
7075
+ description: string;
7066
7076
  } | null;
7067
7077
  /**
7068
7078
  * Request body for granting a user a role in a company.
@@ -7088,24 +7098,24 @@ export type UserRoleResponse = {
7088
7098
  /**
7089
7099
  * Unique identifier.
7090
7100
  */
7091
- id?: string;
7101
+ id: string;
7092
7102
  /**
7093
7103
  * ID of the user who holds the role.
7094
7104
  */
7095
- user_id?: string;
7105
+ user_id: string;
7096
7106
  /**
7097
7107
  * ID of the company the role is scoped to.
7098
7108
  */
7099
- company_id?: string;
7109
+ company_id: string;
7100
7110
  /**
7101
7111
  * The granted role: one of TECHNICIAN, FIELD_LEAD, MANAGER, SAFETY_MANAGER, or ADMIN.
7102
7112
  */
7103
- role?: 'TECHNICIAN' | 'FIELD_LEAD' | 'MANAGER' | 'SAFETY_MANAGER' | 'ADMIN';
7113
+ role: 'TECHNICIAN' | 'FIELD_LEAD' | 'MANAGER' | 'SAFETY_MANAGER' | 'ADMIN';
7104
7114
  };
7105
7115
  /**
7106
7116
  * Employment classification of a worker at a company: EMPLOYEE (W-2) or CONTRACTOR (1099). Null when unset.
7107
7117
  */
7108
- export type UserCompanyType = 'EMPLOYEE' | 'CONTRACTOR';
7118
+ export type UserCompanyType = 'EMPLOYEE' | 'CONTRACTOR' | null;
7109
7119
  /**
7110
7120
  * Keyset pagination cursors for the collection.
7111
7121
  */
@@ -7113,17 +7123,17 @@ export type Page = {
7113
7123
  /**
7114
7124
  * Opaque cursor to send back as `page[cursor]` to fetch the next page; null when there are no more pages.
7115
7125
  */
7116
- next_cursor?: string | null;
7126
+ next_cursor: string | null;
7117
7127
  /**
7118
7128
  * Opaque cursor for the page just returned; null on the first page.
7119
7129
  */
7120
- current_cursor?: string | null;
7130
+ current_cursor: string | null;
7121
7131
  };
7122
7132
  /**
7123
7133
  * Pagination metadata for a paged collection, holding the keyset cursors under `page`.
7124
7134
  */
7125
7135
  export type Meta = {
7126
- page?: Page;
7136
+ page: Page;
7127
7137
  };
7128
7138
  /**
7129
7139
  * Pagination metadata for a change-feed page, with the feed's safe polling watermark.
@@ -7142,15 +7152,15 @@ export type Links = {
7142
7152
  /**
7143
7153
  * URL of the current request, echoing the path and query that produced this page.
7144
7154
  */
7145
- self?: string;
7155
+ self: string;
7146
7156
  /**
7147
7157
  * URL of the collection's first page.
7148
7158
  */
7149
- first?: string | null;
7159
+ first: string | null;
7150
7160
  /**
7151
7161
  * URL of the next page, already carrying its `page[cursor]`; null when this is the last page.
7152
7162
  */
7153
- next?: string | null;
7163
+ next: string | null;
7154
7164
  };
7155
7165
  /**
7156
7166
  * A timestamp range filter on a date/time field, supplied as `filter[field][gte]` and/or `filter[field][lte]`; omit or null a bound for an open-ended range.
@@ -7170,13 +7180,9 @@ export type DateTimeFilter = {
7170
7180
  */
7171
7181
  export type WageDeterminationResponseObject = {
7172
7182
  /**
7173
- * Unique identifier.
7183
+ * Identifier of this determination record — permanent, because the record is an immutable DOL publication; a DOL revision arrives as a new record linked through superseded_by_wage_determination_id, not a rewrite of this one.
7174
7184
  */
7175
7185
  id: string;
7176
- /**
7177
- * Stable identifier shared by every temporal version of this determination; the id changes with each version, the uid does not.
7178
- */
7179
- uid: string;
7180
7186
  /**
7181
7187
  * DOL general decision number identifying this determination (e.g. "CA20240001"); combine with modification_number for the full versioned identifier (e.g. "CA20240001/1").
7182
7188
  */
@@ -7298,13 +7304,9 @@ export type JobWageDeterminationResponseObject = ({
7298
7304
  */
7299
7305
  export type FederalJobWageDeterminationResponseObject = {
7300
7306
  /**
7301
- * Unique identifier.
7307
+ * Identifier of the determination, stable across every one of its temporal versions — it addresses the determination itself, not the version you happen to be reading, and is what the member and history paths take.
7302
7308
  */
7303
7309
  id: string;
7304
- /**
7305
- * Stable identifier shared by every temporal version of this determination; the id changes with each version, the uid does not.
7306
- */
7307
- uid: string;
7308
7310
  /**
7309
7311
  * ID of the job this wage determination applies to.
7310
7312
  */
@@ -7336,7 +7338,7 @@ export type FederalJobWageDeterminationResponseObject = {
7336
7338
  /**
7337
7339
  * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
7338
7340
  */
7339
- construction_category: 'building' | 'heavy' | 'highway' | 'residential';
7341
+ construction_category: 'building' | 'heavy' | 'highway' | 'residential' | null;
7340
7342
  /**
7341
7343
  * 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.
7342
7344
  */
@@ -7363,13 +7365,9 @@ export type FederalJobWageDeterminationResponseObject = {
7363
7365
  */
7364
7366
  export type RegionalJobWageDeterminationResponseObject = {
7365
7367
  /**
7366
- * Unique identifier.
7368
+ * Identifier of the determination, stable across every one of its temporal versions — it addresses the determination itself, not the version you happen to be reading, and is what the member and history paths take.
7367
7369
  */
7368
7370
  id: string;
7369
- /**
7370
- * Stable identifier shared by every temporal version of this determination; the id changes with each version, the uid does not.
7371
- */
7372
- uid: string;
7373
7371
  /**
7374
7372
  * ID of the job this wage determination applies to.
7375
7373
  */
@@ -7398,7 +7396,7 @@ export type RegionalJobWageDeterminationResponseObject = {
7398
7396
  * 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.
7399
7397
  */
7400
7398
  general_wage_determination: string | null;
7401
- regional_fields: RegionalWageDeterminationFields;
7399
+ regional_fields: RegionalWageDeterminationFieldsResponse;
7402
7400
  /**
7403
7401
  * Valid time — when this version of the determination took effect (ISO 8601); null when the version has no recorded start.
7404
7402
  */
@@ -7422,8 +7420,10 @@ export type JobWageDeterminationHistoryVersionObject = ({
7422
7420
  type: 'Pwa::JobWageDeterminations::Regional';
7423
7421
  } & RegionalJobWageDeterminationHistoryVersionObject);
7424
7422
  export type FederalJobWageDeterminationHistoryVersionObject = {
7425
- id: string;
7426
- uid: string;
7423
+ /**
7424
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
7425
+ */
7426
+ job_wage_determination_id: string;
7427
7427
  job_id: string;
7428
7428
  pwa_trade_id: string;
7429
7429
  type: 'Pwa::JobWageDeterminations::Federal';
@@ -7431,18 +7431,20 @@ export type FederalJobWageDeterminationHistoryVersionObject = {
7431
7431
  hourly_rate_cents: string;
7432
7432
  fringe_rate_cents: string;
7433
7433
  class_code: string | null;
7434
- construction_category: 'building' | 'heavy' | 'highway' | 'residential';
7434
+ construction_category: 'building' | 'heavy' | 'highway' | 'residential' | null;
7435
7435
  general_wage_determination: string | null;
7436
7436
  valid_from: string | null;
7437
7437
  valid_to: string | null;
7438
7438
  created_at: string;
7439
7439
  updated_at: string;
7440
7440
  version_status: 'scheduled' | 'current' | 'historical';
7441
- corrections: Array<JobWageDeterminationResponseObject>;
7441
+ corrections: Array<JobWageDeterminationHistoryCorrectionObject>;
7442
7442
  };
7443
7443
  export type RegionalJobWageDeterminationHistoryVersionObject = {
7444
- id: string;
7445
- uid: string;
7444
+ /**
7445
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
7446
+ */
7447
+ job_wage_determination_id: string;
7446
7448
  job_id: string;
7447
7449
  pwa_trade_id: string;
7448
7450
  type: 'Pwa::JobWageDeterminations::Regional';
@@ -7450,18 +7452,116 @@ export type RegionalJobWageDeterminationHistoryVersionObject = {
7450
7452
  hourly_rate_cents: string;
7451
7453
  fringe_rate_cents: string;
7452
7454
  general_wage_determination: string | null;
7453
- regional_fields: RegionalWageDeterminationFields;
7455
+ regional_fields: RegionalWageDeterminationFieldsResponse;
7454
7456
  valid_from: string | null;
7455
7457
  valid_to: string | null;
7456
7458
  created_at: string;
7457
7459
  updated_at: string;
7458
7460
  version_status: 'scheduled' | 'current' | 'historical';
7459
- corrections: Array<JobWageDeterminationResponseObject>;
7461
+ corrections: Array<JobWageDeterminationHistoryCorrectionObject>;
7462
+ };
7463
+ export type JobWageDeterminationHistoryCorrectionObject = ({
7464
+ type: 'Pwa::JobWageDeterminations::Federal';
7465
+ } & FederalJobWageDeterminationHistoryCorrectionObject) | ({
7466
+ type: 'Pwa::JobWageDeterminations::Regional';
7467
+ } & RegionalJobWageDeterminationHistoryCorrectionObject);
7468
+ export type FederalJobWageDeterminationHistoryCorrectionObject = {
7469
+ /**
7470
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
7471
+ */
7472
+ job_wage_determination_id: string;
7473
+ job_id: string;
7474
+ pwa_trade_id: string;
7475
+ type: 'Pwa::JobWageDeterminations::Federal';
7476
+ labor_classification: string;
7477
+ hourly_rate_cents: string;
7478
+ fringe_rate_cents: string;
7479
+ class_code: string | null;
7480
+ construction_category: 'building' | 'heavy' | 'highway' | 'residential' | null;
7481
+ general_wage_determination: string | null;
7482
+ valid_from: string | null;
7483
+ valid_to: string | null;
7484
+ created_at: string;
7485
+ updated_at: string;
7486
+ };
7487
+ export type RegionalJobWageDeterminationHistoryCorrectionObject = {
7488
+ /**
7489
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
7490
+ */
7491
+ job_wage_determination_id: string;
7492
+ job_id: string;
7493
+ pwa_trade_id: string;
7494
+ type: 'Pwa::JobWageDeterminations::Regional';
7495
+ labor_classification: string;
7496
+ hourly_rate_cents: string;
7497
+ fringe_rate_cents: string;
7498
+ general_wage_determination: string | null;
7499
+ regional_fields: RegionalWageDeterminationFieldsResponse;
7500
+ valid_from: string | null;
7501
+ valid_to: string | null;
7502
+ created_at: string;
7503
+ updated_at: string;
7460
7504
  };
7461
7505
  /**
7462
7506
  * State-specific rate fields for a Regional determination, as decimal-string money in cents
7463
- * (e.g. "538.0"). Which keys appear is set by the job's region, not the request, so this object is
7464
- * always a subset of the keys belownever a fixed shape:
7507
+ * (e.g. "538.0"). These nine properties are the whole write vocabulary, but which of them a
7508
+ * request may send is set by the job's region, not the request sending a key the job's
7509
+ * region does not allow returns a 422:
7510
+ *
7511
+ * - Categorized-fringe regions (currently IL) accept `combined_health_fringe_rate_cents`,
7512
+ * `combined_savings_fringe_rate_cents`, `combined_holiday_pto_fringe_rate_cents`,
7513
+ * `training_fringe_rate_cents`, and `other_fringe_rate_cents`.
7514
+ * - Overtime-adder regions (currently IL and NY) accept `one_five_x_adder_rate_cents`,
7515
+ * `two_x_adder_rate_cents`, `one_five_x_fringe_adder_rate_cents`, and
7516
+ * `two_x_fringe_adder_rate_cents`.
7517
+ *
7518
+ * In a categorized-fringe region the five fringe keys are required, not merely accepted —
7519
+ * omitting any of them returns a 422. Categorized-fringe values are non-null when present;
7520
+ * overtime-adder values may be null.
7521
+ *
7522
+ */
7523
+ export type RegionalWageDeterminationFields = {
7524
+ /**
7525
+ * Combined health fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
7526
+ */
7527
+ combined_health_fringe_rate_cents?: string;
7528
+ /**
7529
+ * Combined savings fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
7530
+ */
7531
+ combined_savings_fringe_rate_cents?: string;
7532
+ /**
7533
+ * Combined holiday/PTO fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
7534
+ */
7535
+ combined_holiday_pto_fringe_rate_cents?: string;
7536
+ /**
7537
+ * Training fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
7538
+ */
7539
+ training_fringe_rate_cents?: string;
7540
+ /**
7541
+ * Other (uncategorized) fringe rate, in cents as a decimal string. Categorized-fringe regions only; non-null when present.
7542
+ */
7543
+ other_fringe_rate_cents?: string;
7544
+ /**
7545
+ * Hourly wage adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
7546
+ */
7547
+ one_five_x_adder_rate_cents?: string | null;
7548
+ /**
7549
+ * Hourly wage adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
7550
+ */
7551
+ two_x_adder_rate_cents?: string | null;
7552
+ /**
7553
+ * Hourly fringe adder added to 1.5x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
7554
+ */
7555
+ one_five_x_fringe_adder_rate_cents?: string | null;
7556
+ /**
7557
+ * Hourly fringe adder added to 2x overtime, in cents as a decimal string. Overtime-adder regions only; may be null.
7558
+ */
7559
+ two_x_fringe_adder_rate_cents?: string | null;
7560
+ };
7561
+ /**
7562
+ * State-specific rate fields recorded on a Regional determination, as decimal-string money in
7563
+ * cents (e.g. "538.0"). Which keys appear is set by the job's region, so this object is always
7564
+ * a region-determined subset of the nine keys the write side accepts — never a fixed shape:
7465
7565
  *
7466
7566
  * - Categorized-fringe regions (currently IL) carry `combined_health_fringe_rate_cents`,
7467
7567
  * `combined_savings_fringe_rate_cents`, `combined_holiday_pto_fringe_rate_cents`,
@@ -7471,12 +7571,10 @@ export type RegionalJobWageDeterminationHistoryVersionObject = {
7471
7571
  * `two_x_fringe_adder_rate_cents`.
7472
7572
  * - A region with neither returns an empty object.
7473
7573
  *
7474
- * On write the same applicability governs the request sending a key the job's region does not
7475
- * allow returns a 422. Categorized-fringe values are non-null when present; overtime-adder values
7476
- * may be null.
7574
+ * Categorized-fringe values are non-null when present; overtime-adder values may be null.
7477
7575
  *
7478
7576
  */
7479
- export type RegionalWageDeterminationFields = {
7577
+ export type RegionalWageDeterminationFieldsResponse = {
7480
7578
  [key: string]: string | null;
7481
7579
  };
7482
7580
  /**
@@ -7518,7 +7616,7 @@ export type FederalJobWageDeterminationParameters = {
7518
7616
  /**
7519
7617
  * Broad DOL construction category — one of building, heavy, highway, or residential; null when not recorded.
7520
7618
  */
7521
- construction_category?: 'building' | 'heavy' | 'highway' | 'residential';
7619
+ construction_category?: 'building' | 'heavy' | 'highway' | 'residential' | null;
7522
7620
  /**
7523
7621
  * 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.
7524
7622
  */
@@ -7674,15 +7772,11 @@ export type RateRuleCondition = ({
7674
7772
  */
7675
7773
  export type RateRuleResponseObject = {
7676
7774
  /**
7677
- * Unique identifier.
7775
+ * Identity shared by every version of the rule, never a per-version row id — the value the member and history paths address the rule by.
7678
7776
  */
7679
7777
  id: string;
7680
7778
  /**
7681
- * Stable identifier shared across temporal versions of the rule; the id changes with each version, the uid does not.
7682
- */
7683
- uid: string;
7684
- /**
7685
- * ID of the job wage determination this rule is applied to, taken from the request path. Because rules attach to a shared package, the same rule can surface under more than one determination.
7779
+ * ID of the job wage determination this rule is applied to, taken from the request path — the determination's own family identifier, stable across its temporal versions. Because rules attach to a shared package, the same rule can surface under more than one determination.
7686
7780
  */
7687
7781
  job_wage_determination_id: string;
7688
7782
  /**
@@ -7711,9 +7805,25 @@ export type RateRuleResponseObject = {
7711
7805
  */
7712
7806
  updated_at: string;
7713
7807
  };
7808
+ export type RateRuleHistoryCorrectionObject = {
7809
+ /**
7810
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
7811
+ */
7812
+ pay_rates_rule_id: string;
7813
+ job_wage_determination_id: string;
7814
+ pay_rates_rule_package_id: string;
7815
+ effect: RateRuleEffect;
7816
+ conditions: Array<RateRuleCondition>;
7817
+ valid_from: string | null;
7818
+ valid_to: string | null;
7819
+ created_at: string;
7820
+ updated_at: string;
7821
+ };
7714
7822
  export type RateRuleHistoryVersionObject = {
7715
- id: string;
7716
- uid: string;
7823
+ /**
7824
+ * Family key shared by every entry on this timeline — the same identity the member route addresses. An entry carries no identifier of its own; versions are distinguished by their window coordinates.
7825
+ */
7826
+ pay_rates_rule_id: string;
7717
7827
  job_wage_determination_id: string;
7718
7828
  pay_rates_rule_package_id: string;
7719
7829
  effect: RateRuleEffect;
@@ -7723,7 +7833,7 @@ export type RateRuleHistoryVersionObject = {
7723
7833
  created_at: string;
7724
7834
  updated_at: string;
7725
7835
  version_status: 'scheduled' | 'current' | 'historical';
7726
- corrections: Array<RateRuleResponseObject>;
7836
+ corrections: Array<RateRuleHistoryCorrectionObject>;
7727
7837
  };
7728
7838
  /**
7729
7839
  * Create a rate rule on a job wage determination. `effect` is required. `conditions` is optional — an omitted or empty list makes the rule always apply. `effective_date` (YYYY-MM-DD) sets when the rule takes effect; it defaults to today and cannot predate the earliest applicable wage determination.
@@ -7774,7 +7884,7 @@ export type AssetsItemResponseObject = {
7774
7884
  /**
7775
7885
  * Lifecycle status of the item: one of available, assigned, or retired.
7776
7886
  */
7777
- status: 'available' | 'assigned' | 'retired';
7887
+ status: 'available' | 'assigned' | 'retired' | null;
7778
7888
  /**
7779
7889
  * When the item was purchased (ISO 8601).
7780
7890
  */
@@ -8038,7 +8148,7 @@ export type AssetsFormAssignmentTriggerResponseObject = {
8038
8148
  /**
8039
8149
  * How often the generated form recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment.
8040
8150
  */
8041
- recurrence_frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
8151
+ recurrence_frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
8042
8152
  /**
8043
8153
  * How the first due date is set: day_of_event (the day the rule fires), day_of_week (the next day_of_week_due), or day_of_month (day_of_month_due of the current or next month).
8044
8154
  */
@@ -8111,7 +8221,7 @@ export type AssetsFormAssignmentTriggerParameters = {
8111
8221
  /**
8112
8222
  * How often the generated form recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment.
8113
8223
  */
8114
- recurrence_frequency?: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
8224
+ recurrence_frequency?: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
8115
8225
  /**
8116
8226
  * Day of week the form is first due, 0 (Sunday) to 6 (Saturday). Required when first_due_by is day_of_week; null otherwise.
8117
8227
  */
@@ -8148,7 +8258,7 @@ export type AssetsAttachmentResponseObject = {
8148
8258
  /**
8149
8259
  * MIME type of the file; null when not recorded.
8150
8260
  */
8151
- content_type?: string | null;
8261
+ content_type: string | null;
8152
8262
  /**
8153
8263
  * Size of the file in bytes.
8154
8264
  */
@@ -8227,7 +8337,7 @@ export type AssetsDocumentResponseObject = {
8227
8337
  /**
8228
8338
  * MIME type of the file; null when not recorded.
8229
8339
  */
8230
- content_type?: string | null;
8340
+ content_type: string | null;
8231
8341
  /**
8232
8342
  * Size of the file in bytes.
8233
8343
  */
@@ -8313,9 +8423,9 @@ export type AssetsItemFormAssignmentResponseObject = {
8313
8423
  */
8314
8424
  description: string | null;
8315
8425
  /**
8316
- * IANA time zone in which time_due is interpreted; null for an unscheduled task.
8426
+ * IANA time zone in which time_due is interpreted; always set, defaulting to US/Central.
8317
8427
  */
8318
- tz_name: string | null;
8428
+ tz_name: string;
8319
8429
  /**
8320
8430
  * When the form task is due (ISO 8601), interpreted in tz_name; null for an unscheduled task.
8321
8431
  */
@@ -8323,7 +8433,7 @@ export type AssetsItemFormAssignmentResponseObject = {
8323
8433
  /**
8324
8434
  * How often this form task recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment; on write, applied only when recurring is true.
8325
8435
  */
8326
- frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
8436
+ frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
8327
8437
  /**
8328
8438
  * When recurrence stops (ISO 8601); null for a non-recurring or open-ended task.
8329
8439
  */
@@ -8339,11 +8449,11 @@ export type AssetsItemFormAssignmentResponseObject = {
8339
8449
  /**
8340
8450
  * ISO 8601 duration offset from the due time for the reminder (e.g. -PT1H for one hour before); must be one of the preset reminder times.
8341
8451
  */
8342
- offset?: string;
8452
+ offset: string;
8343
8453
  /**
8344
8454
  * When the reminder fires (ISO 8601), computed as the due time plus the offset.
8345
8455
  */
8346
- remind_at?: string | null;
8456
+ remind_at: string;
8347
8457
  }>;
8348
8458
  };
8349
8459
  /**
@@ -8389,7 +8499,7 @@ export type AssetsItemFormAssignmentParameters = {
8389
8499
  /**
8390
8500
  * How often this form task recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment; on write, applied only when recurring is true.
8391
8501
  */
8392
- frequency?: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
8502
+ frequency?: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | null;
8393
8503
  /**
8394
8504
  * When recurrence stops (ISO 8601); null for a non-recurring or open-ended task.
8395
8505
  */
@@ -13367,6 +13477,10 @@ export type CreateGroupData = {
13367
13477
  url: '/api/v1/groups';
13368
13478
  };
13369
13479
  export type CreateGroupErrors = {
13480
+ /**
13481
+ * Bad Request
13482
+ */
13483
+ 400: Problem;
13370
13484
  /**
13371
13485
  * Forbidden
13372
13486
  */
@@ -13445,6 +13559,10 @@ export type UpdateGroupData = {
13445
13559
  url: '/api/v1/groups/{id}';
13446
13560
  };
13447
13561
  export type UpdateGroupErrors = {
13562
+ /**
13563
+ * Bad Request
13564
+ */
13565
+ 400: Problem;
13448
13566
  /**
13449
13567
  * Forbidden
13450
13568
  */
@@ -13671,16 +13789,16 @@ export type ListRateRuleHistoryData = {
13671
13789
  body?: never;
13672
13790
  path: {
13673
13791
  job_id: string;
13674
- wage_determination_uid: string;
13792
+ wage_determination_id: string;
13675
13793
  /**
13676
- * The rule's version-stable identity, as returned in `uid`.
13794
+ * The rule's version-stable identity, as returned in `id`.
13677
13795
  */
13678
- rate_rule_uid: string;
13796
+ rate_rule_id: string;
13679
13797
  };
13680
13798
  query?: {
13681
13799
  'as_of[valid]'?: string;
13682
13800
  };
13683
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules/{rate_rule_uid}/history';
13801
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{rate_rule_id}/history';
13684
13802
  };
13685
13803
  export type ListRateRuleHistoryErrors = {
13686
13804
  /**
@@ -13712,7 +13830,7 @@ export type ListRateRulesData = {
13712
13830
  body?: never;
13713
13831
  path: {
13714
13832
  job_id: string;
13715
- wage_determination_uid: string;
13833
+ wage_determination_id: string;
13716
13834
  };
13717
13835
  query?: {
13718
13836
  /**
@@ -13724,7 +13842,7 @@ export type ListRateRulesData = {
13724
13842
  'as_of[valid][gte]'?: string;
13725
13843
  'as_of[transaction]'?: string;
13726
13844
  };
13727
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules';
13845
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules';
13728
13846
  };
13729
13847
  export type ListRateRulesErrors = {
13730
13848
  /**
@@ -13756,10 +13874,10 @@ export type CreateRateRuleData = {
13756
13874
  body: RateRuleParameters;
13757
13875
  path: {
13758
13876
  job_id: string;
13759
- wage_determination_uid: string;
13877
+ wage_determination_id: string;
13760
13878
  };
13761
13879
  query?: never;
13762
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules';
13880
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules';
13763
13881
  };
13764
13882
  export type CreateRateRuleErrors = {
13765
13883
  /**
@@ -13783,8 +13901,8 @@ export type GetRateRuleData = {
13783
13901
  body?: never;
13784
13902
  path: {
13785
13903
  job_id: string;
13786
- wage_determination_uid: string;
13787
- uid: string;
13904
+ wage_determination_id: string;
13905
+ id: string;
13788
13906
  };
13789
13907
  query?: {
13790
13908
  /**
@@ -13792,7 +13910,7 @@ export type GetRateRuleData = {
13792
13910
  */
13793
13911
  'as_of[valid]'?: string;
13794
13912
  };
13795
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules/{uid}';
13913
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{id}';
13796
13914
  };
13797
13915
  export type GetRateRuleErrors = {
13798
13916
  /**
@@ -13817,14 +13935,14 @@ export type ListJobWageDeterminationHistoryData = {
13817
13935
  path: {
13818
13936
  job_id: string;
13819
13937
  /**
13820
- * The determination's version-stable identity, as returned in `uid`.
13938
+ * The determination's version-stable identity, as returned in `id`.
13821
13939
  */
13822
- wage_determination_uid: string;
13940
+ wage_determination_id: string;
13823
13941
  };
13824
13942
  query?: {
13825
13943
  'as_of[valid]'?: string;
13826
13944
  };
13827
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/history';
13945
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/history';
13828
13946
  };
13829
13947
  export type ListJobWageDeterminationHistoryErrors = {
13830
13948
  /**
@@ -13931,10 +14049,10 @@ export type DeleteWageDeterminationData = {
13931
14049
  };
13932
14050
  path: {
13933
14051
  job_id: string;
13934
- uid: string;
14052
+ id: string;
13935
14053
  };
13936
14054
  query?: never;
13937
- url: '/api/v1/jobs/{job_id}/wage_determinations/{uid}';
14055
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{id}';
13938
14056
  };
13939
14057
  export type DeleteWageDeterminationErrors = {
13940
14058
  /**
@@ -13970,7 +14088,7 @@ export type GetJobWageDeterminationData = {
13970
14088
  body?: never;
13971
14089
  path: {
13972
14090
  job_id: string;
13973
- uid: string;
14091
+ id: string;
13974
14092
  };
13975
14093
  query?: {
13976
14094
  /**
@@ -13978,7 +14096,7 @@ export type GetJobWageDeterminationData = {
13978
14096
  */
13979
14097
  'as_of[valid]'?: string;
13980
14098
  };
13981
- url: '/api/v1/jobs/{job_id}/wage_determinations/{uid}';
14099
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{id}';
13982
14100
  };
13983
14101
  export type GetJobWageDeterminationErrors = {
13984
14102
  /**
@@ -15173,6 +15291,10 @@ export type CreatePerDiemData = {
15173
15291
  url: '/api/v1/per_diems';
15174
15292
  };
15175
15293
  export type CreatePerDiemErrors = {
15294
+ /**
15295
+ * Bad Request
15296
+ */
15297
+ 400: Problem;
15176
15298
  /**
15177
15299
  * Forbidden
15178
15300
  */
@@ -15264,6 +15386,10 @@ export type UpdatePerDiemData = {
15264
15386
  url: '/api/v1/per_diems/{id}';
15265
15387
  };
15266
15388
  export type UpdatePerDiemErrors = {
15389
+ /**
15390
+ * Bad Request
15391
+ */
15392
+ 400: Problem;
15267
15393
  /**
15268
15394
  * Forbidden
15269
15395
  */
@@ -15327,6 +15453,10 @@ export type CreatePositionFunctionData = {
15327
15453
  url: '/api/v1/position_functions';
15328
15454
  };
15329
15455
  export type CreatePositionFunctionErrors = {
15456
+ /**
15457
+ * Bad Request
15458
+ */
15459
+ 400: Problem;
15330
15460
  /**
15331
15461
  * Forbidden
15332
15462
  */
@@ -15409,6 +15539,10 @@ export type UpdatePositionFunctionData = {
15409
15539
  url: '/api/v1/position_functions/{id}';
15410
15540
  };
15411
15541
  export type UpdatePositionFunctionErrors = {
15542
+ /**
15543
+ * Bad Request
15544
+ */
15545
+ 400: Problem;
15412
15546
  /**
15413
15547
  * Forbidden
15414
15548
  */
@@ -16014,6 +16148,10 @@ export type CreatePositionData = {
16014
16148
  url: '/api/v1/jobs/{job_id}/positions';
16015
16149
  };
16016
16150
  export type CreatePositionErrors = {
16151
+ /**
16152
+ * Bad Request
16153
+ */
16154
+ 400: Problem;
16017
16155
  /**
16018
16156
  * Forbidden
16019
16157
  */
@@ -16041,6 +16179,10 @@ export type UpdatePositionData = {
16041
16179
  url: '/api/v1/jobs/{job_id}/positions/{id}';
16042
16180
  };
16043
16181
  export type UpdatePositionErrors = {
16182
+ /**
16183
+ * Bad Request
16184
+ */
16185
+ 400: Problem;
16044
16186
  /**
16045
16187
  * Forbidden
16046
16188
  */
@@ -16590,6 +16732,10 @@ export type CreateTimeEntryData = {
16590
16732
  url: '/api/v1/time_entries';
16591
16733
  };
16592
16734
  export type CreateTimeEntryErrors = {
16735
+ /**
16736
+ * Bad Request
16737
+ */
16738
+ 400: Problem;
16593
16739
  /**
16594
16740
  * Forbidden
16595
16741
  */
@@ -16648,6 +16794,10 @@ export type UpdateTimeEntryData = {
16648
16794
  url: '/api/v1/time_entries/{id}';
16649
16795
  };
16650
16796
  export type UpdateTimeEntryErrors = {
16797
+ /**
16798
+ * Bad Request
16799
+ */
16800
+ 400: Problem;
16651
16801
  /**
16652
16802
  * Forbidden
16653
16803
  */
@@ -17484,6 +17634,10 @@ export type CreateHolidayData = {
17484
17634
  url: '/api/v1/timekeeping/pay_period_configs/{pay_period_config_id}/holidays';
17485
17635
  };
17486
17636
  export type CreateHolidayErrors = {
17637
+ /**
17638
+ * Bad Request
17639
+ */
17640
+ 400: Problem;
17487
17641
  /**
17488
17642
  * Forbidden
17489
17643
  */
@@ -17544,6 +17698,10 @@ export type UpdateHolidayData = {
17544
17698
  url: '/api/v1/timekeeping/pay_period_configs/{pay_period_config_id}/holidays/{id}';
17545
17699
  };
17546
17700
  export type UpdateHolidayErrors = {
17701
+ /**
17702
+ * Bad Request
17703
+ */
17704
+ 400: Problem;
17547
17705
  /**
17548
17706
  * Forbidden
17549
17707
  */