Groups API¶
The GroupsAPI client exposes three read endpoints added in v0.5.0.
Resource grouping¶
All endpoints are grouped under client.groups (D-v0.5-1), separate from PostsAPI or other
resource clients.
Usage¶
from pynteracta.client import InteractaClient
with InteractaClient(base_url="https://tenant.example.com", credentials=...) as client:
# List groups (first page)
page = client.groups.list_groups()
for g in page.items_typed:
print(g.id, g.name, g.members_count)
# Iterate all pages lazily
for g in client.groups.iterate_groups(full_text_filter="eng"):
print(g.id, g.name)
# List members of a group
members = client.groups.list_members(201)
for m in members.members_typed:
print(m.id, m.full_name, m.email)
# Iterate all member pages
for m in client.groups.iterate_members(201, page_size=50):
print(m.id, m.full_name)
# Fetch group detail (for-edit form; includes members list and occToken)
group = client.groups.get_for_edit(201)
print(group.name, group.members_count)
print(group.raw.occToken) # occToken only on .raw — for future write use
Sort fields for list_groups¶
The API uses orderTypeId (not orderBy). Valid values: 'name', 'email'.
Pass as order_type_id kwarg; order_desc controls direction.
API Reference¶
pynteracta.api.groups.GroupsAPI
¶
Bases: ResourceClient
Client for group listing, member listing, and group-for-edit endpoints.
list_groups(*, page_token=None, page_size=None, full_text_filter=None, status_filter=None, workspace_ids=None, order_type_id=None, order_desc=None)
¶
POST /admin/data/groups.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
page_token
|
str | None
|
Pagination cursor from a previous response. |
None
|
page_size
|
int | None
|
Maximum items per page. |
None
|
full_text_filter
|
str | None
|
Full-text filter on group name and email. |
None
|
status_filter
|
list[int] | None
|
Filter by group status codes. |
None
|
workspace_ids
|
list[int] | None
|
Filter by workspace IDs. |
None
|
order_type_id
|
str | None
|
Sort field. Valid values: |
None
|
order_desc
|
bool | None
|
|
None
|
list_groups_raw(req)
¶
POST group list with a pre-built request DTO (escape hatch).
iterate_groups(*, page_size=None, full_text_filter=None, status_filter=None, workspace_ids=None, order_type_id=None, order_desc=None)
¶
Lazy iterator over all pages of :meth:list_groups.
list_members(group_id, *, page_token=None, page_size=None)
¶
POST /admin/data/groups/{groupId}/members.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
group_id
|
int
|
The group whose members to list. |
required |
page_token
|
str | None
|
Pagination cursor. |
None
|
page_size
|
int | None
|
Maximum items per page. |
None
|
iterate_members(group_id, *, page_size=None)
¶
Lazy iterator over all pages of :meth:list_members.
get_for_edit(group_id)
¶
GET /admin/manage/groups/{groupId}/edit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
group_id
|
int
|
The group ID to fetch. |
required |
Facade Reference¶
pynteracta.models.facade.groups.Group
¶
Narrow facade over :class:~generated.ListSystemGroupsElementDTOModel.
ListSystemGroupsResponseDTO.items are typed as ListSystemGroupsElementDTO
(RootModel[Any] stubs); bind to the typed ListSystemGroupsElementDTOModel.
Attributes:
| Name | Type | Description |
|---|---|---|
raw |
The underlying typed DTO; access additional fields via this escape hatch. |
Source code in src/pynteracta/models/facade/groups.py
pynteracta.models.facade.groups.GroupList
¶
Narrow facade over :class:~generated.ListSystemGroupsResponseDTO.
items are ListSystemGroupsElementDTO (RootModel[Any] stubs); call
:meth:items_typed to get :class:Group instances.
Attributes:
| Name | Type | Description |
|---|---|---|
raw |
The underlying generated DTO; access additional fields via this escape hatch. |
Source code in src/pynteracta/models/facade/groups.py
pynteracta.models.facade.groups.GroupMember
¶
Thin facade over :class:~generated.UserDTOModel for a group member.
ListGroupMembersResponseDTO.items and GetGroupForEditResponseDTO.members are typed as
list[UserDTO] (RootModel[Any] stubs); this facade wraps the re-validated typed sibling.
Attributes:
| Name | Type | Description |
|---|---|---|
raw |
The underlying typed DTO. |
Source code in src/pynteracta/models/facade/groups.py
from_stub(stub)
classmethod
¶
Re-validate a UserDTO RootModel[Any] stub into :class:GroupMember.
Source code in src/pynteracta/models/facade/groups.py
pynteracta.models.facade.groups.GroupMemberList
¶
Narrow facade over :class:~generated.ListGroupMembersResponseDTO.
Attributes:
| Name | Type | Description |
|---|---|---|
raw |
The underlying generated DTO; access additional fields via this escape hatch. |
Source code in src/pynteracta/models/facade/groups.py
pynteracta.models.facade.groups.GroupForEdit
¶
Narrow facade over :class:~generated.GetGroupForEditResponseDTO.
The members list contains UserDTO (RootModel[Any] stubs); call
:meth:members_typed to re-validate them. occToken is only on .raw — it is the
propaedeutic edit token for the future write surface.
Attributes:
| Name | Type | Description |
|---|---|---|
raw |
The underlying generated DTO; access additional fields via this escape hatch. |
Source code in src/pynteracta/models/facade/groups.py
pynteracta.models.facade.groups.Tag
¶
Thin facade over :class:~generated.TagDTO1.
Attributes:
| Name | Type | Description |
|---|---|---|
raw |
The underlying typed DTO. |