# Copyright (c) 2025 Itential, Inc
# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)

class ItentialMcpError(Exception):
    """
    Base exception class for all Itential MCP errors

    This is the base exception class that all errors generated by the
    Itential MCP server should derive from.
    """
    pass

class TimeoutExceededError(ItentialMcpError):
    """
    Error raised when a timeout value has been exceeded.

    This exception is typically used by tools to indicate an operation on
    the server has taken longer than a configured timeout value.
    """
    pass


class NotFoundError(ItentialMcpError):
    """
    Error raised when a specific resource could not be found

    This exception is typically used by tools to indicate that a resource
    could not be found on the server.
    """
    pass


class InvalidStateError(ItentialMcpError):
    """
    Error raised when a resource is in an unexpected or invalid state

    This exception is typically used by tools to indicate that a resource is
    in a state that was either unexpected or invalid.
    """
    pass
