use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DetailedHealthResponse {
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "checked_at")]
pub checked_at: String,
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "checks")]
pub checks: Box<models::HealthChecks>,
}
impl DetailedHealthResponse {
pub fn new(status: Status, checked_at: String, version: String, checks: models::HealthChecks) -> DetailedHealthResponse {
DetailedHealthResponse {
status,
checked_at,
version,
checks: Box::new(checks),
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "healthy")]
Healthy,
#[serde(rename = "degraded")]
Degraded,
#[serde(rename = "unhealthy")]
Unhealthy,
}
impl Default for Status {
fn default() -> Status {
Self::Healthy
}
}