from enum import StrEnum class ErrorCode(StrEnum): INVALID_REQUEST = "INVALID_REQUEST" UNAUTHORIZED = "UNAUTHORIZED" FORBIDDEN = "FORBIDDEN" DEVICE_NOT_FOUND = "DEVICE_NOT_FOUND" DEVICE_OFFLINE = "DEVICE_OFFLINE" UNSUPPORTED_CAPABILITY = "UNSUPPORTED_CAPABILITY" RENDER_FAILED = "RENDER_FAILED" UPLOAD_FAILED = "UPLOAD_FAILED" WRITE_RESULT_UNKNOWN = "WRITE_RESULT_UNKNOWN" RATE_LIMITED = "RATE_LIMITED" INTERNAL_ERROR = "INTERNAL_ERROR" CLOUD_UNAVAILABLE = "CLOUD_UNAVAILABLE" NOT_FOUND = "NOT_FOUND" CONFLICT = "CONFLICT" CONFIG_REQUIRED = "CONFIG_REQUIRED" WRITE_DISABLED = "WRITE_DISABLED" class FlowError(Exception): def __init__(self, code: ErrorCode, message: str, status: int = 400): self.code, self.message, self.status = code, message, status super().__init__(message)