from ._base import Base
from typing import Any, BinaryIO
__all__ = ["AccessControl"]
[docs]
class AccessControl(Base):
[docs]
def create_access_control_policy(self, options: Any):
"""Create an access control policy
`Read in Mattermost API docs (access_control - CreateAccessControlPolicy) <https://developers.mattermost.com/api-documentation/#/operations/CreateAccessControlPolicy>`_
"""
return self.client.put("""/api/v4/access_control_policies""", options=options)
[docs]
def check_access_control_policy_expression(self, expression: str | None = None):
"""Check an access control policy expression
expression: The expression to check.
`Read in Mattermost API docs (access_control - CheckAccessControlPolicyExpression) <https://developers.mattermost.com/api-documentation/#/operations/CheckAccessControlPolicyExpression>`_
"""
__options = {"expression": expression}
return self.client.post("""/api/v4/access_control_policies/cel/check""", options=__options)
[docs]
def test_access_control_policy_expression(self, options: Any):
"""Test an access control policy expression
`Read in Mattermost API docs (access_control - TestAccessControlPolicyExpression) <https://developers.mattermost.com/api-documentation/#/operations/TestAccessControlPolicyExpression>`_
"""
return self.client.post("""/api/v4/access_control_policies/cel/test""", options=options)
[docs]
def search_access_control_policies(self, options: Any):
"""Search access control policies
`Read in Mattermost API docs (access_control - SearchAccessControlPolicies) <https://developers.mattermost.com/api-documentation/#/operations/SearchAccessControlPolicies>`_
"""
return self.client.post("""/api/v4/access_control_policies/search""", options=options)
[docs]
def get_access_control_policy_autocomplete_fields(self, after: str | None = None, limit: int = 60):
"""Get autocomplete fields for access control policies
after: The field ID to start after for pagination.
limit: The maximum number of fields to return.
`Read in Mattermost API docs (access_control - GetAccessControlPolicyAutocompleteFields) <https://developers.mattermost.com/api-documentation/#/operations/GetAccessControlPolicyAutocompleteFields>`_
"""
__params = {"after": after, "limit": limit}
return self.client.get("""/api/v4/access_control_policies/cel/autocomplete/fields""", params=__params)
[docs]
def get_access_control_policy(self, policy_id: str):
"""Get an access control policy
policy_id: The ID of the access control policy.
`Read in Mattermost API docs (access_control - GetAccessControlPolicy) <https://developers.mattermost.com/api-documentation/#/operations/GetAccessControlPolicy>`_
"""
return self.client.get(f"/api/v4/access_control_policies/{policy_id}")
[docs]
def delete_access_control_policy(self, policy_id: str):
"""Delete an access control policy
policy_id: The ID of the access control policy.
`Read in Mattermost API docs (access_control - DeleteAccessControlPolicy) <https://developers.mattermost.com/api-documentation/#/operations/DeleteAccessControlPolicy>`_
"""
return self.client.delete(f"/api/v4/access_control_policies/{policy_id}")
[docs]
def update_access_control_policy_active_status(self, policy_id: str, active: bool):
"""Activate or deactivate an access control policy
policy_id: The ID of the access control policy.
active: Set to "true" to activate, "false" to deactivate.
`Read in Mattermost API docs (access_control - UpdateAccessControlPolicyActiveStatus) <https://developers.mattermost.com/api-documentation/#/operations/UpdateAccessControlPolicyActiveStatus>`_
"""
__params = {"active": active}
return self.client.get(f"/api/v4/access_control_policies/{policy_id}/activate", params=__params)
[docs]
def assign_access_control_policy_to_channels(self, policy_id: str, channel_ids: list[str] | None = None):
"""Assign an access control policy to channels
policy_id: The ID of the access control policy.
channel_ids: The IDs of the channels to assign the policy to.
`Read in Mattermost API docs (access_control - AssignAccessControlPolicyToChannels) <https://developers.mattermost.com/api-documentation/#/operations/AssignAccessControlPolicyToChannels>`_
"""
__options = {"channel_ids": channel_ids}
return self.client.post(f"/api/v4/access_control_policies/{policy_id}/assign", options=__options)
[docs]
def unassign_access_control_policy_from_channels(self, policy_id: str, channel_ids: list[str] | None = None):
"""Unassign an access control policy from channels
policy_id: The ID of the access control policy.
channel_ids: The IDs of the channels to unassign the policy from.
`Read in Mattermost API docs (access_control - UnassignAccessControlPolicyFromChannels) <https://developers.mattermost.com/api-documentation/#/operations/UnassignAccessControlPolicyFromChannels>`_
"""
__params = {"channel_ids": channel_ids}
return self.client.delete(f"/api/v4/access_control_policies/{policy_id}/unassign", params=__params)
[docs]
def get_channels_for_access_control_policy(self, policy_id: str, after: str | None = None, limit: int = 60):
"""Get channels for an access control policy
policy_id: The ID of the access control policy.
after: The channel ID to start after for pagination.
limit: The maximum number of channels to return.
`Read in Mattermost API docs (access_control - GetChannelsForAccessControlPolicy) <https://developers.mattermost.com/api-documentation/#/operations/GetChannelsForAccessControlPolicy>`_
"""
__params = {"after": after, "limit": limit}
return self.client.get(f"/api/v4/access_control_policies/{policy_id}/resources/channels", params=__params)
[docs]
def search_channels_for_access_control_policy(self, policy_id: str, options: Any):
"""Search channels for an access control policy
policy_id: The ID of the access control policy.
`Read in Mattermost API docs (access_control - SearchChannelsForAccessControlPolicy) <https://developers.mattermost.com/api-documentation/#/operations/SearchChannelsForAccessControlPolicy>`_
"""
return self.client.post(
f"/api/v4/access_control_policies/{policy_id}/resources/channels/search", options=options
)
[docs]
def get_channel_access_control_attributes(self, channel_id: str):
"""Get access control attributes for a channel
channel_id: The ID of the channel.
`Read in Mattermost API docs (access_control - GetChannelAccessControlAttributes) <https://developers.mattermost.com/api-documentation/#/operations/GetChannelAccessControlAttributes>`_
"""
return self.client.get(f"/api/v4/channels/{channel_id}/access_control/attributes")
[docs]
def get_cel_visual_ast(self, options: Any):
"""Get the visual AST for a CEL expression
`Read in Mattermost API docs (access_control - GetCELVisualAST) <https://developers.mattermost.com/api-documentation/#/operations/GetCELVisualAST>`_
"""
return self.client.post("""/api/v4/access_control_policies/cel/visual_ast""", options=options)