use http::StatusCode;
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
#[non_exhaustive]
pub enum PolicyError {
#[error("invalid policy path `{path}`: {message}")]
InvalidPath {
path: String,
message: String,
},
#[error("invalid policy url: {message}")]
InvalidUrl {
message: String,
},
#[error("invalid policy input: {message}")]
InvalidInput {
message: String,
},
#[error("policy request to {host} failed: {message}")]
Transport {
host: String,
message: String,
},
#[error("policy server returned HTTP {status}")]
Status {
status: StatusCode,
body: String,
},
#[error("policy response is not valid: {message}")]
InvalidResponse {
message: String,
},
#[error("policy engine error: {message}")]
Engine {
message: String,
},
}