Source code for netbird.exceptions

"""
NetBird API Client Exceptions

Custom exception classes for handling various API error conditions.
"""

from typing import Any, Dict, Optional


[docs] class NetBirdAPIError(Exception): """Base exception for all NetBird API errors. Attributes: message: Human-readable error message status_code: HTTP status code if available response_data: Raw response data from the API """
[docs] def __init__( self, message: str, status_code: Optional[int] = None, response_data: Optional[Dict[str, Any]] = None, ) -> None: super().__init__(message) self.message = message self.status_code = status_code self.response_data = response_data or {}
[docs] class NetBirdAuthenticationError(NetBirdAPIError): """Raised when authentication fails (401 Unauthorized). This typically indicates: - Invalid or expired API token - Missing Authorization header - Token lacks required permissions """ pass
[docs] class NetBirdValidationError(NetBirdAPIError): """Raised when request validation fails (400 Bad Request). This typically indicates: - Missing required parameters - Invalid parameter values - Malformed request body """ pass
[docs] class NetBirdNotFoundError(NetBirdAPIError): """Raised when a requested resource is not found (404 Not Found). This typically indicates: - Resource ID does not exist - Resource has been deleted - Insufficient permissions to access resource """ pass
[docs] class NetBirdRateLimitError(NetBirdAPIError): """Raised when API rate limit is exceeded (429 Too Many Requests). Attributes: retry_after: Number of seconds to wait before retrying """
[docs] def __init__( self, message: str, status_code: Optional[int] = None, response_data: Optional[Dict[str, Any]] = None, retry_after: Optional[int] = None, ) -> None: super().__init__(message, status_code, response_data) self.retry_after = retry_after
[docs] class NetBirdServerError(NetBirdAPIError): """Raised when the server encounters an internal error (5xx status codes). This typically indicates: - Temporary server issues - Database connectivity problems - Internal service failures """ pass