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
                                      */

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct InstanceGroupManagerStatus {
    /// [Output Only] The URL of the Autoscaler that targets this instance group manager.
    #[serde(rename = "autoscaler", skip_serializing_if = "Option::is_none")]
    pub autoscaler: Option<String>,
    /// [Output Only] A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.
    #[serde(rename = "isStable", skip_serializing_if = "Option::is_none")]
    pub is_stable: Option<bool>,
    #[serde(rename = "stateful", skip_serializing_if = "Option::is_none")]
    pub stateful: Option<
        Box<crate::google_rest_apis::compute_v1::models::InstanceGroupManagerStatusStateful>,
    >,
    #[serde(rename = "versionTarget", skip_serializing_if = "Option::is_none")]
    pub version_target: Option<
        Box<crate::google_rest_apis::compute_v1::models::InstanceGroupManagerStatusVersionTarget>,
    >,
}

impl InstanceGroupManagerStatus {
    pub fn new() -> InstanceGroupManagerStatus {
        InstanceGroupManagerStatus {
            autoscaler: None,
            is_stable: None,
            stateful: None,
            version_target: None,
        }
    }
}
