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

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

/// PeriodicConfig is for serializing periodic config for a job.
///
/// This struct was generated based on the Go types of the official Nomad API.
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize, Builder)]
pub struct PeriodicConfig {
    #[serde(rename = "Spec", skip_serializing_if = "Option::is_none")]
    pub spec: Option<String>,

    #[serde(
        rename = "Specs",
        deserialize_with = "crate::deserialize_null_as_default"
    )]
    pub specs: Vec<String>,

    #[serde(rename = "SpecType", skip_serializing_if = "Option::is_none")]
    pub spec_type: Option<String>,

    #[serde(rename = "prohibit_overlap", skip_serializing_if = "Option::is_none")]
    pub prohibit_overlap: Option<bool>,

    #[serde(rename = "time_zone", skip_serializing_if = "Option::is_none")]
    pub time_zone: Option<String>,

    #[serde(rename = "Enabled", skip_serializing_if = "Option::is_none")]
    pub enabled: Option<bool>,
}
