@dsptch-work/api-client 0.1.0 → 0.3.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.
@@ -19,6 +19,11 @@ export type ErrorsObject = {
19
19
  message?: string;
20
20
  }>;
21
21
  };
22
+ export type ApiKeyScopeResponseObject = {
23
+ resource: string;
24
+ action: 'read' | 'create' | 'update' | 'delete';
25
+ name: string;
26
+ };
22
27
  /**
23
28
  * Register a file for direct upload — send its metadata to receive a blob plus a one-time URL for uploading the file's bytes to storage.
24
29
  */
@@ -719,9 +724,17 @@ export type TimecodeResponseObject = {
719
724
  */
720
725
  valid_from: string;
721
726
  /**
722
- * ISO8601 timestamp at which this version stops being valid (bitemporal valid-time end); a far-future sentinel (year 9999) until the timecode is terminated.
727
+ * ISO8601 timestamp at which this version stops being valid (bitemporal valid-time end); null until the timecode is terminated.
728
+ */
729
+ valid_to: string | null;
730
+ /**
731
+ * Transaction time — when this version was recorded in DSPTCH (ISO 8601).
732
+ */
733
+ transaction_from: string;
734
+ /**
735
+ * Transaction time — when this version was superseded by a correction (ISO 8601); null while it is still the current belief.
723
736
  */
724
- valid_to: string;
737
+ transaction_to: string | null;
725
738
  /**
726
739
  * ISO8601 timestamp when the record was created.
727
740
  */
@@ -731,6 +744,33 @@ export type TimecodeResponseObject = {
731
744
  */
732
745
  updated_at: string;
733
746
  };
747
+ export type TimecodeHistoryVersionObject = {
748
+ id: string;
749
+ name: string;
750
+ description: string | null;
751
+ description_is_required: boolean;
752
+ billable: boolean;
753
+ overtime_eligible: boolean;
754
+ unpaid: boolean;
755
+ holiday: boolean;
756
+ pto: boolean;
757
+ safety: boolean;
758
+ lunch_shortcut: boolean;
759
+ break_shortcut: boolean;
760
+ pwa: boolean;
761
+ rest_and_recovery: boolean;
762
+ incentive_pay_eligible: boolean;
763
+ restricted_to: 'none' | 'job' | 'non_job' | 'job_with_timecode';
764
+ default_for_company_id: string | null;
765
+ valid_from: string;
766
+ valid_to: string | null;
767
+ transaction_from: string;
768
+ transaction_to: string | null;
769
+ created_at: string;
770
+ updated_at: string;
771
+ version_status: 'scheduled' | 'current' | 'historical';
772
+ corrections: Array<TimecodeResponseObject>;
773
+ };
734
774
  /**
735
775
  * 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.
736
776
  */
@@ -925,8 +965,12 @@ export type AssetsProductResponseObject = {
925
965
  /**
926
966
  * ID of the category classifying this product; null when uncategorized.
927
967
  */
928
- category_id: string | null;
968
+ assets_category_id: string | null;
929
969
  attributes: AssetsAttributeValueObjects;
970
+ /**
971
+ * Images attached to the product; each carries a download url for its file.
972
+ */
973
+ images: Array<AssetsAttachmentResponseObject>;
930
974
  /**
931
975
  * When the record was created (ISO 8601).
932
976
  */
@@ -937,7 +981,7 @@ export type AssetsProductResponseObject = {
937
981
  updated_at: string;
938
982
  };
939
983
  /**
940
- * Create or update a catalog product. `type` (serial or bulk) is required on create and cannot be changed afterward; `performed_by_user_id` is required on create. `attribute_values` upserts the product's category-attribute values.
984
+ * Create a catalog product. `type` (serial or bulk) is required and immutable. `attribute_values` upserts the product's category-attribute values.
941
985
  */
942
986
  export type AssetsProductParameters = {
943
987
  /**
@@ -955,7 +999,7 @@ export type AssetsProductParameters = {
955
999
  /**
956
1000
  * ID of the category classifying this product; null when uncategorized.
957
1001
  */
958
- category_id?: string | null;
1002
+ assets_category_id?: string | null;
959
1003
  /**
960
1004
  * Universal Product Code; unique within the company. Null when not set.
961
1005
  */
@@ -981,13 +1025,13 @@ export type AssetsProductParameters = {
981
1025
  */
982
1026
  counted_by?: 'each' | 'pair' | 'pack';
983
1027
  /**
984
- * Upserts the values of this product's category attributes, one entry per attribute. Send a blank value and null attribute_option_id to clear one.
1028
+ * Upserts the values of this product's category attributes, one entry per attribute. Send a blank value and null assets_attribute_option_id to clear one.
985
1029
  */
986
1030
  attribute_values?: Array<{
987
1031
  /**
988
1032
  * ID of the attribute definition.
989
1033
  */
990
- attribute_id: string;
1034
+ assets_attribute_id: string;
991
1035
  /**
992
1036
  * The entered value for a non-select attribute (text, number, date, or boolean as a string); null for a select attribute or when unfilled.
993
1037
  */
@@ -995,13 +1039,79 @@ export type AssetsProductParameters = {
995
1039
  /**
996
1040
  * ID of the chosen option for a select attribute; null otherwise.
997
1041
  */
998
- attribute_option_id?: string | null;
1042
+ assets_attribute_option_id?: string | null;
999
1043
  }>;
1044
+ /**
1045
+ * Image attachments. Send file with a signed_id to add one; include id with _destroy to remove an existing one.
1046
+ */
1047
+ images_attributes?: Array<AssetsAttachmentParameters>;
1000
1048
  /**
1001
1049
  * ID of the user this write is performed on behalf of, recorded for auditing. Required on create; must belong to your company.
1002
1050
  */
1003
1051
  performed_by_user_id: string;
1004
1052
  };
1053
+ /**
1054
+ * Update a catalog product. All fields are optional — send only what changes. `type` is immutable and `performed_by_user_id` is create-only, so neither is accepted here. `attribute_values` upserts the product's category-attribute values.
1055
+ */
1056
+ export type AssetsProductUpdateParameters = {
1057
+ /**
1058
+ * Human-readable product name.
1059
+ */
1060
+ name?: string;
1061
+ /**
1062
+ * Free-text description of the product. Write-only — accepted here but not returned in the product response.
1063
+ */
1064
+ description?: string | null;
1065
+ /**
1066
+ * ID of the category classifying this product; null when uncategorized.
1067
+ */
1068
+ assets_category_id?: string | null;
1069
+ /**
1070
+ * Universal Product Code; unique within the company. Null when not set.
1071
+ */
1072
+ upc?: string | null;
1073
+ /**
1074
+ * Internal stock-keeping unit (SKU); unique within the company. Null when not set.
1075
+ */
1076
+ internal_sku?: string | null;
1077
+ /**
1078
+ * Default low-stock reorder threshold for this product's items, applied across sites unless a site overrides it. Null when not set.
1079
+ */
1080
+ default_minimum_quantity?: number | null;
1081
+ /**
1082
+ * Manufacturer or brand; required when model is given. Null when not set.
1083
+ */
1084
+ make?: string | null;
1085
+ /**
1086
+ * Model name or number; unique per manufacturer within the company. Null when not set.
1087
+ */
1088
+ model?: string | null;
1089
+ /**
1090
+ * Unit of measure for counting a bulk product's inventory: one of each, pair, or pack. A serial product is always counted each.
1091
+ */
1092
+ counted_by?: 'each' | 'pair' | 'pack';
1093
+ /**
1094
+ * Upserts the values of this product's category attributes, one entry per attribute. Send a blank value and null assets_attribute_option_id to clear one.
1095
+ */
1096
+ attribute_values?: Array<{
1097
+ /**
1098
+ * ID of the attribute definition.
1099
+ */
1100
+ assets_attribute_id: string;
1101
+ /**
1102
+ * The entered value for a non-select attribute (text, number, date, or boolean as a string); null for a select attribute or when unfilled.
1103
+ */
1104
+ value?: string | null;
1105
+ /**
1106
+ * ID of the chosen option for a select attribute; null otherwise.
1107
+ */
1108
+ assets_attribute_option_id?: string | null;
1109
+ }>;
1110
+ /**
1111
+ * Image attachments. Send file with a signed_id to add one; include id with _destroy to remove an existing one.
1112
+ */
1113
+ images_attributes?: Array<AssetsAttachmentParameters>;
1114
+ };
1005
1115
  /**
1006
1116
  * A named daily allowance (meals, lodging, travel, and the like) that a company can attach to time.
1007
1117
  */
@@ -1033,11 +1143,11 @@ export type PerDiemResponseObject = {
1033
1143
  /**
1034
1144
  * Whether this is the company default per diem.
1035
1145
  */
1036
- is_default: boolean | null;
1146
+ default: boolean | null;
1037
1147
  /**
1038
1148
  * Whether the per diem is currently active and available to use.
1039
1149
  */
1040
- is_active: boolean | null;
1150
+ active: boolean | null;
1041
1151
  /**
1042
1152
  * IDs of the work types this per diem applies to.
1043
1153
  */
@@ -1082,11 +1192,11 @@ export type PerDiemParameters = {
1082
1192
  /**
1083
1193
  * Whether this should become the company default per diem.
1084
1194
  */
1085
- is_default?: boolean | null;
1195
+ default?: boolean | null;
1086
1196
  /**
1087
1197
  * Whether the per diem is active and available to use.
1088
1198
  */
1089
- is_active?: boolean | null;
1199
+ active?: boolean | null;
1090
1200
  /**
1091
1201
  * IDs of the work types this per diem applies to.
1092
1202
  */
@@ -1103,7 +1213,7 @@ export type AssetsAttributeValueObjects = Array<{
1103
1213
  /**
1104
1214
  * ID of the attribute definition.
1105
1215
  */
1106
- attribute_id: string;
1216
+ assets_attribute_id: string;
1107
1217
  /**
1108
1218
  * The entered value for a non-select attribute (text, number, date, or boolean as a string); null for a select attribute or when unfilled.
1109
1219
  */
@@ -1111,7 +1221,7 @@ export type AssetsAttributeValueObjects = Array<{
1111
1221
  /**
1112
1222
  * ID of the chosen option for a select attribute; null otherwise.
1113
1223
  */
1114
- attribute_option_id: string | null;
1224
+ assets_attribute_option_id: string | null;
1115
1225
  }>;
1116
1226
  /**
1117
1227
  * A reusable custom-field definition (for example "Color" or "Voltage") that categories assign and products or items fill in.
@@ -1228,7 +1338,7 @@ export type AssetsCategoryResponseObject = {
1228
1338
  /**
1229
1339
  * ID of the attribute definition.
1230
1340
  */
1231
- attribute_id: string;
1341
+ assets_attribute_id: string;
1232
1342
  /**
1233
1343
  * Where this attribute is filled in for the category: product (on the catalog product) or item (on each individual item).
1234
1344
  */
@@ -1274,7 +1384,7 @@ export type AssetsCategoryParameters = {
1274
1384
  /**
1275
1385
  * ID of the attribute definition.
1276
1386
  */
1277
- attribute_id: string;
1387
+ assets_attribute_id: string;
1278
1388
  /**
1279
1389
  * Where this attribute is filled in for the category: product (on the catalog product) or item (on each individual item).
1280
1390
  */
@@ -1583,11 +1693,11 @@ export type PayPeriodConfigResponseObject = {
1583
1693
  /**
1584
1694
  * Whether a pay date that falls on a holiday shifts to after the holiday.
1585
1695
  */
1586
- is_paid_after_holiday: boolean;
1696
+ paid_after_holiday: boolean;
1587
1697
  /**
1588
1698
  * Whether this is a demo schedule holding non-production data. Null when unset.
1589
1699
  */
1590
- is_demo: boolean | null;
1700
+ demo: boolean | null;
1591
1701
  /**
1592
1702
  * Start of this schedule version's validity window (ISO 8601).
1593
1703
  */
@@ -1601,6 +1711,28 @@ export type PayPeriodConfigResponseObject = {
1601
1711
  */
1602
1712
  created_at: string;
1603
1713
  };
1714
+ export type PayPeriodConfigHistoryVersionObject = {
1715
+ uid: string;
1716
+ company_id: string;
1717
+ name: string;
1718
+ frequency: 'weekly' | 'biweekly';
1719
+ start_day_of_week: number;
1720
+ tz_name: string;
1721
+ currency: string;
1722
+ status: 'synced' | 'pending' | 'failed';
1723
+ payroll_mode: 'none' | 'base' | 'aggregate';
1724
+ time_mode: 'none' | 'base' | 'aggregate';
1725
+ payroll_system: 'rippling' | 'quickbooks_online' | 'paychex' | 'gusto';
1726
+ actuals_enabled: boolean | null;
1727
+ requires_external_map_contributor: boolean;
1728
+ paid_after_holiday: boolean;
1729
+ demo: boolean | null;
1730
+ valid_from: string;
1731
+ valid_to: string | null;
1732
+ created_at: string;
1733
+ version_status: 'scheduled' | 'current' | 'historical';
1734
+ corrections: Array<PayPeriodConfigResponseObject>;
1735
+ };
1604
1736
  /**
1605
1737
  * 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).
1606
1738
  */
@@ -2299,7 +2431,7 @@ export type JobParameters = {
2299
2431
  /**
2300
2432
  * Whether this is the job's primary work type.
2301
2433
  */
2302
- is_primary?: boolean;
2434
+ primary?: boolean;
2303
2435
  /**
2304
2436
  * ID of the work type to associate with the job.
2305
2437
  */
@@ -3367,19 +3499,6 @@ export type FormSubmissionIndexObject = {
3367
3499
  * When the record was last updated (ISO 8601).
3368
3500
  */
3369
3501
  updated_at?: string;
3370
- /**
3371
- * System validity window for this version of the submission (bitemporal).
3372
- */
3373
- valid_time?: {
3374
- /**
3375
- * When this version became valid (ISO 8601).
3376
- */
3377
- start?: string;
3378
- /**
3379
- * When this version stopped being valid (ISO 8601); null for the current version.
3380
- */
3381
- end?: string | null;
3382
- };
3383
3502
  }>;
3384
3503
  };
3385
3504
  /**
@@ -3433,19 +3552,6 @@ export type FormSubmissionResponseObject = {
3433
3552
  * When the record was last updated (ISO 8601).
3434
3553
  */
3435
3554
  updated_at: string;
3436
- /**
3437
- * System validity window for this version of the submission (bitemporal).
3438
- */
3439
- valid_time: {
3440
- /**
3441
- * When this version became valid (ISO 8601).
3442
- */
3443
- start?: string;
3444
- /**
3445
- * When this version stopped being valid (ISO 8601); null for the current version.
3446
- */
3447
- end?: string | null;
3448
- };
3449
3555
  };
3450
3556
  /**
3451
3557
  * Request body for updating a worker's employment at your company. Corrects administrative fields (employment type, title, manager, payroll id, hire date, and time-and-attendance enrollment) across the whole employment history. For time-effective pay changes, use the scheduled-changes endpoints instead.
@@ -3622,7 +3728,7 @@ export type WorkTypeResponseObject = {
3622
3728
  /**
3623
3729
  * Whether the company internally created this work type. Defaults to false, and is always true for shared global work types (those with no owning company).
3624
3730
  */
3625
- is_verified: boolean;
3731
+ verified: boolean;
3626
3732
  /**
3627
3733
  * Owning company's id (UUID) when the work type is company-specific; null for shared global work types.
3628
3734
  */
@@ -3697,9 +3803,9 @@ export type CompanyResponseObject = {
3697
3803
  color_hex: string;
3698
3804
  tagline: string | null;
3699
3805
  founding_year: number | null;
3700
- corporate_structure: 'corporation' | 'llc' | 'partnership' | 'sole_proprietorship' | 's_corporation';
3701
- employee_count_range: 'one_to_ten' | 'eleven_to_fifty' | 'fifty_one_to_two_hundred' | 'two_hundred_one_to_five_hundred' | 'five_hundred_one_to_one_thousand' | 'one_thousand_one_to_five_thousand' | 'five_thousand_one_to_ten_thousand' | 'ten_thousand_one_plus';
3702
- revenue_range: 'zero_to_one_million' | 'one_to_ten_million' | 'ten_to_twenty_five_million' | 'twenty_five_to_fifty_million' | 'fifty_to_one_hundred_million' | 'one_hundred_to_two_fifty_million' | 'two_fifty_to_five_hundred_million' | 'five_hundred_to_one_billion' | 'one_billion_to_ten_billion' | 'ten_billion_plus';
3806
+ corporate_structure: 'corporation' | 'llc' | 'partnership' | 'sole_proprietorship' | 's_corporation' | null;
3807
+ employee_count_range: 'one_to_ten' | 'eleven_to_fifty' | 'fifty_one_to_two_hundred' | 'two_hundred_one_to_five_hundred' | 'five_hundred_one_to_one_thousand' | 'one_thousand_one_to_five_thousand' | 'five_thousand_one_to_ten_thousand' | 'ten_thousand_one_plus' | null;
3808
+ revenue_range: 'zero_to_one_million' | 'one_to_ten_million' | 'ten_to_twenty_five_million' | 'twenty_five_to_fifty_million' | 'fifty_to_one_hundred_million' | 'one_hundred_to_two_fifty_million' | 'two_fifty_to_five_hundred_million' | 'five_hundred_to_one_billion' | 'one_billion_to_ten_billion' | 'ten_billion_plus' | null;
3703
3809
  /**
3704
3810
  * North American Industry Classification System code.
3705
3811
  */
@@ -3708,6 +3814,65 @@ export type CompanyResponseObject = {
3708
3814
  created_at: string;
3709
3815
  updated_at: string;
3710
3816
  };
3817
+ export type CompanyParameters = ({
3818
+ name: string;
3819
+ } | {
3820
+ legal_name: string | null;
3821
+ } | {
3822
+ description: string | null;
3823
+ } | {
3824
+ address: string | null;
3825
+ } | {
3826
+ website: string | null;
3827
+ } | {
3828
+ phone_number: string | null;
3829
+ } | {
3830
+ email: string | null;
3831
+ } | {
3832
+ /**
3833
+ * Brand color as a hex string (e.g. "#312e81").
3834
+ */
3835
+ color_hex: string;
3836
+ } | {
3837
+ tagline: string | null;
3838
+ } | {
3839
+ founding_year: number | null;
3840
+ } | {
3841
+ corporate_structure: 'corporation' | 'llc' | 'partnership' | 'sole_proprietorship' | 's_corporation' | null;
3842
+ } | {
3843
+ employee_count_range: 'one_to_ten' | 'eleven_to_fifty' | 'fifty_one_to_two_hundred' | 'two_hundred_one_to_five_hundred' | 'five_hundred_one_to_one_thousand' | 'one_thousand_one_to_five_thousand' | 'five_thousand_one_to_ten_thousand' | 'ten_thousand_one_plus' | null;
3844
+ } | {
3845
+ revenue_range: 'zero_to_one_million' | 'one_to_ten_million' | 'ten_to_twenty_five_million' | 'twenty_five_to_fifty_million' | 'fifty_to_one_hundred_million' | 'one_hundred_to_two_fifty_million' | 'two_fifty_to_five_hundred_million' | 'five_hundred_to_one_billion' | 'one_billion_to_ten_billion' | 'ten_billion_plus' | null;
3846
+ } | {
3847
+ /**
3848
+ * North American Industry Classification System code.
3849
+ */
3850
+ naics_code: string | null;
3851
+ } | {
3852
+ linkedin_url: string | null;
3853
+ }) & {
3854
+ name?: string;
3855
+ legal_name?: string | null;
3856
+ description?: string | null;
3857
+ address?: string | null;
3858
+ website?: string | null;
3859
+ phone_number?: string | null;
3860
+ email?: string | null;
3861
+ /**
3862
+ * Brand color as a hex string (e.g. "#312e81").
3863
+ */
3864
+ color_hex?: string;
3865
+ tagline?: string | null;
3866
+ founding_year?: number | null;
3867
+ corporate_structure?: 'corporation' | 'llc' | 'partnership' | 'sole_proprietorship' | 's_corporation' | null;
3868
+ employee_count_range?: 'one_to_ten' | 'eleven_to_fifty' | 'fifty_one_to_two_hundred' | 'two_hundred_one_to_five_hundred' | 'five_hundred_one_to_one_thousand' | 'one_thousand_one_to_five_thousand' | 'five_thousand_one_to_ten_thousand' | 'ten_thousand_one_plus' | null;
3869
+ revenue_range?: 'zero_to_one_million' | 'one_to_ten_million' | 'ten_to_twenty_five_million' | 'twenty_five_to_fifty_million' | 'fifty_to_one_hundred_million' | 'one_hundred_to_two_fifty_million' | 'two_fifty_to_five_hundred_million' | 'five_hundred_to_one_billion' | 'one_billion_to_ten_billion' | 'ten_billion_plus' | null;
3870
+ /**
3871
+ * North American Industry Classification System code.
3872
+ */
3873
+ naics_code?: string | null;
3874
+ linkedin_url?: string | null;
3875
+ };
3711
3876
  /**
3712
3877
  * A custom field definition — a company-defined attribute attached to one kind of record (jobs, workers, apprentices, or the company itself). Deleting one is blocked while any record still holds a value for it.
3713
3878
  */
@@ -3731,7 +3896,7 @@ export type CustomFieldConfigsResponseObject = {
3731
3896
  /**
3732
3897
  * Whether the field is shown.
3733
3898
  */
3734
- is_visible: boolean;
3899
+ visible: boolean;
3735
3900
  /**
3736
3901
  * ID of the company that owns this record.
3737
3902
  */
@@ -3764,7 +3929,7 @@ export type CustomFieldConfigParameters = {
3764
3929
  /**
3765
3930
  * Whether the field is shown.
3766
3931
  */
3767
- is_visible?: boolean;
3932
+ visible?: boolean;
3768
3933
  };
3769
3934
  /**
3770
3935
  * A user's membership in a group.
@@ -4713,17 +4878,17 @@ export type PayrollExternalMapResponseObject = {
4713
4878
  */
4714
4879
  valid_from: string;
4715
4880
  /**
4716
- * Valid time — when this version stops being true (ISO 8601); a far-future sentinel (year 9999) while open-ended.
4881
+ * Valid time — when this version stops being true (ISO 8601); null while it is still current.
4717
4882
  */
4718
- valid_to: string;
4883
+ valid_to: string | null;
4719
4884
  /**
4720
4885
  * Transaction time — when this version was recorded in DSPTCH (ISO 8601).
4721
4886
  */
4722
4887
  transaction_from: string;
4723
4888
  /**
4724
- * Transaction time — when this version was superseded by a correction (ISO 8601); a far-future sentinel (year 9999) while current.
4889
+ * Transaction time — when this version was superseded by a correction (ISO 8601); null while it is still the current belief.
4725
4890
  */
4726
- transaction_to: string;
4891
+ transaction_to: string | null;
4727
4892
  /**
4728
4893
  * When the record was created (ISO 8601).
4729
4894
  */
@@ -4733,8 +4898,30 @@ export type PayrollExternalMapResponseObject = {
4733
4898
  */
4734
4899
  updated_at: string;
4735
4900
  };
4901
+ export type PayrollExternalMapHistoryVersionObject = {
4902
+ id: string;
4903
+ bitemporal_id: string;
4904
+ name: string;
4905
+ compensation_element_id: string;
4906
+ compensation_element_name: string;
4907
+ compensation_element_category: 'tax' | 'health' | 'retirement' | 'insurance' | 'earning' | 'garnishment' | 'other';
4908
+ pay_period_config_uid: string | null;
4909
+ fringe_benefit_plan_id: string | null;
4910
+ contributor: 'any' | 'employee' | 'employer';
4911
+ annual_periods: number;
4912
+ created_by_user_id: string | null;
4913
+ global: boolean;
4914
+ valid_from: string;
4915
+ valid_to: string | null;
4916
+ transaction_from: string;
4917
+ transaction_to: string | null;
4918
+ created_at: string;
4919
+ updated_at: string;
4920
+ version_status: 'scheduled' | 'current' | 'historical';
4921
+ corrections: Array<PayrollExternalMapResponseObject>;
4922
+ };
4736
4923
  /**
4737
- * A payroll run — a record of one payroll-processing event as it occurred in the external payroll system (not a run initiated by DSPTCH). Paystubs belong to a run.
4924
+ * 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.
4738
4925
  */
4739
4926
  export type PayrollRunResponseObject = {
4740
4927
  /**
@@ -4758,7 +4945,7 @@ export type PayrollRunResponseObject = {
4758
4945
  */
4759
4946
  run_type: 'CORRECTION' | 'ON_CYCLE' | 'OFF_CYCLE' | 'RECONCILIATION' | 'SIGN_ON_BONUS' | 'TERMINATION';
4760
4947
  /**
4761
- * Date the external provider processed the payroll (YYYY-MM-DD).
4948
+ * Check date of the run (YYYY-MM-DD): the pay period's pay date for an on-cycle run, the provider's check date for a credential-sourced run, or the payment date the reporting company supplied for a self-reported run.
4762
4949
  */
4763
4950
  run_date: string;
4764
4951
  /**
@@ -4795,7 +4982,7 @@ export type PayrollRunParameters = {
4795
4982
  */
4796
4983
  run_type: 'CORRECTION' | 'ON_CYCLE' | 'OFF_CYCLE' | 'RECONCILIATION' | 'SIGN_ON_BONUS' | 'TERMINATION';
4797
4984
  /**
4798
- * Date the payroll was processed (YYYY-MM-DD). Required.
4985
+ * Check date of the run (YYYY-MM-DD). Required. For a self-reported run (off-cycle with no credential_id), at most 3 days after the current date — later dates fail validation.
4799
4986
  */
4800
4987
  run_date: string;
4801
4988
  /**
@@ -4989,6 +5176,36 @@ export type ProjectParameters = {
4989
5176
  */
4990
5177
  placed_in_service_date?: string | null;
4991
5178
  };
5179
+ export type SiteCheckInResponseObject = {
5180
+ id: string;
5181
+ site_id: string;
5182
+ /**
5183
+ * The checked-in DSPTCH user; null when the person was recorded by name instead.
5184
+ */
5185
+ user_id: string | null;
5186
+ first_name: string | null;
5187
+ last_name: string | null;
5188
+ site_contact_id: string | null;
5189
+ site_contact_first_name: string | null;
5190
+ site_contact_last_name: string | null;
5191
+ employer_name: string | null;
5192
+ description: string | null;
5193
+ rationale: string | null;
5194
+ /**
5195
+ * How the check-in was captured.
5196
+ */
5197
+ source: 'manual' | 'auto';
5198
+ nerc_check_in: boolean;
5199
+ cip_exceptional: boolean;
5200
+ created_by_user_id: string | null;
5201
+ latitude: number | null;
5202
+ longitude: number | null;
5203
+ start_time: string;
5204
+ end_time: string | null;
5205
+ verified_at: string | null;
5206
+ created_at: string;
5207
+ updated_at: string;
5208
+ };
4992
5209
  /**
4993
5210
  * A geographic location where work is performed — a site on the Atlas map. Read-only through the API; sites are drawn on the map or imported from external sources, not created here.
4994
5211
  */
@@ -5107,7 +5324,7 @@ export type FeatureResponseObject = {
5107
5324
  /**
5108
5325
  * True when the feature is a private draft scoped to its creating user rather than shared with the company.
5109
5326
  */
5110
- is_scoped_to_user: boolean;
5327
+ scoped_to_user: boolean;
5111
5328
  /**
5112
5329
  * ID of the feature's address; null when none is set.
5113
5330
  */
@@ -5185,9 +5402,9 @@ export type ComplianceCheckResponseObject = {
5185
5402
  */
5186
5403
  type: 'Compliances::CompanyCheck' | 'Compliances::JobCheck' | 'Compliances::ProjectCheck' | 'Compliances::TimeCardCheck' | 'Compliances::PayPeriodCheck' | 'Compliances::UserCheck' | 'Compliances::UserCompanyCheck';
5187
5404
  /**
5188
- * Lifecycle status of the check: one of passed, failed, not_applicable, dismissed, pending, or error; only dismissed and pending are client-settable (see compliance_check_parameters).
5405
+ * Lifecycle status of the check: one of passed, failed, not_applicable, dismissed, or pending; only dismissed and pending are client-settable (see compliance_check_parameters).
5189
5406
  */
5190
- status: 'passed' | 'failed' | 'not_applicable' | 'dismissed' | 'pending' | 'error';
5407
+ status: 'passed' | 'failed' | 'not_applicable' | 'dismissed' | 'pending';
5191
5408
  /**
5192
5409
  * ID of the requirement this check evaluates.
5193
5410
  */
@@ -5768,7 +5985,7 @@ export type PositionResponseObject = {
5768
5985
  /**
5769
5986
  * Whether this position tracks Prevailing Wage / Apprenticeship (PWA) compliance; when true, the PWA rate fields and wage-determination associations apply.
5770
5987
  */
5771
- is_pwa: boolean;
5988
+ pwa: boolean;
5772
5989
  /**
5773
5990
  * UIDs of the federal (Davis-Bacon) wage determinations applied to this position; empty when none.
5774
5991
  */
@@ -5849,7 +6066,7 @@ export type PositionParameters = {
5849
6066
  /**
5850
6067
  * Whether the position tracks PWA compliance; must be true to attach wage determinations or set the PWA rate fields.
5851
6068
  */
5852
- is_pwa?: boolean;
6069
+ pwa?: boolean;
5853
6070
  /**
5854
6071
  * Desired hourly cash-fringe rate in cents.
5855
6072
  */
@@ -6199,7 +6416,7 @@ export type CertificationParameters = {
6199
6416
  */
6200
6417
  description?: string | null;
6201
6418
  /**
6202
- * Whether this is a recognized, vetted credential type. This is a property of the certification definition, distinct from a held certification's is_verified.
6419
+ * Whether this is a recognized, vetted credential type. This is a property of the certification definition, distinct from the verified flag on a certification a worker holds.
6203
6420
  */
6204
6421
  verified?: boolean | null;
6205
6422
  /**
@@ -6332,7 +6549,7 @@ export type UserCertificationParameters = {
6332
6549
  /**
6333
6550
  * When the worker earned the certification (ISO 8601). Required.
6334
6551
  */
6335
- date_received: string;
6552
+ received_at: string;
6336
6553
  /**
6337
6554
  * Optional proof document to attach (for example a certificate scan). Write-only — it is not returned in responses.
6338
6555
  */
@@ -6347,11 +6564,11 @@ export type UserCertificationParameters = {
6347
6564
  content?: string;
6348
6565
  } | null;
6349
6566
  /**
6350
- * Whether DSPTCH has verified this held certification. Distinct from the certification's own verified flag.
6567
+ * Whether DSPTCH has verified this held certification. Distinct from the verified flag on the certification definition itself.
6351
6568
  */
6352
- is_verified?: boolean | null;
6569
+ verified?: boolean | null;
6353
6570
  /**
6354
- * When the held certification expires (YYYY-MM-DD). Must be after date_received; null when it does not expire.
6571
+ * When the held certification expires (YYYY-MM-DD). Must be after received_at; null when it does not expire.
6355
6572
  */
6356
6573
  expiration_date?: string | null;
6357
6574
  /**
@@ -6401,11 +6618,11 @@ export type UserCertificationResponseObject = {
6401
6618
  /**
6402
6619
  * When the worker earned the certification (ISO 8601).
6403
6620
  */
6404
- date_received: string;
6621
+ received_at: string;
6405
6622
  /**
6406
6623
  * Whether DSPTCH has verified this held certification.
6407
6624
  */
6408
- is_verified: boolean;
6625
+ verified: boolean;
6409
6626
  /**
6410
6627
  * Id of the company or organization that granted the certification to the worker. Set to your company for records created through the API; null when unknown.
6411
6628
  */
@@ -6698,6 +6915,10 @@ export type FederalJobWageDeterminationResponseObject = {
6698
6915
  * ID of the job this wage determination applies to.
6699
6916
  */
6700
6917
  job_id: string;
6918
+ /**
6919
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
6920
+ */
6921
+ trade_id: string;
6701
6922
  /**
6702
6923
  * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
6703
6924
  */
@@ -6726,7 +6947,14 @@ export type FederalJobWageDeterminationResponseObject = {
6726
6947
  * 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.
6727
6948
  */
6728
6949
  general_wage_determination: string | null;
6729
- valid_time: WageDeterminationValidTime;
6950
+ /**
6951
+ * Valid time — when this version of the determination took effect (ISO 8601).
6952
+ */
6953
+ valid_from: string;
6954
+ /**
6955
+ * Valid time — when this version stopped applying (ISO 8601); null while it is still current.
6956
+ */
6957
+ valid_to: string | null;
6730
6958
  /**
6731
6959
  * When the record was created (ISO 8601).
6732
6960
  */
@@ -6752,6 +6980,10 @@ export type RegionalJobWageDeterminationResponseObject = {
6752
6980
  * ID of the job this wage determination applies to.
6753
6981
  */
6754
6982
  job_id: string;
6983
+ /**
6984
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
6985
+ */
6986
+ trade_id: string;
6755
6987
  /**
6756
6988
  * Determination type — the Federal or Regional subtype (an STI class name). Federal carries a DOL class code and construction category; Regional carries the nested regional_fields object.
6757
6989
  */
@@ -6773,58 +7005,94 @@ export type RegionalJobWageDeterminationResponseObject = {
6773
7005
  */
6774
7006
  general_wage_determination: string | null;
6775
7007
  regional_fields: RegionalWageDeterminationFields;
6776
- valid_time: WageDeterminationValidTime;
6777
7008
  /**
6778
- * When the record was created (ISO 8601).
7009
+ * Valid time — when this version of the determination took effect (ISO 8601).
6779
7010
  */
6780
- created_at: string;
7011
+ valid_from: string;
6781
7012
  /**
6782
- * When the record was last updated (ISO 8601).
7013
+ * Valid time when this version stopped applying (ISO 8601); null while it is still current.
6783
7014
  */
6784
- updated_at: string;
6785
- };
6786
- /**
6787
- * The time range over which this version of the wage determination is in effect. Half-open, so a null end means it is still current.
6788
- */
6789
- export type WageDeterminationValidTime = {
7015
+ valid_to: string | null;
6790
7016
  /**
6791
- * When this version took effect (ISO 8601).
7017
+ * When the record was created (ISO 8601).
6792
7018
  */
6793
- start: string;
7019
+ created_at: string;
6794
7020
  /**
6795
- * When this version stopped applying (ISO 8601); null while it is still current.
7021
+ * When the record was last updated (ISO 8601).
6796
7022
  */
6797
- end: string | null;
6798
- };
6799
- /**
6800
- * State-specific rate fields for a Regional determination, as decimal-string money in cents
6801
- * (e.g. "538.0"). Which keys appear is set by the job's region, not the request, so this object is
6802
- * always a subset of the keys below — never a fixed shape:
6803
- *
6804
- * - Categorized-fringe regions (currently IL) carry `combined_health_fringe_rate_cents`,
6805
- * `combined_savings_fringe_rate_cents`, `combined_holiday_pto_fringe_rate_cents`,
6806
- * `training_fringe_rate_cents`, and `other_fringe_rate_cents`.
6807
- * - Overtime-adder regions (currently IL and NY) carry `one_five_x_adder_rate_cents`,
6808
- * `two_x_adder_rate_cents`, `one_five_x_fringe_adder_rate_cents`, and
6809
- * `two_x_fringe_adder_rate_cents`.
6810
- * - A region with neither returns an empty object.
6811
- *
6812
- * On write the same applicability governs the request — sending a key the job's region does not
6813
- * allow returns a 422. Categorized-fringe values are non-null when present; overtime-adder values
6814
- * may be null.
6815
- *
6816
- */
6817
- export type RegionalWageDeterminationFields = {
6818
- [key: string]: string | null;
7023
+ updated_at: string;
6819
7024
  };
6820
- /**
6821
- * Parameters for creating a job wage determination. Provide the Federal or Regional shape; the type discriminator selects which. There is no update endpoint.
6822
- */
6823
- export type JobWageDeterminationParameters = ({
7025
+ export type JobWageDeterminationHistoryVersionObject = ({
6824
7026
  type: 'Pwa::JobWageDeterminations::Federal';
6825
- } & FederalJobWageDeterminationParameters) | ({
7027
+ } & FederalJobWageDeterminationHistoryVersionObject) | ({
6826
7028
  type: 'Pwa::JobWageDeterminations::Regional';
6827
- } & RegionalJobWageDeterminationParameters);
7029
+ } & RegionalJobWageDeterminationHistoryVersionObject);
7030
+ export type FederalJobWageDeterminationHistoryVersionObject = {
7031
+ id: string;
7032
+ uid: string;
7033
+ job_id: string;
7034
+ trade_id: string;
7035
+ type: 'Pwa::JobWageDeterminations::Federal';
7036
+ labor_classification: string;
7037
+ hourly_rate_cents: string;
7038
+ fringe_rate_cents: string;
7039
+ class_code: string | null;
7040
+ construction_category: 'building' | 'heavy' | 'highway' | 'residential';
7041
+ general_wage_determination: string | null;
7042
+ valid_from: string;
7043
+ valid_to: string | null;
7044
+ created_at: string;
7045
+ updated_at: string;
7046
+ version_status: 'scheduled' | 'current' | 'historical';
7047
+ corrections: Array<JobWageDeterminationResponseObject>;
7048
+ };
7049
+ export type RegionalJobWageDeterminationHistoryVersionObject = {
7050
+ id: string;
7051
+ uid: string;
7052
+ job_id: string;
7053
+ trade_id: string;
7054
+ type: 'Pwa::JobWageDeterminations::Regional';
7055
+ labor_classification: string;
7056
+ hourly_rate_cents: string;
7057
+ fringe_rate_cents: string;
7058
+ general_wage_determination: string | null;
7059
+ regional_fields: RegionalWageDeterminationFields;
7060
+ valid_from: string;
7061
+ valid_to: string | null;
7062
+ created_at: string;
7063
+ updated_at: string;
7064
+ version_status: 'scheduled' | 'current' | 'historical';
7065
+ corrections: Array<JobWageDeterminationResponseObject>;
7066
+ };
7067
+ /**
7068
+ * State-specific rate fields for a Regional determination, as decimal-string money in cents
7069
+ * (e.g. "538.0"). Which keys appear is set by the job's region, not the request, so this object is
7070
+ * always a subset of the keys below — never a fixed shape:
7071
+ *
7072
+ * - Categorized-fringe regions (currently IL) carry `combined_health_fringe_rate_cents`,
7073
+ * `combined_savings_fringe_rate_cents`, `combined_holiday_pto_fringe_rate_cents`,
7074
+ * `training_fringe_rate_cents`, and `other_fringe_rate_cents`.
7075
+ * - Overtime-adder regions (currently IL and NY) carry `one_five_x_adder_rate_cents`,
7076
+ * `two_x_adder_rate_cents`, `one_five_x_fringe_adder_rate_cents`, and
7077
+ * `two_x_fringe_adder_rate_cents`.
7078
+ * - A region with neither returns an empty object.
7079
+ *
7080
+ * On write the same applicability governs the request — sending a key the job's region does not
7081
+ * allow returns a 422. Categorized-fringe values are non-null when present; overtime-adder values
7082
+ * may be null.
7083
+ *
7084
+ */
7085
+ export type RegionalWageDeterminationFields = {
7086
+ [key: string]: string | null;
7087
+ };
7088
+ /**
7089
+ * Parameters for creating a job wage determination. Provide the Federal or Regional shape; the type discriminator selects which. There is no update endpoint.
7090
+ */
7091
+ export type JobWageDeterminationParameters = ({
7092
+ type: 'Pwa::JobWageDeterminations::Federal';
7093
+ } & FederalJobWageDeterminationParameters) | ({
7094
+ type: 'Pwa::JobWageDeterminations::Regional';
7095
+ } & RegionalJobWageDeterminationParameters);
6828
7096
  /**
6829
7097
  * Parameters for creating a Federal (Davis-Bacon) wage determination on a job.
6830
7098
  */
@@ -6837,6 +7105,10 @@ export type FederalJobWageDeterminationParameters = {
6837
7105
  * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
6838
7106
  */
6839
7107
  labor_classification: string;
7108
+ /**
7109
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
7110
+ */
7111
+ trade_id: string;
6840
7112
  /**
6841
7113
  * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
6842
7114
  */
@@ -6870,6 +7142,10 @@ export type RegionalJobWageDeterminationParameters = {
6870
7142
  * Human-readable labor classification — the craft or trade this determination sets rates for; the display label, distinct from the machine class code.
6871
7143
  */
6872
7144
  labor_classification: string;
7145
+ /**
7146
+ * UUID of the craft grouping (trade) this determination pools into for apprenticeship-ratio tracking; obtain one from the job or project PWA trades endpoint before assigning it here.
7147
+ */
7148
+ trade_id: string;
6873
7149
  /**
6874
7150
  * Base hourly wage rate, in cents as a decimal string (e.g. "5380.0" is $53.80).
6875
7151
  */
@@ -7000,7 +7276,7 @@ export type RateRuleCondition = ({
7000
7276
  type: 'overtime_multiplier';
7001
7277
  } & RateRuleOvertimeMultiplierCondition);
7002
7278
  /**
7003
- * A conditional rate-modification rule on a job wage determination — it adds wage or fringe cents when its conditions match. `valid_time` is the temporal window over which this version of the rule is in effect.
7279
+ * A conditional rate-modification rule on a job wage determination — it adds wage or fringe cents when its conditions match. `valid_from` and `valid_to` bound the window over which this version of the rule is in effect.
7004
7280
  */
7005
7281
  export type RateRuleResponseObject = {
7006
7282
  /**
@@ -7024,7 +7300,14 @@ export type RateRuleResponseObject = {
7024
7300
  * The rule's match conditions, at most one per category (time, day-selection, apprentice, overtime). An empty list means the rule always applies.
7025
7301
  */
7026
7302
  conditions: Array<RateRuleCondition>;
7027
- valid_time: WageDeterminationValidTime;
7303
+ /**
7304
+ * Valid time — when this version of the rule took effect (ISO 8601).
7305
+ */
7306
+ valid_from: string;
7307
+ /**
7308
+ * Valid time — when this version stopped applying (ISO 8601); null while it is still current.
7309
+ */
7310
+ valid_to: string | null;
7028
7311
  /**
7029
7312
  * When the record was created (ISO 8601).
7030
7313
  */
@@ -7034,6 +7317,20 @@ export type RateRuleResponseObject = {
7034
7317
  */
7035
7318
  updated_at: string;
7036
7319
  };
7320
+ export type RateRuleHistoryVersionObject = {
7321
+ id: string;
7322
+ uid: string;
7323
+ job_wage_determination_id: string;
7324
+ pay_rates_rule_package_id: string;
7325
+ effect: RateRuleEffect;
7326
+ conditions: Array<RateRuleCondition>;
7327
+ valid_from: string;
7328
+ valid_to: string | null;
7329
+ created_at: string;
7330
+ updated_at: string;
7331
+ version_status: 'scheduled' | 'current' | 'historical';
7332
+ corrections: Array<RateRuleResponseObject>;
7333
+ };
7037
7334
  /**
7038
7335
  * 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.
7039
7336
  */
@@ -7081,9 +7378,9 @@ export type AssetsItemResponseObject = {
7081
7378
  */
7082
7379
  serial_number: string | null;
7083
7380
  /**
7084
- * Lifecycle status of the item: one of available, assigned, transit, maintenance, or retired.
7381
+ * Lifecycle status of the item: one of available, assigned, or retired.
7085
7382
  */
7086
- status: 'available' | 'assigned' | 'transit' | 'maintenance' | 'retired';
7383
+ status: 'available' | 'assigned' | 'retired';
7087
7384
  /**
7088
7385
  * When the item was purchased (ISO 8601).
7089
7386
  */
@@ -7104,6 +7401,10 @@ export type AssetsItemResponseObject = {
7104
7401
  * URL to this item in an external system.
7105
7402
  */
7106
7403
  external_system_url: string | null;
7404
+ /**
7405
+ * Images attached to the item; each carries a download url for its file.
7406
+ */
7407
+ images: Array<AssetsAttachmentResponseObject>;
7107
7408
  /**
7108
7409
  * When the record was created (ISO 8601).
7109
7410
  */
@@ -7134,9 +7435,9 @@ export type AssetsItemParameters = {
7134
7435
  */
7135
7436
  serial_number: string;
7136
7437
  /**
7137
- * Lifecycle status of the item: one of available, assigned, transit, maintenance, or retired.
7438
+ * Lifecycle status of the item: one of available, assigned, or retired.
7138
7439
  */
7139
- status?: 'available' | 'assigned' | 'transit' | 'maintenance' | 'retired';
7440
+ status?: 'available' | 'assigned' | 'retired';
7140
7441
  /**
7141
7442
  * When the item was purchased (ISO 8601).
7142
7443
  */
@@ -7153,6 +7454,10 @@ export type AssetsItemParameters = {
7153
7454
  * URL to this item in an external system.
7154
7455
  */
7155
7456
  external_system_url?: string;
7457
+ /**
7458
+ * Image attachments. Send file with a signed_id to add one; include id with _destroy to remove an existing one.
7459
+ */
7460
+ images_attributes?: Array<AssetsAttachmentParameters>;
7156
7461
  /**
7157
7462
  * Optional, create only. Stock the new item at this site, recording a receive transaction. Mutually exclusive with user_id.
7158
7463
  */
@@ -7182,6 +7487,10 @@ export type AssetsVendorResponseObject = {
7182
7487
  * ID of the company that owns this record.
7183
7488
  */
7184
7489
  company_id: string;
7490
+ /**
7491
+ * URL of the vendor's logo image; null when no logo is attached.
7492
+ */
7493
+ logo_url: string | null;
7185
7494
  /**
7186
7495
  * When the record was created (ISO 8601).
7187
7496
  */
@@ -7199,6 +7508,10 @@ export type AssetsVendorParameters = {
7199
7508
  * The vendor's name; unique within the company (case-insensitive).
7200
7509
  */
7201
7510
  name: string;
7511
+ /**
7512
+ * A signed_id from POST /api/v1/direct_uploads for a logo image to attach to the vendor.
7513
+ */
7514
+ logo_signed_id?: string;
7202
7515
  };
7203
7516
  /**
7204
7517
  * A physical container that holds a company's assets and inventory — either a fixed, Atlas-mapped location (warehouse or yard) or a standalone mobile container (trailer, truck, van, or conex).
@@ -7391,6 +7704,61 @@ export type AssetsFormAssignmentTriggerParameters = {
7391
7704
  */
7392
7705
  product_ids?: Array<string>;
7393
7706
  };
7707
+ /**
7708
+ * A file attached to an asset — an item or product image, or a service-event attachment. Uploaded through the direct-upload flow; the response carries a URL to download it.
7709
+ */
7710
+ export type AssetsAttachmentResponseObject = {
7711
+ /**
7712
+ * Unique identifier.
7713
+ */
7714
+ id: string;
7715
+ /**
7716
+ * The attached file; null while no blob is attached.
7717
+ */
7718
+ file: {
7719
+ /**
7720
+ * Stored name of the uploaded file.
7721
+ */
7722
+ filename: string;
7723
+ /**
7724
+ * MIME type of the file; null when not recorded.
7725
+ */
7726
+ content_type?: string | null;
7727
+ /**
7728
+ * Size of the file in bytes.
7729
+ */
7730
+ byte_size: number;
7731
+ /**
7732
+ * A URL to download the file.
7733
+ */
7734
+ url: string;
7735
+ } | null;
7736
+ /**
7737
+ * When the record was created (ISO 8601).
7738
+ */
7739
+ created_at: string;
7740
+ /**
7741
+ * When the record was last updated (ISO 8601).
7742
+ */
7743
+ updated_at: string;
7744
+ };
7745
+ /**
7746
+ * One attachment in a nested collection. Send file with a signed_id to add one; send id (with _destroy) to remove an existing one.
7747
+ */
7748
+ export type AssetsAttachmentParameters = {
7749
+ /**
7750
+ * ID of an existing attachment to remove; omit to add a new one.
7751
+ */
7752
+ id?: string;
7753
+ /**
7754
+ * A signed_id from POST /api/v1/direct_uploads identifying the uploaded blob to attach.
7755
+ */
7756
+ file?: string;
7757
+ /**
7758
+ * Set true to remove the attachment named by id.
7759
+ */
7760
+ _destroy?: boolean;
7761
+ };
7394
7762
  /**
7395
7763
  * A file attached to an asset item — a document such as a manual, warranty, or certificate. Uploaded through the direct-upload flow and optionally marked as a certified copy.
7396
7764
  */
@@ -7402,7 +7770,7 @@ export type AssetsDocumentResponseObject = {
7402
7770
  /**
7403
7771
  * ID of the asset item this document belongs to.
7404
7772
  */
7405
- item_id: string;
7773
+ assets_item_id: string;
7406
7774
  /**
7407
7775
  * Read-only document label; this API does not set it, so it is always "document".
7408
7776
  */
@@ -7427,10 +7795,6 @@ export type AssetsDocumentResponseObject = {
7427
7795
  * The attached file; null while no blob is attached.
7428
7796
  */
7429
7797
  file: {
7430
- /**
7431
- * Signed identifier of the stored file blob.
7432
- */
7433
- signed_id: string;
7434
7798
  /**
7435
7799
  * Stored name of the uploaded file.
7436
7800
  */
@@ -7443,6 +7807,10 @@ export type AssetsDocumentResponseObject = {
7443
7807
  * Size of the file in bytes.
7444
7808
  */
7445
7809
  byte_size: number;
7810
+ /**
7811
+ * A URL to download the file.
7812
+ */
7813
+ url: string;
7446
7814
  } | null;
7447
7815
  /**
7448
7816
  * When the record was created (ISO 8601).
@@ -7506,7 +7874,7 @@ export type AssetsItemFormAssignmentResponseObject = {
7506
7874
  /**
7507
7875
  * ID of the asset item this form task belongs to.
7508
7876
  */
7509
- item_id: string;
7877
+ assets_item_id: string;
7510
7878
  /**
7511
7879
  * ID of the form definition (a SurveyJS form template) this assignment is for.
7512
7880
  */
@@ -7528,7 +7896,7 @@ export type AssetsItemFormAssignmentResponseObject = {
7528
7896
  */
7529
7897
  time_due: string | null;
7530
7898
  /**
7531
- * 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 is_recurring is true.
7899
+ * 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.
7532
7900
  */
7533
7901
  frequency: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
7534
7902
  /**
@@ -7554,7 +7922,7 @@ export type AssetsItemFormAssignmentResponseObject = {
7554
7922
  }>;
7555
7923
  };
7556
7924
  /**
7557
- * Create or update an item form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). is_recurring gates the recurrence fields.
7925
+ * Create or update an item form assignment. form_definition_id and task_attributes are required, and task_attributes.created_by_user_id is required (a missing value returns 400). recurring gates the recurrence fields.
7558
7926
  */
7559
7927
  export type AssetsItemFormAssignmentParameters = {
7560
7928
  /**
@@ -7564,7 +7932,7 @@ export type AssetsItemFormAssignmentParameters = {
7564
7932
  /**
7565
7933
  * When true, frequency and recurrence_end_time apply; when false or omitted, the task is one-time and those fields are cleared.
7566
7934
  */
7567
- is_recurring?: boolean;
7935
+ recurring?: boolean;
7568
7936
  /**
7569
7937
  * The underlying task's name, schedule, assignees, and reminders.
7570
7938
  */
@@ -7594,7 +7962,7 @@ export type AssetsItemFormAssignmentParameters = {
7594
7962
  */
7595
7963
  tz_name?: string | null;
7596
7964
  /**
7597
- * 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 is_recurring is true.
7965
+ * 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.
7598
7966
  */
7599
7967
  frequency?: 'DAILY' | 'WORKDAILY' | 'WORKDAILYSIX' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY';
7600
7968
  /**
@@ -7627,7 +7995,7 @@ export type AssetsInventoryResponseObject = {
7627
7995
  /**
7628
7996
  * ID of the asset item stocked here.
7629
7997
  */
7630
- item_id: string;
7998
+ assets_item_id: string;
7631
7999
  /**
7632
8000
  * ID of the site holding the stock.
7633
8001
  */
@@ -7660,7 +8028,7 @@ export type AssetsCustodyResponseObject = {
7660
8028
  /**
7661
8029
  * ID of the asset item held.
7662
8030
  */
7663
- item_id: string;
8031
+ assets_item_id: string;
7664
8032
  /**
7665
8033
  * ID of the user who holds the item.
7666
8034
  */
@@ -7701,7 +8069,7 @@ export type AssetsTransactionEventResponseObject = {
7701
8069
  /**
7702
8070
  * ID of the asset item this event concerns.
7703
8071
  */
7704
- item_id: string;
8072
+ assets_item_id: string;
7705
8073
  /**
7706
8074
  * ID of the company that owns this record.
7707
8075
  */
@@ -7771,7 +8139,7 @@ export type AssetsServiceEventResponseObject = {
7771
8139
  /**
7772
8140
  * ID of the asset item this event concerns.
7773
8141
  */
7774
- item_id: string;
8142
+ assets_item_id: string;
7775
8143
  /**
7776
8144
  * ID of the company that owns this record.
7777
8145
  */
@@ -7829,7 +8197,7 @@ export type AssetsServiceScheduleResponseObject = {
7829
8197
  /**
7830
8198
  * ID of the asset item this schedule applies to.
7831
8199
  */
7832
- item_id: string;
8200
+ assets_item_id: string;
7833
8201
  /**
7834
8202
  * ID of the company that owns this record.
7835
8203
  */
@@ -7911,7 +8279,7 @@ export type AssetsServiceEventFullResponseObject = {
7911
8279
  /**
7912
8280
  * ID of the asset item that was serviced.
7913
8281
  */
7914
- item_id: string;
8282
+ assets_item_id: string;
7915
8283
  /**
7916
8284
  * ID of the company that owns this record.
7917
8285
  */
@@ -7936,6 +8304,10 @@ export type AssetsServiceEventFullResponseObject = {
7936
8304
  * When the service was performed (ISO 8601), at company-local midnight of the service date.
7937
8305
  */
7938
8306
  performed_at: string;
8307
+ /**
8308
+ * Document attachments recorded with the service; each carries a download url for its file.
8309
+ */
8310
+ attachments: Array<AssetsAttachmentResponseObject>;
7939
8311
  /**
7940
8312
  * When the record was created (ISO 8601).
7941
8313
  */
@@ -7946,13 +8318,13 @@ export type AssetsServiceEventFullResponseObject = {
7946
8318
  updated_at: string;
7947
8319
  };
7948
8320
  /**
7949
- * Record a service on an item. kind, performed_on, and performed_by_user_id are required. Link a schedule with assets_service_schedule_id to satisfy it — the schedule then dictates the kind or omit it for an ad-hoc service or a repair.
8321
+ * Record a service on an item. performed_on and performed_by_user_id are required. When a schedule is linked with assets_service_schedule_id, the schedule dictates the kind; otherwise provide kind for the ad-hoc service or repair.
7950
8322
  */
7951
8323
  export type AssetsServiceEventParameters = {
7952
8324
  /**
7953
8325
  * The kind of service performed: one of calibration, maintenance, or repair. Ignored when assets_service_schedule_id is set — the schedule dictates the kind.
7954
8326
  */
7955
- kind: 'calibration' | 'maintenance' | 'repair';
8327
+ kind?: 'calibration' | 'maintenance' | 'repair';
7956
8328
  /**
7957
8329
  * Free-text notes on the service; null when none.
7958
8330
  */
@@ -7970,22 +8342,9 @@ export type AssetsServiceEventParameters = {
7970
8342
  */
7971
8343
  performed_by_user_id: string;
7972
8344
  /**
7973
- * Document attachments for the service. On update, include id to keep an existing one or set _destroy to remove it; omit id to add a new one.
8345
+ * Document attachments for the service. On update, set _destroy with an id to remove an existing one; omit id to add a new one.
7974
8346
  */
7975
- attachments_attributes?: Array<{
7976
- /**
7977
- * ID of an existing attachment to update or remove; omit to add a new one.
7978
- */
7979
- id?: string;
7980
- /**
7981
- * A signed_id from POST /api/v1/direct_uploads for the attached file.
7982
- */
7983
- file?: string;
7984
- /**
7985
- * Set true to remove this attachment.
7986
- */
7987
- _destroy?: boolean;
7988
- }>;
8347
+ attachments_attributes?: Array<AssetsAttachmentParameters>;
7989
8348
  };
7990
8349
  /**
7991
8350
  * A product-level service cadence that seeds and syncs the matching schedules on that product's items. Changing its defining fields (name, kind, interval) reconciles linked item schedules in the background.
@@ -8104,7 +8463,7 @@ export type AssetsTransferResponseObject = {
8104
8463
  /**
8105
8464
  * ID of the asset item to move.
8106
8465
  */
8107
- item_id: string;
8466
+ assets_item_id: string;
8108
8467
  /**
8109
8468
  * Number of units of the item to move; greater than 0.
8110
8469
  */
@@ -8150,7 +8509,7 @@ export type AssetsTransferParameters = {
8150
8509
  /**
8151
8510
  * ID of the asset item to move.
8152
8511
  */
8153
- item_id: string;
8512
+ assets_item_id: string;
8154
8513
  /**
8155
8514
  * Number of units of the item to move; greater than 0.
8156
8515
  */
@@ -8200,6 +8559,21 @@ export type AssetsRetirementParameters = {
8200
8559
  */
8201
8560
  performed_by_user_id: string;
8202
8561
  };
8562
+ export type ListApiKeyScopesData = {
8563
+ body?: never;
8564
+ path?: never;
8565
+ query?: never;
8566
+ url: '/api/v1/api_key/scopes';
8567
+ };
8568
+ export type ListApiKeyScopesResponses = {
8569
+ /**
8570
+ * Success
8571
+ */
8572
+ 200: {
8573
+ data?: Array<ApiKeyScopeResponseObject>;
8574
+ };
8575
+ };
8576
+ export type ListApiKeyScopesResponse = ListApiKeyScopesResponses[keyof ListApiKeyScopesResponses];
8203
8577
  export type ListApprenticesData = {
8204
8578
  body?: never;
8205
8579
  path: {
@@ -9192,7 +9566,7 @@ export type ListCustodiesData = {
9192
9566
  body?: never;
9193
9567
  path?: never;
9194
9568
  query?: {
9195
- 'filter[item_id]'?: string;
9569
+ 'filter[assets_item_id]'?: string;
9196
9570
  'filter[user_id]'?: string;
9197
9571
  filter?: string;
9198
9572
  'filter[unexpected]'?: string;
@@ -9247,7 +9621,7 @@ export type ListEventsData = {
9247
9621
  body?: never;
9248
9622
  path?: never;
9249
9623
  query?: {
9250
- 'filter[item_id]'?: string;
9624
+ 'filter[assets_item_id]'?: string;
9251
9625
  'filter[eventable_type]'?: string;
9252
9626
  filter?: string;
9253
9627
  'filter[unexpected]'?: string;
@@ -9448,7 +9822,7 @@ export type ListInventoriesData = {
9448
9822
  body?: never;
9449
9823
  path?: never;
9450
9824
  query?: {
9451
- 'filter[item_id]'?: string;
9825
+ 'filter[assets_item_id]'?: string;
9452
9826
  'filter[assets_site_id]'?: string;
9453
9827
  filter?: string;
9454
9828
  'filter[unexpected]'?: string;
@@ -9561,7 +9935,7 @@ export type CreateItemErrors = {
9561
9935
  export type CreateItemError = CreateItemErrors[keyof CreateItemErrors];
9562
9936
  export type CreateItemResponses = {
9563
9937
  /**
9564
- * Created with placement at site
9938
+ * Created with an image
9565
9939
  */
9566
9940
  201: AssetsItemResponseObject;
9567
9941
  };
@@ -9627,7 +10001,7 @@ export type UpdateItemErrors = {
9627
10001
  export type UpdateItemError = UpdateItemErrors[keyof UpdateItemErrors];
9628
10002
  export type UpdateItemResponses = {
9629
10003
  /**
9630
- * Success
10004
+ * Removes an image
9631
10005
  */
9632
10006
  200: AssetsItemResponseObject;
9633
10007
  };
@@ -10282,7 +10656,7 @@ export type ListProductsData = {
10282
10656
  /**
10283
10657
  * Filter by asset category
10284
10658
  */
10285
- 'filter[category_id]'?: string;
10659
+ 'filter[assets_category_id]'?: string;
10286
10660
  'filter[created_at][gte]'?: string;
10287
10661
  'filter[created_at][lte]'?: string;
10288
10662
  'filter[updated_at][gte]'?: string;
@@ -10347,7 +10721,7 @@ export type CreateProductErrors = {
10347
10721
  export type CreateProductError = CreateProductErrors[keyof CreateProductErrors];
10348
10722
  export type CreateProductResponses = {
10349
10723
  /**
10350
- * Created (with category and attribute values)
10724
+ * Created (with an image)
10351
10725
  */
10352
10726
  201: AssetsProductResponseObject;
10353
10727
  };
@@ -10405,7 +10779,7 @@ export type GetProductResponses = {
10405
10779
  };
10406
10780
  export type GetProductResponse = GetProductResponses[keyof GetProductResponses];
10407
10781
  export type UpdateProductData = {
10408
- body: AssetsProductParameters;
10782
+ body: AssetsProductUpdateParameters;
10409
10783
  path: {
10410
10784
  id: string;
10411
10785
  };
@@ -10622,7 +10996,7 @@ export type SeedServiceScheduleTemplateData = {
10622
10996
  /**
10623
10997
  * Serial item ids to seed; omit to seed every cleanly-seedable item
10624
10998
  */
10625
- item_ids?: Array<string>;
10999
+ assets_item_ids?: Array<string>;
10626
11000
  /**
10627
11001
  * Required
10628
11002
  */
@@ -10885,6 +11259,10 @@ export type CreateTransferData = {
10885
11259
  url: '/api/v1/assets/transfers';
10886
11260
  };
10887
11261
  export type CreateTransferErrors = {
11262
+ /**
11263
+ * Bad Request
11264
+ */
11265
+ 400: ErrorsObject;
10888
11266
  /**
10889
11267
  * Forbidden
10890
11268
  */
@@ -10980,11 +11358,15 @@ export type CreateVendorErrors = {
10980
11358
  * Forbidden
10981
11359
  */
10982
11360
  403: ErrorsObject;
11361
+ /**
11362
+ * Unprocessable Content (non-image logo)
11363
+ */
11364
+ 422: ErrorsObject;
10983
11365
  };
10984
11366
  export type CreateVendorError = CreateVendorErrors[keyof CreateVendorErrors];
10985
11367
  export type CreateVendorResponses = {
10986
11368
  /**
10987
- * Created
11369
+ * Created with a logo
10988
11370
  */
10989
11371
  201: AssetsVendorResponseObject;
10990
11372
  };
@@ -11050,7 +11432,7 @@ export type UpdateVendorErrors = {
11050
11432
  export type UpdateVendorError = UpdateVendorErrors[keyof UpdateVendorErrors];
11051
11433
  export type UpdateVendorResponses = {
11052
11434
  /**
11053
- * Success
11435
+ * Updated with a logo
11054
11436
  */
11055
11437
  200: AssetsVendorResponseObject;
11056
11438
  };
@@ -11874,6 +12256,36 @@ export type GetCompanyResponses = {
11874
12256
  200: CompanyResponseObject;
11875
12257
  };
11876
12258
  export type GetCompanyResponse = GetCompanyResponses[keyof GetCompanyResponses];
12259
+ export type UpdateCompanyProfileData = {
12260
+ body: CompanyParameters;
12261
+ path: {
12262
+ id: string;
12263
+ };
12264
+ query?: never;
12265
+ url: '/api/v1/companies/{id}';
12266
+ };
12267
+ export type UpdateCompanyProfileErrors = {
12268
+ /**
12269
+ * Forbidden
12270
+ */
12271
+ 403: ErrorsObject;
12272
+ /**
12273
+ * Not Found
12274
+ */
12275
+ 404: ErrorsObject;
12276
+ /**
12277
+ * Unprocessable Content
12278
+ */
12279
+ 422: ErrorsObject;
12280
+ };
12281
+ export type UpdateCompanyProfileError = UpdateCompanyProfileErrors[keyof UpdateCompanyProfileErrors];
12282
+ export type UpdateCompanyProfileResponses = {
12283
+ /**
12284
+ * Success
12285
+ */
12286
+ 200: CompanyResponseObject;
12287
+ };
12288
+ export type UpdateCompanyProfileResponse = UpdateCompanyProfileResponses[keyof UpdateCompanyProfileResponses];
11877
12289
  export type ListChecksData = {
11878
12290
  body?: never;
11879
12291
  path?: never;
@@ -11881,7 +12293,7 @@ export type ListChecksData = {
11881
12293
  /**
11882
12294
  * Filter by check status
11883
12295
  */
11884
- 'filter[status]'?: 'passed' | 'failed' | 'not_applicable' | 'dismissed' | 'pending' | 'error';
12296
+ 'filter[status]'?: 'passed' | 'failed' | 'not_applicable' | 'dismissed' | 'pending';
11885
12297
  /**
11886
12298
  * Filter by check target type
11887
12299
  */
@@ -12726,11 +13138,52 @@ export type CreateJobTradeResponses = {
12726
13138
  201: PwaTradeResponseObject;
12727
13139
  };
12728
13140
  export type CreateJobTradeResponse = CreateJobTradeResponses[keyof CreateJobTradeResponses];
13141
+ export type ListRateRuleHistoryData = {
13142
+ body?: never;
13143
+ path: {
13144
+ job_id: string;
13145
+ wage_determination_uid: string;
13146
+ /**
13147
+ * The rule's version-stable identity, as returned in `uid`.
13148
+ */
13149
+ rate_rule_uid: string;
13150
+ };
13151
+ query?: {
13152
+ 'as_of[valid]'?: string;
13153
+ };
13154
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules/{rate_rule_uid}/history';
13155
+ };
13156
+ export type ListRateRuleHistoryErrors = {
13157
+ /**
13158
+ * Bad Request
13159
+ */
13160
+ 400: ErrorsObject;
13161
+ /**
13162
+ * Forbidden
13163
+ */
13164
+ 403: ErrorsObject;
13165
+ /**
13166
+ * Not Found
13167
+ */
13168
+ 404: ErrorsObject;
13169
+ };
13170
+ export type ListRateRuleHistoryError = ListRateRuleHistoryErrors[keyof ListRateRuleHistoryErrors];
13171
+ export type ListRateRuleHistoryResponses = {
13172
+ /**
13173
+ * Success
13174
+ */
13175
+ 200: {
13176
+ meta?: Meta;
13177
+ links?: Links;
13178
+ data?: Array<RateRuleHistoryVersionObject>;
13179
+ };
13180
+ };
13181
+ export type ListRateRuleHistoryResponse = ListRateRuleHistoryResponses[keyof ListRateRuleHistoryResponses];
12729
13182
  export type ListRateRulesData = {
12730
13183
  body?: never;
12731
13184
  path: {
12732
13185
  job_id: string;
12733
- wage_determination_id: string;
13186
+ wage_determination_uid: string;
12734
13187
  };
12735
13188
  query?: {
12736
13189
  /**
@@ -12742,7 +13195,7 @@ export type ListRateRulesData = {
12742
13195
  'as_of[valid][gte]'?: string;
12743
13196
  'as_of[transaction]'?: string;
12744
13197
  };
12745
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules';
13198
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules';
12746
13199
  };
12747
13200
  export type ListRateRulesErrors = {
12748
13201
  /**
@@ -12774,10 +13227,10 @@ export type CreateRateRuleData = {
12774
13227
  body: RateRuleParameters;
12775
13228
  path: {
12776
13229
  job_id: string;
12777
- wage_determination_id: string;
13230
+ wage_determination_uid: string;
12778
13231
  };
12779
13232
  query?: never;
12780
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules';
13233
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules';
12781
13234
  };
12782
13235
  export type CreateRateRuleErrors = {
12783
13236
  /**
@@ -12801,11 +13254,16 @@ export type GetRateRuleData = {
12801
13254
  body?: never;
12802
13255
  path: {
12803
13256
  job_id: string;
12804
- wage_determination_id: string;
12805
- id: string;
13257
+ wage_determination_uid: string;
13258
+ uid: string;
12806
13259
  };
12807
- query?: never;
12808
- url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_id}/rate_rules/{id}';
13260
+ query?: {
13261
+ /**
13262
+ * Read the version valid at this point in time. Defaults to now.
13263
+ */
13264
+ 'as_of[valid]'?: string;
13265
+ };
13266
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/rate_rules/{uid}';
12809
13267
  };
12810
13268
  export type GetRateRuleErrors = {
12811
13269
  /**
@@ -12825,6 +13283,46 @@ export type GetRateRuleResponses = {
12825
13283
  200: RateRuleResponseObject;
12826
13284
  };
12827
13285
  export type GetRateRuleResponse = GetRateRuleResponses[keyof GetRateRuleResponses];
13286
+ export type ListJobWageDeterminationHistoryData = {
13287
+ body?: never;
13288
+ path: {
13289
+ job_id: string;
13290
+ /**
13291
+ * The determination's version-stable identity, as returned in `uid`.
13292
+ */
13293
+ wage_determination_uid: string;
13294
+ };
13295
+ query?: {
13296
+ 'as_of[valid]'?: string;
13297
+ };
13298
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{wage_determination_uid}/history';
13299
+ };
13300
+ export type ListJobWageDeterminationHistoryErrors = {
13301
+ /**
13302
+ * Bad Request
13303
+ */
13304
+ 400: ErrorsObject;
13305
+ /**
13306
+ * Forbidden
13307
+ */
13308
+ 403: ErrorsObject;
13309
+ /**
13310
+ * Not Found
13311
+ */
13312
+ 404: ErrorsObject;
13313
+ };
13314
+ export type ListJobWageDeterminationHistoryError = ListJobWageDeterminationHistoryErrors[keyof ListJobWageDeterminationHistoryErrors];
13315
+ export type ListJobWageDeterminationHistoryResponses = {
13316
+ /**
13317
+ * Success
13318
+ */
13319
+ 200: {
13320
+ meta?: Meta;
13321
+ links?: Links;
13322
+ data?: Array<JobWageDeterminationHistoryVersionObject>;
13323
+ };
13324
+ };
13325
+ export type ListJobWageDeterminationHistoryResponse = ListJobWageDeterminationHistoryResponses[keyof ListJobWageDeterminationHistoryResponses];
12828
13326
  export type ListJobWageDeterminationsData = {
12829
13327
  body?: never;
12830
13328
  path: {
@@ -12898,10 +13396,10 @@ export type DeleteWageDeterminationData = {
12898
13396
  body?: never;
12899
13397
  path: {
12900
13398
  job_id: string;
12901
- id: string;
13399
+ uid: string;
12902
13400
  };
12903
13401
  query?: never;
12904
- url: '/api/v1/jobs/{job_id}/wage_determinations/{id}';
13402
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{uid}';
12905
13403
  };
12906
13404
  export type DeleteWageDeterminationErrors = {
12907
13405
  /**
@@ -12929,10 +13427,15 @@ export type GetJobWageDeterminationData = {
12929
13427
  body?: never;
12930
13428
  path: {
12931
13429
  job_id: string;
12932
- id: string;
13430
+ uid: string;
12933
13431
  };
12934
- query?: never;
12935
- url: '/api/v1/jobs/{job_id}/wage_determinations/{id}';
13432
+ query?: {
13433
+ /**
13434
+ * Read the version valid at this point in time. Defaults to now.
13435
+ */
13436
+ 'as_of[valid]'?: string;
13437
+ };
13438
+ url: '/api/v1/jobs/{job_id}/wage_determinations/{uid}';
12936
13439
  };
12937
13440
  export type GetJobWageDeterminationErrors = {
12938
13441
  /**
@@ -13096,6 +13599,90 @@ export type UpdateJobResponses = {
13096
13599
  200: JobResponseObject;
13097
13600
  };
13098
13601
  export type UpdateJobResponse = UpdateJobResponses[keyof UpdateJobResponses];
13602
+ export type ListSiteCheckInsData = {
13603
+ body?: never;
13604
+ path: {
13605
+ site_id: string;
13606
+ };
13607
+ query?: {
13608
+ /**
13609
+ * Narrow to one checked-in user
13610
+ */
13611
+ 'filter[user_id]'?: string;
13612
+ 'filter[created_at][gte]'?: string;
13613
+ 'filter[created_at][lte]'?: string;
13614
+ 'filter[updated_at][gte]'?: string;
13615
+ 'filter[updated_at][lte]'?: string;
13616
+ 'filter[start_time][gte]'?: string;
13617
+ 'filter[start_time][lte]'?: string;
13618
+ filter?: string;
13619
+ 'filter[unexpected]'?: string;
13620
+ /**
13621
+ * This pagination cursor corresponds to the cursor value found in the response in
13622
+ * `meta.page.next_cursor`.
13623
+ */
13624
+ 'page[cursor]'?: string;
13625
+ /**
13626
+ * Maximum number of records to return per page. Defaults to 20. A value above 100 is capped to 100 rather than rejected; a value that is zero, negative, or not an integer is rejected with a `400`.
13627
+ */
13628
+ 'page[limit]'?: number;
13629
+ page?: string;
13630
+ };
13631
+ url: '/api/v1/oversite/sites/{site_id}/check_ins';
13632
+ };
13633
+ export type ListSiteCheckInsErrors = {
13634
+ /**
13635
+ * Bad Request
13636
+ */
13637
+ 400: ErrorsObject;
13638
+ /**
13639
+ * Forbidden
13640
+ */
13641
+ 403: ErrorsObject;
13642
+ /**
13643
+ * Unprocessable Content
13644
+ */
13645
+ 422: ErrorsObject;
13646
+ };
13647
+ export type ListSiteCheckInsError = ListSiteCheckInsErrors[keyof ListSiteCheckInsErrors];
13648
+ export type ListSiteCheckInsResponses = {
13649
+ /**
13650
+ * Success
13651
+ */
13652
+ 200: {
13653
+ meta: Meta;
13654
+ links: Links;
13655
+ data: Array<SiteCheckInResponseObject>;
13656
+ };
13657
+ };
13658
+ export type ListSiteCheckInsResponse = ListSiteCheckInsResponses[keyof ListSiteCheckInsResponses];
13659
+ export type GetSiteCheckInData = {
13660
+ body?: never;
13661
+ path: {
13662
+ site_id: string;
13663
+ id: string;
13664
+ };
13665
+ query?: never;
13666
+ url: '/api/v1/oversite/sites/{site_id}/check_ins/{id}';
13667
+ };
13668
+ export type GetSiteCheckInErrors = {
13669
+ /**
13670
+ * Forbidden
13671
+ */
13672
+ 403: ErrorsObject;
13673
+ /**
13674
+ * Not Found
13675
+ */
13676
+ 404: ErrorsObject;
13677
+ };
13678
+ export type GetSiteCheckInError = GetSiteCheckInErrors[keyof GetSiteCheckInErrors];
13679
+ export type GetSiteCheckInResponses = {
13680
+ /**
13681
+ * Success
13682
+ */
13683
+ 200: SiteCheckInResponseObject;
13684
+ };
13685
+ export type GetSiteCheckInResponse = GetSiteCheckInResponses[keyof GetSiteCheckInResponses];
13099
13686
  export type ListPayPeriodsData = {
13100
13687
  body?: never;
13101
13688
  path?: never;
@@ -13189,6 +13776,49 @@ export type GetCompensationElementResponses = {
13189
13776
  200: CompensationElementResponseObject;
13190
13777
  };
13191
13778
  export type GetCompensationElementResponse = GetCompensationElementResponses[keyof GetCompensationElementResponses];
13779
+ export type ListExternalMapHistoryData = {
13780
+ body?: never;
13781
+ path: {
13782
+ /**
13783
+ * The external map's version-stable identity, as returned in `bitemporal_id`.
13784
+ */
13785
+ external_map_id: string;
13786
+ };
13787
+ query?: {
13788
+ /**
13789
+ * Read the timeline as it was recorded at this moment — the corrections nested under each version stop at the same point, and each version publishes the `transaction_to` it had then, so one corrected since still reads as open. `version_status` is always relative to now. Defaults to now.
13790
+ */
13791
+ 'as_of[transaction]'?: string;
13792
+ 'as_of[valid]'?: string;
13793
+ };
13794
+ url: '/api/v1/payrolls/external_maps/{external_map_id}/history';
13795
+ };
13796
+ export type ListExternalMapHistoryErrors = {
13797
+ /**
13798
+ * Bad Request
13799
+ */
13800
+ 400: ErrorsObject;
13801
+ /**
13802
+ * Forbidden
13803
+ */
13804
+ 403: ErrorsObject;
13805
+ /**
13806
+ * Not Found
13807
+ */
13808
+ 404: ErrorsObject;
13809
+ };
13810
+ export type ListExternalMapHistoryError = ListExternalMapHistoryErrors[keyof ListExternalMapHistoryErrors];
13811
+ export type ListExternalMapHistoryResponses = {
13812
+ /**
13813
+ * Success
13814
+ */
13815
+ 200: {
13816
+ meta?: Meta;
13817
+ links?: Links;
13818
+ data?: Array<PayrollExternalMapHistoryVersionObject>;
13819
+ };
13820
+ };
13821
+ export type ListExternalMapHistoryResponse = ListExternalMapHistoryResponses[keyof ListExternalMapHistoryResponses];
13192
13822
  export type ListExternalMapsData = {
13193
13823
  body?: never;
13194
13824
  path?: never;
@@ -13222,7 +13852,7 @@ export type ListExternalMapsData = {
13222
13852
  */
13223
13853
  'as_of[valid]'?: string;
13224
13854
  /**
13225
- * Read the version as it was recorded at this point in transaction time. Defaults to now.
13855
+ * Read the version as it was recorded at this point in transaction time. Its `transaction_to` is published as of that point, so a version corrected since still reads as open. Defaults to now.
13226
13856
  */
13227
13857
  'as_of[transaction]'?: string;
13228
13858
  as_of?: string;
@@ -13262,7 +13892,16 @@ export type GetExternalMapData = {
13262
13892
  path: {
13263
13893
  id: string;
13264
13894
  };
13265
- query?: never;
13895
+ query?: {
13896
+ /**
13897
+ * Read the version valid at this point in time. Defaults to now.
13898
+ */
13899
+ 'as_of[valid]'?: string;
13900
+ /**
13901
+ * Read the version as it was recorded at this point in transaction time. Its `transaction_to` is published as of that point, so a version corrected since still reads as open. Defaults to now.
13902
+ */
13903
+ 'as_of[transaction]'?: string;
13904
+ };
13266
13905
  url: '/api/v1/payrolls/external_maps/{id}';
13267
13906
  };
13268
13907
  export type GetExternalMapErrors = {
@@ -13926,7 +14565,7 @@ export type ListPerDiemsData = {
13926
14565
  /**
13927
14566
  * Filter by default status
13928
14567
  */
13929
- 'filter[is_default]'?: boolean;
14568
+ 'filter[default]'?: boolean;
13930
14569
  /**
13931
14570
  * Filter by taxable status
13932
14571
  */
@@ -14719,7 +15358,7 @@ export type CreateFormAssignmentTaskData = {
14719
15358
  body?: {
14720
15359
  form_definition_id: string;
14721
15360
  spread_assignees?: boolean;
14722
- is_recurring?: boolean;
15361
+ recurring?: boolean;
14723
15362
  task_attributes: {
14724
15363
  name: string;
14725
15364
  description?: string;
@@ -15471,6 +16110,49 @@ export type UpdateTimeEntryResponses = {
15471
16110
  200: TimeEntryResponseObject;
15472
16111
  };
15473
16112
  export type UpdateTimeEntryResponse = UpdateTimeEntryResponses[keyof UpdateTimeEntryResponses];
16113
+ export type ListTimecodeHistoryData = {
16114
+ body?: never;
16115
+ path: {
16116
+ /**
16117
+ * The timecode's version-stable identity, as returned in `id`.
16118
+ */
16119
+ timecode_id: string;
16120
+ };
16121
+ query?: {
16122
+ /**
16123
+ * Read the timeline as it was recorded at this moment — the corrections nested under each version stop at the same point, and each version publishes the `transaction_to` it had then, so one corrected since still reads as open. `version_status` is always relative to now. Defaults to now.
16124
+ */
16125
+ 'as_of[transaction]'?: string;
16126
+ 'as_of[valid]'?: string;
16127
+ };
16128
+ url: '/api/v1/timecodes/{timecode_id}/history';
16129
+ };
16130
+ export type ListTimecodeHistoryErrors = {
16131
+ /**
16132
+ * Bad Request
16133
+ */
16134
+ 400: ErrorsObject;
16135
+ /**
16136
+ * Forbidden
16137
+ */
16138
+ 403: ErrorsObject;
16139
+ /**
16140
+ * Not Found
16141
+ */
16142
+ 404: ErrorsObject;
16143
+ };
16144
+ export type ListTimecodeHistoryError = ListTimecodeHistoryErrors[keyof ListTimecodeHistoryErrors];
16145
+ export type ListTimecodeHistoryResponses = {
16146
+ /**
16147
+ * Success
16148
+ */
16149
+ 200: {
16150
+ meta?: Meta;
16151
+ links?: Links;
16152
+ data?: Array<TimecodeHistoryVersionObject>;
16153
+ };
16154
+ };
16155
+ export type ListTimecodeHistoryResponse = ListTimecodeHistoryResponses[keyof ListTimecodeHistoryResponses];
15474
16156
  export type CancelTimecodeScheduledChangesData = {
15475
16157
  body?: never;
15476
16158
  path: {
@@ -15574,6 +16256,10 @@ export type CancelTimecodeScheduledTerminationErrors = {
15574
16256
  * Not Found
15575
16257
  */
15576
16258
  404: ErrorsObject;
16259
+ /**
16260
+ * Conflict
16261
+ */
16262
+ 409: ErrorsObject;
15577
16263
  /**
15578
16264
  * Unprocessable Content
15579
16265
  */
@@ -15612,7 +16298,7 @@ export type ListTimecodesData = {
15612
16298
  */
15613
16299
  'as_of[valid]'?: string;
15614
16300
  /**
15615
- * Read the version as it was recorded at this point in transaction time. Defaults to now.
16301
+ * Read the version as it was recorded at this point in transaction time. Its `transaction_to` is published as of that point, so a version corrected since still reads as open. Defaults to now.
15616
16302
  */
15617
16303
  'as_of[transaction]'?: string;
15618
16304
  as_of?: string;
@@ -15708,7 +16394,16 @@ export type GetTimecodeData = {
15708
16394
  */
15709
16395
  id: string;
15710
16396
  };
15711
- query?: never;
16397
+ query?: {
16398
+ /**
16399
+ * Read the version valid at this point in time. Defaults to now.
16400
+ */
16401
+ 'as_of[valid]'?: string;
16402
+ /**
16403
+ * Read the version as it was recorded at this point in transaction time. Its `transaction_to` is published as of that point, so a version corrected since still reads as open. Defaults to now.
16404
+ */
16405
+ 'as_of[transaction]'?: string;
16406
+ };
15712
16407
  url: '/api/v1/timecodes/{id}';
15713
16408
  };
15714
16409
  export type GetTimecodeErrors = {
@@ -15982,6 +16677,45 @@ export type GetAttestationConfigResponses = {
15982
16677
  200: AttestationConfigResponseObject;
15983
16678
  };
15984
16679
  export type GetAttestationConfigResponse = GetAttestationConfigResponses[keyof GetAttestationConfigResponses];
16680
+ export type ListPayPeriodConfigHistoryData = {
16681
+ body?: never;
16682
+ path: {
16683
+ /**
16684
+ * The pay schedule's version-stable identity, as returned in `uid`.
16685
+ */
16686
+ pay_period_config_uid: string;
16687
+ };
16688
+ query?: {
16689
+ 'as_of[valid]'?: string;
16690
+ };
16691
+ url: '/api/v1/timekeeping/pay_period_configs/{pay_period_config_uid}/history';
16692
+ };
16693
+ export type ListPayPeriodConfigHistoryErrors = {
16694
+ /**
16695
+ * Bad Request
16696
+ */
16697
+ 400: ErrorsObject;
16698
+ /**
16699
+ * Forbidden
16700
+ */
16701
+ 403: ErrorsObject;
16702
+ /**
16703
+ * Not Found
16704
+ */
16705
+ 404: ErrorsObject;
16706
+ };
16707
+ export type ListPayPeriodConfigHistoryError = ListPayPeriodConfigHistoryErrors[keyof ListPayPeriodConfigHistoryErrors];
16708
+ export type ListPayPeriodConfigHistoryResponses = {
16709
+ /**
16710
+ * Success
16711
+ */
16712
+ 200: {
16713
+ meta?: Meta;
16714
+ links?: Links;
16715
+ data?: Array<PayPeriodConfigHistoryVersionObject>;
16716
+ };
16717
+ };
16718
+ export type ListPayPeriodConfigHistoryResponse = ListPayPeriodConfigHistoryResponses[keyof ListPayPeriodConfigHistoryResponses];
15985
16719
  export type ListHolidaysData = {
15986
16720
  body?: never;
15987
16721
  path: {
@@ -16193,7 +16927,12 @@ export type GetPayPeriodConfigData = {
16193
16927
  path: {
16194
16928
  uid: string;
16195
16929
  };
16196
- query?: never;
16930
+ query?: {
16931
+ /**
16932
+ * Read the version valid at this point in time. Defaults to now.
16933
+ */
16934
+ 'as_of[valid]'?: string;
16935
+ };
16197
16936
  url: '/api/v1/timekeeping/pay_period_configs/{uid}';
16198
16937
  };
16199
16938
  export type GetPayPeriodConfigErrors = {