"""Storage exception types — import from here, never redefine elsewhere."""
from __future__ import annotations


class CloudConnectionError(Exception):
    """Raised when a cloud provider signals a non-retryable connection problem.

    Attributes:
        reason: "token_expired" — access token expired.
                "invalid_grant" — refresh token revoked; user must reconnect.
    """

    def __init__(self, msg: str = "", *, reason: str = "") -> None:
        super().__init__(msg)
        self.reason = reason  # "token_expired" | "invalid_grant"
