use thiserror::Error;
#[derive(Debug, Error)]
pub enum VaultError {
#[error("Vault configuration error: {0}")]
Config(String),
#[error("Vault AppRole authentication failed: {0}")]
AppRoleAuthFailed(String),
#[error("Vault token authentication failed: {0}")]
TokenAuthFailed(String),
#[error("Vault secret not found: {0}")]
NotFound(String),
#[error("Vault HTTP {status}: {message}")]
Http { status: u16, message: String },
#[error("Vault transport error: {0}")]
Transport(String),
}