Team Memberships
List, get, iterate, count, and look up team memberships — the user-to-team edges — using filters, includes, and ordering.
A team membership is the edge that connects a user to a team with a specific role. Access
memberships via team.memberships, which is a TeamMembershipCollection pre-bound to that
team.
Getting memberships for a team
from optixlog import SDKClient
from optixlog.management import Management
client = SDKClient(base_url="https://optixlog.leidos.com", api_key="sk-opt-...")
mgmt = Management(client)
project = mgmt.project("proj_grating_7f3a")
team = project.teams.get("team-abc123")
# List all memberships
page = team.memberships.list()
for m in page.items:
print(m.user_ref.id, m.role, m.joined_at)Filters
Filter by user_id (exact match) and/or role (exact match). Both filters are AND.
# All engineer memberships
page = team.memberships.list(role="Engineer")
# A specific user's membership
page = team.memberships.list(user_id="user-xyz")Includes
Pass include=["user"] to populate membership.user with the full User record. Pass
include=["team"] to populate membership.team. Without these, those fields are None.
page = team.memberships.list(include=["user", "team"])
for m in page.items:
print(m.user.name, m.user.email, m.team.name)Get by user id
get and get_or_none take a keyword-only user_id= argument (not a positional id):
# Raises NotFoundError if no membership for this user
membership = team.memberships.get(user_id="user-xyz", include=["user"])
# Returns None instead of raising
membership = team.memberships.get_or_none(user_id="user-xyz")Iterate all memberships
for m in team.memberships.iter(role="Engineer", include=["user"]):
print(m.user_ref.id, m.joined_at)Count
engineer_count = team.memberships.count(role="Engineer")Unique lookups
# Exactly one match — raises if zero or more than one
m = team.memberships.one(user_id="user-xyz")
# First match or None
m = team.memberships.first(role="Admin")Ordering
Order by joined_at, role, or user_name. Default is joined_at ascending.
page = team.memberships.list(order_by="joined_at", order="desc")TeamMembership fields
Prop
Type
User fields
The User model is returned when include=["user"] is passed.
Prop
Type