# clab_connector/utils/exceptions.py


class ClabIntegratorError(Exception):
    """
    Base exception for all clab-connector errors (topology, management, fabric, indices, vnet).
    """


class ConfigError(ClabIntegratorError):
    """Raised when config.yaml is missing, invalid, or has invalid values."""


class EDAConnectionError(ClabIntegratorError):
    """
    Raised when the EDA client cannot connect or authenticate.
    """


class TopologyFileError(ClabIntegratorError):
    """Raised when a topology file is missing or invalid."""


class ProductionAddressUpdateError(ClabIntegratorError):
    """Raised when the production address update fails."""