client.members¶
Bases: SyncResource
Sync project-members namespace (client.members).
add ¶
Add a tenant user to the project with a role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role
|
ProjectRole | str
|
|
required |
Raises:
| Type | Description |
|---|---|
NotFoundError
|
user not in this tenant (USER_NOT_FOUND). |
ConflictError
|
user is already a member (NAME_TAKEN) — use
:meth: |
ForbiddenError
|
caller is not a project manager (AUTH_FORBIDDEN). |
list ¶
List every member of the project (bounded, returned whole).
Raises:
| Type | Description |
|---|---|
ForbiddenError
|
caller is not a project member (AUTH_FORBIDDEN). |
NotFoundError
|
PROJECT_NOT_FOUND. |
update ¶
Change a member's project role.
Raises:
| Type | Description |
|---|---|
NotFoundError
|
the user is not a member (PROJECT_MEMBER_NOT_FOUND). |
BadRequestError
|
would demote the only remaining manager (BAD_REQUEST). |
ForbiddenError
|
caller is not a project manager (AUTH_FORBIDDEN). |
delete ¶
Remove a member from the project (204). Idempotent — removing a non-member also returns nothing.
Raises:
| Type | Description |
|---|---|
BadRequestError
|
would remove the only remaining manager (BAD_REQUEST). |
ForbiddenError
|
caller is not a project manager (AUTH_FORBIDDEN). |
Response models¶
Models returned by client.members methods (fields, types, and what each means).
Project-membership models (the members resource).
A project member is a (user, project, role) row. role is a shared
:class:~superb_ai.types.common.ProjectRole (never re-declared here).
The embedded user profile is a deliberate dict — see below.
Member ¶
Bases: BaseModel
One project member: which user, at which project role.