/*
 * This is an auto-generated file.
 * Any manual changes may be overwritten without notice!
 */

use derive_builder::Builder;
use serde::{Deserialize, Serialize};

/// MetricsSummary holds a roll-up of metrics info for a given interval
///
/// This struct was generated based on the Go types of the official Nomad API.
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize, Builder)]
pub struct MetricsSummary {
    #[serde(rename = "Timestamp")]
    pub timestamp: String,

    #[serde(
        rename = "Gauges",
        deserialize_with = "crate::deserialize_null_as_default"
    )]
    pub gauges: Vec<super::GaugeValue>,

    #[serde(
        rename = "Points",
        deserialize_with = "crate::deserialize_null_as_default"
    )]
    pub points: Vec<super::PointValue>,

    #[serde(
        rename = "Counters",
        deserialize_with = "crate::deserialize_null_as_default"
    )]
    pub counters: Vec<super::SampledValue>,

    #[serde(
        rename = "Samples",
        deserialize_with = "crate::deserialize_null_as_default"
    )]
    pub samples: Vec<super::SampledValue>,
}
