code: async def edit(self, *, name, roles=None, reason=None):
          r
  
          if roles:
              roles = [role.id for role in roles]
          await self._state.http.edit_custom_emoji(self.guild.id, self.id, name=name, roles=roles, reason=reason)
docs: r"""|coro|
  
          Edits the custom emoji.
  
          You must have :attr:`~Permissions.manage_emojis` permission to
          do this.
  
          Parameters
          -----------
          name: :class:`str`
              The new emoji name.
          roles: Optional[list[:class:`Role`]]
              A :class:`list` of :class:`Role`\s that can use this emoji. Leave empty to make it available to everyone.
          reason: Optional[:class:`str`]
              The reason for editing this emoji. Shows up on the audit log.
  
          Raises
          -------
          Forbidden
              You are not allowed to edit emojis.
          HTTPException
              An error occurred editing the emoji.