@dsptch-work/api-client 0.32.0 → 0.33.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.
@@ -201,6 +201,12 @@ export type Problem = {
201
201
  *
202
202
  * 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.
203
203
  *
204
+ * ### authorization_revoked
205
+ *
206
+ * **Authorization Revoked**
207
+ *
208
+ * The assessor grant is revoked. A revoked grant keeps its row as history and cannot be changed or revoked again. To make the user an assessor again, grant them anew.
209
+ *
204
210
  * ### import_in_progress
205
211
  *
206
212
  * **Import In Progress**
@@ -381,14 +387,20 @@ export type Problem = {
381
387
  *
382
388
  * ## 503
383
389
  *
390
+ * ### database_timeout
391
+ *
392
+ * **Database Timeout**
393
+ *
394
+ * A database statement behind the request ran past the server's time limit and was stopped before it finished. The request may be fine as sent — resend it after the `Retry-After` window, and if it keeps timing out, ask for less at once, such as a narrower filter or a smaller page.
395
+ *
384
396
  * ### write_contended
385
397
  *
386
398
  * **Write Contended**
387
399
  *
388
- * 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.
400
+ * Another write to the same resource held it for longer than this request was willing to wait, or collided with it, so nothing was applied. The request itself is fine — resend it unchanged after the `Retry-After` window.
389
401
  *
390
402
  */
391
- export type ProblemTypeCatalog = 'blank_axis' | 'invalid_cursor' | 'invalid_filter_key' | 'invalid_limit' | 'invalid_signature' | 'malformed_body' | 'non_range_filter_value' | 'non_scalar_axis' | 'non_scalar_filter_value' | 'parameter_missing' | 'parameter_not_object' | 'unknown_axis' | 'unknown_key' | 'unsupported_axis' | 'valid_axis_on_timeline' | 'unauthorized' | 'company_scoped_key_required' | 'forbidden' | 'forbidden_key' | 'insufficient_api_key_scope' | 'user_scoped_key_required' | 'not_found' | 'already_subscribed' | 'already_terminated' | 'import_in_progress' | 'pay_schedule_already_exists' | 'product_archived' | 'recorded_since_termination' | 'span_beyond_timeline_end' | 'version_overlap' | 'precondition_failed' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | 'interval_too_wide' | 'invalid_date' | 'invalid_filter_value' | 'invalid_iso8601_duration' | 'invalid_placement_move' | 'invalid_signed_id' | 'non_numeric_cents' | 'nothing_to_cancel' | 'pagination_failed' | 'subtype_foreign_keys' | 'synced_determination' | 'user_not_company_member' | 'validation_failed' | 'wage_schedule_outside_program' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'write_contended';
403
+ export type ProblemTypeCatalog = 'blank_axis' | 'invalid_cursor' | 'invalid_filter_key' | 'invalid_limit' | 'invalid_signature' | 'malformed_body' | 'non_range_filter_value' | 'non_scalar_axis' | 'non_scalar_filter_value' | 'parameter_missing' | 'parameter_not_object' | 'unknown_axis' | 'unknown_key' | 'unsupported_axis' | 'valid_axis_on_timeline' | 'unauthorized' | 'company_scoped_key_required' | 'forbidden' | 'forbidden_key' | 'insufficient_api_key_scope' | 'user_scoped_key_required' | 'not_found' | 'already_subscribed' | 'already_terminated' | 'authorization_revoked' | 'import_in_progress' | 'pay_schedule_already_exists' | 'product_archived' | 'recorded_since_termination' | 'span_beyond_timeline_end' | 'version_overlap' | 'precondition_failed' | 'attachment_not_image' | 'company_not_employer' | 'confirm_apprenticeship_conflict' | 'destroy_restricted' | 'interval_too_wide' | 'invalid_date' | 'invalid_filter_value' | 'invalid_iso8601_duration' | 'invalid_placement_move' | 'invalid_signed_id' | 'non_numeric_cents' | 'nothing_to_cancel' | 'pagination_failed' | 'subtype_foreign_keys' | 'synced_determination' | 'user_not_company_member' | 'validation_failed' | 'wage_schedule_outside_program' | 'precondition_required' | 'too_many_requests' | 'internal_error' | 'database_timeout' | 'write_contended';
392
404
  export type ApiKeyScopeResponseObject = {
393
405
  resource: string;
394
406
  action: 'read' | 'create' | 'update' | 'delete';
@@ -496,6 +508,95 @@ export type DirectUploadResponseObject = {
496
508
  };
497
509
  };
498
510
  };
511
+ /**
512
+ * One assessor-registry grant for one standard. Department scope is informational. revoked_at is null while the grant is active.
513
+ */
514
+ export type CompetencyAssessorAuthorizationResponseObject = {
515
+ /**
516
+ * ID of the authorization.
517
+ */
518
+ id: string;
519
+ /**
520
+ * ID of the user who holds the grant.
521
+ */
522
+ user_id: string;
523
+ /**
524
+ * ID of the standard this grant covers.
525
+ */
526
+ competencies_standard_id: string;
527
+ /**
528
+ * ID of the department the grant is noted against; null when it is company-wide. Department does not restrict which assessments the user may touch.
529
+ */
530
+ companies_department_id: string | null;
531
+ /**
532
+ * Role of the grant: authorized_assessor collects field evidence, qualified_assessor decides assessments.
533
+ */
534
+ kind: 'authorized_assessor' | 'qualified_assessor';
535
+ /**
536
+ * ID of the user who recorded the grant.
537
+ */
538
+ granted_by_user_id: string;
539
+ /**
540
+ * When the grant was recorded.
541
+ */
542
+ granted_at: string;
543
+ /**
544
+ * When the grant was revoked; null while it is active.
545
+ */
546
+ revoked_at: string | null;
547
+ /**
548
+ * active until the grant is revoked, then revoked. The same words are filter[state] values on the list endpoint, which also accepts all.
549
+ */
550
+ state: 'active' | 'revoked';
551
+ /**
552
+ * When the authorization row was created.
553
+ */
554
+ created_at: string;
555
+ /**
556
+ * When the authorization row was last updated.
557
+ */
558
+ updated_at: string;
559
+ };
560
+ /**
561
+ * Grant an assessor role for one standard. A user key grants as its user. A company key names the grantor. An active grant of the same kind for the same user and standard is unique.
562
+ */
563
+ export type CompetencyAssessorAuthorizationParameters = {
564
+ /**
565
+ * ID of the user who receives the grant. Required.
566
+ */
567
+ user_id: string;
568
+ /**
569
+ * Role to grant: authorized_assessor or qualified_assessor. Required.
570
+ */
571
+ kind: 'authorized_assessor' | 'qualified_assessor';
572
+ /**
573
+ * ID of the standard this grant covers. Required. Changing it means revoke and regrant.
574
+ */
575
+ competencies_standard_id: string;
576
+ /**
577
+ * ID of the department the grant is noted against; optional, null to leave it company-wide. A blank ID answers 422.
578
+ */
579
+ companies_department_id?: string | null;
580
+ /**
581
+ * ID of the admin or safety manager recording the grant. Required for a company key. A user key grants as itself and must omit it.
582
+ */
583
+ granted_by_user_id?: string;
584
+ };
585
+ /**
586
+ * Update the department note on an active grant. Kind, user, standard, and grantor are fixed. A revoked grant answers 409 authorization_revoked.
587
+ */
588
+ export type CompetencyAssessorAuthorizationUpdateParameters = {
589
+ /**
590
+ * ID of the department the grant is noted against; omit to leave it unchanged, or send null to clear it. A blank ID answers 422.
591
+ */
592
+ companies_department_id?: string | null;
593
+ };
594
+ /**
595
+ * Revoke an active grant. The body takes no fields; send an empty object or no body. Revocation sets revoked_at and keeps the row; revoking it again answers 409 authorization_revoked.
596
+ */
597
+ export type CompetencyAssessorAuthorizationRevocationParameters = {
598
+ [key: string]: never;
599
+ };
499
600
  /**
500
601
  * A durable standing. The candidate passed the standard at level_sort_order. There is no level id, so the standing survives the next revision. This API does not create or update qualifications.
501
602
  */
@@ -2619,7 +2720,7 @@ export type PerDiemResponseObject = {
2619
2720
  /**
2620
2721
  * Whether the per diem is currently active and available to use.
2621
2722
  */
2622
- active: boolean | null;
2723
+ active: boolean;
2623
2724
  /**
2624
2725
  * IDs of the work types this per diem applies to.
2625
2726
  */
@@ -2664,11 +2765,11 @@ export type PerDiemParameters = {
2664
2765
  /**
2665
2766
  * Whether this should become the company default per diem. Non-boolean values other than null answer 422.
2666
2767
  */
2667
- default?: boolean | null;
2768
+ default?: boolean;
2668
2769
  /**
2669
- * Whether the per diem is active and available to use. Non-boolean values other than null answer 422.
2770
+ * Whether the per diem is active and available to use. Null or a non-boolean answers 422.
2670
2771
  */
2671
- active?: boolean | null;
2772
+ active?: boolean;
2672
2773
  /**
2673
2774
  * Unique nonblank IDs of the work types this per diem applies to; each must be shared or the company's own. Providing this replaces the entire set; an empty array clears it. Omit to attach none or leave the set unchanged on update. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422. An unavailable work type answers 404.
2674
2775
  */
@@ -2705,11 +2806,11 @@ export type PerDiemUpdateParameters = {
2705
2806
  /**
2706
2807
  * Whether this should become the company default per diem; omit to leave it unchanged. Non-boolean values other than null answer 422.
2707
2808
  */
2708
- default?: boolean | null;
2809
+ default?: boolean;
2709
2810
  /**
2710
- * Whether the per diem is active and available to use; omit to leave it unchanged. Non-boolean values other than null answer 422.
2811
+ * Whether the per diem is active and available to use; omit to leave it unchanged. Null or a non-boolean answers 422.
2711
2812
  */
2712
- active?: boolean | null;
2813
+ active?: boolean;
2713
2814
  /**
2714
2815
  * Unique nonblank IDs of the work types this per diem applies to; each must be shared or the company's own. Providing this replaces the entire set; an empty array clears it. Omit to attach none or leave the set unchanged on update. Null, null members, wrong types, blank IDs, and duplicate IDs answer 422. An unavailable work type answers 404.
2715
2816
  */
@@ -3663,7 +3764,7 @@ export type PwaCompanyUserDetailsParameters = {
3663
3764
  */
3664
3765
  city?: string | null;
3665
3766
  /**
3666
- * Home address two-letter US state code; required together with address1 when any home-address field is set.
3767
+ * Home address two-letter US state code; any other value is rejected. Required together with address1 when any home-address field is set.
3667
3768
  */
3668
3769
  state?: string | null;
3669
3770
  /**
@@ -3752,7 +3853,7 @@ export type PwaCompanyUserDetailsUpdateParameters = {
3752
3853
  */
3753
3854
  city?: string | null;
3754
3855
  /**
3755
- * Home address two-letter US state code; required together with address1 when any home-address field is set.
3856
+ * Home address two-letter US state code; any other value is rejected. Required together with address1 when any home-address field is set.
3756
3857
  */
3757
3858
  state?: string | null;
3758
3859
  /**
@@ -3862,7 +3963,7 @@ export type PwaTradeResponseObject = {
3862
3963
  */
3863
3964
  export type PwaTradeParameters = {
3864
3965
  /**
3865
- * Display name of the craft to create, e.g. "Electrician".
3966
+ * Display name of the craft to create, e.g. "Electrician". Omission answers 400; supplied null or a wrong type answers 422, and a blank name fails model validation with 422.
3866
3967
  */
3867
3968
  name: string;
3868
3969
  };
@@ -4641,7 +4742,7 @@ export type UserResponseObject = {
4641
4742
  /**
4642
4743
  * How the worker is paid: hourly or salary.
4643
4744
  */
4644
- compensation_type: string | null;
4745
+ compensation_type: 'hourly' | 'salary' | null;
4645
4746
  /**
4646
4747
  * Base pay rate, formatted as a currency string in the company's currency. Present for company keys, company administrators, and the employed person, and omitted otherwise; null when authorized but unset.
4647
4748
  */
@@ -4931,11 +5032,11 @@ export type UserParameters = ({
4931
5032
  */
4932
5033
  avatar_signed_id?: string | null;
4933
5034
  /**
4934
- * Id of the internal user recorded as the creator of the worker's invite, and named to the recipient as the person inviting them; must be a member of your company. Ignored when skip_invite is set.
5035
+ * Id of the internal user recorded as the creator of the worker's invite, and named to the recipient as the person inviting them. A user key always records its own user and answers 403 if the body names one; a company key must name a user your company can see, or the request answers 404. Ignored when skip_invite is set.
4935
5036
  */
4936
5037
  created_by_user_id?: string;
4937
5038
  /**
4938
- * Id of the internal user recorded as having last sent the worker's invite, and named as the sender on that person's in-app notification; must be a member of your company. Null, and ignored, when skip_invite is set.
5039
+ * Id of the internal user recorded as having last sent the worker's invite, and named as the sender on that person's in-app notification. Read like created_by_user_id. Null, and ignored, when skip_invite is set.
4939
5040
  */
4940
5041
  last_sent_by_user_id?: string | null;
4941
5042
  /**
@@ -5041,7 +5142,7 @@ export type UserParameters = ({
5041
5142
  */
5042
5143
  city?: string | null;
5043
5144
  /**
5044
- * Home address two-letter US state code.
5145
+ * Home address two-letter US state code; any other value is rejected.
5045
5146
  */
5046
5147
  state?: string | null;
5047
5148
  /**
@@ -5903,7 +6004,7 @@ export type CustomFieldConfigsResponseObject = {
5903
6004
  /**
5904
6005
  * The kind of record the field attaches to: one of apprenticeship_apprentice, company, job, or user_company.
5905
6006
  */
5906
- model_type: string;
6007
+ model_type: 'apprenticeship_apprentice' | 'company' | 'job' | 'user_company';
5907
6008
  /**
5908
6009
  * Whether the field is shown.
5909
6010
  */
@@ -5934,7 +6035,7 @@ export type CustomFieldConfigParameters = {
5934
6035
  */
5935
6036
  description?: string | null;
5936
6037
  /**
5937
- * The kind of record the field attaches to: one of apprenticeship_apprentice, company, job, or user_company. Any other value, or null, answers 422.
6038
+ * The kind of record the field attaches to: one of apprenticeship_apprentice, company, job, or user_company. It cannot change after creation. Any other value, or null, answers 422.
5938
6039
  */
5939
6040
  model_type: 'apprenticeship_apprentice' | 'company' | 'job' | 'user_company';
5940
6041
  /**
@@ -5943,7 +6044,7 @@ export type CustomFieldConfigParameters = {
5943
6044
  visible?: boolean;
5944
6045
  };
5945
6046
  /**
5946
- * Request body for updating a custom field definition. Every field is optional; omit a field to preserve its current value. The resulting definition's name must remain unique for its company and model type.
6047
+ * Request body for updating a custom field definition. Every field is optional; omit a field to preserve its current value. `model_type` is fixed at creation, so sending it answers 400. The resulting definition's name must remain unique for its company and model type.
5947
6048
  */
5948
6049
  export type CustomFieldConfigUpdateParameters = {
5949
6050
  /**
@@ -5954,10 +6055,6 @@ export type CustomFieldConfigUpdateParameters = {
5954
6055
  * Optional description of the custom field; omit to preserve it, or send null to clear it. A nonstring value other than null answers 422.
5955
6056
  */
5956
6057
  description?: string | null;
5957
- /**
5958
- * The kind of record the field attaches to: one of apprenticeship_apprentice, company, job, or user_company. Omit to preserve the current value; any other value, or null, answers 422.
5959
- */
5960
- model_type?: 'apprenticeship_apprentice' | 'company' | 'job' | 'user_company';
5961
6058
  /**
5962
6059
  * Whether the field is shown, as a JSON boolean; omit to preserve the current value. Null or a nonboolean value answers 422.
5963
6060
  */
@@ -6056,7 +6153,7 @@ export type UserCompanyScheduledChange = {
6056
6153
  /**
6057
6154
  * How the worker is paid: hourly or salary.
6058
6155
  */
6059
- compensation_type: string;
6156
+ compensation_type: 'hourly' | 'salary';
6060
6157
  /**
6061
6158
  * Whether the worker is eligible for overtime pay in this version.
6062
6159
  */
@@ -8024,7 +8121,7 @@ export type FeatureResponseObject = {
8024
8121
  updated_at: string;
8025
8122
  };
8026
8123
  /**
8027
- * A billing metric — the count of distinct prevailing-wage/apprenticeship (PWA) tracked workers on a project in a given month, aggregated for the billed company. One row per project per month.
8124
+ * A billing metric — the count of distinct prevailing-wage/apprenticeship (PWA) tracked workers on one billable unit in a given month, aggregated for the billed company. A billable unit is a project (one row per project per month, counting workers once across every job in the project tree) or a job outside any project (one row per job per month). Exactly one of `project_id` and `job_id` is set.
8028
8125
  */
8029
8126
  export type BillingPwaUserCountByProjectByMonthResponseObject = {
8030
8127
  /**
@@ -8040,15 +8137,23 @@ export type BillingPwaUserCountByProjectByMonthResponseObject = {
8040
8137
  */
8041
8138
  month: number;
8042
8139
  /**
8043
- * ID of the project the count is for.
8140
+ * ID of the project the count is for. `null` when the row is for a job outside any project.
8044
8141
  */
8045
- project_id: string;
8142
+ project_id: string | null;
8143
+ /**
8144
+ * Name of the project the count is for. `null` when the row is for a job outside any project.
8145
+ */
8146
+ project_name: string | null;
8046
8147
  /**
8047
- * Name of the project the count is for.
8148
+ * ID of the job the count is for. `null` when the row is for a project.
8048
8149
  */
8049
- project_name: string;
8150
+ job_id: string | null;
8151
+ /**
8152
+ * Name of the job the count is for. `null` when the row is for a project.
8153
+ */
8154
+ job_name: string | null;
8050
8155
  /**
8051
- * Distinct workers with PWA-tracked time on the project that month.
8156
+ * Distinct workers with PWA-tracked time on the project or job that month.
8052
8157
  */
8053
8158
  user_count: number;
8054
8159
  };
@@ -9822,11 +9927,11 @@ export type PositionResponseObject = {
9822
9927
  skill_level: string | null;
9823
9928
  };
9824
9929
  /**
9825
- * Start of the position's scheduled window (ISO 8601); null when unscheduled.
9930
+ * Start of the position's scheduled window (ISO 8601) as stored, the beginning of its first day in the job's tz_name; null when unscheduled.
9826
9931
  */
9827
9932
  start_time: string | null;
9828
9933
  /**
9829
- * End of the position's scheduled window (ISO 8601); null when unscheduled.
9934
+ * End of the position's scheduled window (ISO 8601) as stored, the end of its last day in the job's tz_name; null when unscheduled.
9830
9935
  */
9831
9936
  end_time: string | null;
9832
9937
  /**
@@ -9921,11 +10026,11 @@ export type PositionParameters = {
9921
10026
  */
9922
10027
  fulfilled_by_user_id?: string | null;
9923
10028
  /**
9924
- * Start of the position's scheduled window (ISO 8601); must fall within the job's schedule.
10029
+ * Start of the position's scheduled window (ISO 8601); must fall within the job's schedule. The window covers whole days in the job's tz_name, so it starts at the beginning of this value's day there.
9925
10030
  */
9926
10031
  start_time?: string | null;
9927
10032
  /**
9928
- * End of the position's scheduled window (ISO 8601); must be on or after start_time and within the job's schedule.
10033
+ * End of the position's scheduled window (ISO 8601); must be on or after start_time and within the job's schedule. The window ends at the end of this value's day in the job's tz_name.
9929
10034
  */
9930
10035
  end_time?: string | null;
9931
10036
  /**
@@ -10085,9 +10190,9 @@ export type ProductionCompletionUpdateParameters = {
10085
10190
  */
10086
10191
  export type ProductionCompletionBaseParameters = {
10087
10192
  /**
10088
- * Scope price the work bills against; set on create only, and it determines the job.
10193
+ * Scope price the work bills against; set on create only, and it determines the job. Omission answers 400; a scope price the API key cannot see answers 404.
10089
10194
  */
10090
- production_job_scope_price_id?: string;
10195
+ production_job_scope_price_id: string;
10091
10196
  /**
10092
10197
  * ID of the company member filing the completion. Omission answers 400; supplied null, a blank ID, or a wrong type answers 422. A user outside the company that owns the API key answers 422.
10093
10198
  */
@@ -13064,7 +13169,7 @@ export type AssetsFormAssignmentTriggerResponseObject = {
13064
13169
  */
13065
13170
  day_of_month_due: number | null;
13066
13171
  /**
13067
- * IANA time zone (e.g. "America/New_York") in which time_of_day_due is interpreted.
13172
+ * IANA time zone name (e.g. "US/Central") in which time_of_day_due is interpreted.
13068
13173
  */
13069
13174
  tz_name: string;
13070
13175
  /**
@@ -13096,6 +13201,10 @@ export type AssetsFormAssignmentTriggerParameters = {
13096
13201
  * ID of the form definition (a SurveyJS form template) this assignment is for.
13097
13202
  */
13098
13203
  form_definition_id: string;
13204
+ /**
13205
+ * Optional label for this trigger rule; null when unset.
13206
+ */
13207
+ name?: string | null;
13099
13208
  /**
13100
13209
  * The custody event that fires the rule: assignment (an item is assigned to a user) or unassignment (an item is removed from a user).
13101
13210
  */
@@ -13108,18 +13217,6 @@ export type AssetsFormAssignmentTriggerParameters = {
13108
13217
  * How the first due date is set: day_of_event (the day the rule fires), day_of_week (the next day_of_week_due), or day_of_month (day_of_month_due of the current or next month).
13109
13218
  */
13110
13219
  first_due_by: 'day_of_event' | 'day_of_week' | 'day_of_month';
13111
- /**
13112
- * IANA time zone (e.g. "America/New_York") in which time_of_day_due is interpreted.
13113
- */
13114
- tz_name: string;
13115
- /**
13116
- * Wall-clock time of day the form is due (HH:MM), interpreted in tz_name.
13117
- */
13118
- time_of_day_due: string;
13119
- /**
13120
- * Optional label for this trigger rule; null when unset.
13121
- */
13122
- name?: string | null;
13123
13220
  /**
13124
13221
  * How often the generated form recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment.
13125
13222
  */
@@ -13132,6 +13229,14 @@ export type AssetsFormAssignmentTriggerParameters = {
13132
13229
  * Day of month the form is first due, 1 to 31 (clamped to the month's last day). Required when first_due_by is day_of_month; null otherwise.
13133
13230
  */
13134
13231
  day_of_month_due?: number | null;
13232
+ /**
13233
+ * IANA time zone name (e.g. "US/Central") in which time_of_day_due is interpreted.
13234
+ */
13235
+ tz_name: string;
13236
+ /**
13237
+ * Wall-clock time of day the form is due (HH:MM), interpreted in tz_name.
13238
+ */
13239
+ time_of_day_due: string;
13135
13240
  /**
13136
13241
  * IDs of the users the generated form is assigned to. Used only when assign_to is custom; cleared for the other modes.
13137
13242
  */
@@ -13149,6 +13254,10 @@ export type AssetsFormAssignmentTriggerUpdateParameters = {
13149
13254
  * ID of the form definition (a SurveyJS form template) this assignment is for.
13150
13255
  */
13151
13256
  form_definition_id?: string;
13257
+ /**
13258
+ * Optional label for this trigger rule; null when unset.
13259
+ */
13260
+ name?: string | null;
13152
13261
  /**
13153
13262
  * The custody event that fires the rule: assignment (an item is assigned to a user) or unassignment (an item is removed from a user).
13154
13263
  */
@@ -13161,18 +13270,6 @@ export type AssetsFormAssignmentTriggerUpdateParameters = {
13161
13270
  * How the first due date is set: day_of_event (the day the rule fires), day_of_week (the next day_of_week_due), or day_of_month (day_of_month_due of the current or next month).
13162
13271
  */
13163
13272
  first_due_by?: 'day_of_event' | 'day_of_week' | 'day_of_month';
13164
- /**
13165
- * IANA time zone (e.g. "America/New_York") in which time_of_day_due is interpreted.
13166
- */
13167
- tz_name?: string;
13168
- /**
13169
- * Wall-clock time of day the form is due (HH:MM), interpreted in tz_name.
13170
- */
13171
- time_of_day_due?: string;
13172
- /**
13173
- * Optional label for this trigger rule; null when unset.
13174
- */
13175
- name?: string | null;
13176
13273
  /**
13177
13274
  * How often the generated form recurs: one of DAILY, WORKDAILY, WORKDAILYSIX, WEEKLY, BIWEEKLY, MONTHLY, or QUARTERLY. Null for a one-time assignment.
13178
13275
  */
@@ -13185,6 +13282,14 @@ export type AssetsFormAssignmentTriggerUpdateParameters = {
13185
13282
  * Day of month the form is first due, 1 to 31 (clamped to the month's last day). Required when first_due_by is day_of_month; null otherwise.
13186
13283
  */
13187
13284
  day_of_month_due?: number | null;
13285
+ /**
13286
+ * IANA time zone name (e.g. "US/Central") in which time_of_day_due is interpreted.
13287
+ */
13288
+ tz_name?: string;
13289
+ /**
13290
+ * Wall-clock time of day the form is due (HH:MM), interpreted in tz_name.
13291
+ */
13292
+ time_of_day_due?: string;
13188
13293
  /**
13189
13294
  * IDs of the users the generated form is assigned to. Used only when assign_to is custom; cleared for the other modes.
13190
13295
  */
@@ -14360,7 +14465,7 @@ export type AssetsArchiveParameters = {
14360
14465
  */
14361
14466
  export type AssetsServiceScheduleSeedParameters = {
14362
14467
  /**
14363
- * Optional. Serial item IDs to seed; IDs outside the seedable items are skipped. Omit to seed every seedable item. An empty list, null, or a value that is not an array of strings answers 422.
14468
+ * Optional. Serial item IDs to seed. An ID the API key cannot see answers 404; a visible item the template cannot seed, or a blank member, answers 422 at that member. Omit to seed every seedable item. An empty list, null, or a value that is not an array of strings answers 422.
14364
14469
  */
14365
14470
  assets_item_ids?: Array<string>;
14366
14471
  /**
@@ -14373,7 +14478,7 @@ export type AssetsServiceScheduleSeedParameters = {
14373
14478
  */
14374
14479
  export type AssetsServiceScheduleSyncParameters = {
14375
14480
  /**
14376
- * Optional. Blocked schedule IDs to sync; IDs outside the blocked schedules are skipped. Omit to sync every blocked schedule. An empty list, null, or a value that is not an array of strings answers 422.
14481
+ * Optional. Blocked schedule IDs to sync. An ID the API key cannot see answers 404; a visible schedule the template cannot sync, or a blank member, answers 422 at that member. Omit to sync every blocked schedule. An empty list, null, or a value that is not an array of strings answers 422.
14377
14482
  */
14378
14483
  schedule_ids?: Array<string>;
14379
14484
  /**
@@ -14381,6 +14486,12 @@ export type AssetsServiceScheduleSyncParameters = {
14381
14486
  */
14382
14487
  performed_by_user_id: string;
14383
14488
  };
14489
+ /**
14490
+ * Revoke an active grant. The body takes no fields; send an empty object or no body. Revocation sets revoked_at and keeps the row; revoking it again answers 409 authorization_revoked.
14491
+ */
14492
+ export type CompetencyAssessorAuthorizationRevocationParametersWritable = {
14493
+ [key: string]: never;
14494
+ };
14384
14495
  /**
14385
14496
  * A page of certifications held by your company's workers.
14386
14497
  */
@@ -18629,6 +18740,10 @@ export type ListPwaUserCountsByProjectByMonthsData = {
18629
18740
  */
18630
18741
  'filter[year_month]'?: string;
18631
18742
  'filter[project_id]'?: string;
18743
+ /**
18744
+ * Filter to one job outside any project
18745
+ */
18746
+ 'filter[job_id]'?: string;
18632
18747
  filter?: string;
18633
18748
  'filter[unexpected]'?: string;
18634
18749
  };
@@ -19660,6 +19775,205 @@ export type GetEvidenceItemResponses = {
19660
19775
  200: CompetencyEvidenceItemResponseObject;
19661
19776
  };
19662
19777
  export type GetEvidenceItemResponse = GetEvidenceItemResponses[keyof GetEvidenceItemResponses];
19778
+ export type ListAssessorAuthorizationsData = {
19779
+ body?: never;
19780
+ path?: never;
19781
+ query?: {
19782
+ /**
19783
+ * Authorizations held by this user.
19784
+ */
19785
+ 'filter[user_id]'?: string;
19786
+ /**
19787
+ * Authorizations noted against this department.
19788
+ */
19789
+ 'filter[companies_department_id]'?: string;
19790
+ /**
19791
+ * Authorizations for this standard.
19792
+ */
19793
+ 'filter[competencies_standard_id]'?: string;
19794
+ /**
19795
+ * Authorizations of any of the given kinds. Comma-separate to match both (`authorized_assessor,qualified_assessor`).
19796
+ */
19797
+ 'filter[kind]'?: Array<'authorized_assessor' | 'qualified_assessor'>;
19798
+ /**
19799
+ * Filter by lifecycle state. Defaults to `active` (non-active records are hidden); `revoked` returns only non-active records; `all` returns both.
19800
+ */
19801
+ 'filter[state]'?: 'active' | 'revoked' | 'all';
19802
+ 'filter[created_at][gte]'?: string;
19803
+ 'filter[created_at][lte]'?: string;
19804
+ 'filter[updated_at][gte]'?: string;
19805
+ 'filter[updated_at][lte]'?: string;
19806
+ 'filter[granted_at][gte]'?: string;
19807
+ 'filter[granted_at][lte]'?: string;
19808
+ 'filter[revoked_at][gte]'?: string;
19809
+ 'filter[revoked_at][lte]'?: string;
19810
+ filter?: string;
19811
+ 'filter[unexpected]'?: string;
19812
+ /**
19813
+ * This pagination cursor corresponds to the cursor value found in the response in
19814
+ * `meta.page.next_cursor`.
19815
+ */
19816
+ 'page[cursor]'?: string;
19817
+ /**
19818
+ * 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`.
19819
+ */
19820
+ 'page[limit]'?: number;
19821
+ page?: string;
19822
+ };
19823
+ url: '/api/v1/competencies/assessor_authorizations';
19824
+ };
19825
+ export type ListAssessorAuthorizationsErrors = {
19826
+ /**
19827
+ * Bad Request
19828
+ */
19829
+ 400: Problem;
19830
+ /**
19831
+ * Forbidden
19832
+ */
19833
+ 403: Problem;
19834
+ /**
19835
+ * Unprocessable Content
19836
+ */
19837
+ 422: Problem;
19838
+ };
19839
+ export type ListAssessorAuthorizationsError = ListAssessorAuthorizationsErrors[keyof ListAssessorAuthorizationsErrors];
19840
+ export type ListAssessorAuthorizationsResponses = {
19841
+ /**
19842
+ * Success
19843
+ */
19844
+ 200: {
19845
+ meta: Meta;
19846
+ links: Links;
19847
+ data: Array<CompetencyAssessorAuthorizationResponseObject>;
19848
+ };
19849
+ };
19850
+ export type ListAssessorAuthorizationsResponse = ListAssessorAuthorizationsResponses[keyof ListAssessorAuthorizationsResponses];
19851
+ export type CreateAssessorAuthorizationData = {
19852
+ body: CompetencyAssessorAuthorizationParameters;
19853
+ path?: never;
19854
+ query?: never;
19855
+ url: '/api/v1/competencies/assessor_authorizations';
19856
+ };
19857
+ export type CreateAssessorAuthorizationErrors = {
19858
+ /**
19859
+ * Bad Request
19860
+ */
19861
+ 400: Problem;
19862
+ /**
19863
+ * Forbidden
19864
+ */
19865
+ 403: Problem;
19866
+ /**
19867
+ * Not Found
19868
+ */
19869
+ 404: Problem;
19870
+ /**
19871
+ * Unprocessable Content
19872
+ */
19873
+ 422: Problem;
19874
+ };
19875
+ export type CreateAssessorAuthorizationError = CreateAssessorAuthorizationErrors[keyof CreateAssessorAuthorizationErrors];
19876
+ export type CreateAssessorAuthorizationResponses = {
19877
+ /**
19878
+ * Created
19879
+ */
19880
+ 201: CompetencyAssessorAuthorizationResponseObject;
19881
+ };
19882
+ export type CreateAssessorAuthorizationResponse = CreateAssessorAuthorizationResponses[keyof CreateAssessorAuthorizationResponses];
19883
+ export type GetAssessorAuthorizationData = {
19884
+ body?: never;
19885
+ path: {
19886
+ id: string;
19887
+ };
19888
+ query?: never;
19889
+ url: '/api/v1/competencies/assessor_authorizations/{id}';
19890
+ };
19891
+ export type GetAssessorAuthorizationErrors = {
19892
+ /**
19893
+ * Forbidden
19894
+ */
19895
+ 403: Problem;
19896
+ /**
19897
+ * Not Found
19898
+ */
19899
+ 404: Problem;
19900
+ };
19901
+ export type GetAssessorAuthorizationError = GetAssessorAuthorizationErrors[keyof GetAssessorAuthorizationErrors];
19902
+ export type GetAssessorAuthorizationResponses = {
19903
+ /**
19904
+ * Success
19905
+ */
19906
+ 200: CompetencyAssessorAuthorizationResponseObject;
19907
+ };
19908
+ export type GetAssessorAuthorizationResponse = GetAssessorAuthorizationResponses[keyof GetAssessorAuthorizationResponses];
19909
+ export type UpdateAssessorAuthorizationData = {
19910
+ body?: CompetencyAssessorAuthorizationUpdateParameters;
19911
+ path: {
19912
+ id: string;
19913
+ };
19914
+ query?: never;
19915
+ url: '/api/v1/competencies/assessor_authorizations/{id}';
19916
+ };
19917
+ export type UpdateAssessorAuthorizationErrors = {
19918
+ /**
19919
+ * Bad Request
19920
+ */
19921
+ 400: Problem;
19922
+ /**
19923
+ * Forbidden
19924
+ */
19925
+ 403: Problem;
19926
+ /**
19927
+ * Not Found
19928
+ */
19929
+ 404: Problem;
19930
+ /**
19931
+ * Conflict
19932
+ */
19933
+ 409: Problem;
19934
+ };
19935
+ export type UpdateAssessorAuthorizationError = UpdateAssessorAuthorizationErrors[keyof UpdateAssessorAuthorizationErrors];
19936
+ export type UpdateAssessorAuthorizationResponses = {
19937
+ /**
19938
+ * Success
19939
+ */
19940
+ 200: CompetencyAssessorAuthorizationResponseObject;
19941
+ };
19942
+ export type UpdateAssessorAuthorizationResponse = UpdateAssessorAuthorizationResponses[keyof UpdateAssessorAuthorizationResponses];
19943
+ export type RevokeAssessorAuthorizationData = {
19944
+ body?: CompetencyAssessorAuthorizationRevocationParametersWritable;
19945
+ path: {
19946
+ assessor_authorization_id: string;
19947
+ };
19948
+ query?: never;
19949
+ url: '/api/v1/competencies/assessor_authorizations/{assessor_authorization_id}/revocation';
19950
+ };
19951
+ export type RevokeAssessorAuthorizationErrors = {
19952
+ /**
19953
+ * Bad Request
19954
+ */
19955
+ 400: Problem;
19956
+ /**
19957
+ * Forbidden
19958
+ */
19959
+ 403: Problem;
19960
+ /**
19961
+ * Not Found
19962
+ */
19963
+ 404: Problem;
19964
+ /**
19965
+ * Conflict
19966
+ */
19967
+ 409: Problem;
19968
+ };
19969
+ export type RevokeAssessorAuthorizationError = RevokeAssessorAuthorizationErrors[keyof RevokeAssessorAuthorizationErrors];
19970
+ export type RevokeAssessorAuthorizationResponses = {
19971
+ /**
19972
+ * Created
19973
+ */
19974
+ 201: CompetencyAssessorAuthorizationResponseObject;
19975
+ };
19976
+ export type RevokeAssessorAuthorizationResponse = RevokeAssessorAuthorizationResponses[keyof RevokeAssessorAuthorizationResponses];
19663
19977
  export type ListQualificationsData = {
19664
19978
  body?: never;
19665
19979
  path?: never;
@@ -21199,6 +21513,10 @@ export type CreateRateRuleErrors = {
21199
21513
  * Unprocessable Content
21200
21514
  */
21201
21515
  422: Problem;
21516
+ /**
21517
+ * Service Unavailable
21518
+ */
21519
+ 503: Problem;
21202
21520
  };
21203
21521
  export type CreateRateRuleError = CreateRateRuleErrors[keyof CreateRateRuleErrors];
21204
21522
  export type CreateRateRuleResponses = {
@@ -21642,7 +21960,7 @@ export type CancelJobWageDeterminationScheduledTerminationData = {
21642
21960
  };
21643
21961
  export type CancelJobWageDeterminationScheduledTerminationErrors = {
21644
21962
  /**
21645
- * Forbidden
21963
+ * Forbidden (user-scoped key required)
21646
21964
  */
21647
21965
  403: Problem;
21648
21966
  /**
@@ -21691,7 +22009,7 @@ export type ScheduleJobWageDeterminationTerminationErrors = {
21691
22009
  */
21692
22010
  400: Problem;
21693
22011
  /**
21694
- * Forbidden
22012
+ * Forbidden (user-scoped key required)
21695
22013
  */
21696
22014
  403: Problem;
21697
22015
  /**
@@ -22042,7 +22360,7 @@ export type CreateJobErrors = {
22042
22360
  */
22043
22361
  403: Problem;
22044
22362
  /**
22045
- * Template not found
22363
+ * Not Found
22046
22364
  */
22047
22365
  404: Problem;
22048
22366
  /**
@@ -30922,6 +31240,10 @@ export type CreateCompanyErrors = {
30922
31240
  * Forbidden
30923
31241
  */
30924
31242
  403: Problem;
31243
+ /**
31244
+ * Not Found
31245
+ */
31246
+ 404: Problem;
30925
31247
  /**
30926
31248
  * Unprocessable Content
30927
31249
  */