@stapel/workspaces-react 0.1.0 → 0.4.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/CHANGELOG.md +90 -0
- package/README.md +45 -3
- package/dist/api/generated/schema.d.ts +759 -0
- package/dist/api/generated/schema.d.ts.map +1 -0
- package/dist/api/generated/schema.js +2 -0
- package/dist/api/generated/schema.js.map +1 -0
- package/dist/api/types.d.ts +22 -6
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/workspacesApi.d.ts +3 -3
- package/dist/api/workspacesApi.d.ts.map +1 -1
- package/dist/api/workspacesApi.js +14 -1
- package/dist/api/workspacesApi.js.map +1 -1
- package/dist/flows/registry.d.ts +22 -0
- package/dist/flows/registry.d.ts.map +1 -0
- package/dist/flows/registry.js +20 -0
- package/dist/flows/registry.js.map +1 -0
- package/dist/headless/Members.d.ts +6 -1
- package/dist/headless/Members.d.ts.map +1 -1
- package/dist/headless/Members.js +1 -1
- package/dist/headless/Members.js.map +1 -1
- package/dist/headless/WorkspacesProvider.d.ts +5 -4
- package/dist/headless/WorkspacesProvider.d.ts.map +1 -1
- package/dist/headless/WorkspacesProvider.js +5 -7
- package/dist/headless/WorkspacesProvider.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/model/context.d.ts +6 -9
- package/dist/model/context.d.ts.map +1 -1
- package/dist/model/context.js +11 -16
- package/dist/model/context.js.map +1 -1
- package/dist/model/queries.d.ts +6 -4
- package/dist/model/queries.d.ts.map +1 -1
- package/dist/model/queries.js +8 -5
- package/dist/model/queries.js.map +1 -1
- package/dist/model/queryKeys.d.ts +2 -0
- package/dist/model/queryKeys.d.ts.map +1 -1
- package/dist/model/queryKeys.js +3 -0
- package/dist/model/queryKeys.js.map +1 -1
- package/dist/model/runtime.d.ts +12 -21
- package/dist/model/runtime.d.ts.map +1 -1
- package/dist/model/runtime.js +2 -14
- package/dist/model/runtime.js.map +1 -1
- package/llms.txt +14 -14
- package/manifest.json +34 -32
- package/package.json +5 -4
- package/src/analytics/generated/events.json +1 -1
- package/src/api/generated/schema.ts +761 -0
- package/src/api/types.ts +23 -6
- package/src/api/workspacesApi.ts +17 -5
- package/src/flows/registry.ts +32 -0
- package/src/headless/Members.tsx +7 -2
- package/src/headless/WorkspacesProvider.tsx +6 -11
- package/src/index.ts +4 -3
- package/src/model/context.tsx +16 -17
- package/src/model/queries.ts +16 -7
- package/src/model/queryKeys.ts +9 -0
- package/src/model/runtime.ts +14 -35
- package/dist/flows/generated/flows.gen.d.ts +0 -19
- package/dist/flows/generated/flows.gen.d.ts.map +0 -1
- package/dist/flows/generated/flows.gen.js +0 -23
- package/dist/flows/generated/flows.gen.js.map +0 -1
- package/src/flows/generated/flows.gen.ts +0 -38
- package/src/flows/generated/flows.json +0 -1
|
@@ -0,0 +1,761 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/gen-api.mjs — do not edit by hand.
|
|
2
|
+
// Source: the backend module's own docs/schema.json (§17-native per-module contract).
|
|
3
|
+
// Regenerate: pnpm gen:api · Drift gate: pnpm gen:api:check
|
|
4
|
+
export interface paths {
|
|
5
|
+
"/workspaces/api/v1/": {
|
|
6
|
+
parameters: {
|
|
7
|
+
query?: never;
|
|
8
|
+
header?: never;
|
|
9
|
+
path?: never;
|
|
10
|
+
cookie?: never;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* @description Overridable serializer seams for API views.
|
|
14
|
+
*
|
|
15
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
16
|
+
* serializers without copying method bodies:
|
|
17
|
+
*
|
|
18
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
19
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
20
|
+
*
|
|
21
|
+
* **Permissions:** `IsAuthenticated`
|
|
22
|
+
*/
|
|
23
|
+
get: operations["workspaces_api_v1_retrieve"];
|
|
24
|
+
put?: never;
|
|
25
|
+
/**
|
|
26
|
+
* @description Overridable serializer seams for API views.
|
|
27
|
+
*
|
|
28
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
29
|
+
* serializers without copying method bodies:
|
|
30
|
+
*
|
|
31
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
32
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
33
|
+
*
|
|
34
|
+
* **Permissions:** `IsAuthenticated`
|
|
35
|
+
*/
|
|
36
|
+
post: operations["workspaces_api_v1_create"];
|
|
37
|
+
delete?: never;
|
|
38
|
+
options?: never;
|
|
39
|
+
head?: never;
|
|
40
|
+
patch?: never;
|
|
41
|
+
trace?: never;
|
|
42
|
+
};
|
|
43
|
+
"/workspaces/api/v1/{workspace_id}": {
|
|
44
|
+
parameters: {
|
|
45
|
+
query?: never;
|
|
46
|
+
header?: never;
|
|
47
|
+
path?: never;
|
|
48
|
+
cookie?: never;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* @description Overridable serializer seams for API views.
|
|
52
|
+
*
|
|
53
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
54
|
+
* serializers without copying method bodies:
|
|
55
|
+
*
|
|
56
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
57
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
58
|
+
*
|
|
59
|
+
* **Permissions:** `IsAuthenticated`
|
|
60
|
+
*/
|
|
61
|
+
get: operations["workspaces_api_v1_retrieve_2"];
|
|
62
|
+
put?: never;
|
|
63
|
+
post?: never;
|
|
64
|
+
/**
|
|
65
|
+
* @description Overridable serializer seams for API views.
|
|
66
|
+
*
|
|
67
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
68
|
+
* serializers without copying method bodies:
|
|
69
|
+
*
|
|
70
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
71
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
72
|
+
*
|
|
73
|
+
* **Permissions:** `IsAuthenticated`
|
|
74
|
+
*/
|
|
75
|
+
delete: operations["workspaces_api_v1_destroy"];
|
|
76
|
+
options?: never;
|
|
77
|
+
head?: never;
|
|
78
|
+
/**
|
|
79
|
+
* @description Overridable serializer seams for API views.
|
|
80
|
+
*
|
|
81
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
82
|
+
* serializers without copying method bodies:
|
|
83
|
+
*
|
|
84
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
85
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
86
|
+
*
|
|
87
|
+
* **Permissions:** `IsAuthenticated`
|
|
88
|
+
*/
|
|
89
|
+
patch: operations["workspaces_api_v1_partial_update"];
|
|
90
|
+
trace?: never;
|
|
91
|
+
};
|
|
92
|
+
"/workspaces/api/v1/{workspace_id}/members": {
|
|
93
|
+
parameters: {
|
|
94
|
+
query?: never;
|
|
95
|
+
header?: never;
|
|
96
|
+
path?: never;
|
|
97
|
+
cookie?: never;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* @description Overridable serializer seams for API views.
|
|
101
|
+
*
|
|
102
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
103
|
+
* serializers without copying method bodies:
|
|
104
|
+
*
|
|
105
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
106
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
107
|
+
*
|
|
108
|
+
* **Permissions:** `IsAuthenticated`
|
|
109
|
+
*/
|
|
110
|
+
get: operations["workspaces_api_v1_members_list"];
|
|
111
|
+
put?: never;
|
|
112
|
+
post?: never;
|
|
113
|
+
delete?: never;
|
|
114
|
+
options?: never;
|
|
115
|
+
head?: never;
|
|
116
|
+
patch?: never;
|
|
117
|
+
trace?: never;
|
|
118
|
+
};
|
|
119
|
+
"/workspaces/api/v1/{workspace_id}/members/{user_id}": {
|
|
120
|
+
parameters: {
|
|
121
|
+
query?: never;
|
|
122
|
+
header?: never;
|
|
123
|
+
path?: never;
|
|
124
|
+
cookie?: never;
|
|
125
|
+
};
|
|
126
|
+
get?: never;
|
|
127
|
+
put?: never;
|
|
128
|
+
post?: never;
|
|
129
|
+
/**
|
|
130
|
+
* @description Overridable serializer seams for API views.
|
|
131
|
+
*
|
|
132
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
133
|
+
* serializers without copying method bodies:
|
|
134
|
+
*
|
|
135
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
136
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
137
|
+
*
|
|
138
|
+
* **Permissions:** `IsAuthenticated`
|
|
139
|
+
*/
|
|
140
|
+
delete: operations["workspaces_api_v1_members_destroy"];
|
|
141
|
+
options?: never;
|
|
142
|
+
head?: never;
|
|
143
|
+
/**
|
|
144
|
+
* @description Overridable serializer seams for API views.
|
|
145
|
+
*
|
|
146
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
147
|
+
* serializers without copying method bodies:
|
|
148
|
+
*
|
|
149
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
150
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
151
|
+
*
|
|
152
|
+
* **Permissions:** `IsAuthenticated`
|
|
153
|
+
*/
|
|
154
|
+
patch: operations["workspaces_api_v1_members_partial_update"];
|
|
155
|
+
trace?: never;
|
|
156
|
+
};
|
|
157
|
+
"/workspaces/api/v1/{workspace_id}/members/invite": {
|
|
158
|
+
parameters: {
|
|
159
|
+
query?: never;
|
|
160
|
+
header?: never;
|
|
161
|
+
path?: never;
|
|
162
|
+
cookie?: never;
|
|
163
|
+
};
|
|
164
|
+
get?: never;
|
|
165
|
+
put?: never;
|
|
166
|
+
/**
|
|
167
|
+
* @description Overridable serializer seams for API views.
|
|
168
|
+
*
|
|
169
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
170
|
+
* serializers without copying method bodies:
|
|
171
|
+
*
|
|
172
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
173
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
174
|
+
*
|
|
175
|
+
* **Permissions:** `IsAuthenticated`
|
|
176
|
+
*/
|
|
177
|
+
post: operations["workspaces_api_v1_members_invite_create"];
|
|
178
|
+
delete?: never;
|
|
179
|
+
options?: never;
|
|
180
|
+
head?: never;
|
|
181
|
+
patch?: never;
|
|
182
|
+
trace?: never;
|
|
183
|
+
};
|
|
184
|
+
"/workspaces/api/v1/internal/{workspace_id}/members/{user_id}": {
|
|
185
|
+
parameters: {
|
|
186
|
+
query?: never;
|
|
187
|
+
header?: never;
|
|
188
|
+
path?: never;
|
|
189
|
+
cookie?: never;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* @description Allow other services to check membership/role via X-API-KEY.
|
|
193
|
+
*
|
|
194
|
+
* **Permissions:** `OperandHolder`
|
|
195
|
+
*/
|
|
196
|
+
get: operations["workspaces_api_v1_internal_members_retrieve"];
|
|
197
|
+
put?: never;
|
|
198
|
+
post?: never;
|
|
199
|
+
delete?: never;
|
|
200
|
+
options?: never;
|
|
201
|
+
head?: never;
|
|
202
|
+
patch?: never;
|
|
203
|
+
trace?: never;
|
|
204
|
+
};
|
|
205
|
+
"/workspaces/api/v1/internal/users/{user_id}/personal": {
|
|
206
|
+
parameters: {
|
|
207
|
+
query?: never;
|
|
208
|
+
header?: never;
|
|
209
|
+
path?: never;
|
|
210
|
+
cookie?: never;
|
|
211
|
+
};
|
|
212
|
+
get?: never;
|
|
213
|
+
put?: never;
|
|
214
|
+
/**
|
|
215
|
+
* @description Get-or-create the personal workspace for a given user_id.
|
|
216
|
+
*
|
|
217
|
+
* **Permissions:** `OperandHolder`
|
|
218
|
+
*/
|
|
219
|
+
post: operations["workspaces_api_v1_internal_users_personal_create"];
|
|
220
|
+
delete?: never;
|
|
221
|
+
options?: never;
|
|
222
|
+
head?: never;
|
|
223
|
+
patch?: never;
|
|
224
|
+
trace?: never;
|
|
225
|
+
};
|
|
226
|
+
"/workspaces/api/v1/invitations/accept": {
|
|
227
|
+
parameters: {
|
|
228
|
+
query?: never;
|
|
229
|
+
header?: never;
|
|
230
|
+
path?: never;
|
|
231
|
+
cookie?: never;
|
|
232
|
+
};
|
|
233
|
+
get?: never;
|
|
234
|
+
put?: never;
|
|
235
|
+
/**
|
|
236
|
+
* @description Overridable serializer seams for API views.
|
|
237
|
+
*
|
|
238
|
+
* Subclasses (or downstream projects) can swap the request/response
|
|
239
|
+
* serializers without copying method bodies:
|
|
240
|
+
*
|
|
241
|
+
* class MyWorkspaceDetailView(WorkspaceDetailView):
|
|
242
|
+
* response_serializer_class = MyWorkspaceResponseSerializer
|
|
243
|
+
*
|
|
244
|
+
* **Permissions:** `IsAuthenticated`
|
|
245
|
+
*/
|
|
246
|
+
post: operations["workspaces_api_v1_invitations_accept_create"];
|
|
247
|
+
delete?: never;
|
|
248
|
+
options?: never;
|
|
249
|
+
head?: never;
|
|
250
|
+
patch?: never;
|
|
251
|
+
trace?: never;
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
export type webhooks = Record<string, never>;
|
|
255
|
+
export interface components {
|
|
256
|
+
schemas: {
|
|
257
|
+
/** @description Get-or-create result for a user's personal workspace (service-to-service). */
|
|
258
|
+
InternalPersonalWorkspaceResponse: {
|
|
259
|
+
/**
|
|
260
|
+
* Format: uuid
|
|
261
|
+
* @description Personal workspace UUID.
|
|
262
|
+
*/
|
|
263
|
+
workspace_id: string;
|
|
264
|
+
};
|
|
265
|
+
/** @description Accept an invite. */
|
|
266
|
+
InvitationAcceptRequest: {
|
|
267
|
+
/** @description Invite token from the email link */
|
|
268
|
+
token: string;
|
|
269
|
+
};
|
|
270
|
+
/** @description InvitationResponse(id: uuid.UUID, workspace_id: uuid.UUID, email: str, role: str, expires_at: str, accepted_at: Optional[str], revoked_at: Optional[str], created_at: str) */
|
|
271
|
+
InvitationResponse: {
|
|
272
|
+
/** Format: uuid */
|
|
273
|
+
id: string;
|
|
274
|
+
/** Format: uuid */
|
|
275
|
+
workspace_id: string;
|
|
276
|
+
email: string;
|
|
277
|
+
role: string;
|
|
278
|
+
expires_at: string;
|
|
279
|
+
accepted_at: string | null;
|
|
280
|
+
revoked_at: string | null;
|
|
281
|
+
created_at: string;
|
|
282
|
+
};
|
|
283
|
+
/** @description Invite payload. */
|
|
284
|
+
MemberInviteRequest: {
|
|
285
|
+
/**
|
|
286
|
+
* @description One or more emails to invite
|
|
287
|
+
* @example [
|
|
288
|
+
* "alice@example.com"
|
|
289
|
+
* ]
|
|
290
|
+
*/
|
|
291
|
+
emails: string[];
|
|
292
|
+
/**
|
|
293
|
+
* @description Role to grant on acceptance
|
|
294
|
+
* @example member
|
|
295
|
+
*/
|
|
296
|
+
role?: string;
|
|
297
|
+
};
|
|
298
|
+
/** @description MemberInviteResponse(invitations: List[ForwardRef('InvitationResponse')] = <factory>) */
|
|
299
|
+
MemberInviteResponse: {
|
|
300
|
+
invitations?: components["schemas"]["InvitationResponse"][];
|
|
301
|
+
};
|
|
302
|
+
/** @description Workspace member. */
|
|
303
|
+
MemberResponse: {
|
|
304
|
+
/**
|
|
305
|
+
* Format: uuid
|
|
306
|
+
* @description Membership UUID
|
|
307
|
+
* @example 0192...
|
|
308
|
+
*/
|
|
309
|
+
id: string;
|
|
310
|
+
/**
|
|
311
|
+
* Format: uuid
|
|
312
|
+
* @description Workspace UUID
|
|
313
|
+
*/
|
|
314
|
+
workspace_id: string;
|
|
315
|
+
/**
|
|
316
|
+
* Format: uuid
|
|
317
|
+
* @description User UUID
|
|
318
|
+
*/
|
|
319
|
+
user_id: string;
|
|
320
|
+
/** @description User email (best-effort, from JWT claim cache) */
|
|
321
|
+
email: string | null;
|
|
322
|
+
/**
|
|
323
|
+
* @description owner / admin / member / viewer
|
|
324
|
+
* @example admin
|
|
325
|
+
*/
|
|
326
|
+
role: string;
|
|
327
|
+
/** @description ISO 8601 invite timestamp */
|
|
328
|
+
invited_at: string;
|
|
329
|
+
/** @description ISO 8601 acceptance timestamp; null while pending */
|
|
330
|
+
accepted_at: string | null;
|
|
331
|
+
/** @description ISO 8601 last access; null if never accessed */
|
|
332
|
+
last_accessed_at: string | null;
|
|
333
|
+
};
|
|
334
|
+
PaginatedMemberResponseList: {
|
|
335
|
+
items: components["schemas"]["MemberResponse"][];
|
|
336
|
+
/** @description Anchor value for next page */
|
|
337
|
+
next_anchor?: string | null;
|
|
338
|
+
/** @description Anchor value for previous page */
|
|
339
|
+
prev_anchor?: string | null;
|
|
340
|
+
/** @description Whether there are more items after this page */
|
|
341
|
+
has_next: boolean;
|
|
342
|
+
/** @description Whether there are items before this page */
|
|
343
|
+
has_prev: boolean;
|
|
344
|
+
/** @description Number of items in current page */
|
|
345
|
+
count: number;
|
|
346
|
+
};
|
|
347
|
+
/** @description MemberUpdateRequest(role: str) */
|
|
348
|
+
PatchedMemberUpdateRequest: {
|
|
349
|
+
role?: string;
|
|
350
|
+
};
|
|
351
|
+
/** @description WorkspaceUpdateRequest(name: Optional[str] = None, slug: Optional[str] = None, settings: Optional[dict] = None) */
|
|
352
|
+
PatchedWorkspaceUpdateRequest: {
|
|
353
|
+
name?: string | null;
|
|
354
|
+
slug?: string | null;
|
|
355
|
+
settings?: {
|
|
356
|
+
[key: string]: unknown;
|
|
357
|
+
} | null;
|
|
358
|
+
};
|
|
359
|
+
/** @description Structured error returned by all Stapel API endpoints. */
|
|
360
|
+
StapelError: {
|
|
361
|
+
/**
|
|
362
|
+
* @description Translation key for client-side localization
|
|
363
|
+
* @example error.404.not_found
|
|
364
|
+
*/
|
|
365
|
+
localizable_error: string;
|
|
366
|
+
/**
|
|
367
|
+
* @description Human-readable message in English
|
|
368
|
+
* @example Requested resource not found
|
|
369
|
+
*/
|
|
370
|
+
error: string;
|
|
371
|
+
/**
|
|
372
|
+
* @description Context values for template placeholders
|
|
373
|
+
* @example {
|
|
374
|
+
* "retry_after": 30
|
|
375
|
+
* }
|
|
376
|
+
*/
|
|
377
|
+
params?: {
|
|
378
|
+
[key: string]: unknown;
|
|
379
|
+
};
|
|
380
|
+
};
|
|
381
|
+
/** @description Create-workspace payload. */
|
|
382
|
+
WorkspaceCreateRequest: {
|
|
383
|
+
/**
|
|
384
|
+
* @description Display name
|
|
385
|
+
* @example Acme Engineering
|
|
386
|
+
*/
|
|
387
|
+
name: string;
|
|
388
|
+
/**
|
|
389
|
+
* @description URL-safe identifier (auto-generated when omitted)
|
|
390
|
+
* @example acme-eng
|
|
391
|
+
*/
|
|
392
|
+
slug?: string | null;
|
|
393
|
+
/**
|
|
394
|
+
* @description personal or work
|
|
395
|
+
* @example work
|
|
396
|
+
*/
|
|
397
|
+
type?: string;
|
|
398
|
+
};
|
|
399
|
+
/** @description WorkspaceListResponse(workspaces: List[stapel_workspaces.dto.WorkspaceResponse] = <factory>) */
|
|
400
|
+
WorkspaceListResponse: {
|
|
401
|
+
workspaces?: components["schemas"]["WorkspaceResponse"][];
|
|
402
|
+
};
|
|
403
|
+
/** @description Workspace details. */
|
|
404
|
+
WorkspaceResponse: {
|
|
405
|
+
/**
|
|
406
|
+
* Format: uuid
|
|
407
|
+
* @description Workspace UUID
|
|
408
|
+
* @example 0192f...
|
|
409
|
+
*/
|
|
410
|
+
id: string;
|
|
411
|
+
/**
|
|
412
|
+
* @description Display name
|
|
413
|
+
* @example Acme Engineering
|
|
414
|
+
*/
|
|
415
|
+
name: string;
|
|
416
|
+
/**
|
|
417
|
+
* @description URL-safe identifier
|
|
418
|
+
* @example acme-eng
|
|
419
|
+
*/
|
|
420
|
+
slug: string;
|
|
421
|
+
/**
|
|
422
|
+
* @description Workspace category
|
|
423
|
+
* @example work
|
|
424
|
+
*/
|
|
425
|
+
type: string;
|
|
426
|
+
/**
|
|
427
|
+
* Format: uuid
|
|
428
|
+
* @description Owner user UUID
|
|
429
|
+
* @example 0192a...
|
|
430
|
+
*/
|
|
431
|
+
owner_id: string;
|
|
432
|
+
/** @description Workspace settings JSON */
|
|
433
|
+
settings: {
|
|
434
|
+
[key: string]: unknown;
|
|
435
|
+
};
|
|
436
|
+
/** @description Bytes currently stored */
|
|
437
|
+
storage_used_bytes: number;
|
|
438
|
+
/** @description Plan-determined cap */
|
|
439
|
+
storage_limit_bytes: number;
|
|
440
|
+
/** @description Number of members */
|
|
441
|
+
member_count: number;
|
|
442
|
+
/**
|
|
443
|
+
* @description Role of the requesting user
|
|
444
|
+
* @example owner
|
|
445
|
+
*/
|
|
446
|
+
my_role: string | null;
|
|
447
|
+
/**
|
|
448
|
+
* @description ISO 8601 creation time
|
|
449
|
+
* @example 2026-05-20T10:00:00Z
|
|
450
|
+
*/
|
|
451
|
+
created_at: string;
|
|
452
|
+
/**
|
|
453
|
+
* @description ISO 8601 last update time
|
|
454
|
+
* @example 2026-05-20T10:00:00Z
|
|
455
|
+
*/
|
|
456
|
+
updated_at: string;
|
|
457
|
+
};
|
|
458
|
+
};
|
|
459
|
+
responses: never;
|
|
460
|
+
parameters: never;
|
|
461
|
+
requestBodies: never;
|
|
462
|
+
headers: never;
|
|
463
|
+
pathItems: never;
|
|
464
|
+
}
|
|
465
|
+
export type $defs = Record<string, never>;
|
|
466
|
+
export interface operations {
|
|
467
|
+
workspaces_api_v1_retrieve: {
|
|
468
|
+
parameters: {
|
|
469
|
+
query?: never;
|
|
470
|
+
header?: never;
|
|
471
|
+
path?: never;
|
|
472
|
+
cookie?: never;
|
|
473
|
+
};
|
|
474
|
+
requestBody?: never;
|
|
475
|
+
responses: {
|
|
476
|
+
200: {
|
|
477
|
+
headers: {
|
|
478
|
+
[name: string]: unknown;
|
|
479
|
+
};
|
|
480
|
+
content: {
|
|
481
|
+
"application/json": components["schemas"]["WorkspaceListResponse"];
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
};
|
|
485
|
+
};
|
|
486
|
+
workspaces_api_v1_create: {
|
|
487
|
+
parameters: {
|
|
488
|
+
query?: never;
|
|
489
|
+
header?: never;
|
|
490
|
+
path?: never;
|
|
491
|
+
cookie?: never;
|
|
492
|
+
};
|
|
493
|
+
requestBody: {
|
|
494
|
+
content: {
|
|
495
|
+
"application/json": components["schemas"]["WorkspaceCreateRequest"];
|
|
496
|
+
"application/x-www-form-urlencoded": components["schemas"]["WorkspaceCreateRequest"];
|
|
497
|
+
"multipart/form-data": components["schemas"]["WorkspaceCreateRequest"];
|
|
498
|
+
};
|
|
499
|
+
};
|
|
500
|
+
responses: {
|
|
501
|
+
201: {
|
|
502
|
+
headers: {
|
|
503
|
+
[name: string]: unknown;
|
|
504
|
+
};
|
|
505
|
+
content: {
|
|
506
|
+
"application/json": components["schemas"]["WorkspaceResponse"];
|
|
507
|
+
};
|
|
508
|
+
};
|
|
509
|
+
};
|
|
510
|
+
};
|
|
511
|
+
workspaces_api_v1_retrieve_2: {
|
|
512
|
+
parameters: {
|
|
513
|
+
query?: never;
|
|
514
|
+
header?: never;
|
|
515
|
+
path: {
|
|
516
|
+
workspace_id: string;
|
|
517
|
+
};
|
|
518
|
+
cookie?: never;
|
|
519
|
+
};
|
|
520
|
+
requestBody?: never;
|
|
521
|
+
responses: {
|
|
522
|
+
200: {
|
|
523
|
+
headers: {
|
|
524
|
+
[name: string]: unknown;
|
|
525
|
+
};
|
|
526
|
+
content: {
|
|
527
|
+
"application/json": components["schemas"]["WorkspaceResponse"];
|
|
528
|
+
};
|
|
529
|
+
};
|
|
530
|
+
};
|
|
531
|
+
};
|
|
532
|
+
workspaces_api_v1_destroy: {
|
|
533
|
+
parameters: {
|
|
534
|
+
query?: never;
|
|
535
|
+
header?: never;
|
|
536
|
+
path: {
|
|
537
|
+
workspace_id: string;
|
|
538
|
+
};
|
|
539
|
+
cookie?: never;
|
|
540
|
+
};
|
|
541
|
+
requestBody?: never;
|
|
542
|
+
responses: {
|
|
543
|
+
/** @description No response body */
|
|
544
|
+
204: {
|
|
545
|
+
headers: {
|
|
546
|
+
[name: string]: unknown;
|
|
547
|
+
};
|
|
548
|
+
content?: never;
|
|
549
|
+
};
|
|
550
|
+
};
|
|
551
|
+
};
|
|
552
|
+
workspaces_api_v1_partial_update: {
|
|
553
|
+
parameters: {
|
|
554
|
+
query?: never;
|
|
555
|
+
header?: never;
|
|
556
|
+
path: {
|
|
557
|
+
workspace_id: string;
|
|
558
|
+
};
|
|
559
|
+
cookie?: never;
|
|
560
|
+
};
|
|
561
|
+
requestBody?: {
|
|
562
|
+
content: {
|
|
563
|
+
"application/json": components["schemas"]["PatchedWorkspaceUpdateRequest"];
|
|
564
|
+
"application/x-www-form-urlencoded": components["schemas"]["PatchedWorkspaceUpdateRequest"];
|
|
565
|
+
"multipart/form-data": components["schemas"]["PatchedWorkspaceUpdateRequest"];
|
|
566
|
+
};
|
|
567
|
+
};
|
|
568
|
+
responses: {
|
|
569
|
+
200: {
|
|
570
|
+
headers: {
|
|
571
|
+
[name: string]: unknown;
|
|
572
|
+
};
|
|
573
|
+
content: {
|
|
574
|
+
"application/json": components["schemas"]["WorkspaceResponse"];
|
|
575
|
+
};
|
|
576
|
+
};
|
|
577
|
+
};
|
|
578
|
+
};
|
|
579
|
+
workspaces_api_v1_members_list: {
|
|
580
|
+
parameters: {
|
|
581
|
+
query?: {
|
|
582
|
+
/** @description Anchor value to paginate from (exclusive) */
|
|
583
|
+
anchor?: string;
|
|
584
|
+
/** @description Pagination direction */
|
|
585
|
+
direction?: "next" | "prev" | "center";
|
|
586
|
+
/** @description Number of items (default 100, max 500) */
|
|
587
|
+
limit?: number;
|
|
588
|
+
/** @description Case-insensitive substring filter matched against a member's email OR display name (full name / username). Lets a people-picker filter server-side instead of pulling every member. */
|
|
589
|
+
search?: string;
|
|
590
|
+
};
|
|
591
|
+
header?: never;
|
|
592
|
+
path: {
|
|
593
|
+
workspace_id: string;
|
|
594
|
+
};
|
|
595
|
+
cookie?: never;
|
|
596
|
+
};
|
|
597
|
+
requestBody?: never;
|
|
598
|
+
responses: {
|
|
599
|
+
200: {
|
|
600
|
+
headers: {
|
|
601
|
+
[name: string]: unknown;
|
|
602
|
+
};
|
|
603
|
+
content: {
|
|
604
|
+
"application/json": components["schemas"]["PaginatedMemberResponseList"];
|
|
605
|
+
};
|
|
606
|
+
};
|
|
607
|
+
};
|
|
608
|
+
};
|
|
609
|
+
workspaces_api_v1_members_destroy: {
|
|
610
|
+
parameters: {
|
|
611
|
+
query?: never;
|
|
612
|
+
header?: never;
|
|
613
|
+
path: {
|
|
614
|
+
user_id: string;
|
|
615
|
+
workspace_id: string;
|
|
616
|
+
};
|
|
617
|
+
cookie?: never;
|
|
618
|
+
};
|
|
619
|
+
requestBody?: never;
|
|
620
|
+
responses: {
|
|
621
|
+
/** @description No response body */
|
|
622
|
+
204: {
|
|
623
|
+
headers: {
|
|
624
|
+
[name: string]: unknown;
|
|
625
|
+
};
|
|
626
|
+
content?: never;
|
|
627
|
+
};
|
|
628
|
+
};
|
|
629
|
+
};
|
|
630
|
+
workspaces_api_v1_members_partial_update: {
|
|
631
|
+
parameters: {
|
|
632
|
+
query?: never;
|
|
633
|
+
header?: never;
|
|
634
|
+
path: {
|
|
635
|
+
user_id: string;
|
|
636
|
+
workspace_id: string;
|
|
637
|
+
};
|
|
638
|
+
cookie?: never;
|
|
639
|
+
};
|
|
640
|
+
requestBody?: {
|
|
641
|
+
content: {
|
|
642
|
+
"application/json": components["schemas"]["PatchedMemberUpdateRequest"];
|
|
643
|
+
"application/x-www-form-urlencoded": components["schemas"]["PatchedMemberUpdateRequest"];
|
|
644
|
+
"multipart/form-data": components["schemas"]["PatchedMemberUpdateRequest"];
|
|
645
|
+
};
|
|
646
|
+
};
|
|
647
|
+
responses: {
|
|
648
|
+
200: {
|
|
649
|
+
headers: {
|
|
650
|
+
[name: string]: unknown;
|
|
651
|
+
};
|
|
652
|
+
content: {
|
|
653
|
+
"application/json": components["schemas"]["MemberResponse"];
|
|
654
|
+
};
|
|
655
|
+
};
|
|
656
|
+
};
|
|
657
|
+
};
|
|
658
|
+
workspaces_api_v1_members_invite_create: {
|
|
659
|
+
parameters: {
|
|
660
|
+
query?: never;
|
|
661
|
+
header?: never;
|
|
662
|
+
path: {
|
|
663
|
+
workspace_id: string;
|
|
664
|
+
};
|
|
665
|
+
cookie?: never;
|
|
666
|
+
};
|
|
667
|
+
requestBody: {
|
|
668
|
+
content: {
|
|
669
|
+
"application/json": components["schemas"]["MemberInviteRequest"];
|
|
670
|
+
"application/x-www-form-urlencoded": components["schemas"]["MemberInviteRequest"];
|
|
671
|
+
"multipart/form-data": components["schemas"]["MemberInviteRequest"];
|
|
672
|
+
};
|
|
673
|
+
};
|
|
674
|
+
responses: {
|
|
675
|
+
201: {
|
|
676
|
+
headers: {
|
|
677
|
+
[name: string]: unknown;
|
|
678
|
+
};
|
|
679
|
+
content: {
|
|
680
|
+
"application/json": components["schemas"]["MemberInviteResponse"];
|
|
681
|
+
};
|
|
682
|
+
};
|
|
683
|
+
};
|
|
684
|
+
};
|
|
685
|
+
workspaces_api_v1_internal_members_retrieve: {
|
|
686
|
+
parameters: {
|
|
687
|
+
query?: never;
|
|
688
|
+
header?: never;
|
|
689
|
+
path: {
|
|
690
|
+
user_id: string;
|
|
691
|
+
workspace_id: string;
|
|
692
|
+
};
|
|
693
|
+
cookie?: never;
|
|
694
|
+
};
|
|
695
|
+
requestBody?: never;
|
|
696
|
+
responses: {
|
|
697
|
+
200: {
|
|
698
|
+
headers: {
|
|
699
|
+
[name: string]: unknown;
|
|
700
|
+
};
|
|
701
|
+
content: {
|
|
702
|
+
"application/json": components["schemas"]["MemberResponse"];
|
|
703
|
+
};
|
|
704
|
+
};
|
|
705
|
+
};
|
|
706
|
+
};
|
|
707
|
+
workspaces_api_v1_internal_users_personal_create: {
|
|
708
|
+
parameters: {
|
|
709
|
+
query?: never;
|
|
710
|
+
header?: never;
|
|
711
|
+
path: {
|
|
712
|
+
user_id: string;
|
|
713
|
+
};
|
|
714
|
+
cookie?: never;
|
|
715
|
+
};
|
|
716
|
+
requestBody?: never;
|
|
717
|
+
responses: {
|
|
718
|
+
200: {
|
|
719
|
+
headers: {
|
|
720
|
+
[name: string]: unknown;
|
|
721
|
+
};
|
|
722
|
+
content: {
|
|
723
|
+
"application/json": components["schemas"]["InternalPersonalWorkspaceResponse"];
|
|
724
|
+
};
|
|
725
|
+
};
|
|
726
|
+
404: {
|
|
727
|
+
headers: {
|
|
728
|
+
[name: string]: unknown;
|
|
729
|
+
};
|
|
730
|
+
content: {
|
|
731
|
+
"application/json": components["schemas"]["StapelError"];
|
|
732
|
+
};
|
|
733
|
+
};
|
|
734
|
+
};
|
|
735
|
+
};
|
|
736
|
+
workspaces_api_v1_invitations_accept_create: {
|
|
737
|
+
parameters: {
|
|
738
|
+
query?: never;
|
|
739
|
+
header?: never;
|
|
740
|
+
path?: never;
|
|
741
|
+
cookie?: never;
|
|
742
|
+
};
|
|
743
|
+
requestBody: {
|
|
744
|
+
content: {
|
|
745
|
+
"application/json": components["schemas"]["InvitationAcceptRequest"];
|
|
746
|
+
"application/x-www-form-urlencoded": components["schemas"]["InvitationAcceptRequest"];
|
|
747
|
+
"multipart/form-data": components["schemas"]["InvitationAcceptRequest"];
|
|
748
|
+
};
|
|
749
|
+
};
|
|
750
|
+
responses: {
|
|
751
|
+
200: {
|
|
752
|
+
headers: {
|
|
753
|
+
[name: string]: unknown;
|
|
754
|
+
};
|
|
755
|
+
content: {
|
|
756
|
+
"application/json": components["schemas"]["MemberResponse"];
|
|
757
|
+
};
|
|
758
|
+
};
|
|
759
|
+
};
|
|
760
|
+
};
|
|
761
|
+
}
|