Source code for mattermostautodriver.endpoints.properties

from ._base import Base
from typing import Any, BinaryIO

__all__ = ["Properties"]


[docs] class Properties(Base):
[docs] def create_property_field( self, group_name: str, object_type: str, name: str, type: str, target_type: str, attrs: dict[str, Any] | None = None, target_id: str | None = None, permission_field: str | None = "member", permission_values: str | None = "member", permission_options: str | None = "member", ): """Create a property field group_name: The name of the property group object_type: The type of object this property field applies to name: The name of the property field type: The type of property field attrs: Additional attributes for the property field target_type: The scope level of the property target_id: The ID of the target permission_field: Permission level for editing the field definition. Only system admins can set this; ignored for non-admin users. permission_values: Permission level for setting values on objects. Only system admins can set this; ignored for non-admin users. permission_options: Permission level for managing options on select/multiselect fields. Only system admins can set this; ignored for non-admin users. `Read in Mattermost API docs (properties - CreatePropertyField) <https://developers.mattermost.com/api-documentation/#/operations/CreatePropertyField>`_ """ __options = { "name": name, "type": type, "attrs": attrs, "target_type": target_type, "target_id": target_id, "permission_field": permission_field, "permission_values": permission_values, "permission_options": permission_options, } return self.client.post(f"/api/v4/properties/groups/{group_name}/{object_type}/fields", options=__options)
[docs] def get_property_fields( self, group_name: str, object_type: str, target_type: str, target_id: str | None = None, cursor_id: str | None = None, cursor_create_at: int | None = None, per_page: int | None = 60, ): """Get property fields group_name: The name of the property group object_type: The type of object to retrieve property fields for target_type: The scope level to query. Must be one of 'system', 'team', or 'channel'. target_id: Filter by target ID. Required when target_type is 'channel' or 'team'. cursor_id: The ID of the last property field from the previous page, for cursor-based pagination. cursor_create_at: The create_at timestamp of the last property field from the previous page. Must be provided together with cursor_id. per_page: The number of property fields per page. `Read in Mattermost API docs (properties - GetPropertyFields) <https://developers.mattermost.com/api-documentation/#/operations/GetPropertyFields>`_ """ __params = { "target_type": target_type, "target_id": target_id, "cursor_id": cursor_id, "cursor_create_at": cursor_create_at, "per_page": per_page, } return self.client.get(f"/api/v4/properties/groups/{group_name}/{object_type}/fields", params=__params)
[docs] def update_property_field(self, group_name: str, object_type: str, field_id: str, options: Any): """Update a property field group_name: The name of the property group object_type: The type of object this property field applies to field_id: Property field ID `Read in Mattermost API docs (properties - UpdatePropertyField) <https://developers.mattermost.com/api-documentation/#/operations/UpdatePropertyField>`_ """ return self.client.patch( f"/api/v4/properties/groups/{group_name}/{object_type}/fields/{field_id}", options=options )
[docs] def delete_property_field(self, group_name: str, object_type: str, field_id: str): """Delete a property field group_name: The name of the property group object_type: The type of object this property field applies to field_id: Property field ID `Read in Mattermost API docs (properties - DeletePropertyField) <https://developers.mattermost.com/api-documentation/#/operations/DeletePropertyField>`_ """ return self.client.delete(f"/api/v4/properties/groups/{group_name}/{object_type}/fields/{field_id}")
[docs] def get_property_values( self, group_name: str, object_type: str, target_id: str, cursor_id: str | None = None, cursor_create_at: int | None = None, per_page: int | None = 60, ): """Get property values for a target group_name: The name of the property group object_type: The type of object target_id: The ID of the target object cursor_id: The ID of the last property value from the previous page, for cursor-based pagination. cursor_create_at: The create_at timestamp of the last property value from the previous page. Must be provided together with cursor_id. per_page: The number of property values per page. `Read in Mattermost API docs (properties - GetPropertyValues) <https://developers.mattermost.com/api-documentation/#/operations/GetPropertyValues>`_ """ __params = {"cursor_id": cursor_id, "cursor_create_at": cursor_create_at, "per_page": per_page} return self.client.get( f"/api/v4/properties/groups/{group_name}/{object_type}/values/{target_id}", params=__params )
[docs] def update_property_values(self, group_name: str, object_type: str, target_id: str, options: list[dict[str, Any]]): """Update property values for a target group_name: The name of the property group object_type: The type of object target_id: The ID of the target object `Read in Mattermost API docs (properties - UpdatePropertyValues) <https://developers.mattermost.com/api-documentation/#/operations/UpdatePropertyValues>`_ """ return self.client.patch( f"/api/v4/properties/groups/{group_name}/{object_type}/values/{target_id}", options=options )