Source code for mattermostautodriver.endpoints.groups

from ._base import Base
from typing import Any, BinaryIO

__all__ = ["Groups"]


[docs] class Groups(Base):
[docs] def get_groups( self, page: int | None = 0, per_page: int | None = 60, q: str | None = None, include_member_count: bool | None = None, not_associated_to_team: str | None = None, not_associated_to_channel: str | None = None, since: int | None = None, filter_allow_reference: bool | None = False, ): """Get groups page: The page to select. per_page: The number of groups per page. q: String to pattern match the ``name`` and ``display_name`` field. Will return all groups whose ``name`` and ``display_name`` field match any of the text. include_member_count: Boolean which adds the ``member_count`` attribute to each group JSON object not_associated_to_team: Team GUID which is used to return all the groups not associated to this team not_associated_to_channel: Group GUID which is used to return all the groups not associated to this channel since: Only return groups that have been modified since the given Unix timestamp (in milliseconds). All modified groups, including deleted and created groups, will be returned. *Minimum server version*: 5.24 filter_allow_reference: Boolean which filters the group entries with the ``allow_reference`` attribute set. `Read in Mattermost API docs (groups - GetGroups) <https://developers.mattermost.com/api-documentation/#/operations/GetGroups>`_ """ __params = { "page": page, "per_page": per_page, "q": q, "include_member_count": include_member_count, "not_associated_to_team": not_associated_to_team, "not_associated_to_channel": not_associated_to_channel, "since": since, "filter_allow_reference": filter_allow_reference, } return self.client.get("""/api/v4/groups""", params=__params)
[docs] def create_group(self, group: dict[str, Any], user_ids: list[str]): """Create a custom group group: Group object to create. user_ids: The user ids of the group members to add. `Read in Mattermost API docs (groups - CreateGroup) <https://developers.mattermost.com/api-documentation/#/operations/CreateGroup>`_ """ __options = {"group": group, "user_ids": user_ids} return self.client.post("""/api/v4/groups""", options=__options)
[docs] def get_group(self, group_id: str): """Get a group group_id: Group GUID `Read in Mattermost API docs (groups - GetGroup) <https://developers.mattermost.com/api-documentation/#/operations/GetGroup>`_ """ return self.client.get(f"/api/v4/groups/{group_id}")
[docs] def delete_group(self, group_id: str): """Deletes a custom group group_id: The ID of the group. `Read in Mattermost API docs (groups - DeleteGroup) <https://developers.mattermost.com/api-documentation/#/operations/DeleteGroup>`_ """ return self.client.delete(f"/api/v4/groups/{group_id}")
[docs] def patch_group( self, group_id: str, name: str | None = None, display_name: str | None = None, description: str | None = None ): """Patch a group group_id: Group GUID name: display_name: description: `Read in Mattermost API docs (groups - PatchGroup) <https://developers.mattermost.com/api-documentation/#/operations/PatchGroup>`_ """ __options = {"name": name, "display_name": display_name, "description": description} return self.client.put(f"/api/v4/groups/{group_id}/patch", options=__options)
[docs] def restore_group(self, group_id: str): """Restore a previously deleted group. group_id: Group GUID `Read in Mattermost API docs (groups - RestoreGroup) <https://developers.mattermost.com/api-documentation/#/operations/RestoreGroup>`_ """ return self.client.post(f"/api/v4/groups/{group_id}/restore")
[docs] def get_group_syncable_for_team_id(self, group_id: str, team_id: str): """Get GroupSyncable from Team ID group_id: Group GUID team_id: Team GUID `Read in Mattermost API docs (groups - GetGroupSyncableForTeamId) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupSyncableForTeamId>`_ """ return self.client.get(f"/api/v4/groups/{group_id}/teams/{team_id}")
[docs] def get_group_syncable_for_channel_id(self, group_id: str, channel_id: str): """Get GroupSyncable from channel ID group_id: Group GUID channel_id: Channel GUID `Read in Mattermost API docs (groups - GetGroupSyncableForChannelId) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupSyncableForChannelId>`_ """ return self.client.get(f"/api/v4/groups/{group_id}/channels/{channel_id}")
[docs] def get_group_syncables_teams(self, group_id: str): """Get group teams group_id: Group GUID `Read in Mattermost API docs (groups - GetGroupSyncablesTeams) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupSyncablesTeams>`_ """ return self.client.get(f"/api/v4/groups/{group_id}/teams")
[docs] def get_group_syncables_channels(self, group_id: str): """Get group channels group_id: Group GUID `Read in Mattermost API docs (groups - GetGroupSyncablesChannels) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupSyncablesChannels>`_ """ return self.client.get(f"/api/v4/groups/{group_id}/channels")
[docs] def patch_group_syncable_for_team(self, group_id: str, team_id: str, auto_add: bool | None = None): """Patch a GroupSyncable associated to Team group_id: Group GUID team_id: Team GUID auto_add: `Read in Mattermost API docs (groups - PatchGroupSyncableForTeam) <https://developers.mattermost.com/api-documentation/#/operations/PatchGroupSyncableForTeam>`_ """ __options = {"auto_add": auto_add} return self.client.put(f"/api/v4/groups/{group_id}/teams/{team_id}/patch", options=__options)
[docs] def patch_group_syncable_for_channel(self, group_id: str, channel_id: str, auto_add: bool | None = None): """Patch a GroupSyncable associated to Channel group_id: Group GUID channel_id: Channel GUID auto_add: `Read in Mattermost API docs (groups - PatchGroupSyncableForChannel) <https://developers.mattermost.com/api-documentation/#/operations/PatchGroupSyncableForChannel>`_ """ __options = {"auto_add": auto_add} return self.client.put(f"/api/v4/groups/{group_id}/channels/{channel_id}/patch", options=__options)
[docs] def get_group_users(self, group_id: str, page: int | None = 0, per_page: int | None = 60): """Get group users group_id: Group GUID page: The page to select. per_page: The number of groups per page. `Read in Mattermost API docs (groups - GetGroupUsers) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupUsers>`_ """ __params = {"page": page, "per_page": per_page} return self.client.get(f"/api/v4/groups/{group_id}/members", params=__params)
[docs] def delete_group_members(self, group_id: str, user_ids: list[str] | None = None): """Removes members from a custom group group_id: The ID of the group to delete. user_ids: `Read in Mattermost API docs (groups - DeleteGroupMembers) <https://developers.mattermost.com/api-documentation/#/operations/DeleteGroupMembers>`_ """ __params = {"user_ids": user_ids} return self.client.delete(f"/api/v4/groups/{group_id}/members", params=__params)
[docs] def add_group_members(self, group_id: str, user_ids: list[str] | None = None): """Adds members to a custom group group_id: The ID of the group. user_ids: `Read in Mattermost API docs (groups - AddGroupMembers) <https://developers.mattermost.com/api-documentation/#/operations/AddGroupMembers>`_ """ __options = {"user_ids": user_ids} return self.client.post(f"/api/v4/groups/{group_id}/members", options=__options)
[docs] def get_group_stats(self, group_id: str): """Get group stats group_id: Group GUID `Read in Mattermost API docs (groups - GetGroupStats) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupStats>`_ """ return self.client.get(f"/api/v4/groups/{group_id}/stats")
[docs] def get_groups_by_channel( self, channel_id: str, page: int | None = 0, per_page: int | None = 60, filter_allow_reference: bool | None = False, ): """Get channel groups channel_id: Channel GUID page: The page to select. per_page: The number of groups per page. filter_allow_reference: Boolean which filters the group entries with the ``allow_reference`` attribute set. `Read in Mattermost API docs (groups - GetGroupsByChannel) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupsByChannel>`_ """ __params = {"page": page, "per_page": per_page, "filter_allow_reference": filter_allow_reference} return self.client.get(f"/api/v4/channels/{channel_id}/groups", params=__params)
[docs] def get_groups_by_team( self, team_id: str, page: int | None = 0, per_page: int | None = 60, filter_allow_reference: bool | None = False, include_member_count: bool | None = False, include_timezones: bool | None = False, include_total_count: bool | None = False, include_archived: bool | None = False, filter_archived: bool | None = False, filter_parent_team_permitted: bool | None = False, filter_has_member: str | None = None, include_member_ids: bool | None = False, only_syncable_sources: bool | None = False, ): """Get team groups team_id: Team GUID page: The page to select. per_page: The number of groups per page. filter_allow_reference: Boolean which filters in the group entries with the ``allow_reference`` attribute set. include_member_count: Boolean which adds a ``member_count`` field to each group object. include_timezones: Boolean which adds timezone information for group members. include_total_count: Boolean which adds total count of groups in the response. include_archived: Boolean which includes archived groups in the response. filter_archived: Boolean which filters out archived groups from the response. filter_parent_team_permitted: Boolean which filters groups based on parent team permissions. filter_has_member: User ID to filter groups that have this member. include_member_ids: Boolean which adds member IDs to the group objects. only_syncable_sources: Boolean which includes groups from syncable sources. `Read in Mattermost API docs (groups - GetGroupsByTeam) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupsByTeam>`_ """ __params = { "page": page, "per_page": per_page, "filter_allow_reference": filter_allow_reference, "include_member_count": include_member_count, "include_timezones": include_timezones, "include_total_count": include_total_count, "include_archived": include_archived, "filter_archived": filter_archived, "filter_parent_team_permitted": filter_parent_team_permitted, "filter_has_member": filter_has_member, "include_member_ids": include_member_ids, "only_syncable_sources": only_syncable_sources, } return self.client.get(f"/api/v4/teams/{team_id}/groups", params=__params)
[docs] def get_groups_associated_to_channels_by_team( self, team_id: str, page: int | None = 0, per_page: int | None = 60, filter_allow_reference: bool | None = False, paginate: bool | None = False, ): """Get team groups by channels team_id: Team GUID page: The page to select. per_page: The number of groups per page. filter_allow_reference: Boolean which filters in the group entries with the ``allow_reference`` attribute set. paginate: Boolean to determine whether the pagination should be applied or not `Read in Mattermost API docs (groups - GetGroupsAssociatedToChannelsByTeam) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupsAssociatedToChannelsByTeam>`_ """ __params = { "page": page, "per_page": per_page, "filter_allow_reference": filter_allow_reference, "paginate": paginate, } return self.client.get(f"/api/v4/teams/{team_id}/groups_by_channels", params=__params)
[docs] def get_groups_by_user_id(self, user_id: str): """Get groups for a userId user_id: User GUID `Read in Mattermost API docs (groups - GetGroupsByUserId) <https://developers.mattermost.com/api-documentation/#/operations/GetGroupsByUserId>`_ """ return self.client.get(f"/api/v4/users/{user_id}/groups")