Update an existing list. Be warned that this will overwrite
        *all* attributes on the list, not just the ones you specify!

        Args:
            name (str): The name of the existing list to be updated
            new_name (str): If you wish to change the name of the list,
                set it here. Otherwise, the name will remain the same.
            description (str): A short description of this list
            is_active (bool): Should the list be active?
                An inactive list cannot be used.
            is_public (bool): Should the list be public?
                If a list is public, anyone may join without requesting
                permission. If not, the owners control entry to the list.
            is_hidden (bool): Should the list be hidden?
                Presumably, a hidden list doesn't show up in search queries.
            is_group (bool): Something about AFS?
            is_nfs_group (bool): Presumably, have an
                `NFS group <https://en.wikipedia.org/wiki/Network_File_System>`_
                for this group? I don't actually know what this does.
            is_mail_list (bool): Presumably, have a mailing list.
            use_mailman (bool): Presumably, have
                `GNU Mailman <https://en.wikipedia.org/wiki/GNU_Mailman>`_
                manage the mailing list.
            mailman_server (str): The Mailman server to use, if ``use_mailman``
                is True.

def update_list(
        self, name, new_name=None, description="Updated by mit_moira client",
        is_active=True, is_public=True, is_hidden=True,
        is_group=False, is_nfs_group=False,
        is_mail_list=False, use_mailman=False, mailman_server=""
    ):
        """
        Update an existing list. Be warned that this will overwrite
        *all* attributes on the list, not just the ones you specify!

        Args:
            name (str): The name of the existing list to be updated
            new_name (str): If you wish to change the name of the list,
                set it here. Otherwise, the name will remain the same.
            description (str): A short description of this list
            is_active (bool): Should the list be active?
                An inactive list cannot be used.
            is_public (bool): Should the list be public?
                If a list is public, anyone may join without requesting
                permission. If not, the owners control entry to the list.
            is_hidden (bool): Should the list be hidden?
                Presumably, a hidden list doesn't show up in search queries.
            is_group (bool): Something about AFS?
            is_nfs_group (bool): Presumably, have an
                `NFS group <https://en.wikipedia.org/wiki/Network_File_System>`_
                for this group? I don't actually know what this does.
            is_mail_list (bool): Presumably, have a mailing list.
            use_mailman (bool): Presumably, have
                `GNU Mailman <https://en.wikipedia.org/wiki/GNU_Mailman>`_
                manage the mailing list.
            mailman_server (str): The Mailman server to use, if ``use_mailman``
                is True.
        """
        attrs = {
            "aceName": "mit_moira",
            "aceType": "LIST",
            "activeList": is_active,
            "description": description,
            "gid": "",
            "group": is_group,
            "hiddenList": is_hidden,
            "listName": new_name or name,
            "mailList": is_mail_list,
            "mailman": use_mailman,
            "mailmanServer": mailman_server,
            "memaceName": "mit_moira",
            "memaceType": "USER",
            "modby": "",
            "modtime": "",
            "modwith": "",
            "nfsgroup": is_nfs_group,
            "publicList": is_public,
        }
        return self.client.service.updateListAttributes(
            attrs, name, self.proxy_id
        )