def buttons(self):
        """
        Returns a matrix (list of lists) containing all buttons of the message
        as `MessageButton <telethon.tl.custom.messagebutton.MessageButton>`
        instances.
        """
        if self._buttons is None and self.reply_markup:
            if not self.input_chat:
                return
            try:
                bot = self._needed_markup_bot()
            except ValueError:
                return
            else:
                self._set_buttons(self._input_chat, bot)

        return self._buttons