@vibexp/api-client 0.103.0 → 0.105.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.
- package/dist/axios/index.d.ts +2 -2
- package/dist/axios/index.js +1 -1
- package/dist/axios/sdk.gen.d.ts +88 -1
- package/dist/axios/sdk.gen.js +180 -0
- package/dist/axios/types.gen.d.ts +604 -0
- package/dist/schema.d.ts +1091 -61
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -444,6 +444,58 @@ export interface paths {
|
|
|
444
444
|
patch?: never;
|
|
445
445
|
trace?: never;
|
|
446
446
|
};
|
|
447
|
+
"/api/v1/{team_id}/artifacts/{project_id}/{slug}/lock": {
|
|
448
|
+
parameters: {
|
|
449
|
+
query?: never;
|
|
450
|
+
header?: never;
|
|
451
|
+
path?: never;
|
|
452
|
+
cookie?: never;
|
|
453
|
+
};
|
|
454
|
+
get?: never;
|
|
455
|
+
put?: never;
|
|
456
|
+
/**
|
|
457
|
+
* Lock a artifact
|
|
458
|
+
* @description Locks the artifact to mark it as in use (epic #1285). Any team member may
|
|
459
|
+
* lock a resource and must say why in `comment`. Locking is not an edit: it
|
|
460
|
+
* does not change `updated_at` or create a version. Locking a artifact that
|
|
461
|
+
* is already locked returns 409 and leaves the existing lock untouched.
|
|
462
|
+
*/
|
|
463
|
+
post: operations["lockArtifact"];
|
|
464
|
+
/**
|
|
465
|
+
* Unlock a artifact
|
|
466
|
+
* @description Releases the lock on the artifact (epic #1285). The member who placed the
|
|
467
|
+
* lock may release it; so may a member whose role holds the
|
|
468
|
+
* `resource.unlock.any` permission (owners and admins). Unlocking a artifact
|
|
469
|
+
* that is not locked returns 409.
|
|
470
|
+
*/
|
|
471
|
+
delete: operations["unlockArtifact"];
|
|
472
|
+
options?: never;
|
|
473
|
+
head?: never;
|
|
474
|
+
patch?: never;
|
|
475
|
+
trace?: never;
|
|
476
|
+
};
|
|
477
|
+
"/api/v1/{team_id}/artifacts/{project_id}/{slug}/lock/history": {
|
|
478
|
+
parameters: {
|
|
479
|
+
query?: never;
|
|
480
|
+
header?: never;
|
|
481
|
+
path?: never;
|
|
482
|
+
cookie?: never;
|
|
483
|
+
};
|
|
484
|
+
/**
|
|
485
|
+
* Get the lock history of a artifact
|
|
486
|
+
* @description Returns the artifact's lock and unlock events, newest first (epic #1285).
|
|
487
|
+
* Any team member may read it. The history is not paginated: at most the
|
|
488
|
+
* 100 most recent events are returned.
|
|
489
|
+
*/
|
|
490
|
+
get: operations["getArtifactLockHistory"];
|
|
491
|
+
put?: never;
|
|
492
|
+
post?: never;
|
|
493
|
+
delete?: never;
|
|
494
|
+
options?: never;
|
|
495
|
+
head?: never;
|
|
496
|
+
patch?: never;
|
|
497
|
+
trace?: never;
|
|
498
|
+
};
|
|
447
499
|
"/api/v1/{team_id}/attachments": {
|
|
448
500
|
parameters: {
|
|
449
501
|
query?: never;
|
|
@@ -908,6 +960,58 @@ export interface paths {
|
|
|
908
960
|
patch?: never;
|
|
909
961
|
trace?: never;
|
|
910
962
|
};
|
|
963
|
+
"/api/v1/{team_id}/blueprints/{project_id}/{slug}/lock": {
|
|
964
|
+
parameters: {
|
|
965
|
+
query?: never;
|
|
966
|
+
header?: never;
|
|
967
|
+
path?: never;
|
|
968
|
+
cookie?: never;
|
|
969
|
+
};
|
|
970
|
+
get?: never;
|
|
971
|
+
put?: never;
|
|
972
|
+
/**
|
|
973
|
+
* Lock a blueprint
|
|
974
|
+
* @description Locks the blueprint to mark it as in use (epic #1285). Any team member may
|
|
975
|
+
* lock a resource and must say why in `comment`. Locking is not an edit: it
|
|
976
|
+
* does not change `updated_at` or create a version. Locking a blueprint that
|
|
977
|
+
* is already locked returns 409 and leaves the existing lock untouched.
|
|
978
|
+
*/
|
|
979
|
+
post: operations["lockBlueprint"];
|
|
980
|
+
/**
|
|
981
|
+
* Unlock a blueprint
|
|
982
|
+
* @description Releases the lock on the blueprint (epic #1285). The member who placed the
|
|
983
|
+
* lock may release it; so may a member whose role holds the
|
|
984
|
+
* `resource.unlock.any` permission (owners and admins). Unlocking a blueprint
|
|
985
|
+
* that is not locked returns 409.
|
|
986
|
+
*/
|
|
987
|
+
delete: operations["unlockBlueprint"];
|
|
988
|
+
options?: never;
|
|
989
|
+
head?: never;
|
|
990
|
+
patch?: never;
|
|
991
|
+
trace?: never;
|
|
992
|
+
};
|
|
993
|
+
"/api/v1/{team_id}/blueprints/{project_id}/{slug}/lock/history": {
|
|
994
|
+
parameters: {
|
|
995
|
+
query?: never;
|
|
996
|
+
header?: never;
|
|
997
|
+
path?: never;
|
|
998
|
+
cookie?: never;
|
|
999
|
+
};
|
|
1000
|
+
/**
|
|
1001
|
+
* Get the lock history of a blueprint
|
|
1002
|
+
* @description Returns the blueprint's lock and unlock events, newest first (epic #1285).
|
|
1003
|
+
* Any team member may read it. The history is not paginated: at most the
|
|
1004
|
+
* 100 most recent events are returned.
|
|
1005
|
+
*/
|
|
1006
|
+
get: operations["getBlueprintLockHistory"];
|
|
1007
|
+
put?: never;
|
|
1008
|
+
post?: never;
|
|
1009
|
+
delete?: never;
|
|
1010
|
+
options?: never;
|
|
1011
|
+
head?: never;
|
|
1012
|
+
patch?: never;
|
|
1013
|
+
trace?: never;
|
|
1014
|
+
};
|
|
911
1015
|
"/api/v1/{team_id}/blueprints/{project_id}/{slug}/versions": {
|
|
912
1016
|
parameters: {
|
|
913
1017
|
query?: never;
|
|
@@ -1041,6 +1145,58 @@ export interface paths {
|
|
|
1041
1145
|
patch?: never;
|
|
1042
1146
|
trace?: never;
|
|
1043
1147
|
};
|
|
1148
|
+
"/api/v1/{team_id}/prompts/{slug}/lock": {
|
|
1149
|
+
parameters: {
|
|
1150
|
+
query?: never;
|
|
1151
|
+
header?: never;
|
|
1152
|
+
path?: never;
|
|
1153
|
+
cookie?: never;
|
|
1154
|
+
};
|
|
1155
|
+
get?: never;
|
|
1156
|
+
put?: never;
|
|
1157
|
+
/**
|
|
1158
|
+
* Lock a prompt
|
|
1159
|
+
* @description Locks the prompt to mark it as in use (epic #1285). Any team member may
|
|
1160
|
+
* lock a resource and must say why in `comment`. Locking is not an edit: it
|
|
1161
|
+
* does not change `updated_at` or create a version. Locking a prompt that
|
|
1162
|
+
* is already locked returns 409 and leaves the existing lock untouched.
|
|
1163
|
+
*/
|
|
1164
|
+
post: operations["lockPrompt"];
|
|
1165
|
+
/**
|
|
1166
|
+
* Unlock a prompt
|
|
1167
|
+
* @description Releases the lock on the prompt (epic #1285). The member who placed the
|
|
1168
|
+
* lock may release it; so may a member whose role holds the
|
|
1169
|
+
* `resource.unlock.any` permission (owners and admins). Unlocking a prompt
|
|
1170
|
+
* that is not locked returns 409.
|
|
1171
|
+
*/
|
|
1172
|
+
delete: operations["unlockPrompt"];
|
|
1173
|
+
options?: never;
|
|
1174
|
+
head?: never;
|
|
1175
|
+
patch?: never;
|
|
1176
|
+
trace?: never;
|
|
1177
|
+
};
|
|
1178
|
+
"/api/v1/{team_id}/prompts/{slug}/lock/history": {
|
|
1179
|
+
parameters: {
|
|
1180
|
+
query?: never;
|
|
1181
|
+
header?: never;
|
|
1182
|
+
path?: never;
|
|
1183
|
+
cookie?: never;
|
|
1184
|
+
};
|
|
1185
|
+
/**
|
|
1186
|
+
* Get the lock history of a prompt
|
|
1187
|
+
* @description Returns the prompt's lock and unlock events, newest first (epic #1285).
|
|
1188
|
+
* Any team member may read it. The history is not paginated: at most the
|
|
1189
|
+
* 100 most recent events are returned.
|
|
1190
|
+
*/
|
|
1191
|
+
get: operations["getPromptLockHistory"];
|
|
1192
|
+
put?: never;
|
|
1193
|
+
post?: never;
|
|
1194
|
+
delete?: never;
|
|
1195
|
+
options?: never;
|
|
1196
|
+
head?: never;
|
|
1197
|
+
patch?: never;
|
|
1198
|
+
trace?: never;
|
|
1199
|
+
};
|
|
1044
1200
|
"/api/v1/{team_id}/prompts/{slug}/placeholders": {
|
|
1045
1201
|
parameters: {
|
|
1046
1202
|
query?: never;
|
|
@@ -6396,6 +6552,8 @@ export interface components {
|
|
|
6396
6552
|
/** @description Identity of the project this resource belongs to, so a client can render a project label without a second request (issue #929). Guaranteed on the single-resource detail GET; null in list responses, and null wherever the server has not resolved it — a project that no longer exists, or one belonging to another team. `project_id` remains the authoritative field: a client must not read a null here as "this resource has no project". */
|
|
6397
6553
|
project: components["schemas"]["ProjectSummary"] | null;
|
|
6398
6554
|
freshness?: components["schemas"]["ResourceFreshnessState"];
|
|
6555
|
+
/** @description The lock held on this resource (epic #1285), or null when it is not locked. Present on every read, list and write response. Always null on a prompt read through a share link: lock state is internal to the team. */
|
|
6556
|
+
lock: components["schemas"]["ResourceLock"] | null;
|
|
6399
6557
|
};
|
|
6400
6558
|
CreatePromptRequest: {
|
|
6401
6559
|
/** @example Code Review Template */
|
|
@@ -7939,6 +8097,8 @@ export interface components {
|
|
|
7939
8097
|
/** @description Identity of the project this resource belongs to, so a client can render a project label without a second request (issue #929). Guaranteed on the single-resource detail GET; null in list responses, and null wherever the server has not resolved it — a project that no longer exists, or one belonging to another team. `project_id` remains the authoritative field: a client must not read a null here as "this resource has no project". */
|
|
7940
8098
|
project: components["schemas"]["ProjectSummary"] | null;
|
|
7941
8099
|
freshness?: components["schemas"]["ResourceFreshnessState"];
|
|
8100
|
+
/** @description The lock held on this resource (epic #1285), or null when it is not locked. Present on every read, list and write response. */
|
|
8101
|
+
lock: components["schemas"]["ResourceLock"] | null;
|
|
7942
8102
|
};
|
|
7943
8103
|
CreateArtifactRequest: {
|
|
7944
8104
|
/**
|
|
@@ -8549,6 +8709,102 @@ export interface components {
|
|
|
8549
8709
|
*/
|
|
8550
8710
|
slug: string;
|
|
8551
8711
|
};
|
|
8712
|
+
/** @description A user named on a resource lock or a lock history event. */
|
|
8713
|
+
ResourceLockActor: {
|
|
8714
|
+
/**
|
|
8715
|
+
* @description ID of the user.
|
|
8716
|
+
* @example 01234567-89ab-cdef-0123-456789abcdef
|
|
8717
|
+
*/
|
|
8718
|
+
user_id: string;
|
|
8719
|
+
/**
|
|
8720
|
+
* @description The user's display name.
|
|
8721
|
+
* @example Ada Lovelace
|
|
8722
|
+
*/
|
|
8723
|
+
display_name: string;
|
|
8724
|
+
};
|
|
8725
|
+
/** @description The lock held on a prompt, blueprint or artifact. A resource carries one while it is locked and `null` when it is not. */
|
|
8726
|
+
ResourceLock: {
|
|
8727
|
+
/** @description The team member holding the lock. */
|
|
8728
|
+
locked_by: components["schemas"]["ResourceLockActor"];
|
|
8729
|
+
/**
|
|
8730
|
+
* @description Why the resource was locked, as given by the locker.
|
|
8731
|
+
* @example Used by the nightly release agent
|
|
8732
|
+
*/
|
|
8733
|
+
comment: string;
|
|
8734
|
+
/**
|
|
8735
|
+
* Format: date-time
|
|
8736
|
+
* @description When the lock was taken.
|
|
8737
|
+
* @example 2026-10-11T10:15:30Z
|
|
8738
|
+
*/
|
|
8739
|
+
locked_at: string;
|
|
8740
|
+
};
|
|
8741
|
+
/**
|
|
8742
|
+
* @description RFC 9457 problem returned with `423 Locked` and code `RESOURCE_WRITE_LOCKED` when a write is refused because the prompt, blueprint or artifact is locked. A locked resource cannot be deleted, and an update may not change one of its frozen fields; content, title/name and description stay editable. Unlock the resource to make the change.
|
|
8743
|
+
*
|
|
8744
|
+
* Frozen fields, as `metadata.field` names them: `slug`, `status`, `project_id`, `labels` and `mcp_expose` on a prompt; `slug`, `status`, `type`, `subtype`, `project_id`, `labels`, `metadata` and `path` on a blueprint; `slug`, `status`, `type`, `project_id`, `labels` and `metadata` on an artifact. A frozen field sent with its current value is not a change.
|
|
8745
|
+
*/
|
|
8746
|
+
ResourceWriteLockedError: components["schemas"]["ErrorResponse"] & {
|
|
8747
|
+
/** @description The lock that refused the write. */
|
|
8748
|
+
metadata: {
|
|
8749
|
+
/**
|
|
8750
|
+
* @description The kind of resource that is locked.
|
|
8751
|
+
* @example artifact
|
|
8752
|
+
* @enum {string}
|
|
8753
|
+
*/
|
|
8754
|
+
resource_type: "prompt" | "blueprint" | "artifact";
|
|
8755
|
+
/**
|
|
8756
|
+
* @description The frozen field the update tried to change, by its request name. Absent when a delete was refused.
|
|
8757
|
+
* @example status
|
|
8758
|
+
*/
|
|
8759
|
+
field?: string;
|
|
8760
|
+
/** @description The team member holding the lock. */
|
|
8761
|
+
locked_by: components["schemas"]["ResourceLockActor"];
|
|
8762
|
+
/**
|
|
8763
|
+
* @description Why the resource was locked, as given by the locker.
|
|
8764
|
+
* @example Used by the nightly release agent
|
|
8765
|
+
*/
|
|
8766
|
+
comment: string;
|
|
8767
|
+
};
|
|
8768
|
+
};
|
|
8769
|
+
LockResourceRequest: {
|
|
8770
|
+
/**
|
|
8771
|
+
* @description Why the resource is being locked. Required: surrounding whitespace is trimmed, and a comment that is then empty or longer than 500 characters is rejected with 400.
|
|
8772
|
+
* @example Used by the nightly release agent
|
|
8773
|
+
*/
|
|
8774
|
+
comment: string;
|
|
8775
|
+
};
|
|
8776
|
+
/** @description One entry of a resource's append-only lock history. */
|
|
8777
|
+
ResourceLockEvent: {
|
|
8778
|
+
/**
|
|
8779
|
+
* Format: uuid
|
|
8780
|
+
* @description ID of the history event.
|
|
8781
|
+
* @example 123e4567-e89b-12d3-a456-426614174000
|
|
8782
|
+
*/
|
|
8783
|
+
id: string;
|
|
8784
|
+
/**
|
|
8785
|
+
* @description Whether the resource was locked or unlocked.
|
|
8786
|
+
* @example lock
|
|
8787
|
+
* @enum {string}
|
|
8788
|
+
*/
|
|
8789
|
+
action: "lock" | "unlock";
|
|
8790
|
+
/** @description Who locked or unlocked the resource. Null once that user's account has been deleted. */
|
|
8791
|
+
actor: components["schemas"]["ResourceLockActor"] | null;
|
|
8792
|
+
/**
|
|
8793
|
+
* @description The lock comment for a `lock` event; null for an `unlock`.
|
|
8794
|
+
* @example Used by the nightly release agent
|
|
8795
|
+
*/
|
|
8796
|
+
comment: string | null;
|
|
8797
|
+
/**
|
|
8798
|
+
* Format: date-time
|
|
8799
|
+
* @description When the event happened.
|
|
8800
|
+
* @example 2026-10-11T10:15:30Z
|
|
8801
|
+
*/
|
|
8802
|
+
created_at: string;
|
|
8803
|
+
};
|
|
8804
|
+
ResourceLockHistoryResponse: {
|
|
8805
|
+
/** @description Lock and unlock events, newest first. Not paginated: at most the 100 most recent events are returned. */
|
|
8806
|
+
events: components["schemas"]["ResourceLockEvent"][];
|
|
8807
|
+
};
|
|
8552
8808
|
CreateProjectRequest: {
|
|
8553
8809
|
/**
|
|
8554
8810
|
* @description Human-readable name of the project
|
|
@@ -9191,6 +9447,8 @@ export interface components {
|
|
|
9191
9447
|
/** @description Identity of the project this resource belongs to, so a client can render a project label without a second request (issue #929). Guaranteed on the single-resource detail GET; null in list responses, and null wherever the server has not resolved it — a project that no longer exists, or one belonging to another team. `project_id` remains the authoritative field: a client must not read a null here as "this resource has no project". */
|
|
9192
9448
|
project: components["schemas"]["ProjectSummary"] | null;
|
|
9193
9449
|
freshness?: components["schemas"]["ResourceFreshnessState"];
|
|
9450
|
+
/** @description The lock held on this resource (epic #1285), or null when it is not locked. Present on every read, list and write response. */
|
|
9451
|
+
lock: components["schemas"]["ResourceLock"] | null;
|
|
9194
9452
|
};
|
|
9195
9453
|
/** @description Read-only import provenance; present only for imported blueprints. */
|
|
9196
9454
|
BlueprintSource: {
|
|
@@ -15385,6 +15643,8 @@ export interface operations {
|
|
|
15385
15643
|
listArtifacts: {
|
|
15386
15644
|
parameters: {
|
|
15387
15645
|
query?: {
|
|
15646
|
+
/** @description Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean. */
|
|
15647
|
+
locked?: boolean;
|
|
15388
15648
|
/** @description Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer. */
|
|
15389
15649
|
freshness?: "stale";
|
|
15390
15650
|
/** @description Filter by project ID */
|
|
@@ -15568,6 +15828,8 @@ export interface operations {
|
|
|
15568
15828
|
listArtifactsByProject: {
|
|
15569
15829
|
parameters: {
|
|
15570
15830
|
query?: {
|
|
15831
|
+
/** @description Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean. */
|
|
15832
|
+
locked?: boolean;
|
|
15571
15833
|
/** @description Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer. */
|
|
15572
15834
|
freshness?: "stale";
|
|
15573
15835
|
/** @description Filter by status: one of the system statuses or one of the team's custom statuses for this resource type. Returns 400 for unknown values. */
|
|
@@ -15772,6 +16034,15 @@ export interface operations {
|
|
|
15772
16034
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15773
16035
|
};
|
|
15774
16036
|
};
|
|
16037
|
+
/** @description The artifact is locked and the update changes a frozen field (code `RESOURCE_WRITE_LOCKED`). The lock is in `metadata`. */
|
|
16038
|
+
423: {
|
|
16039
|
+
headers: {
|
|
16040
|
+
[name: string]: unknown;
|
|
16041
|
+
};
|
|
16042
|
+
content: {
|
|
16043
|
+
"application/problem+json": components["schemas"]["ResourceWriteLockedError"];
|
|
16044
|
+
};
|
|
16045
|
+
};
|
|
15775
16046
|
};
|
|
15776
16047
|
};
|
|
15777
16048
|
deleteArtifact: {
|
|
@@ -15824,35 +16095,47 @@ export interface operations {
|
|
|
15824
16095
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15825
16096
|
};
|
|
15826
16097
|
};
|
|
16098
|
+
/** @description The artifact is locked, so it cannot be deleted (code `RESOURCE_WRITE_LOCKED`). The lock is in `metadata`. */
|
|
16099
|
+
423: {
|
|
16100
|
+
headers: {
|
|
16101
|
+
[name: string]: unknown;
|
|
16102
|
+
};
|
|
16103
|
+
content: {
|
|
16104
|
+
"application/problem+json": components["schemas"]["ResourceWriteLockedError"];
|
|
16105
|
+
};
|
|
16106
|
+
};
|
|
15827
16107
|
};
|
|
15828
16108
|
};
|
|
15829
|
-
|
|
16109
|
+
lockArtifact: {
|
|
15830
16110
|
parameters: {
|
|
15831
|
-
query
|
|
15832
|
-
/** @description Type of the owning resource (e.g. "artifact") */
|
|
15833
|
-
owner_type: string;
|
|
15834
|
-
/** @description UUID of the owning resource */
|
|
15835
|
-
owner_id: string;
|
|
15836
|
-
};
|
|
16111
|
+
query?: never;
|
|
15837
16112
|
header?: never;
|
|
15838
16113
|
path: {
|
|
15839
16114
|
/** @description Team identifier */
|
|
15840
16115
|
team_id: string;
|
|
16116
|
+
/** @description UUID of the project */
|
|
16117
|
+
project_id: string;
|
|
16118
|
+
/** @description Artifact slug */
|
|
16119
|
+
slug: string;
|
|
15841
16120
|
};
|
|
15842
16121
|
cookie?: never;
|
|
15843
16122
|
};
|
|
15844
|
-
requestBody
|
|
16123
|
+
requestBody: {
|
|
16124
|
+
content: {
|
|
16125
|
+
"application/json": components["schemas"]["LockResourceRequest"];
|
|
16126
|
+
};
|
|
16127
|
+
};
|
|
15845
16128
|
responses: {
|
|
15846
|
-
/** @description
|
|
16129
|
+
/** @description Artifact locked; the updated artifact is returned */
|
|
15847
16130
|
200: {
|
|
15848
16131
|
headers: {
|
|
15849
16132
|
[name: string]: unknown;
|
|
15850
16133
|
};
|
|
15851
16134
|
content: {
|
|
15852
|
-
"application/json": components["schemas"]["
|
|
16135
|
+
"application/json": components["schemas"]["Artifact"];
|
|
15853
16136
|
};
|
|
15854
16137
|
};
|
|
15855
|
-
/** @description
|
|
16138
|
+
/** @description Bad request: a malformed path parameter or request body, or a missing, blank or too long comment */
|
|
15856
16139
|
400: {
|
|
15857
16140
|
headers: {
|
|
15858
16141
|
[name: string]: unknown;
|
|
@@ -15870,7 +16153,16 @@ export interface operations {
|
|
|
15870
16153
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15871
16154
|
};
|
|
15872
16155
|
};
|
|
15873
|
-
/** @description
|
|
16156
|
+
/** @description Forbidden: not a member of the team */
|
|
16157
|
+
403: {
|
|
16158
|
+
headers: {
|
|
16159
|
+
[name: string]: unknown;
|
|
16160
|
+
};
|
|
16161
|
+
content: {
|
|
16162
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16163
|
+
};
|
|
16164
|
+
};
|
|
16165
|
+
/** @description Artifact not found */
|
|
15874
16166
|
404: {
|
|
15875
16167
|
headers: {
|
|
15876
16168
|
[name: string]: unknown;
|
|
@@ -15879,55 +16171,52 @@ export interface operations {
|
|
|
15879
16171
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15880
16172
|
};
|
|
15881
16173
|
};
|
|
16174
|
+
/** @description The artifact is already locked (code `RESOURCE_LOCKED`) */
|
|
16175
|
+
409: {
|
|
16176
|
+
headers: {
|
|
16177
|
+
[name: string]: unknown;
|
|
16178
|
+
};
|
|
16179
|
+
content: {
|
|
16180
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16181
|
+
};
|
|
16182
|
+
};
|
|
16183
|
+
/** @description Internal server error */
|
|
16184
|
+
500: {
|
|
16185
|
+
headers: {
|
|
16186
|
+
[name: string]: unknown;
|
|
16187
|
+
};
|
|
16188
|
+
content: {
|
|
16189
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16190
|
+
};
|
|
16191
|
+
};
|
|
15882
16192
|
};
|
|
15883
16193
|
};
|
|
15884
|
-
|
|
16194
|
+
unlockArtifact: {
|
|
15885
16195
|
parameters: {
|
|
15886
16196
|
query?: never;
|
|
15887
16197
|
header?: never;
|
|
15888
16198
|
path: {
|
|
15889
16199
|
/** @description Team identifier */
|
|
15890
16200
|
team_id: string;
|
|
16201
|
+
/** @description UUID of the project */
|
|
16202
|
+
project_id: string;
|
|
16203
|
+
/** @description Artifact slug */
|
|
16204
|
+
slug: string;
|
|
15891
16205
|
};
|
|
15892
16206
|
cookie?: never;
|
|
15893
16207
|
};
|
|
15894
|
-
requestBody
|
|
15895
|
-
content: {
|
|
15896
|
-
"multipart/form-data": {
|
|
15897
|
-
/**
|
|
15898
|
-
* @description Type of the owning resource (e.g. "artifact")
|
|
15899
|
-
* @example artifact
|
|
15900
|
-
*/
|
|
15901
|
-
owner_type: string;
|
|
15902
|
-
/**
|
|
15903
|
-
* Format: uuid
|
|
15904
|
-
* @description UUID of the owning resource
|
|
15905
|
-
*/
|
|
15906
|
-
owner_id: string;
|
|
15907
|
-
/**
|
|
15908
|
-
* Format: binary
|
|
15909
|
-
* @description The file to attach
|
|
15910
|
-
*/
|
|
15911
|
-
file: string;
|
|
15912
|
-
/**
|
|
15913
|
-
* @description Optional path relative to the owner's directory (e.g. "scripts/helper.py"). Must be relative — no leading "/", no "..", no backslashes. Unique per owner. file_name stays the basename.
|
|
15914
|
-
* @example scripts/helper.py
|
|
15915
|
-
*/
|
|
15916
|
-
relative_path?: string;
|
|
15917
|
-
};
|
|
15918
|
-
};
|
|
15919
|
-
};
|
|
16208
|
+
requestBody?: never;
|
|
15920
16209
|
responses: {
|
|
15921
|
-
/** @description
|
|
15922
|
-
|
|
16210
|
+
/** @description Artifact unlocked; the updated artifact is returned */
|
|
16211
|
+
200: {
|
|
15923
16212
|
headers: {
|
|
15924
16213
|
[name: string]: unknown;
|
|
15925
16214
|
};
|
|
15926
16215
|
content: {
|
|
15927
|
-
"application/json": components["schemas"]["
|
|
16216
|
+
"application/json": components["schemas"]["Artifact"];
|
|
15928
16217
|
};
|
|
15929
16218
|
};
|
|
15930
|
-
/** @description
|
|
16219
|
+
/** @description Bad request: a malformed path parameter */
|
|
15931
16220
|
400: {
|
|
15932
16221
|
headers: {
|
|
15933
16222
|
[name: string]: unknown;
|
|
@@ -15945,8 +16234,8 @@ export interface operations {
|
|
|
15945
16234
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15946
16235
|
};
|
|
15947
16236
|
};
|
|
15948
|
-
/** @description
|
|
15949
|
-
|
|
16237
|
+
/** @description Forbidden: not a member of the team, or the lock was placed by someone else and the caller's role does not hold `resource.unlock.any` */
|
|
16238
|
+
403: {
|
|
15950
16239
|
headers: {
|
|
15951
16240
|
[name: string]: unknown;
|
|
15952
16241
|
};
|
|
@@ -15954,8 +16243,8 @@ export interface operations {
|
|
|
15954
16243
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15955
16244
|
};
|
|
15956
16245
|
};
|
|
15957
|
-
/** @description
|
|
15958
|
-
|
|
16246
|
+
/** @description Artifact not found */
|
|
16247
|
+
404: {
|
|
15959
16248
|
headers: {
|
|
15960
16249
|
[name: string]: unknown;
|
|
15961
16250
|
};
|
|
@@ -15963,10 +16252,239 @@ export interface operations {
|
|
|
15963
16252
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
15964
16253
|
};
|
|
15965
16254
|
};
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
|
|
15969
|
-
|
|
16255
|
+
/** @description The artifact is not locked (code `RESOURCE_NOT_LOCKED`) */
|
|
16256
|
+
409: {
|
|
16257
|
+
headers: {
|
|
16258
|
+
[name: string]: unknown;
|
|
16259
|
+
};
|
|
16260
|
+
content: {
|
|
16261
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16262
|
+
};
|
|
16263
|
+
};
|
|
16264
|
+
/** @description Internal server error */
|
|
16265
|
+
500: {
|
|
16266
|
+
headers: {
|
|
16267
|
+
[name: string]: unknown;
|
|
16268
|
+
};
|
|
16269
|
+
content: {
|
|
16270
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16271
|
+
};
|
|
16272
|
+
};
|
|
16273
|
+
};
|
|
16274
|
+
};
|
|
16275
|
+
getArtifactLockHistory: {
|
|
16276
|
+
parameters: {
|
|
16277
|
+
query?: never;
|
|
16278
|
+
header?: never;
|
|
16279
|
+
path: {
|
|
16280
|
+
/** @description Team identifier */
|
|
16281
|
+
team_id: string;
|
|
16282
|
+
/** @description UUID of the project */
|
|
16283
|
+
project_id: string;
|
|
16284
|
+
/** @description Artifact slug */
|
|
16285
|
+
slug: string;
|
|
16286
|
+
};
|
|
16287
|
+
cookie?: never;
|
|
16288
|
+
};
|
|
16289
|
+
requestBody?: never;
|
|
16290
|
+
responses: {
|
|
16291
|
+
/** @description Lock history retrieved successfully */
|
|
16292
|
+
200: {
|
|
16293
|
+
headers: {
|
|
16294
|
+
[name: string]: unknown;
|
|
16295
|
+
};
|
|
16296
|
+
content: {
|
|
16297
|
+
"application/json": components["schemas"]["ResourceLockHistoryResponse"];
|
|
16298
|
+
};
|
|
16299
|
+
};
|
|
16300
|
+
/** @description Bad request: a malformed path parameter */
|
|
16301
|
+
400: {
|
|
16302
|
+
headers: {
|
|
16303
|
+
[name: string]: unknown;
|
|
16304
|
+
};
|
|
16305
|
+
content: {
|
|
16306
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16307
|
+
};
|
|
16308
|
+
};
|
|
16309
|
+
/** @description Unauthorized */
|
|
16310
|
+
401: {
|
|
16311
|
+
headers: {
|
|
16312
|
+
[name: string]: unknown;
|
|
16313
|
+
};
|
|
16314
|
+
content: {
|
|
16315
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16316
|
+
};
|
|
16317
|
+
};
|
|
16318
|
+
/** @description Forbidden: not a member of the team */
|
|
16319
|
+
403: {
|
|
16320
|
+
headers: {
|
|
16321
|
+
[name: string]: unknown;
|
|
16322
|
+
};
|
|
16323
|
+
content: {
|
|
16324
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16325
|
+
};
|
|
16326
|
+
};
|
|
16327
|
+
/** @description Artifact not found */
|
|
16328
|
+
404: {
|
|
16329
|
+
headers: {
|
|
16330
|
+
[name: string]: unknown;
|
|
16331
|
+
};
|
|
16332
|
+
content: {
|
|
16333
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16334
|
+
};
|
|
16335
|
+
};
|
|
16336
|
+
/** @description Internal server error */
|
|
16337
|
+
500: {
|
|
16338
|
+
headers: {
|
|
16339
|
+
[name: string]: unknown;
|
|
16340
|
+
};
|
|
16341
|
+
content: {
|
|
16342
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16343
|
+
};
|
|
16344
|
+
};
|
|
16345
|
+
};
|
|
16346
|
+
};
|
|
16347
|
+
listAttachments: {
|
|
16348
|
+
parameters: {
|
|
16349
|
+
query: {
|
|
16350
|
+
/** @description Type of the owning resource (e.g. "artifact") */
|
|
16351
|
+
owner_type: string;
|
|
16352
|
+
/** @description UUID of the owning resource */
|
|
16353
|
+
owner_id: string;
|
|
16354
|
+
};
|
|
16355
|
+
header?: never;
|
|
16356
|
+
path: {
|
|
16357
|
+
/** @description Team identifier */
|
|
16358
|
+
team_id: string;
|
|
16359
|
+
};
|
|
16360
|
+
cookie?: never;
|
|
16361
|
+
};
|
|
16362
|
+
requestBody?: never;
|
|
16363
|
+
responses: {
|
|
16364
|
+
/** @description Attachments retrieved successfully */
|
|
16365
|
+
200: {
|
|
16366
|
+
headers: {
|
|
16367
|
+
[name: string]: unknown;
|
|
16368
|
+
};
|
|
16369
|
+
content: {
|
|
16370
|
+
"application/json": components["schemas"]["AttachmentListResponse"];
|
|
16371
|
+
};
|
|
16372
|
+
};
|
|
16373
|
+
/** @description Missing or invalid owner_type / owner_id */
|
|
16374
|
+
400: {
|
|
16375
|
+
headers: {
|
|
16376
|
+
[name: string]: unknown;
|
|
16377
|
+
};
|
|
16378
|
+
content: {
|
|
16379
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16380
|
+
};
|
|
16381
|
+
};
|
|
16382
|
+
/** @description Unauthorized */
|
|
16383
|
+
401: {
|
|
16384
|
+
headers: {
|
|
16385
|
+
[name: string]: unknown;
|
|
16386
|
+
};
|
|
16387
|
+
content: {
|
|
16388
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16389
|
+
};
|
|
16390
|
+
};
|
|
16391
|
+
/** @description Unsupported owner_type, or the owning resource was not found / is not accessible */
|
|
16392
|
+
404: {
|
|
16393
|
+
headers: {
|
|
16394
|
+
[name: string]: unknown;
|
|
16395
|
+
};
|
|
16396
|
+
content: {
|
|
16397
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16398
|
+
};
|
|
16399
|
+
};
|
|
16400
|
+
};
|
|
16401
|
+
};
|
|
16402
|
+
uploadAttachment: {
|
|
16403
|
+
parameters: {
|
|
16404
|
+
query?: never;
|
|
16405
|
+
header?: never;
|
|
16406
|
+
path: {
|
|
16407
|
+
/** @description Team identifier */
|
|
16408
|
+
team_id: string;
|
|
16409
|
+
};
|
|
16410
|
+
cookie?: never;
|
|
16411
|
+
};
|
|
16412
|
+
requestBody: {
|
|
16413
|
+
content: {
|
|
16414
|
+
"multipart/form-data": {
|
|
16415
|
+
/**
|
|
16416
|
+
* @description Type of the owning resource (e.g. "artifact")
|
|
16417
|
+
* @example artifact
|
|
16418
|
+
*/
|
|
16419
|
+
owner_type: string;
|
|
16420
|
+
/**
|
|
16421
|
+
* Format: uuid
|
|
16422
|
+
* @description UUID of the owning resource
|
|
16423
|
+
*/
|
|
16424
|
+
owner_id: string;
|
|
16425
|
+
/**
|
|
16426
|
+
* Format: binary
|
|
16427
|
+
* @description The file to attach
|
|
16428
|
+
*/
|
|
16429
|
+
file: string;
|
|
16430
|
+
/**
|
|
16431
|
+
* @description Optional path relative to the owner's directory (e.g. "scripts/helper.py"). Must be relative — no leading "/", no "..", no backslashes. Unique per owner. file_name stays the basename.
|
|
16432
|
+
* @example scripts/helper.py
|
|
16433
|
+
*/
|
|
16434
|
+
relative_path?: string;
|
|
16435
|
+
};
|
|
16436
|
+
};
|
|
16437
|
+
};
|
|
16438
|
+
responses: {
|
|
16439
|
+
/** @description Attachment uploaded successfully */
|
|
16440
|
+
201: {
|
|
16441
|
+
headers: {
|
|
16442
|
+
[name: string]: unknown;
|
|
16443
|
+
};
|
|
16444
|
+
content: {
|
|
16445
|
+
"application/json": components["schemas"]["Attachment"];
|
|
16446
|
+
};
|
|
16447
|
+
};
|
|
16448
|
+
/** @description Missing fields/file, invalid owner_id, file too large, cumulative limit exceeded, or disallowed type */
|
|
16449
|
+
400: {
|
|
16450
|
+
headers: {
|
|
16451
|
+
[name: string]: unknown;
|
|
16452
|
+
};
|
|
16453
|
+
content: {
|
|
16454
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16455
|
+
};
|
|
16456
|
+
};
|
|
16457
|
+
/** @description Unauthorized */
|
|
16458
|
+
401: {
|
|
16459
|
+
headers: {
|
|
16460
|
+
[name: string]: unknown;
|
|
16461
|
+
};
|
|
16462
|
+
content: {
|
|
16463
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16464
|
+
};
|
|
16465
|
+
};
|
|
16466
|
+
/** @description Unsupported owner_type, or the owning resource was not found / is not accessible */
|
|
16467
|
+
404: {
|
|
16468
|
+
headers: {
|
|
16469
|
+
[name: string]: unknown;
|
|
16470
|
+
};
|
|
16471
|
+
content: {
|
|
16472
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16473
|
+
};
|
|
16474
|
+
};
|
|
16475
|
+
/** @description Attachment storage is not available */
|
|
16476
|
+
503: {
|
|
16477
|
+
headers: {
|
|
16478
|
+
[name: string]: unknown;
|
|
16479
|
+
};
|
|
16480
|
+
content: {
|
|
16481
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
16482
|
+
};
|
|
16483
|
+
};
|
|
16484
|
+
};
|
|
16485
|
+
};
|
|
16486
|
+
downloadAttachment: {
|
|
16487
|
+
parameters: {
|
|
15970
16488
|
query?: never;
|
|
15971
16489
|
header?: never;
|
|
15972
16490
|
path: {
|
|
@@ -17280,6 +17798,8 @@ export interface operations {
|
|
|
17280
17798
|
listSpecLibraries: {
|
|
17281
17799
|
parameters: {
|
|
17282
17800
|
query?: {
|
|
17801
|
+
/** @description Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean. */
|
|
17802
|
+
locked?: boolean;
|
|
17283
17803
|
/** @description Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer. */
|
|
17284
17804
|
freshness?: "stale";
|
|
17285
17805
|
/** @description Filter by project name */
|
|
@@ -17481,6 +18001,8 @@ export interface operations {
|
|
|
17481
18001
|
listSpecLibrariesByProject: {
|
|
17482
18002
|
parameters: {
|
|
17483
18003
|
query?: {
|
|
18004
|
+
/** @description Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean. */
|
|
18005
|
+
locked?: boolean;
|
|
17484
18006
|
/** @description Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer. */
|
|
17485
18007
|
freshness?: "stale";
|
|
17486
18008
|
/** @description Filter by status: one of the system statuses or one of the team's custom statuses for this resource type. Returns 400 for unknown values. */
|
|
@@ -17696,6 +18218,15 @@ export interface operations {
|
|
|
17696
18218
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
17697
18219
|
};
|
|
17698
18220
|
};
|
|
18221
|
+
/** @description The blueprint is locked and the update changes a frozen field (code `RESOURCE_WRITE_LOCKED`). The lock is in `metadata`. */
|
|
18222
|
+
423: {
|
|
18223
|
+
headers: {
|
|
18224
|
+
[name: string]: unknown;
|
|
18225
|
+
};
|
|
18226
|
+
content: {
|
|
18227
|
+
"application/problem+json": components["schemas"]["ResourceWriteLockedError"];
|
|
18228
|
+
};
|
|
18229
|
+
};
|
|
17699
18230
|
/** @description Internal server error */
|
|
17700
18231
|
500: {
|
|
17701
18232
|
headers: {
|
|
@@ -17757,6 +18288,15 @@ export interface operations {
|
|
|
17757
18288
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
17758
18289
|
};
|
|
17759
18290
|
};
|
|
18291
|
+
/** @description The blueprint is locked, so it cannot be deleted (code `RESOURCE_WRITE_LOCKED`). The lock is in `metadata`. */
|
|
18292
|
+
423: {
|
|
18293
|
+
headers: {
|
|
18294
|
+
[name: string]: unknown;
|
|
18295
|
+
};
|
|
18296
|
+
content: {
|
|
18297
|
+
"application/problem+json": components["schemas"]["ResourceWriteLockedError"];
|
|
18298
|
+
};
|
|
18299
|
+
};
|
|
17760
18300
|
/** @description Internal server error */
|
|
17761
18301
|
500: {
|
|
17762
18302
|
headers: {
|
|
@@ -17768,33 +18308,37 @@ export interface operations {
|
|
|
17768
18308
|
};
|
|
17769
18309
|
};
|
|
17770
18310
|
};
|
|
17771
|
-
|
|
18311
|
+
lockBlueprint: {
|
|
17772
18312
|
parameters: {
|
|
17773
18313
|
query?: never;
|
|
17774
18314
|
header?: never;
|
|
17775
18315
|
path: {
|
|
17776
18316
|
/** @description Team identifier */
|
|
17777
18317
|
team_id: string;
|
|
17778
|
-
/** @description
|
|
18318
|
+
/** @description Project identifier (URL-encoded) */
|
|
17779
18319
|
project_id: string;
|
|
17780
|
-
/** @description Blueprint slug */
|
|
18320
|
+
/** @description Blueprint slug (URL-encoded) */
|
|
17781
18321
|
slug: string;
|
|
17782
18322
|
};
|
|
17783
18323
|
cookie?: never;
|
|
17784
18324
|
};
|
|
17785
|
-
requestBody
|
|
18325
|
+
requestBody: {
|
|
18326
|
+
content: {
|
|
18327
|
+
"application/json": components["schemas"]["LockResourceRequest"];
|
|
18328
|
+
};
|
|
18329
|
+
};
|
|
17786
18330
|
responses: {
|
|
17787
|
-
/** @description Blueprint
|
|
18331
|
+
/** @description Blueprint locked; the updated blueprint is returned */
|
|
17788
18332
|
200: {
|
|
17789
18333
|
headers: {
|
|
17790
18334
|
[name: string]: unknown;
|
|
17791
18335
|
};
|
|
17792
18336
|
content: {
|
|
17793
|
-
"application/json": components["schemas"]["
|
|
18337
|
+
"application/json": components["schemas"]["BlueprintDetail"];
|
|
17794
18338
|
};
|
|
17795
18339
|
};
|
|
17796
|
-
/** @description
|
|
17797
|
-
|
|
18340
|
+
/** @description Bad request: a malformed path parameter or request body, or a missing, blank or too long comment */
|
|
18341
|
+
400: {
|
|
17798
18342
|
headers: {
|
|
17799
18343
|
[name: string]: unknown;
|
|
17800
18344
|
};
|
|
@@ -17802,8 +18346,242 @@ export interface operations {
|
|
|
17802
18346
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
17803
18347
|
};
|
|
17804
18348
|
};
|
|
17805
|
-
/** @description
|
|
17806
|
-
|
|
18349
|
+
/** @description Unauthorized */
|
|
18350
|
+
401: {
|
|
18351
|
+
headers: {
|
|
18352
|
+
[name: string]: unknown;
|
|
18353
|
+
};
|
|
18354
|
+
content: {
|
|
18355
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18356
|
+
};
|
|
18357
|
+
};
|
|
18358
|
+
/** @description Forbidden: not a member of the team */
|
|
18359
|
+
403: {
|
|
18360
|
+
headers: {
|
|
18361
|
+
[name: string]: unknown;
|
|
18362
|
+
};
|
|
18363
|
+
content: {
|
|
18364
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18365
|
+
};
|
|
18366
|
+
};
|
|
18367
|
+
/** @description Blueprint not found */
|
|
18368
|
+
404: {
|
|
18369
|
+
headers: {
|
|
18370
|
+
[name: string]: unknown;
|
|
18371
|
+
};
|
|
18372
|
+
content: {
|
|
18373
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18374
|
+
};
|
|
18375
|
+
};
|
|
18376
|
+
/** @description The blueprint is already locked (code `RESOURCE_LOCKED`) */
|
|
18377
|
+
409: {
|
|
18378
|
+
headers: {
|
|
18379
|
+
[name: string]: unknown;
|
|
18380
|
+
};
|
|
18381
|
+
content: {
|
|
18382
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18383
|
+
};
|
|
18384
|
+
};
|
|
18385
|
+
/** @description Internal server error */
|
|
18386
|
+
500: {
|
|
18387
|
+
headers: {
|
|
18388
|
+
[name: string]: unknown;
|
|
18389
|
+
};
|
|
18390
|
+
content: {
|
|
18391
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18392
|
+
};
|
|
18393
|
+
};
|
|
18394
|
+
};
|
|
18395
|
+
};
|
|
18396
|
+
unlockBlueprint: {
|
|
18397
|
+
parameters: {
|
|
18398
|
+
query?: never;
|
|
18399
|
+
header?: never;
|
|
18400
|
+
path: {
|
|
18401
|
+
/** @description Team identifier */
|
|
18402
|
+
team_id: string;
|
|
18403
|
+
/** @description Project identifier (URL-encoded) */
|
|
18404
|
+
project_id: string;
|
|
18405
|
+
/** @description Blueprint slug (URL-encoded) */
|
|
18406
|
+
slug: string;
|
|
18407
|
+
};
|
|
18408
|
+
cookie?: never;
|
|
18409
|
+
};
|
|
18410
|
+
requestBody?: never;
|
|
18411
|
+
responses: {
|
|
18412
|
+
/** @description Blueprint unlocked; the updated blueprint is returned */
|
|
18413
|
+
200: {
|
|
18414
|
+
headers: {
|
|
18415
|
+
[name: string]: unknown;
|
|
18416
|
+
};
|
|
18417
|
+
content: {
|
|
18418
|
+
"application/json": components["schemas"]["BlueprintDetail"];
|
|
18419
|
+
};
|
|
18420
|
+
};
|
|
18421
|
+
/** @description Bad request: a malformed path parameter */
|
|
18422
|
+
400: {
|
|
18423
|
+
headers: {
|
|
18424
|
+
[name: string]: unknown;
|
|
18425
|
+
};
|
|
18426
|
+
content: {
|
|
18427
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18428
|
+
};
|
|
18429
|
+
};
|
|
18430
|
+
/** @description Unauthorized */
|
|
18431
|
+
401: {
|
|
18432
|
+
headers: {
|
|
18433
|
+
[name: string]: unknown;
|
|
18434
|
+
};
|
|
18435
|
+
content: {
|
|
18436
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18437
|
+
};
|
|
18438
|
+
};
|
|
18439
|
+
/** @description Forbidden: not a member of the team, or the lock was placed by someone else and the caller's role does not hold `resource.unlock.any` */
|
|
18440
|
+
403: {
|
|
18441
|
+
headers: {
|
|
18442
|
+
[name: string]: unknown;
|
|
18443
|
+
};
|
|
18444
|
+
content: {
|
|
18445
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18446
|
+
};
|
|
18447
|
+
};
|
|
18448
|
+
/** @description Blueprint not found */
|
|
18449
|
+
404: {
|
|
18450
|
+
headers: {
|
|
18451
|
+
[name: string]: unknown;
|
|
18452
|
+
};
|
|
18453
|
+
content: {
|
|
18454
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18455
|
+
};
|
|
18456
|
+
};
|
|
18457
|
+
/** @description The blueprint is not locked (code `RESOURCE_NOT_LOCKED`) */
|
|
18458
|
+
409: {
|
|
18459
|
+
headers: {
|
|
18460
|
+
[name: string]: unknown;
|
|
18461
|
+
};
|
|
18462
|
+
content: {
|
|
18463
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18464
|
+
};
|
|
18465
|
+
};
|
|
18466
|
+
/** @description Internal server error */
|
|
18467
|
+
500: {
|
|
18468
|
+
headers: {
|
|
18469
|
+
[name: string]: unknown;
|
|
18470
|
+
};
|
|
18471
|
+
content: {
|
|
18472
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18473
|
+
};
|
|
18474
|
+
};
|
|
18475
|
+
};
|
|
18476
|
+
};
|
|
18477
|
+
getBlueprintLockHistory: {
|
|
18478
|
+
parameters: {
|
|
18479
|
+
query?: never;
|
|
18480
|
+
header?: never;
|
|
18481
|
+
path: {
|
|
18482
|
+
/** @description Team identifier */
|
|
18483
|
+
team_id: string;
|
|
18484
|
+
/** @description Project identifier (URL-encoded) */
|
|
18485
|
+
project_id: string;
|
|
18486
|
+
/** @description Blueprint slug (URL-encoded) */
|
|
18487
|
+
slug: string;
|
|
18488
|
+
};
|
|
18489
|
+
cookie?: never;
|
|
18490
|
+
};
|
|
18491
|
+
requestBody?: never;
|
|
18492
|
+
responses: {
|
|
18493
|
+
/** @description Lock history retrieved successfully */
|
|
18494
|
+
200: {
|
|
18495
|
+
headers: {
|
|
18496
|
+
[name: string]: unknown;
|
|
18497
|
+
};
|
|
18498
|
+
content: {
|
|
18499
|
+
"application/json": components["schemas"]["ResourceLockHistoryResponse"];
|
|
18500
|
+
};
|
|
18501
|
+
};
|
|
18502
|
+
/** @description Bad request: a malformed path parameter */
|
|
18503
|
+
400: {
|
|
18504
|
+
headers: {
|
|
18505
|
+
[name: string]: unknown;
|
|
18506
|
+
};
|
|
18507
|
+
content: {
|
|
18508
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18509
|
+
};
|
|
18510
|
+
};
|
|
18511
|
+
/** @description Unauthorized */
|
|
18512
|
+
401: {
|
|
18513
|
+
headers: {
|
|
18514
|
+
[name: string]: unknown;
|
|
18515
|
+
};
|
|
18516
|
+
content: {
|
|
18517
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18518
|
+
};
|
|
18519
|
+
};
|
|
18520
|
+
/** @description Forbidden: not a member of the team */
|
|
18521
|
+
403: {
|
|
18522
|
+
headers: {
|
|
18523
|
+
[name: string]: unknown;
|
|
18524
|
+
};
|
|
18525
|
+
content: {
|
|
18526
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18527
|
+
};
|
|
18528
|
+
};
|
|
18529
|
+
/** @description Blueprint not found */
|
|
18530
|
+
404: {
|
|
18531
|
+
headers: {
|
|
18532
|
+
[name: string]: unknown;
|
|
18533
|
+
};
|
|
18534
|
+
content: {
|
|
18535
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18536
|
+
};
|
|
18537
|
+
};
|
|
18538
|
+
/** @description Internal server error */
|
|
18539
|
+
500: {
|
|
18540
|
+
headers: {
|
|
18541
|
+
[name: string]: unknown;
|
|
18542
|
+
};
|
|
18543
|
+
content: {
|
|
18544
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18545
|
+
};
|
|
18546
|
+
};
|
|
18547
|
+
};
|
|
18548
|
+
};
|
|
18549
|
+
listBlueprintVersions: {
|
|
18550
|
+
parameters: {
|
|
18551
|
+
query?: never;
|
|
18552
|
+
header?: never;
|
|
18553
|
+
path: {
|
|
18554
|
+
/** @description Team identifier */
|
|
18555
|
+
team_id: string;
|
|
18556
|
+
/** @description UUID of the project */
|
|
18557
|
+
project_id: string;
|
|
18558
|
+
/** @description Blueprint slug */
|
|
18559
|
+
slug: string;
|
|
18560
|
+
};
|
|
18561
|
+
cookie?: never;
|
|
18562
|
+
};
|
|
18563
|
+
requestBody?: never;
|
|
18564
|
+
responses: {
|
|
18565
|
+
/** @description Blueprint versions retrieved successfully */
|
|
18566
|
+
200: {
|
|
18567
|
+
headers: {
|
|
18568
|
+
[name: string]: unknown;
|
|
18569
|
+
};
|
|
18570
|
+
content: {
|
|
18571
|
+
"application/json": components["schemas"]["BlueprintVersionListResponse"];
|
|
18572
|
+
};
|
|
18573
|
+
};
|
|
18574
|
+
/** @description Unauthorized */
|
|
18575
|
+
401: {
|
|
18576
|
+
headers: {
|
|
18577
|
+
[name: string]: unknown;
|
|
18578
|
+
};
|
|
18579
|
+
content: {
|
|
18580
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18581
|
+
};
|
|
18582
|
+
};
|
|
18583
|
+
/** @description Forbidden (not a team member) */
|
|
18584
|
+
403: {
|
|
17807
18585
|
headers: {
|
|
17808
18586
|
[name: string]: unknown;
|
|
17809
18587
|
};
|
|
@@ -17955,6 +18733,8 @@ export interface operations {
|
|
|
17955
18733
|
listPrompts: {
|
|
17956
18734
|
parameters: {
|
|
17957
18735
|
query?: {
|
|
18736
|
+
/** @description Filter by lock state (epic #1285): `true` returns only locked resources, `false` only unlocked ones. Omit for no lock filtering. Returns 400 for a value that is not a boolean. */
|
|
18737
|
+
locked?: boolean;
|
|
17958
18738
|
/** @description Filter to resources currently flagged stale by the team's freshness rules (epic #726). Omit for no freshness filtering. Returns 400 for any other value — a silently ignored filter would return the full list, which looks like a legitimate answer. */
|
|
17959
18739
|
freshness?: "stale";
|
|
17960
18740
|
/** @description Page number for pagination */
|
|
@@ -18256,6 +19036,15 @@ export interface operations {
|
|
|
18256
19036
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18257
19037
|
};
|
|
18258
19038
|
};
|
|
19039
|
+
/** @description The prompt is locked and the update changes a frozen field (code `RESOURCE_WRITE_LOCKED`). The lock is in `metadata`. */
|
|
19040
|
+
423: {
|
|
19041
|
+
headers: {
|
|
19042
|
+
[name: string]: unknown;
|
|
19043
|
+
};
|
|
19044
|
+
content: {
|
|
19045
|
+
"application/problem+json": components["schemas"]["ResourceWriteLockedError"];
|
|
19046
|
+
};
|
|
19047
|
+
};
|
|
18259
19048
|
};
|
|
18260
19049
|
};
|
|
18261
19050
|
deletePrompt: {
|
|
@@ -18306,6 +19095,247 @@ export interface operations {
|
|
|
18306
19095
|
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
18307
19096
|
};
|
|
18308
19097
|
};
|
|
19098
|
+
/** @description The prompt is locked, so it cannot be deleted (code `RESOURCE_WRITE_LOCKED`). The lock is in `metadata`. */
|
|
19099
|
+
423: {
|
|
19100
|
+
headers: {
|
|
19101
|
+
[name: string]: unknown;
|
|
19102
|
+
};
|
|
19103
|
+
content: {
|
|
19104
|
+
"application/problem+json": components["schemas"]["ResourceWriteLockedError"];
|
|
19105
|
+
};
|
|
19106
|
+
};
|
|
19107
|
+
};
|
|
19108
|
+
};
|
|
19109
|
+
lockPrompt: {
|
|
19110
|
+
parameters: {
|
|
19111
|
+
query?: never;
|
|
19112
|
+
header?: never;
|
|
19113
|
+
path: {
|
|
19114
|
+
/** @description Team identifier */
|
|
19115
|
+
team_id: string;
|
|
19116
|
+
/** @description Prompt slug identifier */
|
|
19117
|
+
slug: string;
|
|
19118
|
+
};
|
|
19119
|
+
cookie?: never;
|
|
19120
|
+
};
|
|
19121
|
+
requestBody: {
|
|
19122
|
+
content: {
|
|
19123
|
+
"application/json": components["schemas"]["LockResourceRequest"];
|
|
19124
|
+
};
|
|
19125
|
+
};
|
|
19126
|
+
responses: {
|
|
19127
|
+
/** @description Prompt locked; the updated prompt is returned */
|
|
19128
|
+
200: {
|
|
19129
|
+
headers: {
|
|
19130
|
+
[name: string]: unknown;
|
|
19131
|
+
};
|
|
19132
|
+
content: {
|
|
19133
|
+
"application/json": components["schemas"]["Prompt"];
|
|
19134
|
+
};
|
|
19135
|
+
};
|
|
19136
|
+
/** @description Bad request: a malformed path parameter or request body, or a missing, blank or too long comment */
|
|
19137
|
+
400: {
|
|
19138
|
+
headers: {
|
|
19139
|
+
[name: string]: unknown;
|
|
19140
|
+
};
|
|
19141
|
+
content: {
|
|
19142
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19143
|
+
};
|
|
19144
|
+
};
|
|
19145
|
+
/** @description Unauthorized */
|
|
19146
|
+
401: {
|
|
19147
|
+
headers: {
|
|
19148
|
+
[name: string]: unknown;
|
|
19149
|
+
};
|
|
19150
|
+
content: {
|
|
19151
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19152
|
+
};
|
|
19153
|
+
};
|
|
19154
|
+
/** @description Forbidden: not a member of the team */
|
|
19155
|
+
403: {
|
|
19156
|
+
headers: {
|
|
19157
|
+
[name: string]: unknown;
|
|
19158
|
+
};
|
|
19159
|
+
content: {
|
|
19160
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19161
|
+
};
|
|
19162
|
+
};
|
|
19163
|
+
/** @description Prompt not found */
|
|
19164
|
+
404: {
|
|
19165
|
+
headers: {
|
|
19166
|
+
[name: string]: unknown;
|
|
19167
|
+
};
|
|
19168
|
+
content: {
|
|
19169
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19170
|
+
};
|
|
19171
|
+
};
|
|
19172
|
+
/** @description The prompt is already locked (code `RESOURCE_LOCKED`) */
|
|
19173
|
+
409: {
|
|
19174
|
+
headers: {
|
|
19175
|
+
[name: string]: unknown;
|
|
19176
|
+
};
|
|
19177
|
+
content: {
|
|
19178
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19179
|
+
};
|
|
19180
|
+
};
|
|
19181
|
+
/** @description Internal server error */
|
|
19182
|
+
500: {
|
|
19183
|
+
headers: {
|
|
19184
|
+
[name: string]: unknown;
|
|
19185
|
+
};
|
|
19186
|
+
content: {
|
|
19187
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19188
|
+
};
|
|
19189
|
+
};
|
|
19190
|
+
};
|
|
19191
|
+
};
|
|
19192
|
+
unlockPrompt: {
|
|
19193
|
+
parameters: {
|
|
19194
|
+
query?: never;
|
|
19195
|
+
header?: never;
|
|
19196
|
+
path: {
|
|
19197
|
+
/** @description Team identifier */
|
|
19198
|
+
team_id: string;
|
|
19199
|
+
/** @description Prompt slug identifier */
|
|
19200
|
+
slug: string;
|
|
19201
|
+
};
|
|
19202
|
+
cookie?: never;
|
|
19203
|
+
};
|
|
19204
|
+
requestBody?: never;
|
|
19205
|
+
responses: {
|
|
19206
|
+
/** @description Prompt unlocked; the updated prompt is returned */
|
|
19207
|
+
200: {
|
|
19208
|
+
headers: {
|
|
19209
|
+
[name: string]: unknown;
|
|
19210
|
+
};
|
|
19211
|
+
content: {
|
|
19212
|
+
"application/json": components["schemas"]["Prompt"];
|
|
19213
|
+
};
|
|
19214
|
+
};
|
|
19215
|
+
/** @description Bad request: a malformed path parameter */
|
|
19216
|
+
400: {
|
|
19217
|
+
headers: {
|
|
19218
|
+
[name: string]: unknown;
|
|
19219
|
+
};
|
|
19220
|
+
content: {
|
|
19221
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19222
|
+
};
|
|
19223
|
+
};
|
|
19224
|
+
/** @description Unauthorized */
|
|
19225
|
+
401: {
|
|
19226
|
+
headers: {
|
|
19227
|
+
[name: string]: unknown;
|
|
19228
|
+
};
|
|
19229
|
+
content: {
|
|
19230
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19231
|
+
};
|
|
19232
|
+
};
|
|
19233
|
+
/** @description Forbidden: not a member of the team, or the lock was placed by someone else and the caller's role does not hold `resource.unlock.any` */
|
|
19234
|
+
403: {
|
|
19235
|
+
headers: {
|
|
19236
|
+
[name: string]: unknown;
|
|
19237
|
+
};
|
|
19238
|
+
content: {
|
|
19239
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19240
|
+
};
|
|
19241
|
+
};
|
|
19242
|
+
/** @description Prompt not found */
|
|
19243
|
+
404: {
|
|
19244
|
+
headers: {
|
|
19245
|
+
[name: string]: unknown;
|
|
19246
|
+
};
|
|
19247
|
+
content: {
|
|
19248
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19249
|
+
};
|
|
19250
|
+
};
|
|
19251
|
+
/** @description The prompt is not locked (code `RESOURCE_NOT_LOCKED`) */
|
|
19252
|
+
409: {
|
|
19253
|
+
headers: {
|
|
19254
|
+
[name: string]: unknown;
|
|
19255
|
+
};
|
|
19256
|
+
content: {
|
|
19257
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19258
|
+
};
|
|
19259
|
+
};
|
|
19260
|
+
/** @description Internal server error */
|
|
19261
|
+
500: {
|
|
19262
|
+
headers: {
|
|
19263
|
+
[name: string]: unknown;
|
|
19264
|
+
};
|
|
19265
|
+
content: {
|
|
19266
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19267
|
+
};
|
|
19268
|
+
};
|
|
19269
|
+
};
|
|
19270
|
+
};
|
|
19271
|
+
getPromptLockHistory: {
|
|
19272
|
+
parameters: {
|
|
19273
|
+
query?: never;
|
|
19274
|
+
header?: never;
|
|
19275
|
+
path: {
|
|
19276
|
+
/** @description Team identifier */
|
|
19277
|
+
team_id: string;
|
|
19278
|
+
/** @description Prompt slug identifier */
|
|
19279
|
+
slug: string;
|
|
19280
|
+
};
|
|
19281
|
+
cookie?: never;
|
|
19282
|
+
};
|
|
19283
|
+
requestBody?: never;
|
|
19284
|
+
responses: {
|
|
19285
|
+
/** @description Lock history retrieved successfully */
|
|
19286
|
+
200: {
|
|
19287
|
+
headers: {
|
|
19288
|
+
[name: string]: unknown;
|
|
19289
|
+
};
|
|
19290
|
+
content: {
|
|
19291
|
+
"application/json": components["schemas"]["ResourceLockHistoryResponse"];
|
|
19292
|
+
};
|
|
19293
|
+
};
|
|
19294
|
+
/** @description Bad request: a malformed path parameter */
|
|
19295
|
+
400: {
|
|
19296
|
+
headers: {
|
|
19297
|
+
[name: string]: unknown;
|
|
19298
|
+
};
|
|
19299
|
+
content: {
|
|
19300
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19301
|
+
};
|
|
19302
|
+
};
|
|
19303
|
+
/** @description Unauthorized */
|
|
19304
|
+
401: {
|
|
19305
|
+
headers: {
|
|
19306
|
+
[name: string]: unknown;
|
|
19307
|
+
};
|
|
19308
|
+
content: {
|
|
19309
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19310
|
+
};
|
|
19311
|
+
};
|
|
19312
|
+
/** @description Forbidden: not a member of the team */
|
|
19313
|
+
403: {
|
|
19314
|
+
headers: {
|
|
19315
|
+
[name: string]: unknown;
|
|
19316
|
+
};
|
|
19317
|
+
content: {
|
|
19318
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19319
|
+
};
|
|
19320
|
+
};
|
|
19321
|
+
/** @description Prompt not found */
|
|
19322
|
+
404: {
|
|
19323
|
+
headers: {
|
|
19324
|
+
[name: string]: unknown;
|
|
19325
|
+
};
|
|
19326
|
+
content: {
|
|
19327
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19328
|
+
};
|
|
19329
|
+
};
|
|
19330
|
+
/** @description Internal server error */
|
|
19331
|
+
500: {
|
|
19332
|
+
headers: {
|
|
19333
|
+
[name: string]: unknown;
|
|
19334
|
+
};
|
|
19335
|
+
content: {
|
|
19336
|
+
"application/problem+json": components["schemas"]["ErrorResponse"];
|
|
19337
|
+
};
|
|
19338
|
+
};
|
|
18309
19339
|
};
|
|
18310
19340
|
};
|
|
18311
19341
|
getPromptPlaceholders: {
|