scaleway_api_rs 0.1.8

Generated library to interact with Scaleway API.
Documentation
/*
 * Account API
 *
 * # Introduction  The Account API allows you to manage projects. Project is Scaleway’s resource management feature. Designed to help you organize your infrastructure and cloud services, the feature allows resources to be isolated and grouped into specific projects.
 *
 * The version of the OpenAPI document: v2
 *
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CreatePlacementGroupRequest {
    /// Name of the placement group
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// Organization ID of the placement group
    #[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
    pub organization: Option<String>,
    /// Project ID of the placement group
    #[serde(rename = "project", skip_serializing_if = "Option::is_none")]
    pub project: Option<String>,
    /// The tags of the placement group
    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<String>>,
    /// The operating mode of the placement group
    #[serde(rename = "policy_mode", skip_serializing_if = "Option::is_none")]
    pub policy_mode: Option<PolicyMode>,
    /// The policy type of the placement group
    #[serde(rename = "policy_type", skip_serializing_if = "Option::is_none")]
    pub policy_type: Option<PolicyType>,
}

impl CreatePlacementGroupRequest {
    pub fn new() -> CreatePlacementGroupRequest {
        CreatePlacementGroupRequest {
            name: None,
            organization: None,
            project: None,
            tags: None,
            policy_mode: None,
            policy_type: None,
        }
    }
}

/// The operating mode of the placement group
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PolicyMode {
    #[serde(rename = "optional")]
    Optional,
    #[serde(rename = "enforced")]
    Enforced,
}

impl Default for PolicyMode {
    fn default() -> PolicyMode {
        Self::Optional
    }
}
/// The policy type of the placement group
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PolicyType {
    #[serde(rename = "max_availability")]
    MaxAvailability,
    #[serde(rename = "low_latency")]
    LowLatency,
}

impl Default for PolicyType {
    fn default() -> PolicyType {
        Self::MaxAvailability
    }
}