use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct HealthData {
#[serde(rename = "AlarmTrips")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub alarm_trips: Option<models::memory_metrics::v1_7_0::AlarmTrips>,
#[serde(rename = "DataLossDetected")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data_loss_detected: Option<bool>,
#[serde(rename = "LastShutdownSuccess")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_shutdown_success: Option<bool>,
#[serde(rename = "PerformanceDegraded")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub performance_degraded: Option<bool>,
#[serde(rename = "PredictedMediaLifeLeftPercent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub predicted_media_life_left_percent: Option<f64>,
#[serde(rename = "RemainingSpareBlockPercentage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remaining_spare_block_percentage: Option<f64>,
}
impl crate::Metadata<'static> for HealthData {
const JSON_SCHEMA: &'static str = "MemoryMetrics.v1_7_0.json";
}