exoscale/models/
update_instance_pool_request.rs

1/*
2 * Exoscale Public API
3 *
4 *  Infrastructure automation API, allowing programmatic access to all Exoscale products and services.  The [OpenAPI Specification](http://spec.openapis.org/oas/v3.0.3.html) source of this documentation can be obtained here:  * [JSON format](https://bump.sh/doc/exoscale-api.json) * [YAML format](https://bump.sh/doc/exoscale-api.yaml)
5 *
6 * The version of the OpenAPI document: 2.0.0
7 * Contact: api@exoscale.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct UpdateInstancePoolRequest {
13    /// Instance Pool Anti-affinity Groups
14    #[serde(
15        rename = "anti-affinity-groups",
16        skip_serializing_if = "Option::is_none"
17    )]
18    pub anti_affinity_groups: Option<Vec<crate::models::AntiAffinityGroup>>,
19    /// Instance Pool description
20    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
21    pub description: Option<String>,
22    #[serde(
23        rename = "public-ip-assignment",
24        skip_serializing_if = "Option::is_none"
25    )]
26    pub public_ip_assignment: Option<crate::models::PublicIpAssignment>,
27    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
28    pub labels: Option<::std::collections::HashMap<String, String>>,
29    /// Instance Pool Security Groups
30    #[serde(rename = "security-groups", skip_serializing_if = "Option::is_none")]
31    pub security_groups: Option<Vec<crate::models::SecurityGroup>>,
32    /// Instances Elastic IPs
33    #[serde(rename = "elastic-ips", skip_serializing_if = "Option::is_none")]
34    pub elastic_ips: Option<Vec<crate::models::ElasticIp>>,
35    /// Instance Pool name
36    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
37    pub name: Option<String>,
38    #[serde(rename = "instance-type", skip_serializing_if = "Option::is_none")]
39    pub instance_type: Option<Box<crate::models::InstanceType>>,
40    /// Minimum number of running Instances
41    #[serde(rename = "min-available", skip_serializing_if = "Option::is_none")]
42    pub min_available: Option<i64>,
43    /// Instance Pool Private Networks
44    #[serde(rename = "private-networks", skip_serializing_if = "Option::is_none")]
45    pub private_networks: Option<Vec<crate::models::PrivateNetwork>>,
46    #[serde(rename = "template", skip_serializing_if = "Option::is_none")]
47    pub template: Option<Box<crate::models::Template>>,
48    #[serde(rename = "ssh-key", skip_serializing_if = "Option::is_none")]
49    pub ssh_key: Option<Box<crate::models::SshKey>>,
50    /// Prefix to apply to Instances names (default: pool)
51    #[serde(rename = "instance-prefix", skip_serializing_if = "Option::is_none")]
52    pub instance_prefix: Option<String>,
53    /// Instances Cloud-init user-data
54    #[serde(rename = "user-data", skip_serializing_if = "Option::is_none")]
55    pub user_data: Option<String>,
56    #[serde(rename = "deploy-target", skip_serializing_if = "Option::is_none")]
57    pub deploy_target: Option<Box<crate::models::DeployTarget>>,
58    /// Enable IPv6. DEPRECATED: use `public-ip-assignments`.
59    #[serde(rename = "ipv6-enabled", skip_serializing_if = "Option::is_none")]
60    pub ipv6_enabled: Option<bool>,
61    /// Instances disk size in GB
62    #[serde(rename = "disk-size", skip_serializing_if = "Option::is_none")]
63    pub disk_size: Option<i64>,
64}
65
66impl UpdateInstancePoolRequest {
67    pub fn new() -> UpdateInstancePoolRequest {
68        UpdateInstancePoolRequest {
69            anti_affinity_groups: None,
70            description: None,
71            public_ip_assignment: None,
72            labels: None,
73            security_groups: None,
74            elastic_ips: None,
75            name: None,
76            instance_type: None,
77            min_available: None,
78            private_networks: None,
79            template: None,
80            ssh_key: None,
81            instance_prefix: None,
82            user_data: None,
83            deploy_target: None,
84            ipv6_enabled: None,
85            disk_size: None,
86        }
87    }
88}