1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PatchedWritableVirtualMachineWithConfigContextRequest {
15 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
16 pub name: Option<String>,
17 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
19 pub status: Option<Status>,
20 #[serde(
21 rename = "site",
22 default,
23 with = "::serde_with::rust::double_option",
24 skip_serializing_if = "Option::is_none"
25 )]
26 pub site: Option<Option<Box<crate::models::PatchedWritableVlanRequestSite>>>,
27 #[serde(
28 rename = "cluster",
29 default,
30 with = "::serde_with::rust::double_option",
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub cluster: Option<Option<Box<crate::models::DeviceWithConfigContextRequestCluster>>>,
34 #[serde(
35 rename = "device",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub device: Option<Option<Box<crate::models::DeviceBayRequestInstalledDevice>>>,
41 #[serde(rename = "serial", skip_serializing_if = "Option::is_none")]
42 pub serial: Option<String>,
43 #[serde(
44 rename = "role",
45 default,
46 with = "::serde_with::rust::double_option",
47 skip_serializing_if = "Option::is_none"
48 )]
49 pub role: Option<
50 Option<Box<crate::models::PatchedWritableVirtualMachineWithConfigContextRequestRole>>,
51 >,
52 #[serde(
53 rename = "tenant",
54 default,
55 with = "::serde_with::rust::double_option",
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
59 #[serde(
60 rename = "platform",
61 default,
62 with = "::serde_with::rust::double_option",
63 skip_serializing_if = "Option::is_none"
64 )]
65 pub platform: Option<Option<Box<crate::models::DeviceTypeRequestDefaultPlatform>>>,
66 #[serde(
67 rename = "primary_ip4",
68 default,
69 with = "::serde_with::rust::double_option",
70 skip_serializing_if = "Option::is_none"
71 )]
72 pub primary_ip4: Option<Option<Box<crate::models::DeviceWithConfigContextRequestPrimaryIp4>>>,
73 #[serde(
74 rename = "primary_ip6",
75 default,
76 with = "::serde_with::rust::double_option",
77 skip_serializing_if = "Option::is_none"
78 )]
79 pub primary_ip6: Option<Option<Box<crate::models::DeviceWithConfigContextRequestPrimaryIp4>>>,
80 #[serde(
81 rename = "vcpus",
82 default,
83 with = "::serde_with::rust::double_option",
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub vcpus: Option<Option<f64>>,
87 #[serde(
88 rename = "memory",
89 default,
90 with = "::serde_with::rust::double_option",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub memory: Option<Option<i32>>,
94 #[serde(
95 rename = "disk",
96 default,
97 with = "::serde_with::rust::double_option",
98 skip_serializing_if = "Option::is_none"
99 )]
100 pub disk: Option<Option<i32>>,
101 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
102 pub description: Option<String>,
103 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
104 pub comments: Option<String>,
105 #[serde(
106 rename = "config_template",
107 default,
108 with = "::serde_with::rust::double_option",
109 skip_serializing_if = "Option::is_none"
110 )]
111 pub config_template: Option<Option<Box<crate::models::DeviceRoleRequestConfigTemplate>>>,
112 #[serde(
114 rename = "local_context_data",
115 default,
116 with = "::serde_with::rust::double_option",
117 skip_serializing_if = "Option::is_none"
118 )]
119 pub local_context_data: Option<Option<serde_json::Value>>,
120 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
121 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
122 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
123 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
124}
125
126impl PatchedWritableVirtualMachineWithConfigContextRequest {
127 pub fn new() -> PatchedWritableVirtualMachineWithConfigContextRequest {
129 PatchedWritableVirtualMachineWithConfigContextRequest {
130 name: None,
131 status: None,
132 site: None,
133 cluster: None,
134 device: None,
135 serial: None,
136 role: None,
137 tenant: None,
138 platform: None,
139 primary_ip4: None,
140 primary_ip6: None,
141 vcpus: None,
142 memory: None,
143 disk: None,
144 description: None,
145 comments: None,
146 config_template: None,
147 local_context_data: None,
148 tags: None,
149 custom_fields: None,
150 }
151 }
152}
153
154#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
156pub enum Status {
157 #[serde(rename = "offline")]
158 Offline,
159 #[serde(rename = "active")]
160 Active,
161 #[serde(rename = "planned")]
162 Planned,
163 #[serde(rename = "staged")]
164 Staged,
165 #[serde(rename = "failed")]
166 Failed,
167 #[serde(rename = "decommissioning")]
168 Decommissioning,
169 #[serde(rename = "paused")]
170 Paused,
171}
172
173impl Default for Status {
174 fn default() -> Status {
175 Self::Offline
176 }
177}