@dsptch-work/api-client 0.5.0 → 0.7.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.
@@ -4203,8 +4203,12 @@ export class TimeEntries {
4203
4203
  * overview): poll with `filter[created_at][gte]` set to your
4204
4204
  * watermark, deduplicate on `(id, event, timestamp)`, and
4205
4205
  * advance the watermark only to `meta.complete_through`.
4206
- * The feed carries `create`, `update`, and `destroy` events,
4207
- * retained for at least 30 days.
4206
+ * The feed carries `create`, `update`, and `destroy` events
4207
+ * for the last 30 days, returned oldest event first. A
4208
+ * watermark older than that window is refused with a `422`
4209
+ * rather than answered with a page that cannot be complete —
4210
+ * resync by re-crawling `/api/v1/time_entries` and diffing
4211
+ * against your replica.
4208
4212
  *
4209
4213
  *
4210
4214
  * **Required scope:**
@@ -4348,6 +4352,45 @@ export class TimeEntries {
4348
4352
  }
4349
4353
  }
4350
4354
  export class Timecodes {
4355
+ /**
4356
+ * Shift timecode genesis
4357
+ *
4358
+ * Move when a timecode's timeline begins. Shifting it earlier extends the
4359
+ * first version back, so the timecode covers time recorded from the new start
4360
+ * on; shifting it later drops the coverage before it, and what that removes
4361
+ * stops being readable through `as_of[valid]` and `/history`.
4362
+ *
4363
+ * This changes *when* the timecode existed rather than what it said — no
4364
+ * version's attributes are rewritten. Moving the other end of the timeline is
4365
+ * `scheduled_termination`, and changing a version's values is the timecode
4366
+ * update.
4367
+ *
4368
+ * A shift later is refused with `422` when a time entry already recorded
4369
+ * against this timecode starts before the new beginning — the shift would
4370
+ * orphan it — and when the new beginning would leave no coverage at all,
4371
+ * which is what naming a date at or after a scheduled termination does.
4372
+ * Applying a shift re-syncs the rates of the time entries that use the
4373
+ * timecode, in the background.
4374
+ *
4375
+ * Conditional: send the timecode's `ETag` as `If-Match`.
4376
+ *
4377
+ *
4378
+ * **Required scope:**
4379
+ *
4380
+ * `timecodes.genesis:update`
4381
+ *
4382
+ */
4383
+ static shiftTimecodeGenesis(options) {
4384
+ return (options.client ?? client).patch({
4385
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
4386
+ url: '/api/v1/timecodes/{timecode_id}/genesis',
4387
+ ...options,
4388
+ headers: {
4389
+ 'Content-Type': 'application/json',
4390
+ ...options.headers
4391
+ }
4392
+ });
4393
+ }
4351
4394
  /**
4352
4395
  * List timecode version history
4353
4396
  *
@@ -4441,6 +4484,42 @@ export class Timecodes {
4441
4484
  ...options
4442
4485
  });
4443
4486
  }
4487
+ /**
4488
+ * Schedule termination on timecode
4489
+ *
4490
+ * End a timecode's valid coverage at `effective_date`: segments beyond it are
4491
+ * dropped and one spanning it is truncated, so the timecode stops being
4492
+ * selectable for time recorded from that point on. Earlier versions are
4493
+ * untouched and stay readable through `as_of[valid]` and `/history`.
4494
+ *
4495
+ * A timecode holds at most one scheduled termination. Moving an end is two
4496
+ * steps on purpose — cancel the standing termination, then schedule the one
4497
+ * you want — so this refuses with `409` rather than moving it silently.
4498
+ *
4499
+ * An `effective_date` already in the past is accepted and ends the timeline
4500
+ * there; the timecode then has no version valid now, so an unqualified `GET`
4501
+ * answers `404` and reading it takes an `as_of[valid]` coordinate inside the
4502
+ * coverage.
4503
+ *
4504
+ * Conditional: send the timecode's `ETag` as `If-Match`.
4505
+ *
4506
+ *
4507
+ * **Required scope:**
4508
+ *
4509
+ * `timecodes.scheduled_terminations:create`
4510
+ *
4511
+ */
4512
+ static scheduleTimecodeTermination(options) {
4513
+ return (options.client ?? client).post({
4514
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
4515
+ url: '/api/v1/timecodes/{timecode_id}/scheduled_termination',
4516
+ ...options,
4517
+ headers: {
4518
+ 'Content-Type': 'application/json',
4519
+ ...options.headers
4520
+ }
4521
+ });
4522
+ }
4444
4523
  /**
4445
4524
  * List timecodes
4446
4525
  *
@@ -4513,14 +4592,24 @@ export class Timecodes {
4513
4592
  /**
4514
4593
  * Update timecode
4515
4594
  *
4516
- * Update a timecode by applying a bitemporal correction to its
4517
- * currently-effective version rather than mutating the row in place; `name`
4518
- * must remain present, and only the fields sent in the body are changed
4519
- * (omitted fields keep the current version's values). Changing rate-affecting
4520
- * attributes (billable, overtime_eligible, unpaid, pwa, holiday, pto,
4521
- * rest_and_recovery, incentive_pay_eligible) enqueues a background rate
4522
- * re-sync. An `effective_date` in the body is not read here — the correction
4523
- * takes effect at the record's existing `valid_from`.
4595
+ * Update a timecode by applying a bitemporal correction rather than mutating
4596
+ * the row in place; `name` must remain present, and only the fields sent in
4597
+ * the body are changed (omitted fields keep the corrected version's values).
4598
+ * Changing rate-affecting attributes (billable, overtime_eligible, unpaid,
4599
+ * pwa, holiday, pto, rest_and_recovery, incentive_pay_eligible) enqueues a
4600
+ * background rate re-sync.
4601
+ *
4602
+ * The correction may name the stretch of valid time it applies to.
4603
+ * `effective_from` defaults to the addressed version's own start, and
4604
+ * `effective_to` — omitted — runs the correction to the end of the segment
4605
+ * containing it, so later scheduled changes stand. Sending `effective_to`
4606
+ * corrects exactly `[effective_from, effective_to)` and the timeline resumes
4607
+ * its previous values afterwards. Neighbouring segments' boundaries are the
4608
+ * engine's to move; a request never names one. Sending neither parameter
4609
+ * corrects from the addressed version's start, which is what an unqualified
4610
+ * update has always done.
4611
+ *
4612
+ * Conditional: send the timecode's `ETag` as `If-Match`.
4524
4613
  *
4525
4614
  *
4526
4615
  * **Required scope:**
@@ -158,18 +158,38 @@ export type Problem = {
158
158
  *
159
159
  * ## 409
160
160
  *
161
+ * ### already_terminated
162
+ *
163
+ * **Termination Already Scheduled**
164
+ *
165
+ * The resource's timeline already ends at a scheduled termination, and scheduling a second one would silently move it. Moving an end is two steps on purpose: cancel the standing termination, then schedule the one you want.
166
+ *
161
167
  * ### recorded_since_termination
162
168
  *
163
169
  * **Timecode Changed Since Termination**
164
170
  *
165
171
  * Cancelling this timecode's scheduled termination would silently discard changes recorded since it was terminated. Re-read the timecode and reconcile before retrying.
166
172
  *
173
+ * ### span_beyond_timeline_end
174
+ *
175
+ * **Span Beyond Timeline End**
176
+ *
177
+ * The write names a valid-time span reaching past the point where the resource's timeline ends, so applying it would extend a life the resource is not recorded as having. Cancel the scheduled termination first, or bound the write at or before the recorded end.
178
+ *
167
179
  * ### version_overlap
168
180
  *
169
181
  * **Version Overlap**
170
182
  *
171
183
  * The write conflicts with what is already recorded for the resource — another version occupies the same span, or the write contradicts the resource's recorded identity. Re-read the current state and retry on top of it.
172
184
  *
185
+ * ## 412
186
+ *
187
+ * ### precondition_failed
188
+ *
189
+ * **Precondition Failed**
190
+ *
191
+ * The `If-Match` validator names a version of this resource that is no longer current — the version family changed after you read it. Re-read the resource, take its fresh `ETag`, and reapply your change on top of the current state. A malformed or unrecognizable validator refuses the same way, since neither matches.
192
+ *
173
193
  * ## 422
174
194
  *
175
195
  * ### attachment_not_image
@@ -274,6 +294,20 @@ export type Problem = {
274
294
  *
275
295
  * The apprentice's wage schedule does not belong to the program in the URL. Use a schedule from that program.
276
296
  *
297
+ * ### watermark_outside_retention
298
+ *
299
+ * **Watermark Outside Retention Window**
300
+ *
301
+ * A change feed was polled from a watermark older than the window it covers, so no page it could return would be complete. Resync instead: re-crawl the live index, diff it against your replica, and resume polling from the `meta.complete_through` of the first page you then read.
302
+ *
303
+ * ## 428
304
+ *
305
+ * ### precondition_required
306
+ *
307
+ * **Precondition Required**
308
+ *
309
+ * The write must state which version of the resource it was composed against, and no `If-Match` was sent. Read the resource, send its `ETag` back as `If-Match`, or send `If-Match: *` to write unconditionally against whatever exists.
310
+ *
277
311
  * ## 429
278
312
  *
279
313
  * ### too_many_requests
@@ -290,8 +324,16 @@ export type Problem = {
290
324
  *
291
325
  * Something failed on the server; nothing in the request needs fixing. Retry later, or report the problem if it persists.
292
326
  *
327
+ * ## 503
328
+ *
329
+ * ### write_contended
330
+ *
331
+ * **Write Contended**
332
+ *
333
+ * 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
+ *
293
335
  */
294
- 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' | 'recorded_since_termination' | 'version_overlap' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | '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' | 'too_many_requests' | 'internal_error';
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' | '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' | 'watermark_outside_retention' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'write_contended';
295
337
  export type ApiKeyScopeResponseObject = {
296
338
  resource: string;
297
339
  action: 'read' | 'create' | 'update' | 'delete';
@@ -1113,6 +1155,43 @@ export type TimecodeParameters = {
1113
1155
  */
1114
1156
  effective_date?: string;
1115
1157
  };
1158
+ export type TimecodeCorrectionParameters = {
1159
+ /**
1160
+ * Where the correction starts applying. Defaults to the addressed version's own start.
1161
+ */
1162
+ effective_from?: string;
1163
+ /**
1164
+ * Where the correction stops applying, after which the timeline resumes its previous values. Must fall strictly after `effective_from`; an empty or backwards span is refused with `422`. Omit to correct through to the end of the segment containing `effective_from`, leaving later changes standing.
1165
+ */
1166
+ effective_to?: string;
1167
+ name: string;
1168
+ description?: string | null;
1169
+ description_is_required?: boolean;
1170
+ billable?: boolean;
1171
+ overtime_eligible?: boolean;
1172
+ unpaid?: boolean;
1173
+ holiday?: boolean;
1174
+ pto?: boolean;
1175
+ safety?: boolean;
1176
+ lunch_shortcut?: boolean;
1177
+ break_shortcut?: boolean;
1178
+ pwa?: boolean;
1179
+ rest_and_recovery?: boolean;
1180
+ incentive_pay_eligible?: boolean;
1181
+ restricted_to?: 'none' | 'job' | 'non_job' | 'job_with_timecode';
1182
+ };
1183
+ export type TimecodeGenesisParameters = {
1184
+ /**
1185
+ * The timeline's new start. Moving it earlier extends the first version back to it; moving it later drops the coverage before it, and is refused with `422` when a time entry recorded against this timecode starts earlier, or when the new start would leave no coverage at all.
1186
+ */
1187
+ effective_date: string;
1188
+ };
1189
+ export type TimecodeScheduledTerminationParameters = {
1190
+ /**
1191
+ * When the timecode stops being valid. Must fall strictly after the version family's `valid_from`; an end at or before it would leave no coverage at all and is refused with `422`.
1192
+ */
1193
+ effective_date: string;
1194
+ };
1116
1195
  /**
1117
1196
  * Request body for scheduling a future change to a timecode: an effective_date paired with the attribute values to apply from that date. `effective_date` and `name` are required; omitted attributes inherit the current version's values.
1118
1197
  */
@@ -2352,9 +2431,13 @@ export type JobResponseObject = {
2352
2431
  */
2353
2432
  tz_name: string;
2354
2433
  /**
2355
- * Whether workers must clock in to track time on this job; null when unset.
2434
+ * Compatibility alias true when clock_in_requirement is warning or required; always boolean.
2356
2435
  */
2357
- require_clock_in: boolean | null;
2436
+ require_clock_in: boolean;
2437
+ /**
2438
+ * Clock-in enforcement level: one of none (no guidance), warning (compliance warning on manual entries), or required (hard stop for technician web CUD and GraphQL owner CUD, including client-claimed punches, until a server-verified punch path exists; company-authed API v1 is intentionally ungated).
2439
+ */
2440
+ clock_in_requirement: 'none' | 'warning' | 'required';
2358
2441
  /**
2359
2442
  * Human-readable job name, unique within the creating company; null when unset.
2360
2443
  */
@@ -2669,9 +2752,13 @@ export type JobParameters = {
2669
2752
  tz_name?: string;
2670
2753
  time_card_start_day?: TimeCardStartDay;
2671
2754
  /**
2672
- * Whether workers must clock in to track time on this job; null when unset.
2755
+ * Compatibility alias true ensures at least warning (never downgrades required); false or null clears to none; omit to leave unchanged. Prefer clock_in_requirement.
2673
2756
  */
2674
2757
  require_clock_in?: boolean | null;
2758
+ /**
2759
+ * Clock-in enforcement level: one of none (no guidance), warning (compliance warning on manual entries), or required (hard stop for technician web CUD and GraphQL owner CUD, including client-claimed punches, until a server-verified punch path exists; company-authed API v1 is intentionally ungated). Omit the field to leave the current value unchanged.
2760
+ */
2761
+ clock_in_requirement?: 'none' | 'warning' | 'required';
2675
2762
  /**
2676
2763
  * Whether to send geofence-based clock-in/out reminders for this job; null when unset.
2677
2764
  */
@@ -3080,7 +3167,7 @@ export type UserResponseObject = {
3080
3167
  */
3081
3168
  race?: Array<string> | null;
3082
3169
  /**
3083
- * Worker sex for demographic reporting: one of FEMALE, MALE, NON_BINARY, or NOT_SPECIFIED. Null when unset.
3170
+ * Worker sex for demographic reporting: one of female, male, non_binary, or not_specified. Null when unset.
3084
3171
  */
3085
3172
  sex?: string | null;
3086
3173
  /**
@@ -3096,11 +3183,11 @@ export type UserResponseObject = {
3096
3183
  */
3097
3184
  drivers_license_number?: string | null;
3098
3185
  /**
3099
- * Veteran status per US Census definitions: one of PROTECTED_VETERAN, NOT_PROTECTED_VETERAN, RESERVES, GUARD, or NOT_SPECIFIED. Null when unset.
3186
+ * Veteran status per US Census definitions: one of protected_veteran, not_protected_veteran, reserves, guard, or not_specified. Null when unset.
3100
3187
  */
3101
3188
  veteran_status?: string | null;
3102
3189
  /**
3103
- * Whether the worker is of Hispanic origin per US Census definitions: one of YES, NO, or NOT_SPECIFIED. Null when unset.
3190
+ * Whether the worker is of Hispanic origin per US Census definitions: one of yes, no, or not_specified. Null when unset.
3104
3191
  */
3105
3192
  hispanic_origin?: string | null;
3106
3193
  /**
@@ -3369,7 +3456,7 @@ export type UserParameters = {
3369
3456
  */
3370
3457
  race?: Array<string> | null;
3371
3458
  /**
3372
- * Worker sex for demographic reporting: one of FEMALE, MALE, NON_BINARY, or NOT_SPECIFIED.
3459
+ * Worker sex for demographic reporting: one of female, male, non_binary, or not_specified.
3373
3460
  */
3374
3461
  sex?: string | null;
3375
3462
  /**
@@ -3385,11 +3472,11 @@ export type UserParameters = {
3385
3472
  */
3386
3473
  drivers_license_number?: string | null;
3387
3474
  /**
3388
- * Veteran status per US Census definitions: one of PROTECTED_VETERAN, NOT_PROTECTED_VETERAN, RESERVES, GUARD, or NOT_SPECIFIED.
3475
+ * Veteran status per US Census definitions: one of protected_veteran, not_protected_veteran, reserves, guard, or not_specified.
3389
3476
  */
3390
3477
  veteran_status?: string | null;
3391
3478
  /**
3392
- * Whether the worker is of Hispanic origin per US Census definitions: one of YES, NO, or NOT_SPECIFIED.
3479
+ * Whether the worker is of Hispanic origin per US Census definitions: one of yes, no, or not_specified.
3393
3480
  */
3394
3481
  hispanic_origin?: string | null;
3395
3482
  /**
@@ -13781,6 +13868,12 @@ export type CreateWageDeterminationResponses = {
13781
13868
  export type CreateWageDeterminationResponse = CreateWageDeterminationResponses[keyof CreateWageDeterminationResponses];
13782
13869
  export type DeleteWageDeterminationData = {
13783
13870
  body?: never;
13871
+ headers: {
13872
+ /**
13873
+ * Version validator this write is composed against — the `ETag` from a read of this wage determination, or `*` to write against whatever exists. See "Version validators" in the API overview.
13874
+ */
13875
+ 'If-Match': string;
13876
+ };
13784
13877
  path: {
13785
13878
  job_id: string;
13786
13879
  uid: string;
@@ -13797,10 +13890,18 @@ export type DeleteWageDeterminationErrors = {
13797
13890
  * Not Found
13798
13891
  */
13799
13892
  404: Problem;
13893
+ /**
13894
+ * Precondition Failed
13895
+ */
13896
+ 412: Problem;
13800
13897
  /**
13801
13898
  * Unprocessable Content
13802
13899
  */
13803
13900
  422: Problem;
13901
+ /**
13902
+ * Precondition Required
13903
+ */
13904
+ 428: Problem;
13804
13905
  };
13805
13906
  export type DeleteWageDeterminationError = DeleteWageDeterminationErrors[keyof DeleteWageDeterminationErrors];
13806
13907
  export type DeleteWageDeterminationResponses = {
@@ -16505,6 +16606,54 @@ export type UpdateTimeEntryResponses = {
16505
16606
  200: TimeEntryResponseObject;
16506
16607
  };
16507
16608
  export type UpdateTimeEntryResponse = UpdateTimeEntryResponses[keyof UpdateTimeEntryResponses];
16609
+ export type ShiftTimecodeGenesisData = {
16610
+ body: TimecodeGenesisParameters;
16611
+ headers: {
16612
+ /**
16613
+ * Version validator this write is composed against — the `ETag` from a read of this timecode, or `*` to write against whatever exists. See "Version validators" in the API overview.
16614
+ */
16615
+ 'If-Match': string;
16616
+ };
16617
+ path: {
16618
+ timecode_id: string;
16619
+ };
16620
+ query?: never;
16621
+ url: '/api/v1/timecodes/{timecode_id}/genesis';
16622
+ };
16623
+ export type ShiftTimecodeGenesisErrors = {
16624
+ /**
16625
+ * Bad Request (missing effective_date)
16626
+ */
16627
+ 400: Problem;
16628
+ /**
16629
+ * Forbidden
16630
+ */
16631
+ 403: Problem;
16632
+ /**
16633
+ * Not Found
16634
+ */
16635
+ 404: Problem;
16636
+ /**
16637
+ * Precondition Failed
16638
+ */
16639
+ 412: Problem;
16640
+ /**
16641
+ * Unprocessable Content
16642
+ */
16643
+ 422: Problem;
16644
+ /**
16645
+ * Precondition Required
16646
+ */
16647
+ 428: Problem;
16648
+ };
16649
+ export type ShiftTimecodeGenesisError = ShiftTimecodeGenesisErrors[keyof ShiftTimecodeGenesisErrors];
16650
+ export type ShiftTimecodeGenesisResponses = {
16651
+ /**
16652
+ * Success
16653
+ */
16654
+ 200: TimecodeResponseObject;
16655
+ };
16656
+ export type ShiftTimecodeGenesisResponse = ShiftTimecodeGenesisResponses[keyof ShiftTimecodeGenesisResponses];
16508
16657
  export type ListTimecodeHistoryData = {
16509
16658
  body?: never;
16510
16659
  path: {
@@ -16550,6 +16699,12 @@ export type ListTimecodeHistoryResponses = {
16550
16699
  export type ListTimecodeHistoryResponse = ListTimecodeHistoryResponses[keyof ListTimecodeHistoryResponses];
16551
16700
  export type CancelTimecodeScheduledChangesData = {
16552
16701
  body?: never;
16702
+ headers: {
16703
+ /**
16704
+ * Version validator this write is composed against — the `ETag` from a read of this timecode, or `*` to write against whatever exists. See "Version validators" in the API overview.
16705
+ */
16706
+ 'If-Match': string;
16707
+ };
16553
16708
  path: {
16554
16709
  timecode_id: string;
16555
16710
  };
@@ -16565,10 +16720,18 @@ export type CancelTimecodeScheduledChangesErrors = {
16565
16720
  * Not Found
16566
16721
  */
16567
16722
  404: Problem;
16723
+ /**
16724
+ * Precondition Failed
16725
+ */
16726
+ 412: Problem;
16568
16727
  /**
16569
16728
  * Unprocessable Content
16570
16729
  */
16571
16730
  422: Problem;
16731
+ /**
16732
+ * Precondition Required
16733
+ */
16734
+ 428: Problem;
16572
16735
  };
16573
16736
  export type CancelTimecodeScheduledChangesError = CancelTimecodeScheduledChangesErrors[keyof CancelTimecodeScheduledChangesErrors];
16574
16737
  export type CancelTimecodeScheduledChangesResponses = {
@@ -16606,6 +16769,12 @@ export type ListTimecodeScheduledChangesResponses = {
16606
16769
  export type ListTimecodeScheduledChangesResponse = ListTimecodeScheduledChangesResponses[keyof ListTimecodeScheduledChangesResponses];
16607
16770
  export type ScheduleTimecodeChangeData = {
16608
16771
  body: TimecodeScheduledChangeParameters;
16772
+ headers: {
16773
+ /**
16774
+ * Version validator this write is composed against — the `ETag` from a read of this timecode, or `*` to write against whatever exists. See "Version validators" in the API overview.
16775
+ */
16776
+ 'If-Match': string;
16777
+ };
16609
16778
  path: {
16610
16779
  timecode_id: string;
16611
16780
  };
@@ -16625,10 +16794,18 @@ export type ScheduleTimecodeChangeErrors = {
16625
16794
  * Not Found
16626
16795
  */
16627
16796
  404: Problem;
16797
+ /**
16798
+ * Precondition Failed
16799
+ */
16800
+ 412: Problem;
16628
16801
  /**
16629
16802
  * Unprocessable Content
16630
16803
  */
16631
16804
  422: Problem;
16805
+ /**
16806
+ * Precondition Required
16807
+ */
16808
+ 428: Problem;
16632
16809
  };
16633
16810
  export type ScheduleTimecodeChangeError = ScheduleTimecodeChangeErrors[keyof ScheduleTimecodeChangeErrors];
16634
16811
  export type ScheduleTimecodeChangeResponses = {
@@ -16640,6 +16817,12 @@ export type ScheduleTimecodeChangeResponses = {
16640
16817
  export type ScheduleTimecodeChangeResponse = ScheduleTimecodeChangeResponses[keyof ScheduleTimecodeChangeResponses];
16641
16818
  export type CancelTimecodeScheduledTerminationData = {
16642
16819
  body?: never;
16820
+ headers: {
16821
+ /**
16822
+ * Version validator this write is composed against — the `ETag` from a read of this timecode, or `*` to write against whatever exists. See "Version validators" in the API overview.
16823
+ */
16824
+ 'If-Match': string;
16825
+ };
16643
16826
  path: {
16644
16827
  timecode_id: string;
16645
16828
  };
@@ -16659,10 +16842,18 @@ export type CancelTimecodeScheduledTerminationErrors = {
16659
16842
  * Conflict
16660
16843
  */
16661
16844
  409: Problem;
16845
+ /**
16846
+ * Precondition Failed
16847
+ */
16848
+ 412: Problem;
16662
16849
  /**
16663
16850
  * Unprocessable Content
16664
16851
  */
16665
16852
  422: Problem;
16853
+ /**
16854
+ * Precondition Required
16855
+ */
16856
+ 428: Problem;
16666
16857
  };
16667
16858
  export type CancelTimecodeScheduledTerminationError = CancelTimecodeScheduledTerminationErrors[keyof CancelTimecodeScheduledTerminationErrors];
16668
16859
  export type CancelTimecodeScheduledTerminationResponses = {
@@ -16672,6 +16863,58 @@ export type CancelTimecodeScheduledTerminationResponses = {
16672
16863
  200: TimecodeResponseObject;
16673
16864
  };
16674
16865
  export type CancelTimecodeScheduledTerminationResponse = CancelTimecodeScheduledTerminationResponses[keyof CancelTimecodeScheduledTerminationResponses];
16866
+ export type ScheduleTimecodeTerminationData = {
16867
+ body: TimecodeScheduledTerminationParameters;
16868
+ headers: {
16869
+ /**
16870
+ * Version validator this write is composed against — the `ETag` from a read of this timecode, or `*` to write against whatever exists. See "Version validators" in the API overview.
16871
+ */
16872
+ 'If-Match': string;
16873
+ };
16874
+ path: {
16875
+ timecode_id: string;
16876
+ };
16877
+ query?: never;
16878
+ url: '/api/v1/timecodes/{timecode_id}/scheduled_termination';
16879
+ };
16880
+ export type ScheduleTimecodeTerminationErrors = {
16881
+ /**
16882
+ * Bad Request (missing effective_date)
16883
+ */
16884
+ 400: Problem;
16885
+ /**
16886
+ * Forbidden
16887
+ */
16888
+ 403: Problem;
16889
+ /**
16890
+ * Not Found
16891
+ */
16892
+ 404: Problem;
16893
+ /**
16894
+ * Conflict
16895
+ */
16896
+ 409: Problem;
16897
+ /**
16898
+ * Precondition Failed
16899
+ */
16900
+ 412: Problem;
16901
+ /**
16902
+ * Unprocessable Content
16903
+ */
16904
+ 422: Problem;
16905
+ /**
16906
+ * Precondition Required
16907
+ */
16908
+ 428: Problem;
16909
+ };
16910
+ export type ScheduleTimecodeTerminationError = ScheduleTimecodeTerminationErrors[keyof ScheduleTimecodeTerminationErrors];
16911
+ export type ScheduleTimecodeTerminationResponses = {
16912
+ /**
16913
+ * Created ahead of a scheduled change
16914
+ */
16915
+ 201: TimecodeResponseObject;
16916
+ };
16917
+ export type ScheduleTimecodeTerminationResponse = ScheduleTimecodeTerminationResponses[keyof ScheduleTimecodeTerminationResponses];
16675
16918
  export type ListTimecodesData = {
16676
16919
  body?: never;
16677
16920
  path?: never;
@@ -16795,7 +17038,13 @@ export type GetTimecodeResponses = {
16795
17038
  };
16796
17039
  export type GetTimecodeResponse = GetTimecodeResponses[keyof GetTimecodeResponses];
16797
17040
  export type UpdateTimecodeData = {
16798
- body: TimecodeParameters;
17041
+ body: TimecodeCorrectionParameters;
17042
+ headers: {
17043
+ /**
17044
+ * Version validator this write is composed against — the `ETag` from a read of this timecode, or `*` to write against whatever exists. See "Version validators" in the API overview.
17045
+ */
17046
+ 'If-Match': string;
17047
+ };
16799
17048
  path: {
16800
17049
  /**
16801
17050
  * Unique identifier of the timecode.
@@ -16810,10 +17059,22 @@ export type UpdateTimecodeErrors = {
16810
17059
  * Forbidden
16811
17060
  */
16812
17061
  403: Problem;
17062
+ /**
17063
+ * Conflict
17064
+ */
17065
+ 409: Problem;
17066
+ /**
17067
+ * Precondition Failed
17068
+ */
17069
+ 412: Problem;
16813
17070
  /**
16814
17071
  * Unprocessable Content
16815
17072
  */
16816
17073
  422: Problem;
17074
+ /**
17075
+ * Precondition Required
17076
+ */
17077
+ 428: Problem;
16817
17078
  };
16818
17079
  export type UpdateTimecodeError = UpdateTimecodeErrors[keyof UpdateTimecodeErrors];
16819
17080
  export type UpdateTimecodeResponses = {
@@ -17684,6 +17945,10 @@ export type CancelUserCompanyScheduledTerminationErrors = {
17684
17945
  * Not Found
17685
17946
  */
17686
17947
  404: Problem;
17948
+ /**
17949
+ * Unprocessable Content
17950
+ */
17951
+ 422: Problem;
17687
17952
  };
17688
17953
  export type CancelUserCompanyScheduledTerminationError = CancelUserCompanyScheduledTerminationErrors[keyof CancelUserCompanyScheduledTerminationErrors];
17689
17954
  export type CancelUserCompanyScheduledTerminationResponses = {