redfish-codegen 0.3.1

An unopinionated translation of the Redfish specification into Rust.
Documentation
// Generated by redfish-codegen. Do not modify.

use crate::models;

/// The MetricDefinition schema describes the metadata information for a metric.
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct MetricDefinition {
    #[serde(rename = "@odata.context")]
    #[serde(skip_deserializing)]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub odata_context: Option<models::odata_v4::Context>,
    #[serde(rename = "@odata.etag")]
    #[serde(skip_deserializing)]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub odata_etag: Option<models::odata_v4::Etag>,
    #[serde(rename = "@odata.id")]
    #[serde(skip_deserializing)]
    pub odata_id: models::odata_v4::Id,
    #[serde(rename = "@odata.type")]
    #[serde(skip_deserializing)]
    #[derivative(Default(value = "models::odata_v4::Type(\"#MetricDefinition.v1_3_1.MetricDefinition\".to_string())"))]
    pub odata_type: models::odata_v4::Type,
    /// The estimated percent error of measured versus actual values.
    #[serde(rename = "Accuracy")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub accuracy: Option<f64>,
    #[serde(rename = "Actions")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub actions: Option<models::metric_definition::v1_3_1::Actions>,
    #[serde(rename = "Calculable")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub calculable: Option<models::metric_definition::v1_3_1::Calculable>,
    #[serde(rename = "CalculationAlgorithm")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub calculation_algorithm: Option<models::metric_definition::v1_3_1::CalculationAlgorithmEnum>,
    /// The metric properties that are part of a calculation that this metric definition defines.
    #[serde(rename = "CalculationParameters")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub calculation_parameters: Option<Vec<models::metric_definition::v1_3_1::CalculationParamsType>>,
    /// The time interval over which the metric calculation is performed.
    #[serde(rename = "CalculationTimeInterval")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub calculation_time_interval: Option<String>,
    /// The calibration offset added to the metric reading.
    #[serde(rename = "Calibration")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub calibration: Option<f64>,
    #[serde(rename = "Description")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub description: Option<models::resource::Description>,
    /// This array property specifies possible values of a discrete metric.
    #[serde(rename = "DiscreteValues")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub discrete_values: Option<Vec<String>>,
    #[serde(rename = "Id")]
    #[serde(skip_deserializing)]
    pub id: models::resource::Id,
    #[serde(rename = "Implementation")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub implementation: Option<models::metric_definition::v1_3_1::ImplementationType>,
    /// An indication of whether the metric values are linear versus non-linear.
    #[serde(rename = "IsLinear")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub is_linear: Option<bool>,
    /// The logical contexts related to the metric.
    #[serde(rename = "LogicalContexts")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub logical_contexts: Option<Vec<models::physical_context::LogicalContext>>,
    /// Maximum value for metric reading.
    #[serde(rename = "MaxReadingRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub max_reading_range: Option<f64>,
    #[serde(rename = "MetricDataType")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub metric_data_type: Option<models::metric_definition::v1_3_1::MetricDataType>,
    /// The list of URIs with wildcards and property identifiers that this metric definition defines.  If a URI has wildcards, the wildcards are substituted as specified in the Wildcards property.
    #[serde(rename = "MetricProperties")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub metric_properties: Option<Vec<String>>,
    #[serde(rename = "MetricType")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub metric_type: Option<models::metric_definition::v1_3_1::MetricType>,
    /// Minimum value for metric reading.
    #[serde(rename = "MinReadingRange")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub min_reading_range: Option<f64>,
    #[serde(rename = "Name")]
    #[serde(skip_deserializing)]
    pub name: models::resource::Name,
    /// The OEM-defined calculation that is performed on a source metric to obtain the metric being defined.
    #[serde(rename = "OEMCalculationAlgorithm")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub oem_calculation_algorithm: Option<String>,
    #[serde(rename = "Oem")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub oem: Option<models::resource::Oem>,
    #[serde(rename = "PhysicalContext")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub physical_context: Option<models::physical_context::PhysicalContext>,
    /// Number of significant digits in the metric reading.
    #[serde(rename = "Precision")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub precision: Option<i64>,
    /// The time interval between when a metric is updated.
    #[serde(rename = "SensingInterval")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub sensing_interval: Option<String>,
    /// The accuracy of the timestamp.
    #[serde(rename = "TimestampAccuracy")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub timestamp_accuracy: Option<String>,
    /// The units of measure for this metric.
    #[serde(rename = "Units")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub units: Option<String>,
    /// The wildcards and their substitution values for the entries in the MetricProperties array property.
    #[serde(rename = "Wildcards")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub wildcards: Option<Vec<models::metric_definition::v1_3_1::Wildcard>>,
}

impl crate::Metadata<'static> for MetricDefinition {
    const JSON_SCHEMA: &'static str = "MetricDefinition.v1_3_1.json";
}