use serde::{Deserialize, Serialize}; /*
                                      * Compute Engine API
                                      *
                                      * Creates and runs virtual machines on Google Cloud Platform.
                                      *
                                      * The version of the OpenAPI document: v1
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

use crate::google_rest_apis::compute_v1::models;

/// ResourcePolicySnapshotSchedulePolicySnapshotProperties : Specified snapshot properties for scheduled snapshots created by this policy.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ResourcePolicySnapshotSchedulePolicySnapshotProperties {
    /// Chain name that the snapshot is created in.
    #[serde(rename = "chainName", skip_serializing_if = "Option::is_none")]
    pub chain_name: Option<String>,
    /// Indication to perform a 'guest aware' snapshot.
    #[serde(rename = "guestFlush", skip_serializing_if = "Option::is_none")]
    pub guest_flush: Option<bool>,
    /// Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty.
    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
    pub labels: Option<std::collections::HashMap<String, String>>,
    /// Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional).
    #[serde(rename = "storageLocations", skip_serializing_if = "Option::is_none")]
    pub storage_locations: Option<Vec<String>>,
}

impl ResourcePolicySnapshotSchedulePolicySnapshotProperties {
    /// Specified snapshot properties for scheduled snapshots created by this policy.
    pub fn new() -> ResourcePolicySnapshotSchedulePolicySnapshotProperties {
        ResourcePolicySnapshotSchedulePolicySnapshotProperties {
            chain_name: None,
            guest_flush: None,
            labels: None,
            storage_locations: None,
        }
    }
}
