.. _acl: Access Control List =================== Access control rule is represented by the class :py:class:`~gcsa.acl.AccessControlRule`. `gcsa` allows you to add a new access control rule, retrieve, update and delete existing rules. To do so, create a :py:class:`~gcsa.google_calendar.GoogleCalendar` instance (see :ref:`getting_started` to get your credentials): .. code-block:: python from gcsa.google_calendar import GoogleCalendar gc = GoogleCalendar() List rules ~~~~~~~~~~ .. code-block:: python for rule in gc.get_acl_rules(): print(rule) Get rule by id ~~~~~~~~~~~~~~ .. code-block:: python rule = gc.get_acl_rule(rule_id='') print(rule) Add access rule ~~~~~~~~~~~~~~~ To add a new ACL rule, create an :py:class:`~gcsa.acl.AccessControlRule` object with specified role (see more in :py:class:`~gcsa.acl.ACLRole`), scope type (see more in :py:class:`~gcsa.acl.ACLScopeType`), and scope value. .. code-block:: python from gcsa.acl import AccessControlRule, ACLRole, ACLScopeType rule = AccessControlRule( role=ACLRole.READER, scope_type=ACLScopeType.USER, scope_value='friend@gmail.com', ) rule = gc.add_acl_rule(rule) print(rule.id) Update access rule ~~~~~~~~~~~~~~~~~~ .. code-block:: python rule = gc.get_acl_rule('') rule.role = ACLRole.WRITER rule = gc.update_acl_rule(rule) Delete access rule ~~~~~~~~~~~~~~~~~~ .. code-block:: python rule = gc.get_acl_rule('') gc.delete_acl_rule(rule)