def as_dict(self, **kwargs):
        """Return an error dict for self.args and kwargs."""
        error, reason, details, err_kwargs = self.args
        result = {
            key: val
            for key, val in {
                'error': error, 'reason': reason, 'details': details,
            }.items()
            if val is not None
        }
        result.update(err_kwargs)
        result.update(kwargs)
        return result