#[derive(Debug, thiserror::Error)]
pub enum AuthError {
#[error("Missing Authorization header")]
MissingAuthHeader,
#[error("Invalid Authorization header format")]
InvalidAuthHeader,
#[error("Unsupported algorithm: {0}")]
UnsupportedAlgorithm(String),
#[error("Missing required header: {0}")]
MissingHeader(String),
#[error("Invalid credential format")]
InvalidCredential,
#[error("Access key not found: {0}")]
AccessKeyNotFound(String),
#[error("Signature does not match")]
SignatureDoesNotMatch,
#[error("Request has expired")]
RequestExpired,
#[error("Missing required query parameter: {0}")]
MissingQueryParam(String),
}