@dsptch-work/api-client 0.19.0 → 0.21.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.
@@ -3704,6 +3704,344 @@ export class OvertimeRules {
3704
3704
  });
3705
3705
  }
3706
3706
  }
3707
+ export class PayRateRules {
3708
+ /**
3709
+ * Shift pay rate rule genesis
3710
+ *
3711
+ * Move where the rule family's valid-time timeline begins. Moving genesis earlier
3712
+ * extends the first version; moving it later removes coverage before the new date.
3713
+ * A shift to or past a standing termination is refused because it would leave no
3714
+ * coverage.
3715
+ *
3716
+ * The response echoes the family's new first version and carries the new family
3717
+ * `ETag`; use history to inspect the whole resulting timeline.
3718
+ *
3719
+ * Conditional: send the rule's `ETag` as `If-Match`.
3720
+ *
3721
+ *
3722
+ * **Required scope:**
3723
+ *
3724
+ * `pay.rates.rule_packages.rules.genesis:update`
3725
+ *
3726
+ */
3727
+ static shiftPayRateRuleGenesis(options) {
3728
+ return (options.client ?? client).patch({
3729
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3730
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/genesis',
3731
+ ...options,
3732
+ headers: {
3733
+ 'Content-Type': 'application/json',
3734
+ ...options.headers
3735
+ }
3736
+ });
3737
+ }
3738
+ /**
3739
+ * List pay rate rule version history
3740
+ *
3741
+ * List one rule's complete valid-time sequence, newest window first. Entries
3742
+ * carry the shared family identity as `pay_rates_rule_id`; their temporal
3743
+ * coordinates distinguish versions. Corrections are empty because this rule
3744
+ * engine has no transaction-time audit layer. Both `as_of[valid]` and
3745
+ * `as_of[transaction]` are rejected because this endpoint returns the complete
3746
+ * valid-time timeline and the resource has no transaction-time axis.
3747
+ *
3748
+ *
3749
+ * **Required scope:**
3750
+ *
3751
+ * `pay.rates.rule_packages.rules.history:read`
3752
+ *
3753
+ */
3754
+ static listPayRateRuleHistory(options) {
3755
+ return (options.client ?? client).get({
3756
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3757
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/history',
3758
+ ...options
3759
+ });
3760
+ }
3761
+ /**
3762
+ * Cancel scheduled pay rate rule changes
3763
+ *
3764
+ * Cancel every version after the baseline selected now, preserving that baseline.
3765
+ * The preserved baseline extends through any gap before the first canceled version.
3766
+ * For a wholly future family, the first future version is the baseline.
3767
+ *
3768
+ * Conditional: send the rule's ETag as If-Match.
3769
+ *
3770
+ *
3771
+ * **Required scope:**
3772
+ *
3773
+ * `pay.rates.rule_packages.rules.scheduled_changes:delete`
3774
+ *
3775
+ */
3776
+ static cancelPayRateRuleScheduledChanges(options) {
3777
+ return (options.client ?? client).delete({
3778
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3779
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/scheduled_changes',
3780
+ ...options
3781
+ });
3782
+ }
3783
+ /**
3784
+ * List scheduled pay rate rule changes
3785
+ *
3786
+ * List every version after the baseline selected now, oldest boundary first. This
3787
+ * paginated timeline slice is the exact set a cancellation removes. Entries carry
3788
+ * pay_rates_rule_id, never an entry-level id; a wholly future family's first
3789
+ * version is its preserved baseline.
3790
+ *
3791
+ *
3792
+ * **Required scope:**
3793
+ *
3794
+ * `pay.rates.rule_packages.rules.scheduled_changes:read`
3795
+ *
3796
+ */
3797
+ static listPayRateRuleScheduledChanges(options) {
3798
+ return (options.client ?? client).get({
3799
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3800
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/scheduled_changes',
3801
+ ...options
3802
+ });
3803
+ }
3804
+ /**
3805
+ * Schedule a pay rate rule change
3806
+ *
3807
+ * Apply a rule recipe from a date forward. Omitted recipe halves carry from the
3808
+ * version affected at that date. Returns 201 only when a new segment is added.
3809
+ * A no-op against the targeted segment leaves later scheduled segments unchanged.
3810
+ *
3811
+ * Conditional: send the rule's ETag as If-Match.
3812
+ *
3813
+ *
3814
+ * **Required scope:**
3815
+ *
3816
+ * `pay.rates.rule_packages.rules.scheduled_changes:create`
3817
+ *
3818
+ */
3819
+ static schedulePayRateRuleChange(options) {
3820
+ return (options.client ?? client).post({
3821
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3822
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/scheduled_changes',
3823
+ ...options,
3824
+ headers: {
3825
+ 'Content-Type': 'application/json',
3826
+ ...options.headers
3827
+ }
3828
+ });
3829
+ }
3830
+ /**
3831
+ * Cancel pay rate rule scheduled termination
3832
+ *
3833
+ * Remove the family's standing finite end and restore an open-ended upper bound.
3834
+ * The response echoes the current or otherwise most-relevant version and carries the
3835
+ * new family `ETag`; use history to inspect the whole reopened timeline. Cancellation
3836
+ * reopens the last surviving version with its existing recipe and does not restore
3837
+ * versions removed when the termination was scheduled.
3838
+ *
3839
+ * Conditional: send the rule's `ETag` as `If-Match`.
3840
+ *
3841
+ *
3842
+ * **Required scope:**
3843
+ *
3844
+ * `pay.rates.rule_packages.rules.scheduled_terminations:delete`
3845
+ *
3846
+ */
3847
+ static cancelPayRateRuleScheduledTermination(options) {
3848
+ return (options.client ?? client).delete({
3849
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3850
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/scheduled_termination',
3851
+ ...options
3852
+ });
3853
+ }
3854
+ /**
3855
+ * Schedule pay rate rule termination
3856
+ *
3857
+ * Close the rule family's valid-time timeline at `effective_date`. The rule remains
3858
+ * readable before that date and stops applying from it. Past, current, and future
3859
+ * dates are accepted when they fall after genesis. A family can have one standing
3860
+ * termination; cancel it before scheduling another. Scheduling removes versions
3861
+ * that start after the new end and truncates the version spanning it.
3862
+ *
3863
+ * The response echoes the family's current or otherwise most-relevant version and
3864
+ * carries the new family `ETag`; use history to inspect the whole resulting timeline.
3865
+ *
3866
+ * Conditional: send the rule's `ETag` as `If-Match`.
3867
+ *
3868
+ *
3869
+ * **Required scope:**
3870
+ *
3871
+ * `pay.rates.rule_packages.rules.scheduled_terminations:create`
3872
+ *
3873
+ */
3874
+ static schedulePayRateRuleTermination(options) {
3875
+ return (options.client ?? client).post({
3876
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3877
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{rule_id}/scheduled_termination',
3878
+ ...options,
3879
+ headers: {
3880
+ 'Content-Type': 'application/json',
3881
+ ...options.headers
3882
+ }
3883
+ });
3884
+ }
3885
+ /**
3886
+ * List pay rate rules
3887
+ *
3888
+ * List the versions of this package's rules valid at one point in time. Each
3889
+ * `id` is stable across that rule's valid-time versions.
3890
+ *
3891
+ *
3892
+ * **Required scope:**
3893
+ *
3894
+ * `pay.rates.rule_packages.rules:read`
3895
+ *
3896
+ */
3897
+ static listPayRateRules(options) {
3898
+ return (options.client ?? client).get({
3899
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3900
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules',
3901
+ ...options
3902
+ });
3903
+ }
3904
+ /**
3905
+ * Create a pay rate rule
3906
+ *
3907
+ * **Required scope:**
3908
+ *
3909
+ * `pay.rates.rule_packages.rules:create`
3910
+ *
3911
+ */
3912
+ static createPayRateRule(options) {
3913
+ return (options.client ?? client).post({
3914
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3915
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules',
3916
+ ...options,
3917
+ headers: {
3918
+ 'Content-Type': 'application/json',
3919
+ ...options.headers
3920
+ }
3921
+ });
3922
+ }
3923
+ /**
3924
+ * Delete a pay rate rule
3925
+ *
3926
+ * Remove every valid-time version of the rule family.
3927
+ *
3928
+ * To preserve history while stopping future applicability, schedule a termination instead.
3929
+ *
3930
+ * Conditional: send the rule's `ETag` as `If-Match`.
3931
+ *
3932
+ *
3933
+ * **Required scope:**
3934
+ *
3935
+ * `pay.rates.rule_packages.rules:delete`
3936
+ *
3937
+ */
3938
+ static deletePayRateRule(options) {
3939
+ return (options.client ?? client).delete({
3940
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3941
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{id}',
3942
+ ...options
3943
+ });
3944
+ }
3945
+ /**
3946
+ * Get a pay rate rule
3947
+ *
3948
+ * Fetch the version of one package rule valid at a point in time.
3949
+ *
3950
+ *
3951
+ * **Required scope:**
3952
+ *
3953
+ * `pay.rates.rule_packages.rules:read`
3954
+ *
3955
+ */
3956
+ static getPayRateRule(options) {
3957
+ return (options.client ?? client).get({
3958
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3959
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{id}',
3960
+ ...options
3961
+ });
3962
+ }
3963
+ /**
3964
+ * Update a pay rate rule
3965
+ *
3966
+ * Change a rule from an effective date forward. Omitted effect or conditions
3967
+ * keep that part of the targeted version. When the targeted recipe changes, the
3968
+ * resulting complete recipe applies from that coordinate across later scheduled
3969
+ * versions; an unchanged recipe does not alter later scheduled versions. Omit `effective_from` to
3970
+ * correct the version valid now — or the nearest past/future version when none is
3971
+ * valid now — from its exact existing start. A beginless version requires an
3972
+ * explicit date.
3973
+ *
3974
+ * Conditional: send the rule's `ETag` as `If-Match`.
3975
+ *
3976
+ *
3977
+ * **Required scope:**
3978
+ *
3979
+ * `pay.rates.rule_packages.rules:update`
3980
+ *
3981
+ */
3982
+ static updatePayRateRule(options) {
3983
+ return (options.client ?? client).patch({
3984
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
3985
+ url: '/api/v1/pay/rates/rule_packages/{rule_package_id}/rules/{id}',
3986
+ ...options,
3987
+ headers: {
3988
+ 'Content-Type': 'application/json',
3989
+ ...options.headers
3990
+ }
3991
+ });
3992
+ }
3993
+ }
3994
+ export class PayRateRulePackages {
3995
+ /**
3996
+ * List pay rate rule packages
3997
+ *
3998
+ * **Required scope:**
3999
+ *
4000
+ * `pay.rates.rule_packages:read`
4001
+ *
4002
+ */
4003
+ static listPayRateRulePackages(options) {
4004
+ return (options?.client ?? client).get({
4005
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
4006
+ url: '/api/v1/pay/rates/rule_packages',
4007
+ ...options
4008
+ });
4009
+ }
4010
+ /**
4011
+ * Create a pay rate rule package
4012
+ *
4013
+ * **Required scope:**
4014
+ *
4015
+ * `pay.rates.rule_packages:create`
4016
+ *
4017
+ */
4018
+ static createPayRateRulePackage(options) {
4019
+ return (options.client ?? client).post({
4020
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
4021
+ url: '/api/v1/pay/rates/rule_packages',
4022
+ ...options,
4023
+ headers: {
4024
+ 'Content-Type': 'application/json',
4025
+ ...options.headers
4026
+ }
4027
+ });
4028
+ }
4029
+ /**
4030
+ * Get a pay rate rule package
4031
+ *
4032
+ * **Required scope:**
4033
+ *
4034
+ * `pay.rates.rule_packages:read`
4035
+ *
4036
+ */
4037
+ static getPayRateRulePackage(options) {
4038
+ return (options.client ?? client).get({
4039
+ security: [{ name: 'X-Api-Key', type: 'apiKey' }],
4040
+ url: '/api/v1/pay/rates/rule_packages/{id}',
4041
+ ...options
4042
+ });
4043
+ }
4044
+ }
3707
4045
  export class AggregateTimeImports {
3708
4046
  /**
3709
4047
  * List Aggregate Time Imports
@@ -4367,7 +4705,9 @@ export class People {
4367
4705
  *
4368
4706
  * Every valid-time version of one employment stint, newest first. Each
4369
4707
  * entry uses `people_employment_id` rather than an entry-level id and
4370
- * includes prior recorded corrections.
4708
+ * includes prior recorded corrections. Company managers may read
4709
+ * coworker history, but direct monetary fields are limited to their
4710
+ * own employment in versions and corrections.
4371
4711
  *
4372
4712
  *
4373
4713
  * **Required scope:**
@@ -4386,7 +4726,9 @@ export class People {
4386
4726
  * List employment histories
4387
4727
  *
4388
4728
  * Employment history across all authorized stints in the credential
4389
- * company, including ended stints and rehired employments.
4729
+ * company, including ended stints and rehired employments. Company
4730
+ * managers receive direct monetary fields only for their own
4731
+ * employment in versions and corrections.
4390
4732
  *
4391
4733
  *
4392
4734
  * **Required scope:**
@@ -4405,8 +4747,9 @@ export class People {
4405
4747
  * List employments
4406
4748
  *
4407
4749
  * Current employments in the credential company, or versions at
4408
- * `as_of[valid]`. A user key sees its own records unless it is a
4409
- * company administrator.
4750
+ * `as_of[valid]`. Company managers and administrators see every
4751
+ * company employment. Managers receive direct monetary fields only
4752
+ * for their own employment. Other user keys see only their own records.
4410
4753
  *
4411
4754
  *
4412
4755
  * **Required scope:**
@@ -4424,6 +4767,11 @@ export class People {
4424
4767
  /**
4425
4768
  * Get employment
4426
4769
  *
4770
+ * The employment version covering now or `as_of[valid]`. Company
4771
+ * managers may read coworkers, but receive direct monetary fields
4772
+ * only for their own employment.
4773
+ *
4774
+ *
4427
4775
  * **Required scope:**
4428
4776
  *
4429
4777
  * `people.employments:read`
@@ -4719,9 +5067,11 @@ export class Projects {
4719
5067
  *
4720
5068
  * List the company's projects — the top-level containers that organize jobs into
4721
5069
  * federal and regional PWA compliance scopes. Returned oldest first (ordered by
4722
- * creation time, then id) and scoped to the API key's company, so projects owned
4723
- * by other companies are excluded. Narrow with the `filter[...]` query parameters
4724
- * and the `created_at`/`updated_at` time filters; results are paginated.
5070
+ * creation time, then id) and scoped to projects owned by the API key's company,
5071
+ * their descendants, and projects where the company participates. User-scoped
5072
+ * keys also require the user's own project access. Narrow with the `filter[...]`
5073
+ * query parameters and the `created_at`/`updated_at` time filters; results are
5074
+ * paginated.
4725
5075
  *
4726
5076
  *
4727
5077
  * **Required scope:**
@@ -4746,10 +5096,11 @@ export class Projects {
4746
5096
  * prevailing-wage lock-in / beginning-of-construction / placed-in-service dates)
4747
5097
  * and `asset_owner` apply only while `federal_pwa_mode` is not `none`, so sending
4748
5098
  * one of them on a project that tracks no federal PWA — even as null — returns
4749
- * 422. Returns 201 with the created project; a duplicate name within the
4750
- * company, a creator outside the owning company, end_date before start_date, an
4751
- * unknown PWA mode, an unparseable date, or a regional mode without a region each
4752
- * return 422.
5099
+ * 422. `parent_id` may name a project visible to the API key's policy, and
5100
+ * `participating_company_ids` is the complete set of participating companies.
5101
+ * Remove a participant's jobs before removing it from this set. Returns 201
5102
+ * with the project; unknown or inaccessible parent or
5103
+ * company IDs return 404, and invalid attributes or relationships return 422.
4753
5104
  *
4754
5105
  *
4755
5106
  * **Required scope:**
@@ -4771,8 +5122,10 @@ export class Projects {
4771
5122
  /**
4772
5123
  * Show project
4773
5124
  *
4774
- * Fetch a single project by id. Scoped to the API key's company — a project owned
4775
- * by another company, or an unknown id, returns 404.
5125
+ * Fetch a single project by id. A company-scoped key can read its owned projects,
5126
+ * their descendants, and projects where the company participates. User-scoped
5127
+ * keys also require the user's own project access. An unrelated project or an
5128
+ * unknown id returns 404.
4776
5129
  *
4777
5130
  *
4778
5131
  * **Required scope:**
@@ -4796,8 +5149,10 @@ export class Projects {
4796
5149
  * dates) and `asset_owner` apply only while `federal_pwa_mode` is not `none`:
4797
5150
  * switching it to `none` clears the stored values and forces `asset_owner`
4798
5151
  * false, and sending one of them while federal tracking is off — even as null —
4799
- * returns 422. `budget_currency` defaults to USD when blank. A project owned by
4800
- * another company, or an unknown id, returns 404.
5152
+ * returns 422. `budget_currency` defaults to USD when blank. `parent_id` moves
5153
+ * or detaches the project, and `participating_company_ids` replaces the complete
5154
+ * set of participating companies. Remove a participant's jobs before removing
5155
+ * it from this set. Only the owning company may update the project.
4801
5156
  *
4802
5157
  *
4803
5158
  * **Required scope:**
@@ -6314,7 +6669,7 @@ export class WageDeterminations {
6314
6669
  /**
6315
6670
  * List boundary links
6316
6671
  *
6317
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6672
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6318
6673
  *
6319
6674
  * **Required scope:**
6320
6675
  *
@@ -6331,7 +6686,7 @@ export class WageDeterminations {
6331
6686
  /**
6332
6687
  * List construction types
6333
6688
  *
6334
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6689
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6335
6690
  *
6336
6691
  * **Required scope:**
6337
6692
  *
@@ -6348,7 +6703,7 @@ export class WageDeterminations {
6348
6703
  /**
6349
6704
  * List labor rates
6350
6705
  *
6351
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6706
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6352
6707
  *
6353
6708
  * **Required scope:**
6354
6709
  *
@@ -6365,7 +6720,7 @@ export class WageDeterminations {
6365
6720
  /**
6366
6721
  * List project types
6367
6722
  *
6368
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6723
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6369
6724
  *
6370
6725
  * **Required scope:**
6371
6726
  *
@@ -6382,7 +6737,7 @@ export class WageDeterminations {
6382
6737
  /**
6383
6738
  * List reference items
6384
6739
  *
6385
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6740
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6386
6741
  *
6387
6742
  * **Required scope:**
6388
6743
  *
@@ -6399,7 +6754,7 @@ export class WageDeterminations {
6399
6754
  /**
6400
6755
  * List wage classifications
6401
6756
  *
6402
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6757
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6403
6758
  *
6404
6759
  * **Required scope:**
6405
6760
  *
@@ -6416,7 +6771,7 @@ export class WageDeterminations {
6416
6771
  /**
6417
6772
  * List wage determinations
6418
6773
  *
6419
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6774
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6420
6775
  *
6421
6776
  * **Required scope:**
6422
6777
  *
@@ -6433,7 +6788,7 @@ export class WageDeterminations {
6433
6788
  /**
6434
6789
  * Show wage determination
6435
6790
  *
6436
- * Company and user keys require the paid wage determinations entitlement on the acting company. Trusted application keys bypass this product gate.
6791
+ * Company and user keys require the paid wage determinations entitlement on the acting company.
6437
6792
  *
6438
6793
  * **Required scope:**
6439
6794
  *