from ._base import Base
from typing import Any, BinaryIO
__all__ = ["Schemes"]
[docs]
class Schemes(Base):
[docs]
def get_schemes(self, scope: str | None = "", page: int | None = 0, per_page: int | None = 60):
"""Get the schemes.
scope: Limit the results returned to the provided scope, either ``team`` or ``channel``.
page: The page to select.
per_page: The number of schemes per page.
`Read in Mattermost API docs (schemes - GetSchemes) <https://developers.mattermost.com/api-documentation/#/operations/GetSchemes>`_
"""
__params = {"scope": scope, "page": page, "per_page": per_page}
return self.client.get("""/api/v4/schemes""", params=__params)
[docs]
def create_scheme(self, display_name: str, scope: str, name: str | None = None, description: str | None = None):
"""Create a scheme
name: The name of the scheme
display_name: The display name of the scheme
description: The description of the scheme
scope: The scope of the scheme ("team" or "channel")
`Read in Mattermost API docs (schemes - CreateScheme) <https://developers.mattermost.com/api-documentation/#/operations/CreateScheme>`_
"""
__options = {"name": name, "display_name": display_name, "description": description, "scope": scope}
return self.client.post("""/api/v4/schemes""", options=__options)
[docs]
def get_scheme(self, scheme_id: str):
"""Get a scheme
scheme_id: Scheme GUID
`Read in Mattermost API docs (schemes - GetScheme) <https://developers.mattermost.com/api-documentation/#/operations/GetScheme>`_
"""
return self.client.get(f"/api/v4/schemes/{scheme_id}")
[docs]
def delete_scheme(self, scheme_id: str):
"""Delete a scheme
scheme_id: ID of the scheme to delete
`Read in Mattermost API docs (schemes - DeleteScheme) <https://developers.mattermost.com/api-documentation/#/operations/DeleteScheme>`_
"""
return self.client.delete(f"/api/v4/schemes/{scheme_id}")
[docs]
def patch_scheme(self, scheme_id: str, name: str | None = None, description: str | None = None):
"""Patch a scheme
scheme_id: Scheme GUID
name: The human readable name of the scheme
description: The description of the scheme
`Read in Mattermost API docs (schemes - PatchScheme) <https://developers.mattermost.com/api-documentation/#/operations/PatchScheme>`_
"""
__options = {"name": name, "description": description}
return self.client.put(f"/api/v4/schemes/{scheme_id}/patch", options=__options)
[docs]
def get_teams_for_scheme(self, scheme_id: str, page: int | None = 0, per_page: int | None = 60):
"""Get a page of teams which use this scheme.
scheme_id: Scheme GUID
page: The page to select.
per_page: The number of teams per page.
`Read in Mattermost API docs (schemes - GetTeamsForScheme) <https://developers.mattermost.com/api-documentation/#/operations/GetTeamsForScheme>`_
"""
__params = {"page": page, "per_page": per_page}
return self.client.get(f"/api/v4/schemes/{scheme_id}/teams", params=__params)
[docs]
def get_channels_for_scheme(self, scheme_id: str, page: int | None = 0, per_page: int | None = 60):
"""Get a page of channels which use this scheme.
scheme_id: Scheme GUID
page: The page to select.
per_page: The number of channels per page.
`Read in Mattermost API docs (schemes - GetChannelsForScheme) <https://developers.mattermost.com/api-documentation/#/operations/GetChannelsForScheme>`_
"""
__params = {"page": page, "per_page": per_page}
return self.client.get(f"/api/v4/schemes/{scheme_id}/channels", params=__params)