arbi 0.18.0__py3-none-any.whl → 0.19.0__py3-none-any.whl
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.
- arbi/_version.py +1 -1
- arbi/resources/api/workspace.py +202 -70
- arbi/types/api/__init__.py +5 -4
- arbi/types/api/notification_create_response.py +16 -2
- arbi/types/api/notification_get_schemas_response.py +39 -73
- arbi/types/api/notification_list_response.py +16 -2
- arbi/types/api/notification_update_response.py +16 -2
- arbi/types/api/workspace_add_users_params.py +19 -0
- arbi/types/api/workspace_add_users_response.py +32 -0
- arbi/types/api/workspace_get_users_response.py +26 -4
- arbi/types/api/workspace_remove_users_params.py +18 -0
- arbi/types/api/workspace_response.py +22 -2
- arbi/types/api/workspace_update_user_roles_params.py +16 -0
- arbi/types/api/workspace_update_user_roles_response.py +32 -0
- {arbi-0.18.0.dist-info → arbi-0.19.0.dist-info}/METADATA +1 -1
- {arbi-0.18.0.dist-info → arbi-0.19.0.dist-info}/RECORD +18 -17
- arbi/types/api/workspace_remove_user_params.py +0 -11
- arbi/types/api/workspace_remove_user_response.py +0 -11
- arbi/types/api/workspace_share_params.py +0 -15
- arbi/types/api/workspace_share_response.py +0 -13
- {arbi-0.18.0.dist-info → arbi-0.19.0.dist-info}/WHEEL +0 -0
- {arbi-0.18.0.dist-info → arbi-0.19.0.dist-info}/licenses/LICENSE +0 -0
arbi/_version.py
CHANGED
arbi/resources/api/workspace.py
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import Optional
|
|
5
|
+
from typing import Iterable, Optional
|
|
6
|
+
from typing_extensions import Literal
|
|
6
7
|
|
|
7
8
|
import httpx
|
|
8
9
|
|
|
9
|
-
from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
10
|
+
from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, SequenceNotStr, omit, not_given
|
|
10
11
|
from ..._utils import maybe_transform, strip_not_given, async_maybe_transform
|
|
11
12
|
from ..._compat import cached_property
|
|
12
13
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
@@ -18,22 +19,23 @@ from ..._response import (
|
|
|
18
19
|
)
|
|
19
20
|
from ...types.api import (
|
|
20
21
|
workspace_copy_params,
|
|
21
|
-
workspace_share_params,
|
|
22
22
|
workspace_update_params,
|
|
23
|
-
|
|
23
|
+
workspace_add_users_params,
|
|
24
|
+
workspace_remove_users_params,
|
|
24
25
|
workspace_create_protected_params,
|
|
26
|
+
workspace_update_user_roles_params,
|
|
25
27
|
)
|
|
26
28
|
from ..._base_client import make_request_options
|
|
27
29
|
from ...types.api.workspace_response import WorkspaceResponse
|
|
28
30
|
from ...types.api.workspace_copy_response import WorkspaceCopyResponse
|
|
29
|
-
from ...types.api.workspace_share_response import WorkspaceShareResponse
|
|
30
31
|
from ...types.api.workspace_delete_response import WorkspaceDeleteResponse
|
|
31
32
|
from ...types.api.workspace_get_tags_response import WorkspaceGetTagsResponse
|
|
33
|
+
from ...types.api.workspace_add_users_response import WorkspaceAddUsersResponse
|
|
32
34
|
from ...types.api.workspace_get_stats_response import WorkspaceGetStatsResponse
|
|
33
35
|
from ...types.api.workspace_get_users_response import WorkspaceGetUsersResponse
|
|
34
|
-
from ...types.api.workspace_remove_user_response import WorkspaceRemoveUserResponse
|
|
35
36
|
from ...types.api.workspace_get_documents_response import WorkspaceGetDocumentsResponse
|
|
36
37
|
from ...types.api.workspace_get_conversations_response import WorkspaceGetConversationsResponse
|
|
38
|
+
from ...types.api.workspace_update_user_roles_response import WorkspaceUpdateUserRolesResponse
|
|
37
39
|
|
|
38
40
|
__all__ = ["WorkspaceResource", "AsyncWorkspaceResource"]
|
|
39
41
|
|
|
@@ -124,8 +126,9 @@ class WorkspaceResource(SyncAPIResource):
|
|
|
124
126
|
|
|
125
127
|
Only the creator of the workspace is allowed to delete it.
|
|
126
128
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
Workspaces with other
|
|
130
|
+
members cannot be deleted - remove all members first. If the workspace deletion
|
|
131
|
+
fails (e.g., due to RLS policy), the operation aborts.
|
|
129
132
|
|
|
130
133
|
Args:
|
|
131
134
|
extra_headers: Send extra headers
|
|
@@ -146,6 +149,57 @@ class WorkspaceResource(SyncAPIResource):
|
|
|
146
149
|
cast_to=WorkspaceDeleteResponse,
|
|
147
150
|
)
|
|
148
151
|
|
|
152
|
+
def add_users(
|
|
153
|
+
self,
|
|
154
|
+
workspace_ext_id: str,
|
|
155
|
+
*,
|
|
156
|
+
emails: SequenceNotStr[str],
|
|
157
|
+
role: Literal["owner", "collaborator", "guest"] | Omit = omit,
|
|
158
|
+
workspace_key: str | Omit = omit,
|
|
159
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
160
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
161
|
+
extra_headers: Headers | None = None,
|
|
162
|
+
extra_query: Query | None = None,
|
|
163
|
+
extra_body: Body | None = None,
|
|
164
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
165
|
+
) -> WorkspaceAddUsersResponse:
|
|
166
|
+
"""Add users to a workspace (bulk operation).
|
|
167
|
+
|
|
168
|
+
Only workspace owners can add users.
|
|
169
|
+
|
|
170
|
+
Client provides SealedBox-encrypted workspace key via Workspace-Key header.
|
|
171
|
+
Server decrypts it using session key, then wraps it with each recipient's public
|
|
172
|
+
key. Returns the full WorkspaceUserResponse for each successfully added user.
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
role: Role of a user within a workspace.
|
|
176
|
+
|
|
177
|
+
extra_headers: Send extra headers
|
|
178
|
+
|
|
179
|
+
extra_query: Add additional query parameters to the request
|
|
180
|
+
|
|
181
|
+
extra_body: Add additional JSON properties to the request
|
|
182
|
+
|
|
183
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
184
|
+
"""
|
|
185
|
+
if not workspace_ext_id:
|
|
186
|
+
raise ValueError(f"Expected a non-empty value for `workspace_ext_id` but received {workspace_ext_id!r}")
|
|
187
|
+
extra_headers = {**strip_not_given({"workspace-key": workspace_key}), **(extra_headers or {})}
|
|
188
|
+
return self._post(
|
|
189
|
+
f"/api/workspace/{workspace_ext_id}/users",
|
|
190
|
+
body=maybe_transform(
|
|
191
|
+
{
|
|
192
|
+
"emails": emails,
|
|
193
|
+
"role": role,
|
|
194
|
+
},
|
|
195
|
+
workspace_add_users_params.WorkspaceAddUsersParams,
|
|
196
|
+
),
|
|
197
|
+
options=make_request_options(
|
|
198
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
199
|
+
),
|
|
200
|
+
cast_to=WorkspaceAddUsersResponse,
|
|
201
|
+
)
|
|
202
|
+
|
|
149
203
|
def copy(
|
|
150
204
|
self,
|
|
151
205
|
workspace_ext_id: str,
|
|
@@ -460,22 +514,22 @@ class WorkspaceResource(SyncAPIResource):
|
|
|
460
514
|
cast_to=WorkspaceGetUsersResponse,
|
|
461
515
|
)
|
|
462
516
|
|
|
463
|
-
def
|
|
517
|
+
def remove_users(
|
|
464
518
|
self,
|
|
465
519
|
workspace_ext_id: str,
|
|
466
520
|
*,
|
|
467
|
-
|
|
521
|
+
users: Iterable[workspace_remove_users_params.User],
|
|
468
522
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
469
523
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
470
524
|
extra_headers: Headers | None = None,
|
|
471
525
|
extra_query: Query | None = None,
|
|
472
526
|
extra_body: Body | None = None,
|
|
473
527
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
474
|
-
) ->
|
|
475
|
-
"""
|
|
476
|
-
Remove a user from a workspace.
|
|
528
|
+
) -> None:
|
|
529
|
+
"""Remove users from a workspace (bulk operation).
|
|
477
530
|
|
|
478
|
-
|
|
531
|
+
Only workspace owners can remove
|
|
532
|
+
users. Users can also remove themselves from a workspace.
|
|
479
533
|
|
|
480
534
|
Args:
|
|
481
535
|
extra_headers: Send extra headers
|
|
@@ -488,35 +542,38 @@ class WorkspaceResource(SyncAPIResource):
|
|
|
488
542
|
"""
|
|
489
543
|
if not workspace_ext_id:
|
|
490
544
|
raise ValueError(f"Expected a non-empty value for `workspace_ext_id` but received {workspace_ext_id!r}")
|
|
545
|
+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
|
491
546
|
return self._delete(
|
|
492
|
-
f"/api/workspace/{workspace_ext_id}/
|
|
493
|
-
body=maybe_transform({"
|
|
547
|
+
f"/api/workspace/{workspace_ext_id}/users",
|
|
548
|
+
body=maybe_transform({"users": users}, workspace_remove_users_params.WorkspaceRemoveUsersParams),
|
|
494
549
|
options=make_request_options(
|
|
495
550
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
496
551
|
),
|
|
497
|
-
cast_to=
|
|
552
|
+
cast_to=NoneType,
|
|
498
553
|
)
|
|
499
554
|
|
|
500
|
-
def
|
|
555
|
+
def update_user_roles(
|
|
501
556
|
self,
|
|
502
557
|
workspace_ext_id: str,
|
|
503
558
|
*,
|
|
504
|
-
|
|
505
|
-
|
|
559
|
+
role: Literal["owner", "collaborator", "guest"],
|
|
560
|
+
user_ext_ids: SequenceNotStr[str],
|
|
506
561
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
507
562
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
508
563
|
extra_headers: Headers | None = None,
|
|
509
564
|
extra_query: Query | None = None,
|
|
510
565
|
extra_body: Body | None = None,
|
|
511
566
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
512
|
-
) ->
|
|
513
|
-
"""
|
|
514
|
-
Share a workspace with another user via their email address.
|
|
567
|
+
) -> WorkspaceUpdateUserRolesResponse:
|
|
568
|
+
"""Update user roles in a workspace (bulk operation).
|
|
515
569
|
|
|
516
|
-
|
|
517
|
-
|
|
570
|
+
Only workspace owners can
|
|
571
|
+
update roles. Returns the full WorkspaceUserResponse for each successfully
|
|
572
|
+
updated user.
|
|
518
573
|
|
|
519
574
|
Args:
|
|
575
|
+
role: Role of a user within a workspace.
|
|
576
|
+
|
|
520
577
|
extra_headers: Send extra headers
|
|
521
578
|
|
|
522
579
|
extra_query: Add additional query parameters to the request
|
|
@@ -527,14 +584,19 @@ class WorkspaceResource(SyncAPIResource):
|
|
|
527
584
|
"""
|
|
528
585
|
if not workspace_ext_id:
|
|
529
586
|
raise ValueError(f"Expected a non-empty value for `workspace_ext_id` but received {workspace_ext_id!r}")
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
587
|
+
return self._patch(
|
|
588
|
+
f"/api/workspace/{workspace_ext_id}/users",
|
|
589
|
+
body=maybe_transform(
|
|
590
|
+
{
|
|
591
|
+
"role": role,
|
|
592
|
+
"user_ext_ids": user_ext_ids,
|
|
593
|
+
},
|
|
594
|
+
workspace_update_user_roles_params.WorkspaceUpdateUserRolesParams,
|
|
595
|
+
),
|
|
534
596
|
options=make_request_options(
|
|
535
597
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
536
598
|
),
|
|
537
|
-
cast_to=
|
|
599
|
+
cast_to=WorkspaceUpdateUserRolesResponse,
|
|
538
600
|
)
|
|
539
601
|
|
|
540
602
|
|
|
@@ -624,8 +686,9 @@ class AsyncWorkspaceResource(AsyncAPIResource):
|
|
|
624
686
|
|
|
625
687
|
Only the creator of the workspace is allowed to delete it.
|
|
626
688
|
|
|
627
|
-
|
|
628
|
-
|
|
689
|
+
Workspaces with other
|
|
690
|
+
members cannot be deleted - remove all members first. If the workspace deletion
|
|
691
|
+
fails (e.g., due to RLS policy), the operation aborts.
|
|
629
692
|
|
|
630
693
|
Args:
|
|
631
694
|
extra_headers: Send extra headers
|
|
@@ -646,6 +709,57 @@ class AsyncWorkspaceResource(AsyncAPIResource):
|
|
|
646
709
|
cast_to=WorkspaceDeleteResponse,
|
|
647
710
|
)
|
|
648
711
|
|
|
712
|
+
async def add_users(
|
|
713
|
+
self,
|
|
714
|
+
workspace_ext_id: str,
|
|
715
|
+
*,
|
|
716
|
+
emails: SequenceNotStr[str],
|
|
717
|
+
role: Literal["owner", "collaborator", "guest"] | Omit = omit,
|
|
718
|
+
workspace_key: str | Omit = omit,
|
|
719
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
720
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
721
|
+
extra_headers: Headers | None = None,
|
|
722
|
+
extra_query: Query | None = None,
|
|
723
|
+
extra_body: Body | None = None,
|
|
724
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
725
|
+
) -> WorkspaceAddUsersResponse:
|
|
726
|
+
"""Add users to a workspace (bulk operation).
|
|
727
|
+
|
|
728
|
+
Only workspace owners can add users.
|
|
729
|
+
|
|
730
|
+
Client provides SealedBox-encrypted workspace key via Workspace-Key header.
|
|
731
|
+
Server decrypts it using session key, then wraps it with each recipient's public
|
|
732
|
+
key. Returns the full WorkspaceUserResponse for each successfully added user.
|
|
733
|
+
|
|
734
|
+
Args:
|
|
735
|
+
role: Role of a user within a workspace.
|
|
736
|
+
|
|
737
|
+
extra_headers: Send extra headers
|
|
738
|
+
|
|
739
|
+
extra_query: Add additional query parameters to the request
|
|
740
|
+
|
|
741
|
+
extra_body: Add additional JSON properties to the request
|
|
742
|
+
|
|
743
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
744
|
+
"""
|
|
745
|
+
if not workspace_ext_id:
|
|
746
|
+
raise ValueError(f"Expected a non-empty value for `workspace_ext_id` but received {workspace_ext_id!r}")
|
|
747
|
+
extra_headers = {**strip_not_given({"workspace-key": workspace_key}), **(extra_headers or {})}
|
|
748
|
+
return await self._post(
|
|
749
|
+
f"/api/workspace/{workspace_ext_id}/users",
|
|
750
|
+
body=await async_maybe_transform(
|
|
751
|
+
{
|
|
752
|
+
"emails": emails,
|
|
753
|
+
"role": role,
|
|
754
|
+
},
|
|
755
|
+
workspace_add_users_params.WorkspaceAddUsersParams,
|
|
756
|
+
),
|
|
757
|
+
options=make_request_options(
|
|
758
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
759
|
+
),
|
|
760
|
+
cast_to=WorkspaceAddUsersResponse,
|
|
761
|
+
)
|
|
762
|
+
|
|
649
763
|
async def copy(
|
|
650
764
|
self,
|
|
651
765
|
workspace_ext_id: str,
|
|
@@ -960,22 +1074,22 @@ class AsyncWorkspaceResource(AsyncAPIResource):
|
|
|
960
1074
|
cast_to=WorkspaceGetUsersResponse,
|
|
961
1075
|
)
|
|
962
1076
|
|
|
963
|
-
async def
|
|
1077
|
+
async def remove_users(
|
|
964
1078
|
self,
|
|
965
1079
|
workspace_ext_id: str,
|
|
966
1080
|
*,
|
|
967
|
-
|
|
1081
|
+
users: Iterable[workspace_remove_users_params.User],
|
|
968
1082
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
969
1083
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
970
1084
|
extra_headers: Headers | None = None,
|
|
971
1085
|
extra_query: Query | None = None,
|
|
972
1086
|
extra_body: Body | None = None,
|
|
973
1087
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
974
|
-
) ->
|
|
975
|
-
"""
|
|
976
|
-
Remove a user from a workspace.
|
|
1088
|
+
) -> None:
|
|
1089
|
+
"""Remove users from a workspace (bulk operation).
|
|
977
1090
|
|
|
978
|
-
|
|
1091
|
+
Only workspace owners can remove
|
|
1092
|
+
users. Users can also remove themselves from a workspace.
|
|
979
1093
|
|
|
980
1094
|
Args:
|
|
981
1095
|
extra_headers: Send extra headers
|
|
@@ -988,37 +1102,40 @@ class AsyncWorkspaceResource(AsyncAPIResource):
|
|
|
988
1102
|
"""
|
|
989
1103
|
if not workspace_ext_id:
|
|
990
1104
|
raise ValueError(f"Expected a non-empty value for `workspace_ext_id` but received {workspace_ext_id!r}")
|
|
1105
|
+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
|
991
1106
|
return await self._delete(
|
|
992
|
-
f"/api/workspace/{workspace_ext_id}/
|
|
1107
|
+
f"/api/workspace/{workspace_ext_id}/users",
|
|
993
1108
|
body=await async_maybe_transform(
|
|
994
|
-
{"
|
|
1109
|
+
{"users": users}, workspace_remove_users_params.WorkspaceRemoveUsersParams
|
|
995
1110
|
),
|
|
996
1111
|
options=make_request_options(
|
|
997
1112
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
998
1113
|
),
|
|
999
|
-
cast_to=
|
|
1114
|
+
cast_to=NoneType,
|
|
1000
1115
|
)
|
|
1001
1116
|
|
|
1002
|
-
async def
|
|
1117
|
+
async def update_user_roles(
|
|
1003
1118
|
self,
|
|
1004
1119
|
workspace_ext_id: str,
|
|
1005
1120
|
*,
|
|
1006
|
-
|
|
1007
|
-
|
|
1121
|
+
role: Literal["owner", "collaborator", "guest"],
|
|
1122
|
+
user_ext_ids: SequenceNotStr[str],
|
|
1008
1123
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1009
1124
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1010
1125
|
extra_headers: Headers | None = None,
|
|
1011
1126
|
extra_query: Query | None = None,
|
|
1012
1127
|
extra_body: Body | None = None,
|
|
1013
1128
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1014
|
-
) ->
|
|
1015
|
-
"""
|
|
1016
|
-
Share a workspace with another user via their email address.
|
|
1129
|
+
) -> WorkspaceUpdateUserRolesResponse:
|
|
1130
|
+
"""Update user roles in a workspace (bulk operation).
|
|
1017
1131
|
|
|
1018
|
-
|
|
1019
|
-
|
|
1132
|
+
Only workspace owners can
|
|
1133
|
+
update roles. Returns the full WorkspaceUserResponse for each successfully
|
|
1134
|
+
updated user.
|
|
1020
1135
|
|
|
1021
1136
|
Args:
|
|
1137
|
+
role: Role of a user within a workspace.
|
|
1138
|
+
|
|
1022
1139
|
extra_headers: Send extra headers
|
|
1023
1140
|
|
|
1024
1141
|
extra_query: Add additional query parameters to the request
|
|
@@ -1029,16 +1146,19 @@ class AsyncWorkspaceResource(AsyncAPIResource):
|
|
|
1029
1146
|
"""
|
|
1030
1147
|
if not workspace_ext_id:
|
|
1031
1148
|
raise ValueError(f"Expected a non-empty value for `workspace_ext_id` but received {workspace_ext_id!r}")
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
f"/api/workspace/{workspace_ext_id}/share",
|
|
1149
|
+
return await self._patch(
|
|
1150
|
+
f"/api/workspace/{workspace_ext_id}/users",
|
|
1035
1151
|
body=await async_maybe_transform(
|
|
1036
|
-
{
|
|
1152
|
+
{
|
|
1153
|
+
"role": role,
|
|
1154
|
+
"user_ext_ids": user_ext_ids,
|
|
1155
|
+
},
|
|
1156
|
+
workspace_update_user_roles_params.WorkspaceUpdateUserRolesParams,
|
|
1037
1157
|
),
|
|
1038
1158
|
options=make_request_options(
|
|
1039
1159
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1040
1160
|
),
|
|
1041
|
-
cast_to=
|
|
1161
|
+
cast_to=WorkspaceUpdateUserRolesResponse,
|
|
1042
1162
|
)
|
|
1043
1163
|
|
|
1044
1164
|
|
|
@@ -1052,6 +1172,9 @@ class WorkspaceResourceWithRawResponse:
|
|
|
1052
1172
|
self.delete = to_raw_response_wrapper(
|
|
1053
1173
|
workspace.delete,
|
|
1054
1174
|
)
|
|
1175
|
+
self.add_users = to_raw_response_wrapper(
|
|
1176
|
+
workspace.add_users,
|
|
1177
|
+
)
|
|
1055
1178
|
self.copy = to_raw_response_wrapper(
|
|
1056
1179
|
workspace.copy,
|
|
1057
1180
|
)
|
|
@@ -1073,11 +1196,11 @@ class WorkspaceResourceWithRawResponse:
|
|
|
1073
1196
|
self.get_users = to_raw_response_wrapper(
|
|
1074
1197
|
workspace.get_users,
|
|
1075
1198
|
)
|
|
1076
|
-
self.
|
|
1077
|
-
workspace.
|
|
1199
|
+
self.remove_users = to_raw_response_wrapper(
|
|
1200
|
+
workspace.remove_users,
|
|
1078
1201
|
)
|
|
1079
|
-
self.
|
|
1080
|
-
workspace.
|
|
1202
|
+
self.update_user_roles = to_raw_response_wrapper(
|
|
1203
|
+
workspace.update_user_roles,
|
|
1081
1204
|
)
|
|
1082
1205
|
|
|
1083
1206
|
|
|
@@ -1091,6 +1214,9 @@ class AsyncWorkspaceResourceWithRawResponse:
|
|
|
1091
1214
|
self.delete = async_to_raw_response_wrapper(
|
|
1092
1215
|
workspace.delete,
|
|
1093
1216
|
)
|
|
1217
|
+
self.add_users = async_to_raw_response_wrapper(
|
|
1218
|
+
workspace.add_users,
|
|
1219
|
+
)
|
|
1094
1220
|
self.copy = async_to_raw_response_wrapper(
|
|
1095
1221
|
workspace.copy,
|
|
1096
1222
|
)
|
|
@@ -1112,11 +1238,11 @@ class AsyncWorkspaceResourceWithRawResponse:
|
|
|
1112
1238
|
self.get_users = async_to_raw_response_wrapper(
|
|
1113
1239
|
workspace.get_users,
|
|
1114
1240
|
)
|
|
1115
|
-
self.
|
|
1116
|
-
workspace.
|
|
1241
|
+
self.remove_users = async_to_raw_response_wrapper(
|
|
1242
|
+
workspace.remove_users,
|
|
1117
1243
|
)
|
|
1118
|
-
self.
|
|
1119
|
-
workspace.
|
|
1244
|
+
self.update_user_roles = async_to_raw_response_wrapper(
|
|
1245
|
+
workspace.update_user_roles,
|
|
1120
1246
|
)
|
|
1121
1247
|
|
|
1122
1248
|
|
|
@@ -1130,6 +1256,9 @@ class WorkspaceResourceWithStreamingResponse:
|
|
|
1130
1256
|
self.delete = to_streamed_response_wrapper(
|
|
1131
1257
|
workspace.delete,
|
|
1132
1258
|
)
|
|
1259
|
+
self.add_users = to_streamed_response_wrapper(
|
|
1260
|
+
workspace.add_users,
|
|
1261
|
+
)
|
|
1133
1262
|
self.copy = to_streamed_response_wrapper(
|
|
1134
1263
|
workspace.copy,
|
|
1135
1264
|
)
|
|
@@ -1151,11 +1280,11 @@ class WorkspaceResourceWithStreamingResponse:
|
|
|
1151
1280
|
self.get_users = to_streamed_response_wrapper(
|
|
1152
1281
|
workspace.get_users,
|
|
1153
1282
|
)
|
|
1154
|
-
self.
|
|
1155
|
-
workspace.
|
|
1283
|
+
self.remove_users = to_streamed_response_wrapper(
|
|
1284
|
+
workspace.remove_users,
|
|
1156
1285
|
)
|
|
1157
|
-
self.
|
|
1158
|
-
workspace.
|
|
1286
|
+
self.update_user_roles = to_streamed_response_wrapper(
|
|
1287
|
+
workspace.update_user_roles,
|
|
1159
1288
|
)
|
|
1160
1289
|
|
|
1161
1290
|
|
|
@@ -1169,6 +1298,9 @@ class AsyncWorkspaceResourceWithStreamingResponse:
|
|
|
1169
1298
|
self.delete = async_to_streamed_response_wrapper(
|
|
1170
1299
|
workspace.delete,
|
|
1171
1300
|
)
|
|
1301
|
+
self.add_users = async_to_streamed_response_wrapper(
|
|
1302
|
+
workspace.add_users,
|
|
1303
|
+
)
|
|
1172
1304
|
self.copy = async_to_streamed_response_wrapper(
|
|
1173
1305
|
workspace.copy,
|
|
1174
1306
|
)
|
|
@@ -1190,9 +1322,9 @@ class AsyncWorkspaceResourceWithStreamingResponse:
|
|
|
1190
1322
|
self.get_users = async_to_streamed_response_wrapper(
|
|
1191
1323
|
workspace.get_users,
|
|
1192
1324
|
)
|
|
1193
|
-
self.
|
|
1194
|
-
workspace.
|
|
1325
|
+
self.remove_users = async_to_streamed_response_wrapper(
|
|
1326
|
+
workspace.remove_users,
|
|
1195
1327
|
)
|
|
1196
|
-
self.
|
|
1197
|
-
workspace.
|
|
1328
|
+
self.update_user_roles = async_to_streamed_response_wrapper(
|
|
1329
|
+
workspace.update_user_roles,
|
|
1198
1330
|
)
|
arbi/types/api/__init__.py
CHANGED
|
@@ -35,7 +35,6 @@ from .document_upload_params import DocumentUploadParams as DocumentUploadParams
|
|
|
35
35
|
from .query_llm_config_param import QueryLlmConfigParam as QueryLlmConfigParam
|
|
36
36
|
from .retriever_config_param import RetrieverConfigParam as RetrieverConfigParam
|
|
37
37
|
from .title_llm_config_param import TitleLlmConfigParam as TitleLlmConfigParam
|
|
38
|
-
from .workspace_share_params import WorkspaceShareParams as WorkspaceShareParams
|
|
39
38
|
from .workspace_copy_response import WorkspaceCopyResponse as WorkspaceCopyResponse
|
|
40
39
|
from .workspace_update_params import WorkspaceUpdateParams as WorkspaceUpdateParams
|
|
41
40
|
from .config_retrieve_response import ConfigRetrieveResponse as ConfigRetrieveResponse
|
|
@@ -43,7 +42,6 @@ from .document_retrieve_params import DocumentRetrieveParams as DocumentRetrieve
|
|
|
43
42
|
from .document_update_response import DocumentUpdateResponse as DocumentUpdateResponse
|
|
44
43
|
from .document_upload_response import DocumentUploadResponse as DocumentUploadResponse
|
|
45
44
|
from .user_verify_email_params import UserVerifyEmailParams as UserVerifyEmailParams
|
|
46
|
-
from .workspace_share_response import WorkspaceShareResponse as WorkspaceShareResponse
|
|
47
45
|
from .assistant_retrieve_params import AssistantRetrieveParams as AssistantRetrieveParams
|
|
48
46
|
from .workspace_delete_response import WorkspaceDeleteResponse as WorkspaceDeleteResponse
|
|
49
47
|
from .document_retrieve_response import DocumentRetrieveResponse as DocumentRetrieveResponse
|
|
@@ -53,6 +51,7 @@ from .notification_delete_params import NotificationDeleteParams as Notification
|
|
|
53
51
|
from .notification_list_response import NotificationListResponse as NotificationListResponse
|
|
54
52
|
from .notification_update_params import NotificationUpdateParams as NotificationUpdateParams
|
|
55
53
|
from .user_verify_email_response import UserVerifyEmailResponse as UserVerifyEmailResponse
|
|
54
|
+
from .workspace_add_users_params import WorkspaceAddUsersParams as WorkspaceAddUsersParams
|
|
56
55
|
from .conversation_share_response import ConversationShareResponse as ConversationShareResponse
|
|
57
56
|
from .model_citation_config_param import ModelCitationConfigParam as ModelCitationConfigParam
|
|
58
57
|
from .user_change_password_params import UserChangePasswordParams as UserChangePasswordParams
|
|
@@ -65,13 +64,13 @@ from .health_check_models_response import HealthCheckModelsResponse as HealthChe
|
|
|
65
64
|
from .notification_create_response import NotificationCreateResponse as NotificationCreateResponse
|
|
66
65
|
from .notification_update_response import NotificationUpdateResponse as NotificationUpdateResponse
|
|
67
66
|
from .user_check_sso_status_params import UserCheckSSOStatusParams as UserCheckSSOStatusParams
|
|
67
|
+
from .workspace_add_users_response import WorkspaceAddUsersResponse as WorkspaceAddUsersResponse
|
|
68
68
|
from .workspace_get_stats_response import WorkspaceGetStatsResponse as WorkspaceGetStatsResponse
|
|
69
69
|
from .workspace_get_users_response import WorkspaceGetUsersResponse as WorkspaceGetUsersResponse
|
|
70
|
-
from .workspace_remove_user_params import WorkspaceRemoveUserParams as WorkspaceRemoveUserParams
|
|
71
70
|
from .user_change_password_response import UserChangePasswordResponse as UserChangePasswordResponse
|
|
72
71
|
from .user_list_workspaces_response import UserListWorkspacesResponse as UserListWorkspacesResponse
|
|
72
|
+
from .workspace_remove_users_params import WorkspaceRemoveUsersParams as WorkspaceRemoveUsersParams
|
|
73
73
|
from .user_check_sso_status_response import UserCheckSSOStatusResponse as UserCheckSSOStatusResponse
|
|
74
|
-
from .workspace_remove_user_response import WorkspaceRemoveUserResponse as WorkspaceRemoveUserResponse
|
|
75
74
|
from .document_upload_from_url_params import DocumentUploadFromURLParams as DocumentUploadFromURLParams
|
|
76
75
|
from .health_retrieve_status_response import HealthRetrieveStatusResponse as HealthRetrieveStatusResponse
|
|
77
76
|
from .conversation_update_title_params import ConversationUpdateTitleParams as ConversationUpdateTitleParams
|
|
@@ -81,8 +80,10 @@ from .notification_get_schemas_response import NotificationGetSchemasResponse as
|
|
|
81
80
|
from .workspace_create_protected_params import WorkspaceCreateProtectedParams as WorkspaceCreateProtectedParams
|
|
82
81
|
from .conversation_update_title_response import ConversationUpdateTitleResponse as ConversationUpdateTitleResponse
|
|
83
82
|
from .document_date_extractor_llm_config import DocumentDateExtractorLlmConfig as DocumentDateExtractorLlmConfig
|
|
83
|
+
from .workspace_update_user_roles_params import WorkspaceUpdateUserRolesParams as WorkspaceUpdateUserRolesParams
|
|
84
84
|
from .conversation_delete_message_response import ConversationDeleteMessageResponse as ConversationDeleteMessageResponse
|
|
85
85
|
from .workspace_get_conversations_response import WorkspaceGetConversationsResponse as WorkspaceGetConversationsResponse
|
|
86
|
+
from .workspace_update_user_roles_response import WorkspaceUpdateUserRolesResponse as WorkspaceUpdateUserRolesResponse
|
|
86
87
|
from .conversation_retrieve_message_response import (
|
|
87
88
|
ConversationRetrieveMessageResponse as ConversationRetrieveMessageResponse,
|
|
88
89
|
)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import List, Optional
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from typing_extensions import TypeAlias
|
|
5
|
+
from typing_extensions import Literal, TypeAlias
|
|
6
6
|
|
|
7
7
|
from ..._models import BaseModel
|
|
8
8
|
from .user_response import UserResponse
|
|
@@ -33,7 +33,21 @@ class NotificationCreateResponseItem(BaseModel):
|
|
|
33
33
|
Used for: login response, workspace users, contacts (when registered).
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
|
-
type:
|
|
36
|
+
type: Literal[
|
|
37
|
+
"user_message",
|
|
38
|
+
"workspaceuser_added_owner",
|
|
39
|
+
"workspaceuser_added_collaborator",
|
|
40
|
+
"workspaceuser_added_guest",
|
|
41
|
+
"workspaceuser_removed",
|
|
42
|
+
"workspaceuser_updated_owner",
|
|
43
|
+
"workspaceuser_updated_collaborator",
|
|
44
|
+
"workspaceuser_updated_guest",
|
|
45
|
+
"contact_accepted",
|
|
46
|
+
]
|
|
47
|
+
"""Notification types - all persisted AND delivered via WebSocket.
|
|
48
|
+
|
|
49
|
+
Type is self-descriptive, no need to parse content field.
|
|
50
|
+
"""
|
|
37
51
|
|
|
38
52
|
updated_at: datetime
|
|
39
53
|
|
|
@@ -10,19 +10,19 @@ from .user_response import UserResponse
|
|
|
10
10
|
__all__ = [
|
|
11
11
|
"NotificationGetSchemasResponse",
|
|
12
12
|
"ClientMessage",
|
|
13
|
+
"ClientMessageAuthMessage",
|
|
14
|
+
"ClientMessageSendMessageRequestOutput",
|
|
13
15
|
"ServerMessage",
|
|
14
16
|
"ServerMessageAuthResultMessage",
|
|
15
17
|
"ServerMessageConnectionClosedMessage",
|
|
16
18
|
"ServerMessagePresenceUpdateMessage",
|
|
17
19
|
"ServerMessageErrorMessage",
|
|
18
20
|
"ServerMessageTaskUpdateMessage",
|
|
19
|
-
"
|
|
20
|
-
"ServerMessageWorkspaceShareNotification",
|
|
21
|
-
"ServerMessageContactAcceptedNotification",
|
|
21
|
+
"ServerMessageNotificationResponse",
|
|
22
22
|
]
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
class
|
|
25
|
+
class ClientMessageAuthMessage(BaseModel):
|
|
26
26
|
"""Client authentication message."""
|
|
27
27
|
|
|
28
28
|
token: str
|
|
@@ -30,6 +30,19 @@ class ClientMessage(BaseModel):
|
|
|
30
30
|
type: Optional[Literal["auth"]] = None
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
class ClientMessageSendMessageRequestOutput(BaseModel):
|
|
34
|
+
"""Client request to send an encrypted message."""
|
|
35
|
+
|
|
36
|
+
encrypted_content: str
|
|
37
|
+
|
|
38
|
+
recipient: str
|
|
39
|
+
|
|
40
|
+
type: Optional[Literal["send_message"]] = None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
ClientMessage: TypeAlias = Union[ClientMessageAuthMessage, ClientMessageSendMessageRequestOutput]
|
|
44
|
+
|
|
45
|
+
|
|
33
46
|
class ServerMessageAuthResultMessage(BaseModel):
|
|
34
47
|
"""Server response to authentication."""
|
|
35
48
|
|
|
@@ -84,21 +97,17 @@ class ServerMessageTaskUpdateMessage(BaseModel):
|
|
|
84
97
|
type: Optional[Literal["task_update"]] = None
|
|
85
98
|
|
|
86
99
|
|
|
87
|
-
class
|
|
88
|
-
"""
|
|
100
|
+
class ServerMessageNotificationResponse(BaseModel):
|
|
101
|
+
"""Notification response model for API and WebSocket.
|
|
89
102
|
|
|
90
|
-
|
|
91
|
-
Client: sender == me → I sent it, else I received it.
|
|
103
|
+
Bilateral: both sender and recipient see the same row.
|
|
104
|
+
Client determines perspective: sender == me → I sent it, else I received it.
|
|
92
105
|
"""
|
|
93
106
|
|
|
94
|
-
content: str
|
|
95
|
-
|
|
96
107
|
created_at: datetime
|
|
97
108
|
|
|
98
109
|
external_id: str
|
|
99
110
|
|
|
100
|
-
new: bool
|
|
101
|
-
|
|
102
111
|
recipient: UserResponse
|
|
103
112
|
"""Standard user representation used across all endpoints.
|
|
104
113
|
|
|
@@ -111,70 +120,29 @@ class ServerMessageUserMessageNotification(BaseModel):
|
|
|
111
120
|
Used for: login response, workspace users, contacts (when registered).
|
|
112
121
|
"""
|
|
113
122
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
new: bool
|
|
130
|
-
|
|
131
|
-
recipient: UserResponse
|
|
132
|
-
"""Standard user representation used across all endpoints.
|
|
133
|
-
|
|
134
|
-
Used for: login response, workspace users, contacts (when registered).
|
|
135
|
-
"""
|
|
136
|
-
|
|
137
|
-
sender: UserResponse
|
|
138
|
-
"""Standard user representation used across all endpoints.
|
|
139
|
-
|
|
140
|
-
Used for: login response, workspace users, contacts (when registered).
|
|
123
|
+
type: Literal[
|
|
124
|
+
"user_message",
|
|
125
|
+
"workspaceuser_added_owner",
|
|
126
|
+
"workspaceuser_added_collaborator",
|
|
127
|
+
"workspaceuser_added_guest",
|
|
128
|
+
"workspaceuser_removed",
|
|
129
|
+
"workspaceuser_updated_owner",
|
|
130
|
+
"workspaceuser_updated_collaborator",
|
|
131
|
+
"workspaceuser_updated_guest",
|
|
132
|
+
"contact_accepted",
|
|
133
|
+
]
|
|
134
|
+
"""Notification types - all persisted AND delivered via WebSocket.
|
|
135
|
+
|
|
136
|
+
Type is self-descriptive, no need to parse content field.
|
|
141
137
|
"""
|
|
142
138
|
|
|
143
139
|
updated_at: datetime
|
|
144
140
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
type: Optional[Literal["workspace_share"]] = None
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
class ServerMessageContactAcceptedNotification(BaseModel):
|
|
151
|
-
"""Contact invitation accepted.
|
|
152
|
-
|
|
153
|
-
Sent to inviter when their invited contact registers.
|
|
154
|
-
sender = new user who registered, recipient = inviter.
|
|
155
|
-
"""
|
|
156
|
-
|
|
157
|
-
created_at: datetime
|
|
158
|
-
|
|
159
|
-
external_id: str
|
|
160
|
-
|
|
161
|
-
new: bool
|
|
141
|
+
content: Optional[str] = None
|
|
162
142
|
|
|
163
|
-
|
|
164
|
-
"""Standard user representation used across all endpoints.
|
|
165
|
-
|
|
166
|
-
Used for: login response, workspace users, contacts (when registered).
|
|
167
|
-
"""
|
|
168
|
-
|
|
169
|
-
sender: UserResponse
|
|
170
|
-
"""Standard user representation used across all endpoints.
|
|
171
|
-
|
|
172
|
-
Used for: login response, workspace users, contacts (when registered).
|
|
173
|
-
"""
|
|
174
|
-
|
|
175
|
-
updated_at: datetime
|
|
143
|
+
new: Optional[bool] = None
|
|
176
144
|
|
|
177
|
-
|
|
145
|
+
workspace_ext_id: Optional[str] = None
|
|
178
146
|
|
|
179
147
|
|
|
180
148
|
ServerMessage: TypeAlias = Union[
|
|
@@ -183,9 +151,7 @@ ServerMessage: TypeAlias = Union[
|
|
|
183
151
|
ServerMessagePresenceUpdateMessage,
|
|
184
152
|
ServerMessageErrorMessage,
|
|
185
153
|
ServerMessageTaskUpdateMessage,
|
|
186
|
-
|
|
187
|
-
ServerMessageWorkspaceShareNotification,
|
|
188
|
-
ServerMessageContactAcceptedNotification,
|
|
154
|
+
ServerMessageNotificationResponse,
|
|
189
155
|
]
|
|
190
156
|
|
|
191
157
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import List, Optional
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from typing_extensions import TypeAlias
|
|
5
|
+
from typing_extensions import Literal, TypeAlias
|
|
6
6
|
|
|
7
7
|
from ..._models import BaseModel
|
|
8
8
|
from .user_response import UserResponse
|
|
@@ -33,7 +33,21 @@ class NotificationListResponseItem(BaseModel):
|
|
|
33
33
|
Used for: login response, workspace users, contacts (when registered).
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
|
-
type:
|
|
36
|
+
type: Literal[
|
|
37
|
+
"user_message",
|
|
38
|
+
"workspaceuser_added_owner",
|
|
39
|
+
"workspaceuser_added_collaborator",
|
|
40
|
+
"workspaceuser_added_guest",
|
|
41
|
+
"workspaceuser_removed",
|
|
42
|
+
"workspaceuser_updated_owner",
|
|
43
|
+
"workspaceuser_updated_collaborator",
|
|
44
|
+
"workspaceuser_updated_guest",
|
|
45
|
+
"contact_accepted",
|
|
46
|
+
]
|
|
47
|
+
"""Notification types - all persisted AND delivered via WebSocket.
|
|
48
|
+
|
|
49
|
+
Type is self-descriptive, no need to parse content field.
|
|
50
|
+
"""
|
|
37
51
|
|
|
38
52
|
updated_at: datetime
|
|
39
53
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import List, Optional
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from typing_extensions import TypeAlias
|
|
5
|
+
from typing_extensions import Literal, TypeAlias
|
|
6
6
|
|
|
7
7
|
from ..._models import BaseModel
|
|
8
8
|
from .user_response import UserResponse
|
|
@@ -33,7 +33,21 @@ class NotificationUpdateResponseItem(BaseModel):
|
|
|
33
33
|
Used for: login response, workspace users, contacts (when registered).
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
|
-
type:
|
|
36
|
+
type: Literal[
|
|
37
|
+
"user_message",
|
|
38
|
+
"workspaceuser_added_owner",
|
|
39
|
+
"workspaceuser_added_collaborator",
|
|
40
|
+
"workspaceuser_added_guest",
|
|
41
|
+
"workspaceuser_removed",
|
|
42
|
+
"workspaceuser_updated_owner",
|
|
43
|
+
"workspaceuser_updated_collaborator",
|
|
44
|
+
"workspaceuser_updated_guest",
|
|
45
|
+
"contact_accepted",
|
|
46
|
+
]
|
|
47
|
+
"""Notification types - all persisted AND delivered via WebSocket.
|
|
48
|
+
|
|
49
|
+
Type is self-descriptive, no need to parse content field.
|
|
50
|
+
"""
|
|
37
51
|
|
|
38
52
|
updated_at: datetime
|
|
39
53
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Literal, Required, Annotated, TypedDict
|
|
6
|
+
|
|
7
|
+
from ..._types import SequenceNotStr
|
|
8
|
+
from ..._utils import PropertyInfo
|
|
9
|
+
|
|
10
|
+
__all__ = ["WorkspaceAddUsersParams"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class WorkspaceAddUsersParams(TypedDict, total=False):
|
|
14
|
+
emails: Required[SequenceNotStr[str]]
|
|
15
|
+
|
|
16
|
+
role: Literal["owner", "collaborator", "guest"]
|
|
17
|
+
"""Role of a user within a workspace."""
|
|
18
|
+
|
|
19
|
+
workspace_key: Annotated[str, PropertyInfo(alias="workspace-key")]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal, TypeAlias
|
|
6
|
+
|
|
7
|
+
from ..._models import BaseModel
|
|
8
|
+
from .user_response import UserResponse
|
|
9
|
+
|
|
10
|
+
__all__ = ["WorkspaceAddUsersResponse", "WorkspaceAddUsersResponseItem"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class WorkspaceAddUsersResponseItem(BaseModel):
|
|
14
|
+
"""User with their role in a workspace."""
|
|
15
|
+
|
|
16
|
+
joined_at: datetime
|
|
17
|
+
|
|
18
|
+
role: Literal["owner", "collaborator", "guest"]
|
|
19
|
+
"""Role of a user within a workspace."""
|
|
20
|
+
|
|
21
|
+
user: UserResponse
|
|
22
|
+
"""Standard user representation used across all endpoints.
|
|
23
|
+
|
|
24
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
conversation_count: Optional[int] = None
|
|
28
|
+
|
|
29
|
+
document_count: Optional[int] = None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
WorkspaceAddUsersResponse: TypeAlias = List[WorkspaceAddUsersResponseItem]
|
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
from typing import List
|
|
4
|
-
from
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal, TypeAlias
|
|
5
6
|
|
|
7
|
+
from ..._models import BaseModel
|
|
6
8
|
from .user_response import UserResponse
|
|
7
9
|
|
|
8
|
-
__all__ = ["WorkspaceGetUsersResponse"]
|
|
10
|
+
__all__ = ["WorkspaceGetUsersResponse", "WorkspaceGetUsersResponseItem"]
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
|
|
13
|
+
class WorkspaceGetUsersResponseItem(BaseModel):
|
|
14
|
+
"""User with their role in a workspace."""
|
|
15
|
+
|
|
16
|
+
joined_at: datetime
|
|
17
|
+
|
|
18
|
+
role: Literal["owner", "collaborator", "guest"]
|
|
19
|
+
"""Role of a user within a workspace."""
|
|
20
|
+
|
|
21
|
+
user: UserResponse
|
|
22
|
+
"""Standard user representation used across all endpoints.
|
|
23
|
+
|
|
24
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
conversation_count: Optional[int] = None
|
|
28
|
+
|
|
29
|
+
document_count: Optional[int] = None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
WorkspaceGetUsersResponse: TypeAlias = List[WorkspaceGetUsersResponseItem]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Iterable
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["WorkspaceRemoveUsersParams", "User"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WorkspaceRemoveUsersParams(TypedDict, total=False):
|
|
12
|
+
users: Required[Iterable[User]]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class User(TypedDict, total=False):
|
|
16
|
+
"""A user to remove from a workspace."""
|
|
17
|
+
|
|
18
|
+
user_ext_id: Required[str]
|
|
@@ -2,11 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import List, Optional
|
|
4
4
|
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
5
6
|
|
|
6
7
|
from ..._models import BaseModel
|
|
7
8
|
from .user_response import UserResponse
|
|
8
9
|
|
|
9
|
-
__all__ = ["WorkspaceResponse"]
|
|
10
|
+
__all__ = ["WorkspaceResponse", "User"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class User(BaseModel):
|
|
14
|
+
"""User with their role in a workspace."""
|
|
15
|
+
|
|
16
|
+
joined_at: datetime
|
|
17
|
+
|
|
18
|
+
role: Literal["owner", "collaborator", "guest"]
|
|
19
|
+
"""Role of a user within a workspace."""
|
|
20
|
+
|
|
21
|
+
user: UserResponse
|
|
22
|
+
"""Standard user representation used across all endpoints.
|
|
23
|
+
|
|
24
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
conversation_count: Optional[int] = None
|
|
28
|
+
|
|
29
|
+
document_count: Optional[int] = None
|
|
10
30
|
|
|
11
31
|
|
|
12
32
|
class WorkspaceResponse(BaseModel):
|
|
@@ -36,6 +56,6 @@ class WorkspaceResponse(BaseModel):
|
|
|
36
56
|
|
|
37
57
|
user_files_mb: Optional[float] = None
|
|
38
58
|
|
|
39
|
-
users: Optional[List[
|
|
59
|
+
users: Optional[List[User]] = None
|
|
40
60
|
|
|
41
61
|
wrapped_key: Optional[str] = None
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
6
|
+
|
|
7
|
+
from ..._types import SequenceNotStr
|
|
8
|
+
|
|
9
|
+
__all__ = ["WorkspaceUpdateUserRolesParams"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class WorkspaceUpdateUserRolesParams(TypedDict, total=False):
|
|
13
|
+
role: Required[Literal["owner", "collaborator", "guest"]]
|
|
14
|
+
"""Role of a user within a workspace."""
|
|
15
|
+
|
|
16
|
+
user_ext_ids: Required[SequenceNotStr[str]]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal, TypeAlias
|
|
6
|
+
|
|
7
|
+
from ..._models import BaseModel
|
|
8
|
+
from .user_response import UserResponse
|
|
9
|
+
|
|
10
|
+
__all__ = ["WorkspaceUpdateUserRolesResponse", "WorkspaceUpdateUserRolesResponseItem"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class WorkspaceUpdateUserRolesResponseItem(BaseModel):
|
|
14
|
+
"""User with their role in a workspace."""
|
|
15
|
+
|
|
16
|
+
joined_at: datetime
|
|
17
|
+
|
|
18
|
+
role: Literal["owner", "collaborator", "guest"]
|
|
19
|
+
"""Role of a user within a workspace."""
|
|
20
|
+
|
|
21
|
+
user: UserResponse
|
|
22
|
+
"""Standard user representation used across all endpoints.
|
|
23
|
+
|
|
24
|
+
Used for: login response, workspace users, contacts (when registered).
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
conversation_count: Optional[int] = None
|
|
28
|
+
|
|
29
|
+
document_count: Optional[int] = None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
WorkspaceUpdateUserRolesResponse: TypeAlias = List[WorkspaceUpdateUserRolesResponseItem]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arbi
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
4
4
|
Summary: The official Python library for the arbi API
|
|
5
5
|
Project-URL: Homepage, https://github.com/arbitrationcity/arbi-python
|
|
6
6
|
Project-URL: Repository, https://github.com/arbitrationcity/arbi-python
|
|
@@ -11,7 +11,7 @@ arbi/_resource.py,sha256=eBjjRTRH59kNM8uLWIK04QCR0Sknrv9fEs4DvHw749U,1088
|
|
|
11
11
|
arbi/_response.py,sha256=YuaBc04B9DUJJE0ptEY4_9l_sEhDGdmfNEoow70cdRk,28776
|
|
12
12
|
arbi/_streaming.py,sha256=zM6RuNmZ9OAqxHDIFwDF7Y3L3jisK0Q0rXf_OLNW0Vo,10213
|
|
13
13
|
arbi/_types.py,sha256=qHso3-pk4h6jshu2oK8SUYyqdfuXot8X3qnFpDmlj0c,7592
|
|
14
|
-
arbi/_version.py,sha256=
|
|
14
|
+
arbi/_version.py,sha256=_Wj_4bk8ZeLQGXJ_oRNhOi2S6ovH1l-aMzxribO1VbY,157
|
|
15
15
|
arbi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
arbi/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
|
|
17
17
|
arbi/_utils/_compat.py,sha256=D8gtAvjJQrDWt9upS0XaG9Rr5l1QhiAx_I_1utT_tt0,1195
|
|
@@ -34,7 +34,7 @@ arbi/resources/api/configs.py,sha256=B7GPtw7tudT9C1Sw_-4lk6xkm9qDd9pm3oLeDFojvEk
|
|
|
34
34
|
arbi/resources/api/health.py,sha256=KyFR9x1Mr1QhlAxhd7w6azkm0vSlA6Ur1GLstfCrcWI,10186
|
|
35
35
|
arbi/resources/api/notifications.py,sha256=EVDNBR0fMiVhViMpdJoHzbxonBCENhYEkdqxhiv7dfY,19209
|
|
36
36
|
arbi/resources/api/tag.py,sha256=1XtSfY_4RsQEYRdCP-I9J3m6h0kOP6UMeKekSR2qbZg,15544
|
|
37
|
-
arbi/resources/api/workspace.py,sha256=
|
|
37
|
+
arbi/resources/api/workspace.py,sha256=5T_zxD2VwMCYOptBPYpvLteE2xTi0iRgy6MFKZKJgeU,54435
|
|
38
38
|
arbi/resources/api/conversation/__init__.py,sha256=WQKtfAPfHwgtRJaTnZszRZmQ0caUcMcDv7EHhu1rf4U,1054
|
|
39
39
|
arbi/resources/api/conversation/conversation.py,sha256=rrtiNir0XzV74rKvaT3gFQTBRoU3Z66lE167JJDJpvo,26666
|
|
40
40
|
arbi/resources/api/conversation/user.py,sha256=SBvtd4XkpZyMpwVAh-MV_vKptE6YoGKoGohx5zH5WNw,10280
|
|
@@ -51,7 +51,7 @@ arbi/types/chunk.py,sha256=J6LQxWxLDW9feXQZOiYNNSBKgwkzhXgf74DS_noHFLs,254
|
|
|
51
51
|
arbi/types/chunk_metadata.py,sha256=GHcVONko0WWfDAa6rvLHldxgxL2IWmI6NqKwXAJLgYQ,545
|
|
52
52
|
arbi/types/chunk_metadata_param.py,sha256=UwGaK35hTMRR-YKPivEpQtUorIAqu-I7did2HnOV4aE,629
|
|
53
53
|
arbi/types/chunk_param.py,sha256=YI77ArEd8KXaDXspgezw1h36xQhoCnb4iwX6Hws3nzU,368
|
|
54
|
-
arbi/types/api/__init__.py,sha256=
|
|
54
|
+
arbi/types/api/__init__.py,sha256=mdc1nQmwrMLeYZOgLqF0vfHUWz4aN4tHsTEQhIfkRHs,7753
|
|
55
55
|
arbi/types/api/assistant_query_params.py,sha256=iyDQx6ROk6xjLiYDqkTUZt4awc5szYHhAR6HWcWpTQk,2266
|
|
56
56
|
arbi/types/api/assistant_retrieve_params.py,sha256=IXuOOeuu-fT2syIMf1tTtaRUB5cDs_xnyZ8UDh73B4I,2272
|
|
57
57
|
arbi/types/api/chunker_config_param.py,sha256=hdYyEXCdR_g6DB_c0EuoH_73MocVOVaqwaV2Z5D_hCs,237
|
|
@@ -88,12 +88,12 @@ arbi/types/api/health_retrieve_status_response.py,sha256=Tb5BV2NyzJnBG7JQA_25pKM
|
|
|
88
88
|
arbi/types/api/model_citation_config.py,sha256=Y3xDl-Y2JmDV399iviALSeg-8r-vACx_7ah6PtEsIoM,774
|
|
89
89
|
arbi/types/api/model_citation_config_param.py,sha256=VtKOJMJoQaqacP7hMHL2TyYPIIIraHA7eN00OGhWygs,784
|
|
90
90
|
arbi/types/api/notification_create_params.py,sha256=mbSdniLjayp4xc3Q0QZ_2tPVWdkf0WCB3lK5dJchwlU,508
|
|
91
|
-
arbi/types/api/notification_create_response.py,sha256=
|
|
91
|
+
arbi/types/api/notification_create_response.py,sha256=jmRbn-hs9qrxAtgDPXxH6v0ty1mknuei-6bwSmrV44o,1718
|
|
92
92
|
arbi/types/api/notification_delete_params.py,sha256=Zjpc4Jg6TMiQ9xzEhUMuMEABgw8eGE11CRe6M2ylh94,357
|
|
93
|
-
arbi/types/api/notification_get_schemas_response.py,sha256=
|
|
94
|
-
arbi/types/api/notification_list_response.py,sha256=
|
|
93
|
+
arbi/types/api/notification_get_schemas_response.py,sha256=tXwsfaZP9W_m-4RrZ9IVlXgSlB6VAdYOfTRIQerMUSo,4071
|
|
94
|
+
arbi/types/api/notification_list_response.py,sha256=ref9wfDue1IIi6HXo6Em1OoAdqGr1ftWZ0uVqBIsv5A,1708
|
|
95
95
|
arbi/types/api/notification_update_params.py,sha256=Dp2_bIZ6kjaU_JSRSvqfs8TDpn0bqLRjFHHM0zpr7f8,676
|
|
96
|
-
arbi/types/api/notification_update_response.py,sha256=
|
|
96
|
+
arbi/types/api/notification_update_response.py,sha256=41tZFbqWV19tV0FNJ_6QWwm355HqLs-YQZQCMSY_ZHI,1718
|
|
97
97
|
arbi/types/api/parser_config_param.py,sha256=lFJO9CO8m3e8YFltmHLrMKhC83FFwCJWjsua5l3Jjic,235
|
|
98
98
|
arbi/types/api/query_llm_config.py,sha256=LkDKaQgcaOg7HC76jW1RGGOnbZnwXSsjB42HXFLeTzE,1102
|
|
99
99
|
arbi/types/api/query_llm_config_param.py,sha256=bKGnr2jRqSI9BxnemLLehkRLCba9WvrS82LhtsnAPvc,1046
|
|
@@ -121,6 +121,8 @@ arbi/types/api/user_register_params.py,sha256=O0A9BnTrtl8NU5cJA3B_sG302Fa7tewiLL
|
|
|
121
121
|
arbi/types/api/user_response.py,sha256=uDXvGo9w8str7zcNmcam02C4oDEBCC1q7HDnlbocSo8,505
|
|
122
122
|
arbi/types/api/user_verify_email_params.py,sha256=urUDkRA7aQL3xI7b-6ZDthexP-5uh0z1f3YpTCSiQ9o,290
|
|
123
123
|
arbi/types/api/user_verify_email_response.py,sha256=Z94jdaY-UEugVFq-pV9tuS6w_7h8J0ZWfZuWQwcn56I,219
|
|
124
|
+
arbi/types/api/workspace_add_users_params.py,sha256=Z0obJRmsexjuTFxrH2T0lZP7Vr80j-sjw1WBgeUb-vw,574
|
|
125
|
+
arbi/types/api/workspace_add_users_response.py,sha256=21Ygfw5UpwclW4HiE-DeREm5zcMkHOqnjLVvDSERmyA,904
|
|
124
126
|
arbi/types/api/workspace_copy_params.py,sha256=XrMYume8IDcSsrmHLoD66RyYe3APwlxnsxv98gE7Ggk,677
|
|
125
127
|
arbi/types/api/workspace_copy_response.py,sha256=XniNhythTHEBSIKBJmP9CjcrgWqVhY3YE8DZBJ5n4K8,496
|
|
126
128
|
arbi/types/api/workspace_create_protected_params.py,sha256=GEWI-KNn3kb35x-mcm90Hsaq45B_a5HporRZNTXDUok,388
|
|
@@ -129,13 +131,12 @@ arbi/types/api/workspace_get_conversations_response.py,sha256=vNrWUgpgVO0cjixDrm
|
|
|
129
131
|
arbi/types/api/workspace_get_documents_response.py,sha256=Jugc3x-GMaBiP0xBev78uQXlXGLjgRI2y-XerSpBsT0,297
|
|
130
132
|
arbi/types/api/workspace_get_stats_response.py,sha256=yNIGwDcCu9X8keA3JEv2J1s0Uc9gMAMxEEz51OnzIoM,441
|
|
131
133
|
arbi/types/api/workspace_get_tags_response.py,sha256=MaUq4rgmiST9nUBCHAmJTlcV7bx3w5fHMIn3BdDBh0k,1567
|
|
132
|
-
arbi/types/api/workspace_get_users_response.py,sha256=
|
|
133
|
-
arbi/types/api/
|
|
134
|
-
arbi/types/api/
|
|
135
|
-
arbi/types/api/workspace_response.py,sha256=hyIBlrmgcILKROxIr3DyF_C2p_Ty8b_ELqQst8IUdec,853
|
|
136
|
-
arbi/types/api/workspace_share_params.py,sha256=GheVCcIXEfActMr7SiI2ZwMdIxJBPJ5x1swqqY5oZ4M,417
|
|
137
|
-
arbi/types/api/workspace_share_response.py,sha256=JOoU_wLjUiIdcY356mtmlO16OQZm8IAU00A_k55NnPw,266
|
|
134
|
+
arbi/types/api/workspace_get_users_response.py,sha256=9YeA-Dju8CMxUf1Ex91ZC68DOeyOE73jQktnuNmk8HY,904
|
|
135
|
+
arbi/types/api/workspace_remove_users_params.py,sha256=ZpGG2QSnooEgQ85pLTXurSWPcR0eZLayEwP5UiUXtzs,462
|
|
136
|
+
arbi/types/api/workspace_response.py,sha256=n9njYyrNCgyCrdpV5I__uTfj3hKVXpXCy9DHXnqReqw,1345
|
|
138
137
|
arbi/types/api/workspace_update_params.py,sha256=CqswSvA9zrC7NncTFYcLJjBMZs_Xmfk6cP_y8L8J_j4,489
|
|
138
|
+
arbi/types/api/workspace_update_user_roles_params.py,sha256=xlOPFWZm8nDGXwpu18pqYZoZgzOptfQM_Li6acQaP2k,486
|
|
139
|
+
arbi/types/api/workspace_update_user_roles_response.py,sha256=gpRF8UzEFLEDWPhyF6JiYJYh3RZSI8iFIe37QzwWgl8,939
|
|
139
140
|
arbi/types/api/conversation/__init__.py,sha256=jzfeVJd78d972p4eSzTZNWXY7EXR50kJ3e6pzDcG8d8,393
|
|
140
141
|
arbi/types/api/conversation/user_add_params.py,sha256=bzAIbyla6URUE6xkArzggJnv1sDFxCG1AzYiMKMlQ74,280
|
|
141
142
|
arbi/types/api/conversation/user_add_response.py,sha256=85ahGr81kC7sqLn0T1r-AYxgvER4gFki6YdhxTJ1pf0,250
|
|
@@ -159,7 +160,7 @@ arbi/types/api/user/setting_update_params.py,sha256=SO-9mLEF-0hb38lfH9LKJONouh-u
|
|
|
159
160
|
arbi/types/api/user/subscription_create_params.py,sha256=JGZApPmFHsLIIyYkOmhbra2bCKYgfn5cTW_UEJKUJtg,316
|
|
160
161
|
arbi/types/api/user/subscription_create_response.py,sha256=ZYx474gFNC9Y06gOwQJqHj6GTAY0U2sgZGM_SfRpdMQ,303
|
|
161
162
|
arbi/types/api/user/subscription_retrieve_response.py,sha256=-yYpieuLip2PITeV4_dPxMwgVNdXJaA-O45WaIRkxc8,1182
|
|
162
|
-
arbi-0.
|
|
163
|
-
arbi-0.
|
|
164
|
-
arbi-0.
|
|
165
|
-
arbi-0.
|
|
163
|
+
arbi-0.19.0.dist-info/METADATA,sha256=9qWVWqxquzYqBnJgLXNRE25T0R2qGZw3sB3yLYro_68,13300
|
|
164
|
+
arbi-0.19.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
165
|
+
arbi-0.19.0.dist-info/licenses/LICENSE,sha256=WkfZReOrGows6re0a6rdV77cbYzWNHVKXTvKYeOWRLM,11334
|
|
166
|
+
arbi-0.19.0.dist-info/RECORD,,
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from typing_extensions import Required, TypedDict
|
|
6
|
-
|
|
7
|
-
__all__ = ["WorkspaceRemoveUserParams"]
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class WorkspaceRemoveUserParams(TypedDict, total=False):
|
|
11
|
-
user_ext_id: Required[str]
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
from ..._models import BaseModel
|
|
6
|
-
|
|
7
|
-
__all__ = ["WorkspaceRemoveUserResponse"]
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class WorkspaceRemoveUserResponse(BaseModel):
|
|
11
|
-
detail: Optional[str] = None
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from typing_extensions import Required, Annotated, TypedDict
|
|
6
|
-
|
|
7
|
-
from ..._utils import PropertyInfo
|
|
8
|
-
|
|
9
|
-
__all__ = ["WorkspaceShareParams"]
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class WorkspaceShareParams(TypedDict, total=False):
|
|
13
|
-
recipient_email: Required[str]
|
|
14
|
-
|
|
15
|
-
workspace_key: Annotated[str, PropertyInfo(alias="workspace-key")]
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from ..._models import BaseModel
|
|
4
|
-
|
|
5
|
-
__all__ = ["WorkspaceShareResponse"]
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class WorkspaceShareResponse(BaseModel):
|
|
9
|
-
detail: str
|
|
10
|
-
|
|
11
|
-
shared_with: str
|
|
12
|
-
|
|
13
|
-
workspace_ext_id: str
|
|
File without changes
|
|
File without changes
|