Lazy read-only accessor for the (a|q)buf.
        The qbuf Message object is cached for subsequent requests.

def _get_buf(self, prefix):
        """
        Lazy read-only accessor for the (a|q)buf.
        The qbuf Message object is cached for subsequent requests.
        """

        kind = "{prefix}buf".format(prefix=prefix)
        private_name = "_" + kind
        buf = getattr(self, private_name)

        if buf:
            return buf

        try:
            buf_string = self.raw_data["result"][kind]
        except KeyError:
            buf_string = self.ensure(kind, str)
        if buf_string:
            message = Message(
                buf_string,
                self.raw_data,
                parse_buf=self._parse_buf,
                on_error=self._on_error,
                on_malformation=self._on_malformation
            )
            if message.is_error:
                self._handle_error(message.error_message)
            setattr(self, private_name, message)
        return getattr(self, private_name)