@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.
Files changed (65) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +45 -3
  3. package/dist/api/generated/schema.d.ts +759 -0
  4. package/dist/api/generated/schema.d.ts.map +1 -0
  5. package/dist/api/generated/schema.js +2 -0
  6. package/dist/api/generated/schema.js.map +1 -0
  7. package/dist/api/types.d.ts +22 -6
  8. package/dist/api/types.d.ts.map +1 -1
  9. package/dist/api/workspacesApi.d.ts +3 -3
  10. package/dist/api/workspacesApi.d.ts.map +1 -1
  11. package/dist/api/workspacesApi.js +14 -1
  12. package/dist/api/workspacesApi.js.map +1 -1
  13. package/dist/flows/registry.d.ts +22 -0
  14. package/dist/flows/registry.d.ts.map +1 -0
  15. package/dist/flows/registry.js +20 -0
  16. package/dist/flows/registry.js.map +1 -0
  17. package/dist/headless/Members.d.ts +6 -1
  18. package/dist/headless/Members.d.ts.map +1 -1
  19. package/dist/headless/Members.js +1 -1
  20. package/dist/headless/Members.js.map +1 -1
  21. package/dist/headless/WorkspacesProvider.d.ts +5 -4
  22. package/dist/headless/WorkspacesProvider.d.ts.map +1 -1
  23. package/dist/headless/WorkspacesProvider.js +5 -7
  24. package/dist/headless/WorkspacesProvider.js.map +1 -1
  25. package/dist/index.d.ts +3 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/model/context.d.ts +6 -9
  30. package/dist/model/context.d.ts.map +1 -1
  31. package/dist/model/context.js +11 -16
  32. package/dist/model/context.js.map +1 -1
  33. package/dist/model/queries.d.ts +6 -4
  34. package/dist/model/queries.d.ts.map +1 -1
  35. package/dist/model/queries.js +8 -5
  36. package/dist/model/queries.js.map +1 -1
  37. package/dist/model/queryKeys.d.ts +2 -0
  38. package/dist/model/queryKeys.d.ts.map +1 -1
  39. package/dist/model/queryKeys.js +3 -0
  40. package/dist/model/queryKeys.js.map +1 -1
  41. package/dist/model/runtime.d.ts +12 -21
  42. package/dist/model/runtime.d.ts.map +1 -1
  43. package/dist/model/runtime.js +2 -14
  44. package/dist/model/runtime.js.map +1 -1
  45. package/llms.txt +14 -14
  46. package/manifest.json +34 -32
  47. package/package.json +5 -4
  48. package/src/analytics/generated/events.json +1 -1
  49. package/src/api/generated/schema.ts +761 -0
  50. package/src/api/types.ts +23 -6
  51. package/src/api/workspacesApi.ts +17 -5
  52. package/src/flows/registry.ts +32 -0
  53. package/src/headless/Members.tsx +7 -2
  54. package/src/headless/WorkspacesProvider.tsx +6 -11
  55. package/src/index.ts +4 -3
  56. package/src/model/context.tsx +16 -17
  57. package/src/model/queries.ts +16 -7
  58. package/src/model/queryKeys.ts +9 -0
  59. package/src/model/runtime.ts +14 -35
  60. package/dist/flows/generated/flows.gen.d.ts +0 -19
  61. package/dist/flows/generated/flows.gen.d.ts.map +0 -1
  62. package/dist/flows/generated/flows.gen.js +0 -23
  63. package/dist/flows/generated/flows.gen.js.map +0 -1
  64. package/src/flows/generated/flows.gen.ts +0 -38
  65. 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
+ }