exoscale/models/
create_instance_pool_request.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct CreateInstancePoolRequest {
13 #[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 #[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 #[serde(rename = "security-groups", skip_serializing_if = "Option::is_none")]
31 pub security_groups: Option<Vec<crate::models::SecurityGroup>>,
32 #[serde(rename = "elastic-ips", skip_serializing_if = "Option::is_none")]
34 pub elastic_ips: Option<Vec<crate::models::ElasticIp>>,
35 #[serde(rename = "name")]
37 pub name: String,
38 #[serde(rename = "instance-type")]
39 pub instance_type: Box<crate::models::InstanceType>,
40 #[serde(rename = "min-available", skip_serializing_if = "Option::is_none")]
42 pub min_available: Option<i64>,
43 #[serde(rename = "private-networks", skip_serializing_if = "Option::is_none")]
45 pub private_networks: Option<Vec<crate::models::PrivateNetwork>>,
46 #[serde(rename = "template")]
47 pub template: Box<crate::models::Template>,
48 #[serde(rename = "size")]
50 pub size: i64,
51 #[serde(rename = "ssh-key", skip_serializing_if = "Option::is_none")]
52 pub ssh_key: Option<Box<crate::models::SshKey>>,
53 #[serde(rename = "instance-prefix", skip_serializing_if = "Option::is_none")]
55 pub instance_prefix: Option<String>,
56 #[serde(rename = "user-data", skip_serializing_if = "Option::is_none")]
58 pub user_data: Option<String>,
59 #[serde(rename = "deploy-target", skip_serializing_if = "Option::is_none")]
60 pub deploy_target: Option<Box<crate::models::DeployTarget>>,
61 #[serde(rename = "ipv6-enabled", skip_serializing_if = "Option::is_none")]
63 pub ipv6_enabled: Option<bool>,
64 #[serde(rename = "disk-size")]
66 pub disk_size: i64,
67}
68
69impl CreateInstancePoolRequest {
70 pub fn new(
71 name: String,
72 instance_type: crate::models::InstanceType,
73 template: crate::models::Template,
74 size: i64,
75 disk_size: i64,
76 ) -> CreateInstancePoolRequest {
77 CreateInstancePoolRequest {
78 anti_affinity_groups: None,
79 description: None,
80 public_ip_assignment: None,
81 labels: None,
82 security_groups: None,
83 elastic_ips: None,
84 name,
85 instance_type: Box::new(instance_type),
86 min_available: None,
87 private_networks: None,
88 template: Box::new(template),
89 size,
90 ssh_key: None,
91 instance_prefix: None,
92 user_data: None,
93 deploy_target: None,
94 ipv6_enabled: None,
95 disk_size,
96 }
97 }
98}