@productcraft/platform-auth 0.0.13 → 0.1.1

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.
package/dist/index.d.cts CHANGED
@@ -319,6 +319,54 @@ interface paths {
319
319
  patch?: never;
320
320
  trace?: never;
321
321
  };
322
+ "/v1/me/hidden-guides": {
323
+ parameters: {
324
+ query?: never;
325
+ header?: never;
326
+ path?: never;
327
+ cookie?: never;
328
+ };
329
+ /**
330
+ * List the getting-started guides the caller has hidden.
331
+ * @description Every guide the caller has hidden in the console, newest first. Hiding is presentation only: the setup status behind a guide is unchanged.
332
+ */
333
+ get: operations["HiddenGuidesController_list"];
334
+ put?: never;
335
+ post?: never;
336
+ /**
337
+ * Show every getting-started guide again.
338
+ * @description Removes every hidden guide for the caller, `all` included. Idempotent.
339
+ */
340
+ delete: operations["HiddenGuidesController_showAll"];
341
+ options?: never;
342
+ head?: never;
343
+ patch?: never;
344
+ trace?: never;
345
+ };
346
+ "/v1/me/hidden-guides/{key}": {
347
+ parameters: {
348
+ query?: never;
349
+ header?: never;
350
+ path?: never;
351
+ cookie?: never;
352
+ };
353
+ get?: never;
354
+ /**
355
+ * Hide a getting-started guide for the caller.
356
+ * @description Idempotent: hiding a guide that is already hidden returns it unchanged, with its first `hidden_at`. At most 200 are kept; hiding one more drops the oldest.
357
+ */
358
+ put: operations["HiddenGuidesController_hide"];
359
+ post?: never;
360
+ /**
361
+ * Show a hidden getting-started guide again.
362
+ * @description Idempotent: showing a guide that is not hidden is a no-op.
363
+ */
364
+ delete: operations["HiddenGuidesController_show"];
365
+ options?: never;
366
+ head?: never;
367
+ patch?: never;
368
+ trace?: never;
369
+ };
322
370
  "/v1/me/profile": {
323
371
  parameters: {
324
372
  query?: never;
@@ -345,7 +393,7 @@ interface paths {
345
393
  };
346
394
  /**
347
395
  * OAuth 2.1 authorization endpoint
348
- * @description Requires PKCE with `code_challenge_method=S256`; `plain` and a missing challenge are both rejected. `redirect_uri` must match a registered URI exactly, with only the RFC 8252 §7.3 loopback port relaxation. Responds 302 either to sign-in (no session) or to the consent screen.
396
+ * @description Requires PKCE with `code_challenge_method=S256`; a session that has been signed out counts as no session; `plain` and a missing challenge are both rejected. `redirect_uri` must match a registered URI exactly, with only the RFC 8252 §7.3 loopback port relaxation. Responds 302 either to sign-in (no session) or to the consent screen.
349
397
  */
350
398
  get: operations["OAuthAuthorizeController_authorize"];
351
399
  put?: never;
@@ -1159,11 +1207,11 @@ interface paths {
1159
1207
  get: operations["WorkspacePolicyController_get"];
1160
1208
  put?: never;
1161
1209
  post?: never;
1162
- /** Delete a managed policy. Cascades: API keys lose the binding (deny-all if no other bindings remain); roles fall back to their inline policy column. Cookie/JWT only. */
1210
+ /** Delete a managed policy. Cascades: API keys lose the binding (deny-all if no other bindings remain); roles fall back to their inline policy column. Owners and admins; a policy bound to a role, or a preset policy, only an owner can delete. Cookie/JWT only. */
1163
1211
  delete: operations["WorkspacePolicyController_delete"];
1164
1212
  options?: never;
1165
1213
  head?: never;
1166
- /** Update a managed policy. Cookie/JWT only — policy authoring is a human-admin surface. */
1214
+ /** Update a managed policy. Owners and admins; a policy bound to a role, or a preset policy, only an owner can edit. Cookie/JWT only — policy authoring is a human-admin surface. */
1167
1215
  patch: operations["WorkspacePolicyController_update"];
1168
1216
  trace?: never;
1169
1217
  };
@@ -1884,10 +1932,16 @@ interface components {
1884
1932
  */
1885
1933
  message: string | string[];
1886
1934
  /**
1887
- * @description HTTP status code echoed in the body. Spelled `statusCode` (camelCase) in every ProductCraft API.
1935
+ * @deprecated
1936
+ * @description Deprecated alias of `status_code`, same value. Kept so existing clients keep working; read `status_code`. Error responses carry `Deprecation: true` while it is sent.
1888
1937
  * @example 403
1889
1938
  */
1890
- statusCode: number;
1939
+ statusCode?: number;
1940
+ /**
1941
+ * @description HTTP status code echoed in the body (`status_code`). `statusCode` carries the same value as a deprecated alias.
1942
+ * @example 403
1943
+ */
1944
+ status_code: number;
1891
1945
  };
1892
1946
  FeedItemDto: {
1893
1947
  /**
@@ -1929,6 +1983,22 @@ interface components {
1929
1983
  */
1930
1984
  message: string;
1931
1985
  };
1986
+ HiddenGuideDto: {
1987
+ /**
1988
+ * Format: date-time
1989
+ * @description When the guide was first hidden.
1990
+ */
1991
+ hidden_at: string;
1992
+ /**
1993
+ * @description The guide: a surface name, optionally followed by `:` and the id of the resource the guide belongs to. The console uses `dashboard:<workspace id>`, `auth_app:<app id>`, `waitlist_quickstart:<waitlist id>`, `waitlist_steps:<workspace id>`, `community_quickstart:<community id>`, `trawl_quickstart:<workspace id>`, `mail_quickstart:<workspace id>`, and `all` for "never show getting-started guides".
1994
+ * @example auth_app:3f2c9a4e-8b1d-4c6e-9f2a-1b2c3d4e5f60
1995
+ */
1996
+ key: string;
1997
+ };
1998
+ HiddenGuidesDto: {
1999
+ /** @description Every guide the caller has hidden, newest first. A bounded set (at most 200; hiding one more drops the oldest), so it is returned whole rather than paginated. */
2000
+ guides: components["schemas"]["HiddenGuideDto"][];
2001
+ };
1932
2002
  IntrospectAccountDto: {
1933
2003
  /** @description Public HTTPS URL of the uploaded avatar, or null when no avatar is set. */
1934
2004
  avatar_url: string | null;
@@ -1966,6 +2036,7 @@ interface components {
1966
2036
  };
1967
2037
  IntrospectResponseDto: {
1968
2038
  account?: components["schemas"]["IntrospectAccountDto"] | null;
2039
+ /** @description False for an anonymous caller and for an access token whose session has been signed out. */
1969
2040
  is_authenticated: boolean;
1970
2041
  principal?: components["schemas"]["IntrospectPrincipalDto"] | null;
1971
2042
  workspaces?: components["schemas"]["IntrospectWorkspaceListItemDto"][];
@@ -2112,9 +2183,31 @@ interface components {
2112
2183
  */
2113
2184
  refresh_token: string;
2114
2185
  };
2186
+ ManagedPolicyDeletedResponseDto: {
2187
+ /**
2188
+ * @description Live API keys that were bound to the policy and lost the binding. A key with no binding left falls back to deny-all.
2189
+ * @example 3
2190
+ */
2191
+ bound_key_count: number;
2192
+ /**
2193
+ * @example true
2194
+ * @enum {number}
2195
+ */
2196
+ deleted: true;
2197
+ /**
2198
+ * Format: uuid
2199
+ * @description The deleted policy.
2200
+ */
2201
+ id: string;
2202
+ };
2115
2203
  ManagedPolicyDetailResponseDto: {
2116
2204
  /** @description Counts of currently-bound consumers — surface this in delete-confirm UX so the operator sees cascade impact. */
2117
2205
  binding_count: components["schemas"]["PolicyBindingCountDto"];
2206
+ /**
2207
+ * @description Live (not revoked, not expired) API keys bound to this policy — the keys a save or delete affects. Show it in the confirm step before saving or deleting.
2208
+ * @example 3
2209
+ */
2210
+ bound_key_count: number;
2118
2211
  /** Format: date-time */
2119
2212
  created_at: string;
2120
2213
  /**
@@ -3426,7 +3519,7 @@ interface operations {
3426
3519
  "application/json": components["schemas"]["IntrospectResponseDto"];
3427
3520
  };
3428
3521
  };
3429
- /** @description Rate limited: more than 60 requests/min from this IP (default bucket). Anonymous callers otherwise get 200 with `is_authenticated: false`, never 401. */
3522
+ /** @description Rate limited: more than 60 requests/min from this IP (default bucket). Anonymous callers, and callers whose session has been signed out, otherwise get 200 with `is_authenticated: false`, never 401. */
3430
3523
  429: {
3431
3524
  headers: {
3432
3525
  [name: string]: unknown;
@@ -3486,7 +3579,7 @@ interface operations {
3486
3579
  "application/json": components["schemas"]["IntrospectWorkspaceResponseDto"];
3487
3580
  };
3488
3581
  };
3489
- /** @description Missing or invalid session. */
3582
+ /** @description Missing or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
3490
3583
  401: {
3491
3584
  headers: {
3492
3585
  [name: string]: unknown;
@@ -3617,6 +3710,177 @@ interface operations {
3617
3710
  };
3618
3711
  };
3619
3712
  };
3713
+ HiddenGuidesController_list: {
3714
+ parameters: {
3715
+ query?: never;
3716
+ header?: never;
3717
+ path?: never;
3718
+ cookie?: never;
3719
+ };
3720
+ requestBody?: never;
3721
+ responses: {
3722
+ 200: {
3723
+ headers: {
3724
+ [name: string]: unknown;
3725
+ };
3726
+ content: {
3727
+ "application/json": components["schemas"]["HiddenGuidesDto"];
3728
+ };
3729
+ };
3730
+ /** @description No session. */
3731
+ 401: {
3732
+ headers: {
3733
+ [name: string]: unknown;
3734
+ };
3735
+ content: {
3736
+ "application/json": components["schemas"]["ErrorResponseDto"];
3737
+ };
3738
+ };
3739
+ /** @description The caller authenticated with a non-human principal (e.g. a workspace API key). Hidden guides are a person's console preference. */
3740
+ 403: {
3741
+ headers: {
3742
+ [name: string]: unknown;
3743
+ };
3744
+ content: {
3745
+ "application/json": components["schemas"]["ErrorResponseDto"];
3746
+ };
3747
+ };
3748
+ };
3749
+ };
3750
+ HiddenGuidesController_showAll: {
3751
+ parameters: {
3752
+ query?: never;
3753
+ header?: never;
3754
+ path?: never;
3755
+ cookie?: never;
3756
+ };
3757
+ requestBody?: never;
3758
+ responses: {
3759
+ /** @description Every guide shows again. */
3760
+ 204: {
3761
+ headers: {
3762
+ [name: string]: unknown;
3763
+ };
3764
+ content?: never;
3765
+ };
3766
+ /** @description No session. */
3767
+ 401: {
3768
+ headers: {
3769
+ [name: string]: unknown;
3770
+ };
3771
+ content: {
3772
+ "application/json": components["schemas"]["ErrorResponseDto"];
3773
+ };
3774
+ };
3775
+ /** @description The caller authenticated with a non-human principal (e.g. a workspace API key). Hidden guides are a person's console preference. */
3776
+ 403: {
3777
+ headers: {
3778
+ [name: string]: unknown;
3779
+ };
3780
+ content: {
3781
+ "application/json": components["schemas"]["ErrorResponseDto"];
3782
+ };
3783
+ };
3784
+ };
3785
+ };
3786
+ HiddenGuidesController_hide: {
3787
+ parameters: {
3788
+ query?: never;
3789
+ header?: never;
3790
+ path: {
3791
+ /** @description The guide: a surface name, optionally followed by `:` and a resource id, e.g. `dashboard:<workspace id>` or `all`. */
3792
+ key: string;
3793
+ };
3794
+ cookie?: never;
3795
+ };
3796
+ requestBody?: never;
3797
+ responses: {
3798
+ /** @description The guide is hidden. */
3799
+ 200: {
3800
+ headers: {
3801
+ [name: string]: unknown;
3802
+ };
3803
+ content: {
3804
+ "application/json": components["schemas"]["HiddenGuideDto"];
3805
+ };
3806
+ };
3807
+ /** @description The key is not a valid guide key. */
3808
+ 400: {
3809
+ headers: {
3810
+ [name: string]: unknown;
3811
+ };
3812
+ content: {
3813
+ "application/json": components["schemas"]["ErrorResponseDto"];
3814
+ };
3815
+ };
3816
+ /** @description No session. */
3817
+ 401: {
3818
+ headers: {
3819
+ [name: string]: unknown;
3820
+ };
3821
+ content: {
3822
+ "application/json": components["schemas"]["ErrorResponseDto"];
3823
+ };
3824
+ };
3825
+ /** @description The caller authenticated with a non-human principal (e.g. a workspace API key). Hidden guides are a person's console preference. */
3826
+ 403: {
3827
+ headers: {
3828
+ [name: string]: unknown;
3829
+ };
3830
+ content: {
3831
+ "application/json": components["schemas"]["ErrorResponseDto"];
3832
+ };
3833
+ };
3834
+ };
3835
+ };
3836
+ HiddenGuidesController_show: {
3837
+ parameters: {
3838
+ query?: never;
3839
+ header?: never;
3840
+ path: {
3841
+ /** @description The guide: a surface name, optionally followed by `:` and a resource id, e.g. `dashboard:<workspace id>` or `all`. */
3842
+ key: string;
3843
+ };
3844
+ cookie?: never;
3845
+ };
3846
+ requestBody?: never;
3847
+ responses: {
3848
+ /** @description The guide shows again (or was not hidden). */
3849
+ 204: {
3850
+ headers: {
3851
+ [name: string]: unknown;
3852
+ };
3853
+ content?: never;
3854
+ };
3855
+ /** @description The key is not a valid guide key. */
3856
+ 400: {
3857
+ headers: {
3858
+ [name: string]: unknown;
3859
+ };
3860
+ content: {
3861
+ "application/json": components["schemas"]["ErrorResponseDto"];
3862
+ };
3863
+ };
3864
+ /** @description No session. */
3865
+ 401: {
3866
+ headers: {
3867
+ [name: string]: unknown;
3868
+ };
3869
+ content: {
3870
+ "application/json": components["schemas"]["ErrorResponseDto"];
3871
+ };
3872
+ };
3873
+ /** @description The caller authenticated with a non-human principal (e.g. a workspace API key). Hidden guides are a person's console preference. */
3874
+ 403: {
3875
+ headers: {
3876
+ [name: string]: unknown;
3877
+ };
3878
+ content: {
3879
+ "application/json": components["schemas"]["ErrorResponseDto"];
3880
+ };
3881
+ };
3882
+ };
3883
+ };
3620
3884
  MeController_updateProfile: {
3621
3885
  parameters: {
3622
3886
  query?: never;
@@ -3807,7 +4071,7 @@ interface operations {
3807
4071
  "application/json": components["schemas"]["ConsentRequestDto"];
3808
4072
  };
3809
4073
  };
3810
- /** @description Missing, invalid or expired bearer token. */
4074
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
3811
4075
  401: {
3812
4076
  headers: {
3813
4077
  [name: string]: unknown;
@@ -3877,7 +4141,7 @@ interface operations {
3877
4141
  "application/json": components["schemas"]["ErrorResponseDto"];
3878
4142
  };
3879
4143
  };
3880
- /** @description Missing, invalid or expired bearer token. */
4144
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
3881
4145
  401: {
3882
4146
  headers: {
3883
4147
  [name: string]: unknown;
@@ -4439,7 +4703,7 @@ interface operations {
4439
4703
  };
4440
4704
  content?: never;
4441
4705
  };
4442
- /** @description Missing, invalid or expired bearer token. */
4706
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
4443
4707
  401: {
4444
4708
  headers: {
4445
4709
  [name: string]: unknown;
@@ -4766,7 +5030,7 @@ interface operations {
4766
5030
  "application/json": components["schemas"]["ErrorResponseDto"];
4767
5031
  };
4768
5032
  };
4769
- /** @description Missing or invalid session. */
5033
+ /** @description Missing or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
4770
5034
  401: {
4771
5035
  headers: {
4772
5036
  [name: string]: unknown;
@@ -4950,7 +5214,7 @@ interface operations {
4950
5214
  };
4951
5215
  content?: never;
4952
5216
  };
4953
- /** @description Missing, invalid or expired bearer token. */
5217
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
4954
5218
  401: {
4955
5219
  headers: {
4956
5220
  [name: string]: unknown;
@@ -5116,7 +5380,7 @@ interface operations {
5116
5380
  "application/json": components["schemas"]["ErrorResponseDto"];
5117
5381
  };
5118
5382
  };
5119
- /** @description Missing, malformed or invalid session. */
5383
+ /** @description Missing, malformed or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
5120
5384
  401: {
5121
5385
  headers: {
5122
5386
  [name: string]: unknown;
@@ -5225,7 +5489,7 @@ interface operations {
5225
5489
  "application/json": components["schemas"]["ErrorResponseDto"];
5226
5490
  };
5227
5491
  };
5228
- /** @description Missing, malformed or invalid session. */
5492
+ /** @description Missing, malformed or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
5229
5493
  401: {
5230
5494
  headers: {
5231
5495
  [name: string]: unknown;
@@ -5343,7 +5607,7 @@ interface operations {
5343
5607
  "application/json": components["schemas"]["ErrorResponseDto"];
5344
5608
  };
5345
5609
  };
5346
- /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). */
5610
+ /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). Also a session that has been signed out (`SESSION_REVOKED`). */
5347
5611
  401: {
5348
5612
  headers: {
5349
5613
  [name: string]: unknown;
@@ -5405,7 +5669,7 @@ interface operations {
5405
5669
  "application/json": components["schemas"]["ErrorResponseDto"];
5406
5670
  };
5407
5671
  };
5408
- /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). */
5672
+ /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). Also a session that has been signed out (`SESSION_REVOKED`). */
5409
5673
  401: {
5410
5674
  headers: {
5411
5675
  [name: string]: unknown;
@@ -5477,7 +5741,7 @@ interface operations {
5477
5741
  "application/json": components["schemas"]["ErrorResponseDto"];
5478
5742
  };
5479
5743
  };
5480
- /** @description Missing, invalid or expired bearer token. */
5744
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
5481
5745
  401: {
5482
5746
  headers: {
5483
5747
  [name: string]: unknown;
@@ -5539,7 +5803,7 @@ interface operations {
5539
5803
  "application/json": components["schemas"]["RotatePakResponseDto"];
5540
5804
  };
5541
5805
  };
5542
- /** @description Missing, invalid or expired bearer token. */
5806
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
5543
5807
  401: {
5544
5808
  headers: {
5545
5809
  [name: string]: unknown;
@@ -5970,7 +6234,7 @@ interface operations {
5970
6234
  "application/json": components["schemas"]["ErrorResponseDto"];
5971
6235
  };
5972
6236
  };
5973
- /** @description Missing or invalid session. */
6237
+ /** @description Missing or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
5974
6238
  401: {
5975
6239
  headers: {
5976
6240
  [name: string]: unknown;
@@ -5979,7 +6243,7 @@ interface operations {
5979
6243
  "application/json": components["schemas"]["ErrorResponseDto"];
5980
6244
  };
5981
6245
  };
5982
- /** @description Caller is a PAK (`pcft_live_*`), email not verified (`EMAIL_NOT_VERIFIED`), not a member (`NOT_A_MEMBER`), lacks `workspace.member.invite`, or a non-owner tried to invite an owner (`OWNER_ROLE_REQUIRED`). */
6246
+ /** @description Caller is a PAK (`pcft_live_*`), email not verified (`EMAIL_NOT_VERIFIED`), not a member (`NOT_A_MEMBER`), lacks `workspace.member.invite`, a non-owner tried to invite an owner (`OWNER_ROLE_REQUIRED`), or the role holds permissions the caller does not (`MEMBER_RANK_EXCEEDED`). */
5983
6247
  403: {
5984
6248
  headers: {
5985
6249
  [name: string]: unknown;
@@ -6018,7 +6282,7 @@ interface operations {
6018
6282
  };
6019
6283
  content?: never;
6020
6284
  };
6021
- /** @description Missing or invalid session. */
6285
+ /** @description Missing or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
6022
6286
  401: {
6023
6287
  headers: {
6024
6288
  [name: string]: unknown;
@@ -6132,7 +6396,7 @@ interface operations {
6132
6396
  };
6133
6397
  content?: never;
6134
6398
  };
6135
- /** @description Missing or invalid session. */
6399
+ /** @description Missing or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
6136
6400
  401: {
6137
6401
  headers: {
6138
6402
  [name: string]: unknown;
@@ -6141,7 +6405,7 @@ interface operations {
6141
6405
  "application/json": components["schemas"]["ErrorResponseDto"];
6142
6406
  };
6143
6407
  };
6144
- /** @description Caller is not a member of this workspace (`NOT_A_MEMBER`), or lacks `workspace.member.remove` (not required for self-leave). */
6408
+ /** @description Caller is not a member of this workspace (`NOT_A_MEMBER`), lacks `workspace.member.remove` (not required for self-leave), or the target outranks the caller (`MEMBER_RANK_EXCEEDED`: only an owner can remove an owner, and the target role's permissions must all be held by the caller). */
6145
6409
  403: {
6146
6410
  headers: {
6147
6411
  [name: string]: unknown;
@@ -6203,7 +6467,7 @@ interface operations {
6203
6467
  "application/json": components["schemas"]["ErrorResponseDto"];
6204
6468
  };
6205
6469
  };
6206
- /** @description Missing or invalid session. */
6470
+ /** @description Missing or invalid session. Also a session that has been signed out (`SESSION_REVOKED`). */
6207
6471
  401: {
6208
6472
  headers: {
6209
6473
  [name: string]: unknown;
@@ -6212,7 +6476,7 @@ interface operations {
6212
6476
  "application/json": components["schemas"]["ErrorResponseDto"];
6213
6477
  };
6214
6478
  };
6215
- /** @description Caller is not a member of this workspace (`NOT_A_MEMBER`), lacks `workspace.member.update-role`, or a non-owner tried to assign the owner role or change an owner (`OWNER_ROLE_REQUIRED`). */
6479
+ /** @description Caller is not a member of this workspace (`NOT_A_MEMBER`), lacks `workspace.member.update-role`, a non-owner tried to assign the owner role or change an owner (`OWNER_ROLE_REQUIRED`), or a non-owner tried to change a role to or from one holding permissions the caller lacks (`MEMBER_RANK_EXCEEDED`). Admins may make admins, never owners. */
6216
6480
  403: {
6217
6481
  headers: {
6218
6482
  [name: string]: unknown;
@@ -6310,7 +6574,16 @@ interface operations {
6310
6574
  "application/json": components["schemas"]["ManagedPolicyResponseDto"];
6311
6575
  };
6312
6576
  };
6313
- /** @description Missing, invalid or expired bearer token. */
6577
+ /** @description Invalid policy shape, name, or condition block. */
6578
+ 400: {
6579
+ headers: {
6580
+ [name: string]: unknown;
6581
+ };
6582
+ content: {
6583
+ "application/json": components["schemas"]["ErrorResponseDto"];
6584
+ };
6585
+ };
6586
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
6314
6587
  401: {
6315
6588
  headers: {
6316
6589
  [name: string]: unknown;
@@ -6319,7 +6592,16 @@ interface operations {
6319
6592
  "application/json": components["schemas"]["ErrorResponseDto"];
6320
6593
  };
6321
6594
  };
6322
- /** @description Name already in use. */
6595
+ /** @description Caller is not a member (`NOT_A_MEMBER`), lacks `workspace.policy.create` (owner and admin hold it by default), or the policy grants an action the caller does not hold. */
6596
+ 403: {
6597
+ headers: {
6598
+ [name: string]: unknown;
6599
+ };
6600
+ content: {
6601
+ "application/json": components["schemas"]["ErrorResponseDto"];
6602
+ };
6603
+ };
6604
+ /** @description Name already in use, or the workspace already has 100 policies. */
6323
6605
  409: {
6324
6606
  headers: {
6325
6607
  [name: string]: unknown;
@@ -6431,14 +6713,16 @@ interface operations {
6431
6713
  };
6432
6714
  requestBody?: never;
6433
6715
  responses: {
6434
- /** @description Policy deleted. */
6435
- 204: {
6716
+ /** @description Policy deleted. `bound_key_count` is the number of live API keys that lost the binding. */
6717
+ 200: {
6436
6718
  headers: {
6437
6719
  [name: string]: unknown;
6438
6720
  };
6439
- content?: never;
6721
+ content: {
6722
+ "application/json": components["schemas"]["ManagedPolicyDeletedResponseDto"];
6723
+ };
6440
6724
  };
6441
- /** @description Missing, invalid or expired bearer token. */
6725
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
6442
6726
  401: {
6443
6727
  headers: {
6444
6728
  [name: string]: unknown;
@@ -6447,7 +6731,16 @@ interface operations {
6447
6731
  "application/json": components["schemas"]["ErrorResponseDto"];
6448
6732
  };
6449
6733
  };
6450
- /** @description Policy not found in this workspace. */
6734
+ /** @description Caller lacks `workspace.policy.delete`, or is not an owner and the policy is bound to a role or is a preset policy (`OWNER_ROLE_REQUIRED`). */
6735
+ 403: {
6736
+ headers: {
6737
+ [name: string]: unknown;
6738
+ };
6739
+ content: {
6740
+ "application/json": components["schemas"]["ErrorResponseDto"];
6741
+ };
6742
+ };
6743
+ /** @description Policy not found in this workspace (`POLICY_NOT_FOUND`). */
6451
6744
  404: {
6452
6745
  headers: {
6453
6746
  [name: string]: unknown;
@@ -6474,7 +6767,7 @@ interface operations {
6474
6767
  };
6475
6768
  };
6476
6769
  responses: {
6477
- /** @description Updated policy. */
6770
+ /** @description Updated policy. `bound_key_count` is the number of live API keys the change applies to. */
6478
6771
  200: {
6479
6772
  headers: {
6480
6773
  [name: string]: unknown;
@@ -6492,7 +6785,7 @@ interface operations {
6492
6785
  "application/json": components["schemas"]["ErrorResponseDto"];
6493
6786
  };
6494
6787
  };
6495
- /** @description Missing, invalid or expired bearer token. */
6788
+ /** @description Missing or invalid session, or a session that has been signed out (`SESSION_REVOKED`). */
6496
6789
  401: {
6497
6790
  headers: {
6498
6791
  [name: string]: unknown;
@@ -6501,7 +6794,7 @@ interface operations {
6501
6794
  "application/json": components["schemas"]["ErrorResponseDto"];
6502
6795
  };
6503
6796
  };
6504
- /** @description Caller cannot grant one or more requested actions. */
6797
+ /** @description Caller lacks `workspace.policy.update`, cannot grant one or more requested actions, or is not an owner and the policy is bound to a role or is a preset policy (`OWNER_ROLE_REQUIRED`). */
6505
6798
  403: {
6506
6799
  headers: {
6507
6800
  [name: string]: unknown;
@@ -6510,7 +6803,7 @@ interface operations {
6510
6803
  "application/json": components["schemas"]["ErrorResponseDto"];
6511
6804
  };
6512
6805
  };
6513
- /** @description Policy not found in this workspace. */
6806
+ /** @description Policy not found in this workspace (`POLICY_NOT_FOUND`). */
6514
6807
  404: {
6515
6808
  headers: {
6516
6809
  [name: string]: unknown;
@@ -6519,7 +6812,7 @@ interface operations {
6519
6812
  "application/json": components["schemas"]["ErrorResponseDto"];
6520
6813
  };
6521
6814
  };
6522
- /** @description Name already in use. */
6815
+ /** @description Name already in use (`POLICY_NAME_TAKEN`). */
6523
6816
  409: {
6524
6817
  headers: {
6525
6818
  [name: string]: unknown;
@@ -6607,7 +6900,7 @@ interface operations {
6607
6900
  "application/json": components["schemas"]["ErrorResponseDto"];
6608
6901
  };
6609
6902
  };
6610
- /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). */
6903
+ /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). Also a session that has been signed out (`SESSION_REVOKED`). */
6611
6904
  401: {
6612
6905
  headers: {
6613
6906
  [name: string]: unknown;
@@ -6731,7 +7024,7 @@ interface operations {
6731
7024
  "application/json": components["schemas"]["ErrorResponseDto"];
6732
7025
  };
6733
7026
  };
6734
- /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). */
7027
+ /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). Also a session that has been signed out (`SESSION_REVOKED`). */
6735
7028
  401: {
6736
7029
  headers: {
6737
7030
  [name: string]: unknown;
@@ -6802,7 +7095,7 @@ interface operations {
6802
7095
  "application/json": components["schemas"]["ErrorResponseDto"];
6803
7096
  };
6804
7097
  };
6805
- /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). */
7098
+ /** @description Missing, malformed or invalid session, or a PAK bearer (this route accepts cookie/JWT sessions only). Also a session that has been signed out (`SESSION_REVOKED`). */
6806
7099
  401: {
6807
7100
  headers: {
6808
7101
  [name: string]: unknown;