Skip to content

client.teams.memberships

View as Markdown

client.teams.memberships — the teams.memberships operations.

On AsyncKindgi every method is the same, awaited.

list(
team_id: str | UUID,
/,
*,
limit: int | None = None,
cursor: str | None = None,
timeout: float | None = None,
) -> TeamMembershipCollectionPage
Signature

List memberships of a team. GET /v1/teams/{teamId}/memberships

Cursor-paginated. Sort order is binding-defined (for example joinedAt ascending). For the team's admins (and tenant admins): a plain member sees the team, not who else is in it, and reads their own roles through GET /v1/identity/users/{userId}/grants.

add(
team_id: str | UUID,
body: AddTeamMembershipBody | Mapping[str, Any] | None = None,
/,
*,
idempotency_key: str | None = None,
timeout: float | None = None,
**fields: Any,
) -> AddTeamMembershipResult
Signature

Add a user to a team. POST /v1/teams/{teamId}/memberships

Someone who is not a person of this tenant, or was removed from it, is refused with 404 identity-user-not-found. Adding a role the member already holds answers 201 with the existing record; another role, 409 membership-exists naming the role they hold (details.role), which is kept: use PATCH to change it.

update_role(
team_id: str | UUID,
user_id: str | UUID,
body: UpdateTeamMembershipBody | Mapping[str, Any] | None = None,
/,
*,
idempotency_key: str | None = None,
timeout: float | None = None,
**fields: Any,
) -> None
Signature

Change an existing member's role. PATCH /v1/teams/{teamId}/memberships/{userId}

remove(
team_id: str | UUID,
user_id: str | UUID,
/,
*,
idempotency_key: str | None = None,
timeout: float | None = None,
) -> None
Signature

Remove a user from a team (idempotent). DELETE /v1/teams/{teamId}/memberships/{userId}