1#![allow(non_camel_case_types)]
2#![allow(unused_imports)]
3use serde::de::{value, Deserializer, IntoDeserializer};
4use serde::{Deserialize, Serialize, Serializer};
5use std::str::FromStr;
6#[doc = "Resource provider available operation model"]
7#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
8pub struct AvailableOperation {
9 #[doc = "Resource provider available operation display model"]
10 #[serde(default, skip_serializing_if = "Option::is_none")]
11 pub display: Option<AvailableOperationDisplay>,
12 #[doc = "Indicating whether the operation is a data action or not"]
13 #[serde(rename = "isDataAction", default, skip_serializing_if = "Option::is_none")]
14 pub is_data_action: Option<bool>,
15 #[doc = "{resourceProviderNamespace}/{resourceType}/{read|write|delete|action}"]
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub name: Option<String>,
18 #[doc = "The origin of operation"]
19 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub origin: Option<available_operation::Origin>,
21 #[doc = "Available operation display property service specification model"]
22 #[serde(default, skip_serializing_if = "Option::is_none")]
23 pub properties: Option<AvailableOperationDisplayPropertyServiceSpecification>,
24}
25impl AvailableOperation {
26 pub fn new() -> Self {
27 Self::default()
28 }
29}
30pub mod available_operation {
31 use super::*;
32 #[doc = "The origin of operation"]
33 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
34 pub enum Origin {
35 #[serde(rename = "user")]
36 User,
37 #[serde(rename = "system")]
38 System,
39 #[serde(rename = "user,system")]
40 UserSystem,
41 }
42}
43#[doc = "Resource provider available operation display model"]
44#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
45pub struct AvailableOperationDisplay {
46 #[doc = "Description of the operation for display purposes"]
47 #[serde(default, skip_serializing_if = "Option::is_none")]
48 pub description: Option<String>,
49 #[doc = "Name of the operation for display purposes"]
50 #[serde(default, skip_serializing_if = "Option::is_none")]
51 pub operation: Option<String>,
52 #[doc = "Name of the provider for display purposes"]
53 #[serde(default, skip_serializing_if = "Option::is_none")]
54 pub provider: Option<String>,
55 #[doc = "Name of the resource type for display purposes"]
56 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub resource: Option<String>,
58}
59impl AvailableOperationDisplay {
60 pub fn new() -> Self {
61 Self::default()
62 }
63}
64#[doc = "Available operation display property service specification model"]
65#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
66pub struct AvailableOperationDisplayPropertyServiceSpecification {
67 #[doc = "List of available operation display property service specification metrics"]
68 #[serde(rename = "serviceSpecification", default, skip_serializing_if = "Option::is_none")]
69 pub service_specification: Option<AvailableOperationDisplayPropertyServiceSpecificationMetricsList>,
70}
71impl AvailableOperationDisplayPropertyServiceSpecification {
72 pub fn new() -> Self {
73 Self::default()
74 }
75}
76#[doc = "Available operation display property service specification metrics item"]
77#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
78pub struct AvailableOperationDisplayPropertyServiceSpecificationMetricsItem {
79 #[doc = "Metric's aggregation type for e.g. (Average, Total)"]
80 #[serde(rename = "aggregationType")]
81 pub aggregation_type: available_operation_display_property_service_specification_metrics_item::AggregationType,
82 #[doc = "Metric's description"]
83 #[serde(rename = "displayDescription")]
84 pub display_description: String,
85 #[doc = "Human readable metric's name"]
86 #[serde(rename = "displayName")]
87 pub display_name: String,
88 #[doc = "Metric's name/id"]
89 pub name: String,
90 #[doc = "Metric's unit"]
91 pub unit: String,
92}
93impl AvailableOperationDisplayPropertyServiceSpecificationMetricsItem {
94 pub fn new(
95 aggregation_type: available_operation_display_property_service_specification_metrics_item::AggregationType,
96 display_description: String,
97 display_name: String,
98 name: String,
99 unit: String,
100 ) -> Self {
101 Self {
102 aggregation_type,
103 display_description,
104 display_name,
105 name,
106 unit,
107 }
108 }
109}
110pub mod available_operation_display_property_service_specification_metrics_item {
111 use super::*;
112 #[doc = "Metric's aggregation type for e.g. (Average, Total)"]
113 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
114 pub enum AggregationType {
115 Average,
116 Total,
117 }
118}
119#[doc = "List of available operation display property service specification metrics"]
120#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
121pub struct AvailableOperationDisplayPropertyServiceSpecificationMetricsList {
122 #[doc = "Metric specifications of operation"]
123 #[serde(
124 rename = "metricSpecifications",
125 default,
126 deserialize_with = "azure_core::util::deserialize_null_as_default",
127 skip_serializing_if = "Vec::is_empty"
128 )]
129 pub metric_specifications: Vec<AvailableOperationDisplayPropertyServiceSpecificationMetricsItem>,
130}
131impl AvailableOperationDisplayPropertyServiceSpecificationMetricsList {
132 pub fn new() -> Self {
133 Self::default()
134 }
135}
136#[doc = "List of available operations"]
137#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
138pub struct AvailableOperationsListResponse {
139 #[doc = "Link for next list of available operations"]
140 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
141 pub next_link: Option<String>,
142 #[doc = "Returns a list of available operations"]
143 #[serde(
144 default,
145 deserialize_with = "azure_core::util::deserialize_null_as_default",
146 skip_serializing_if = "Vec::is_empty"
147 )]
148 pub value: Vec<AvailableOperation>,
149}
150impl azure_core::Continuable for AvailableOperationsListResponse {
151 type Continuation = String;
152 fn continuation(&self) -> Option<Self::Continuation> {
153 self.next_link.clone().filter(|value| !value.is_empty())
154 }
155}
156impl AvailableOperationsListResponse {
157 pub fn new() -> Self {
158 Self::default()
159 }
160}
161#[doc = "General error model"]
162#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
163pub struct CsrpError {
164 #[doc = "Error properties"]
165 #[serde(default, skip_serializing_if = "Option::is_none")]
166 pub error: Option<CsrpErrorBody>,
167}
168impl azure_core::Continuable for CsrpError {
169 type Continuation = String;
170 fn continuation(&self) -> Option<Self::Continuation> {
171 None
172 }
173}
174impl CsrpError {
175 pub fn new() -> Self {
176 Self::default()
177 }
178}
179#[doc = "Error properties"]
180#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
181pub struct CsrpErrorBody {
182 #[doc = "Error's code"]
183 #[serde(default, skip_serializing_if = "Option::is_none")]
184 pub code: Option<String>,
185 #[doc = "Error's details"]
186 #[serde(
187 default,
188 deserialize_with = "azure_core::util::deserialize_null_as_default",
189 skip_serializing_if = "Vec::is_empty"
190 )]
191 pub details: Vec<CsrpErrorBody>,
192 #[doc = "Error's message"]
193 #[serde(default, skip_serializing_if = "Option::is_none")]
194 pub message: Option<String>,
195 #[doc = "Error's target"]
196 #[serde(default, skip_serializing_if = "Option::is_none")]
197 pub target: Option<String>,
198}
199impl CsrpErrorBody {
200 pub fn new() -> Self {
201 Self::default()
202 }
203}
204#[doc = "Host name model"]
205#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
206pub struct CustomizationHostName {
207 #[doc = "Hostname"]
208 #[serde(default, skip_serializing_if = "Option::is_none")]
209 pub name: Option<String>,
210 #[doc = "Type of host name"]
211 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
212 pub type_: Option<customization_host_name::Type>,
213}
214impl CustomizationHostName {
215 pub fn new() -> Self {
216 Self::default()
217 }
218}
219pub mod customization_host_name {
220 use super::*;
221 #[doc = "Type of host name"]
222 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
223 pub enum Type {
224 #[serde(rename = "USER_DEFINED")]
225 UserDefined,
226 #[serde(rename = "PREFIX_BASED")]
227 PrefixBased,
228 #[serde(rename = "FIXED")]
229 Fixed,
230 #[serde(rename = "VIRTUAL_MACHINE_NAME")]
231 VirtualMachineName,
232 #[serde(rename = "CUSTOM_NAME")]
233 CustomName,
234 }
235}
236#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
237pub struct CustomizationIpAddress {
238 #[doc = "Argument when Custom ip type is selected"]
239 #[serde(default, skip_serializing_if = "Option::is_none")]
240 pub argument: Option<String>,
241 #[doc = "Defined Ip Address when Fixed ip type is selected"]
242 #[serde(rename = "ipAddress", default, skip_serializing_if = "Option::is_none")]
243 pub ip_address: Option<String>,
244 #[doc = "Customization Specification ip type"]
245 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
246 pub type_: Option<customization_ip_address::Type>,
247}
248impl CustomizationIpAddress {
249 pub fn new() -> Self {
250 Self::default()
251 }
252}
253pub mod customization_ip_address {
254 use super::*;
255 #[doc = "Customization Specification ip type"]
256 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
257 pub enum Type {
258 #[serde(rename = "CUSTOM")]
259 Custom,
260 #[serde(rename = "DHCP_IP")]
261 DhcpIp,
262 #[serde(rename = "FIXED_IP")]
263 FixedIp,
264 #[serde(rename = "USER_DEFINED")]
265 UserDefined,
266 }
267}
268#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
269pub struct CustomizationIpSettings {
270 #[doc = "The list of gateways"]
271 #[serde(
272 default,
273 deserialize_with = "azure_core::util::deserialize_null_as_default",
274 skip_serializing_if = "Vec::is_empty"
275 )]
276 pub gateway: Vec<String>,
277 #[serde(default, skip_serializing_if = "Option::is_none")]
278 pub ip: Option<CustomizationIpAddress>,
279 #[doc = "Adapter subnet mask"]
280 #[serde(rename = "subnetMask", default, skip_serializing_if = "Option::is_none")]
281 pub subnet_mask: Option<String>,
282}
283impl CustomizationIpSettings {
284 pub fn new() -> Self {
285 Self::default()
286 }
287}
288#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
289pub struct CustomizationIdentity {
290 #[doc = "Windows Text Identity. Prepared data"]
291 #[serde(default, skip_serializing_if = "Option::is_none")]
292 pub data: Option<String>,
293 #[doc = "Host name model"]
294 #[serde(rename = "hostName", default, skip_serializing_if = "Option::is_none")]
295 pub host_name: Option<CustomizationHostName>,
296 #[doc = "Identity type"]
297 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
298 pub type_: Option<customization_identity::Type>,
299 #[doc = "Windows Identity. User data customization"]
300 #[serde(rename = "userData", default, skip_serializing_if = "Option::is_none")]
301 pub user_data: Option<customization_identity::UserData>,
302}
303impl CustomizationIdentity {
304 pub fn new() -> Self {
305 Self::default()
306 }
307}
308pub mod customization_identity {
309 use super::*;
310 #[doc = "Identity type"]
311 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
312 pub enum Type {
313 #[serde(rename = "WINDOWS_TEXT")]
314 WindowsText,
315 #[serde(rename = "WINDOWS")]
316 Windows,
317 #[serde(rename = "LINUX")]
318 Linux,
319 }
320 #[doc = "Windows Identity. User data customization"]
321 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
322 pub struct UserData {
323 #[doc = "Is password predefined in customization policy"]
324 #[serde(rename = "isPasswordPredefined", default, skip_serializing_if = "Option::is_none")]
325 pub is_password_predefined: Option<bool>,
326 }
327 impl UserData {
328 pub fn new() -> Self {
329 Self::default()
330 }
331 }
332}
333#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
334pub struct CustomizationNicSetting {
335 #[serde(default, skip_serializing_if = "Option::is_none")]
336 pub adapter: Option<CustomizationIpSettings>,
337 #[doc = "NIC mac address"]
338 #[serde(rename = "macAddress", default, skip_serializing_if = "Option::is_none")]
339 pub mac_address: Option<String>,
340}
341impl CustomizationNicSetting {
342 pub fn new() -> Self {
343 Self::default()
344 }
345}
346#[doc = "List of customization polices response model"]
347#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
348pub struct CustomizationPoliciesListResponse {
349 #[doc = "Link for next list of the Customization policy"]
350 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
351 pub next_link: Option<String>,
352 #[doc = "List of the customization policies"]
353 #[serde(
354 default,
355 deserialize_with = "azure_core::util::deserialize_null_as_default",
356 skip_serializing_if = "Vec::is_empty"
357 )]
358 pub value: Vec<CustomizationPolicy>,
359}
360impl azure_core::Continuable for CustomizationPoliciesListResponse {
361 type Continuation = String;
362 fn continuation(&self) -> Option<Self::Continuation> {
363 self.next_link.clone().filter(|value| !value.is_empty())
364 }
365}
366impl CustomizationPoliciesListResponse {
367 pub fn new() -> Self {
368 Self::default()
369 }
370}
371#[doc = "The virtual machine customization policy"]
372#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
373pub struct CustomizationPolicy {
374 #[doc = "Customization policy azure id"]
375 #[serde(default, skip_serializing_if = "Option::is_none")]
376 pub id: Option<String>,
377 #[doc = "Azure region"]
378 #[serde(default, skip_serializing_if = "Option::is_none")]
379 pub location: Option<String>,
380 #[doc = "Customization policy name"]
381 #[serde(default, skip_serializing_if = "Option::is_none")]
382 pub name: Option<String>,
383 #[doc = "The properties of Customization policy"]
384 #[serde(default, skip_serializing_if = "Option::is_none")]
385 pub properties: Option<CustomizationPolicyProperties>,
386 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
387 pub type_: Option<String>,
388}
389impl CustomizationPolicy {
390 pub fn new() -> Self {
391 Self::default()
392 }
393}
394#[doc = "The properties of Customization policy"]
395#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
396pub struct CustomizationPolicyProperties {
397 #[doc = "Policy description"]
398 #[serde(default, skip_serializing_if = "Option::is_none")]
399 pub description: Option<String>,
400 #[doc = "The Private cloud id"]
401 #[serde(rename = "privateCloudId", default, skip_serializing_if = "Option::is_none")]
402 pub private_cloud_id: Option<String>,
403 #[doc = "The specification for Customization Policy"]
404 #[serde(default, skip_serializing_if = "Option::is_none")]
405 pub specification: Option<CustomizationSpecification>,
406 #[doc = "The type of customization (Linux or Windows)"]
407 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
408 pub type_: Option<customization_policy_properties::Type>,
409 #[doc = "Policy version"]
410 #[serde(default, skip_serializing_if = "Option::is_none")]
411 pub version: Option<String>,
412}
413impl CustomizationPolicyProperties {
414 pub fn new() -> Self {
415 Self::default()
416 }
417}
418pub mod customization_policy_properties {
419 use super::*;
420 #[doc = "The type of customization (Linux or Windows)"]
421 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
422 pub enum Type {
423 #[serde(rename = "LINUX")]
424 Linux,
425 #[serde(rename = "WINDOWS")]
426 Windows,
427 }
428}
429#[doc = "The specification for Customization Policy"]
430#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
431pub struct CustomizationSpecification {
432 #[serde(default, skip_serializing_if = "Option::is_none")]
433 pub identity: Option<CustomizationIdentity>,
434 #[doc = "Network interface settings"]
435 #[serde(
436 rename = "nicSettings",
437 default,
438 deserialize_with = "azure_core::util::deserialize_null_as_default",
439 skip_serializing_if = "Vec::is_empty"
440 )]
441 pub nic_settings: Vec<CustomizationNicSetting>,
442}
443impl CustomizationSpecification {
444 pub fn new() -> Self {
445 Self::default()
446 }
447}
448#[doc = "Dedicated cloud node model"]
449#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
450pub struct DedicatedCloudNode {
451 #[doc = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/dedicatedCloudNodes/{dedicatedCloudNodeName}"]
452 #[serde(default, skip_serializing_if = "Option::is_none")]
453 pub id: Option<String>,
454 #[doc = "Azure region"]
455 pub location: String,
456 #[doc = "{dedicatedCloudNodeName}"]
457 #[serde(default, skip_serializing_if = "Option::is_none")]
458 pub name: Option<String>,
459 #[doc = "Properties of dedicated cloud node"]
460 #[serde(default, skip_serializing_if = "Option::is_none")]
461 pub properties: Option<DedicatedCloudNodeProperties>,
462 #[doc = "The purchase SKU for CloudSimple paid resources"]
463 #[serde(default, skip_serializing_if = "Option::is_none")]
464 pub sku: Option<Sku>,
465 #[doc = "Tags model"]
466 #[serde(default, skip_serializing_if = "Option::is_none")]
467 pub tags: Option<Tags>,
468 #[doc = "{resourceProviderNamespace}/{resourceType}"]
469 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
470 pub type_: Option<String>,
471}
472impl DedicatedCloudNode {
473 pub fn new(location: String) -> Self {
474 Self {
475 id: None,
476 location,
477 name: None,
478 properties: None,
479 sku: None,
480 tags: None,
481 type_: None,
482 }
483 }
484}
485#[doc = "List of dedicated nodes response model"]
486#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
487pub struct DedicatedCloudNodeListResponse {
488 #[doc = "Link for next list of DedicatedCloudNode"]
489 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
490 pub next_link: Option<String>,
491 #[doc = "Results of the DedicatedCloudNode list"]
492 #[serde(
493 default,
494 deserialize_with = "azure_core::util::deserialize_null_as_default",
495 skip_serializing_if = "Vec::is_empty"
496 )]
497 pub value: Vec<DedicatedCloudNode>,
498}
499impl azure_core::Continuable for DedicatedCloudNodeListResponse {
500 type Continuation = String;
501 fn continuation(&self) -> Option<Self::Continuation> {
502 self.next_link.clone().filter(|value| !value.is_empty())
503 }
504}
505impl DedicatedCloudNodeListResponse {
506 pub fn new() -> Self {
507 Self::default()
508 }
509}
510#[doc = "Properties of dedicated cloud node"]
511#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
512pub struct DedicatedCloudNodeProperties {
513 #[doc = "Availability Zone id, e.g. \"az1\""]
514 #[serde(rename = "availabilityZoneId")]
515 pub availability_zone_id: String,
516 #[doc = "Availability Zone name, e.g. \"Availability Zone 1\""]
517 #[serde(rename = "availabilityZoneName", default, skip_serializing_if = "Option::is_none")]
518 pub availability_zone_name: Option<String>,
519 #[doc = "VMWare Cloud Rack Name"]
520 #[serde(rename = "cloudRackName", default, skip_serializing_if = "Option::is_none")]
521 pub cloud_rack_name: Option<String>,
522 #[doc = "date time the resource was created"]
523 #[serde(default, with = "azure_core::date::rfc3339::option")]
524 pub created: Option<::time::OffsetDateTime>,
525 #[doc = "count of nodes to create"]
526 #[serde(rename = "nodesCount")]
527 pub nodes_count: i64,
528 #[doc = "Placement Group id, e.g. \"n1\""]
529 #[serde(rename = "placementGroupId")]
530 pub placement_group_id: String,
531 #[doc = "Placement Name, e.g. \"Placement Group 1\""]
532 #[serde(rename = "placementGroupName", default, skip_serializing_if = "Option::is_none")]
533 pub placement_group_name: Option<String>,
534 #[doc = "Private Cloud Id"]
535 #[serde(rename = "privateCloudId", default, skip_serializing_if = "Option::is_none")]
536 pub private_cloud_id: Option<String>,
537 #[doc = "Resource Pool Name"]
538 #[serde(rename = "privateCloudName", default, skip_serializing_if = "Option::is_none")]
539 pub private_cloud_name: Option<String>,
540 #[doc = "The provisioning status of the resource"]
541 #[serde(rename = "provisioningState", default, skip_serializing_if = "Option::is_none")]
542 pub provisioning_state: Option<String>,
543 #[doc = "purchase id"]
544 #[serde(rename = "purchaseId")]
545 pub purchase_id: String,
546 #[doc = "The purchase SKU for CloudSimple paid resources"]
547 #[serde(rename = "skuDescription", default, skip_serializing_if = "Option::is_none")]
548 pub sku_description: Option<SkuDescription>,
549 #[doc = "Node status, indicates is private cloud set up on this node or not"]
550 #[serde(default, skip_serializing_if = "Option::is_none")]
551 pub status: Option<dedicated_cloud_node_properties::Status>,
552 #[doc = "VMWare Cluster Name"]
553 #[serde(rename = "vmwareClusterName", default, skip_serializing_if = "Option::is_none")]
554 pub vmware_cluster_name: Option<String>,
555}
556impl DedicatedCloudNodeProperties {
557 pub fn new(availability_zone_id: String, nodes_count: i64, placement_group_id: String, purchase_id: String) -> Self {
558 Self {
559 availability_zone_id,
560 availability_zone_name: None,
561 cloud_rack_name: None,
562 created: None,
563 nodes_count,
564 placement_group_id,
565 placement_group_name: None,
566 private_cloud_id: None,
567 private_cloud_name: None,
568 provisioning_state: None,
569 purchase_id,
570 sku_description: None,
571 status: None,
572 vmware_cluster_name: None,
573 }
574 }
575}
576pub mod dedicated_cloud_node_properties {
577 use super::*;
578 #[doc = "Node status, indicates is private cloud set up on this node or not"]
579 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
580 pub enum Status {
581 #[serde(rename = "unused")]
582 Unused,
583 #[serde(rename = "used")]
584 Used,
585 }
586}
587#[doc = "Dedicated cloud service model"]
588#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
589pub struct DedicatedCloudService {
590 #[doc = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/dedicatedCloudServices/{dedicatedCloudServiceName}"]
591 #[serde(default, skip_serializing_if = "Option::is_none")]
592 pub id: Option<String>,
593 #[doc = "Azure region"]
594 pub location: String,
595 #[doc = "{dedicatedCloudServiceName}"]
596 #[serde(default, skip_serializing_if = "Option::is_none")]
597 pub name: Option<String>,
598 #[doc = "Properties of dedicated cloud service"]
599 #[serde(default, skip_serializing_if = "Option::is_none")]
600 pub properties: Option<DedicatedCloudServiceProperties>,
601 #[doc = "Tags model"]
602 #[serde(default, skip_serializing_if = "Option::is_none")]
603 pub tags: Option<Tags>,
604 #[doc = "{resourceProviderNamespace}/{resourceType}"]
605 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
606 pub type_: Option<String>,
607}
608impl DedicatedCloudService {
609 pub fn new(location: String) -> Self {
610 Self {
611 id: None,
612 location,
613 name: None,
614 properties: None,
615 tags: None,
616 type_: None,
617 }
618 }
619}
620#[doc = "List of dedicated cloud services"]
621#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
622pub struct DedicatedCloudServiceListResponse {
623 #[doc = "Link for next list of DedicatedCloudNode"]
624 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
625 pub next_link: Option<String>,
626 #[doc = "Results of the DedicatedCloudService list"]
627 #[serde(
628 default,
629 deserialize_with = "azure_core::util::deserialize_null_as_default",
630 skip_serializing_if = "Vec::is_empty"
631 )]
632 pub value: Vec<DedicatedCloudService>,
633}
634impl azure_core::Continuable for DedicatedCloudServiceListResponse {
635 type Continuation = String;
636 fn continuation(&self) -> Option<Self::Continuation> {
637 self.next_link.clone().filter(|value| !value.is_empty())
638 }
639}
640impl DedicatedCloudServiceListResponse {
641 pub fn new() -> Self {
642 Self::default()
643 }
644}
645#[doc = "Properties of dedicated cloud service"]
646#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
647pub struct DedicatedCloudServiceProperties {
648 #[doc = "gateway Subnet for the account. It will collect the subnet address and always treat it as /28"]
649 #[serde(rename = "gatewaySubnet")]
650 pub gateway_subnet: String,
651 #[doc = "indicates whether account onboarded or not in a given region"]
652 #[serde(rename = "isAccountOnboarded", default, skip_serializing_if = "Option::is_none")]
653 pub is_account_onboarded: Option<dedicated_cloud_service_properties::IsAccountOnboarded>,
654 #[doc = "total nodes purchased"]
655 #[serde(default, skip_serializing_if = "Option::is_none")]
656 pub nodes: Option<i64>,
657 #[doc = "link to a service management web portal"]
658 #[serde(rename = "serviceURL", default, skip_serializing_if = "Option::is_none")]
659 pub service_url: Option<String>,
660}
661impl DedicatedCloudServiceProperties {
662 pub fn new(gateway_subnet: String) -> Self {
663 Self {
664 gateway_subnet,
665 is_account_onboarded: None,
666 nodes: None,
667 service_url: None,
668 }
669 }
670}
671pub mod dedicated_cloud_service_properties {
672 use super::*;
673 #[doc = "indicates whether account onboarded or not in a given region"]
674 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
675 pub enum IsAccountOnboarded {
676 #[serde(rename = "notOnBoarded")]
677 NotOnBoarded,
678 #[serde(rename = "onBoarded")]
679 OnBoarded,
680 #[serde(rename = "onBoardingFailed")]
681 OnBoardingFailed,
682 #[serde(rename = "onBoarding")]
683 OnBoarding,
684 }
685}
686#[doc = "Guest OS Customization properties"]
687#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
688pub struct GuestOsCustomization {
689 #[doc = "List of dns servers to use"]
690 #[serde(
691 rename = "dnsServers",
692 default,
693 deserialize_with = "azure_core::util::deserialize_null_as_default",
694 skip_serializing_if = "Vec::is_empty"
695 )]
696 pub dns_servers: Vec<Ipv4Address>,
697 #[doc = "Virtual Machine hostname"]
698 #[serde(rename = "hostName", default, skip_serializing_if = "Option::is_none")]
699 pub host_name: Option<String>,
700 #[doc = "Password for login"]
701 #[serde(default, skip_serializing_if = "Option::is_none")]
702 pub password: Option<String>,
703 #[doc = "id of customization policy"]
704 #[serde(rename = "policyId", default, skip_serializing_if = "Option::is_none")]
705 pub policy_id: Option<String>,
706 #[doc = "Username for login"]
707 #[serde(default, skip_serializing_if = "Option::is_none")]
708 pub username: Option<String>,
709}
710impl GuestOsCustomization {
711 pub fn new() -> Self {
712 Self::default()
713 }
714}
715#[doc = "Guest OS nic customization"]
716#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
717pub struct GuestOsnicCustomization {
718 #[doc = "IP address allocation method"]
719 #[serde(default, skip_serializing_if = "Option::is_none")]
720 pub allocation: Option<guest_osnic_customization::Allocation>,
721 #[doc = "List of dns servers to use"]
722 #[serde(
723 rename = "dnsServers",
724 default,
725 deserialize_with = "azure_core::util::deserialize_null_as_default",
726 skip_serializing_if = "Vec::is_empty"
727 )]
728 pub dns_servers: Vec<Ipv4Address>,
729 #[doc = "Gateway addresses assigned to nic"]
730 #[serde(
731 default,
732 deserialize_with = "azure_core::util::deserialize_null_as_default",
733 skip_serializing_if = "Vec::is_empty"
734 )]
735 pub gateway: Vec<Ipv4Address>,
736 #[serde(rename = "ipAddress", default, skip_serializing_if = "Option::is_none")]
737 pub ip_address: Option<Ipv4Address>,
738 #[serde(default, skip_serializing_if = "Option::is_none")]
739 pub mask: Option<Ipv4Address>,
740 #[serde(rename = "primaryWinsServer", default, skip_serializing_if = "Option::is_none")]
741 pub primary_wins_server: Option<Ipv4Address>,
742 #[serde(rename = "secondaryWinsServer", default, skip_serializing_if = "Option::is_none")]
743 pub secondary_wins_server: Option<Ipv4Address>,
744}
745impl GuestOsnicCustomization {
746 pub fn new() -> Self {
747 Self::default()
748 }
749}
750pub mod guest_osnic_customization {
751 use super::*;
752 #[doc = "IP address allocation method"]
753 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
754 pub enum Allocation {
755 #[serde(rename = "static")]
756 Static,
757 #[serde(rename = "dynamic")]
758 Dynamic,
759 }
760}
761pub type Ipv4Address = String;
762#[doc = "Operation error model"]
763#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
764pub struct OperationError {
765 #[doc = "Error's code"]
766 #[serde(default, skip_serializing_if = "Option::is_none")]
767 pub code: Option<String>,
768 #[doc = "Error's message"]
769 #[serde(default, skip_serializing_if = "Option::is_none")]
770 pub message: Option<String>,
771}
772impl OperationError {
773 pub fn new() -> Self {
774 Self::default()
775 }
776}
777#[doc = "Operation status response"]
778#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
779pub struct OperationResource {
780 #[doc = "End time of the operation"]
781 #[serde(rename = "endTime", default, with = "azure_core::date::rfc3339::option")]
782 pub end_time: Option<::time::OffsetDateTime>,
783 #[doc = "Operation error model"]
784 #[serde(default, skip_serializing_if = "Option::is_none")]
785 pub error: Option<OperationError>,
786 #[doc = "Operation Id"]
787 #[serde(default, skip_serializing_if = "Option::is_none")]
788 pub id: Option<String>,
789 #[doc = "Operation ID"]
790 #[serde(default, skip_serializing_if = "Option::is_none")]
791 pub name: Option<String>,
792 #[doc = "Start time of the operation"]
793 #[serde(rename = "startTime", default, with = "azure_core::date::rfc3339::option")]
794 pub start_time: Option<::time::OffsetDateTime>,
795 #[doc = "Operation status"]
796 #[serde(default, skip_serializing_if = "Option::is_none")]
797 pub status: Option<String>,
798}
799impl OperationResource {
800 pub fn new() -> Self {
801 Self::default()
802 }
803}
804#[doc = "General patch payload modal"]
805#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
806pub struct PatchPayload {
807 #[doc = "Tags model"]
808 #[serde(default, skip_serializing_if = "Option::is_none")]
809 pub tags: Option<Tags>,
810}
811impl PatchPayload {
812 pub fn new() -> Self {
813 Self::default()
814 }
815}
816#[doc = "Private cloud model"]
817#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
818pub struct PrivateCloud {
819 #[doc = "Azure Id, e.g. \"/subscriptions/4da99247-a172-4ed6-8ae9-ebed2d12f839/providers/Microsoft.VMwareCloudSimple/privateClouds/cloud123\""]
820 #[serde(default, skip_serializing_if = "Option::is_none")]
821 pub id: Option<String>,
822 #[doc = "Location where private cloud created, e.g \"westus\""]
823 #[serde(default, skip_serializing_if = "Option::is_none")]
824 pub location: Option<String>,
825 #[doc = "Private cloud name"]
826 #[serde(default, skip_serializing_if = "Option::is_none")]
827 pub name: Option<String>,
828 #[doc = "Properties of private"]
829 #[serde(default, skip_serializing_if = "Option::is_none")]
830 pub properties: Option<PrivateCloudProperties>,
831 #[doc = "Azure Resource type"]
832 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
833 pub type_: Option<private_cloud::Type>,
834}
835impl PrivateCloud {
836 pub fn new() -> Self {
837 Self::default()
838 }
839}
840pub mod private_cloud {
841 use super::*;
842 #[doc = "Azure Resource type"]
843 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
844 pub enum Type {
845 #[serde(rename = "Microsoft.VMwareCloudSimple/privateClouds")]
846 MicrosoftVMwareCloudSimplePrivateClouds,
847 }
848}
849#[doc = "List of private clouds"]
850#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
851pub struct PrivateCloudList {
852 #[doc = "Link for next list of Private Clouds"]
853 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
854 pub next_link: Option<String>,
855 #[doc = "the list of private clouds"]
856 #[serde(
857 default,
858 deserialize_with = "azure_core::util::deserialize_null_as_default",
859 skip_serializing_if = "Vec::is_empty"
860 )]
861 pub value: Vec<PrivateCloud>,
862}
863impl azure_core::Continuable for PrivateCloudList {
864 type Continuation = String;
865 fn continuation(&self) -> Option<Self::Continuation> {
866 self.next_link.clone().filter(|value| !value.is_empty())
867 }
868}
869impl PrivateCloudList {
870 pub fn new() -> Self {
871 Self::default()
872 }
873}
874#[doc = "Properties of private"]
875#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
876pub struct PrivateCloudProperties {
877 #[doc = "Availability Zone id, e.g. \"az1\""]
878 #[serde(rename = "availabilityZoneId", default, skip_serializing_if = "Option::is_none")]
879 pub availability_zone_id: Option<String>,
880 #[doc = "Availability Zone name, e.g. \"Availability Zone 1\""]
881 #[serde(rename = "availabilityZoneName", default, skip_serializing_if = "Option::is_none")]
882 pub availability_zone_name: Option<String>,
883 #[doc = "Number of clusters"]
884 #[serde(rename = "clustersNumber", default, skip_serializing_if = "Option::is_none")]
885 pub clusters_number: Option<i64>,
886 #[doc = "User's emails who created cloud"]
887 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
888 pub created_by: Option<String>,
889 #[doc = "When private cloud was created"]
890 #[serde(rename = "createdOn", default, with = "azure_core::date::rfc3339::option")]
891 pub created_on: Option<::time::OffsetDateTime>,
892 #[doc = "Array of DNS servers"]
893 #[serde(
894 rename = "dnsServers",
895 default,
896 deserialize_with = "azure_core::util::deserialize_null_as_default",
897 skip_serializing_if = "Vec::is_empty"
898 )]
899 pub dns_servers: Vec<String>,
900 #[doc = "Expiration date of PC"]
901 #[serde(default, skip_serializing_if = "Option::is_none")]
902 pub expires: Option<String>,
903 #[doc = "Nsx Type, e.g. \"Advanced\""]
904 #[serde(rename = "nsxType", default, skip_serializing_if = "Option::is_none")]
905 pub nsx_type: Option<String>,
906 #[doc = "Placement Group id, e.g. \"n1\""]
907 #[serde(rename = "placementGroupId", default, skip_serializing_if = "Option::is_none")]
908 pub placement_group_id: Option<String>,
909 #[doc = "Placement Group name"]
910 #[serde(rename = "placementGroupName", default, skip_serializing_if = "Option::is_none")]
911 pub placement_group_name: Option<String>,
912 #[doc = "Id of a private cloud"]
913 #[serde(rename = "privateCloudId", default, skip_serializing_if = "Option::is_none")]
914 pub private_cloud_id: Option<String>,
915 #[doc = "The list of Resource Pools"]
916 #[serde(
917 rename = "resourcePools",
918 default,
919 deserialize_with = "azure_core::util::deserialize_null_as_default",
920 skip_serializing_if = "Vec::is_empty"
921 )]
922 pub resource_pools: Vec<ResourcePool>,
923 #[doc = "Private Cloud state, e.g. \"operational\""]
924 #[serde(default, skip_serializing_if = "Option::is_none")]
925 pub state: Option<String>,
926 #[doc = "Number of cores"]
927 #[serde(rename = "totalCpuCores", default, skip_serializing_if = "Option::is_none")]
928 pub total_cpu_cores: Option<i64>,
929 #[doc = "Number of nodes"]
930 #[serde(rename = "totalNodes", default, skip_serializing_if = "Option::is_none")]
931 pub total_nodes: Option<i64>,
932 #[doc = "Memory size"]
933 #[serde(rename = "totalRam", default, skip_serializing_if = "Option::is_none")]
934 pub total_ram: Option<i64>,
935 #[doc = "Disk space in TB"]
936 #[serde(rename = "totalStorage", default, skip_serializing_if = "Option::is_none")]
937 pub total_storage: Option<f64>,
938 #[doc = "Virtualization type e.g. \"vSphere\""]
939 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
940 pub type_: Option<String>,
941 #[doc = "e.g. \"6.5u2\""]
942 #[serde(rename = "vSphereVersion", default, skip_serializing_if = "Option::is_none")]
943 pub v_sphere_version: Option<String>,
944 #[doc = "FQDN for vcenter access"]
945 #[serde(rename = "vcenterFqdn", default, skip_serializing_if = "Option::is_none")]
946 pub vcenter_fqdn: Option<String>,
947 #[doc = "Vcenter ip address"]
948 #[serde(rename = "vcenterRefid", default, skip_serializing_if = "Option::is_none")]
949 pub vcenter_refid: Option<String>,
950 #[doc = "The list of Virtual Machine Templates"]
951 #[serde(
952 rename = "virtualMachineTemplates",
953 default,
954 deserialize_with = "azure_core::util::deserialize_null_as_default",
955 skip_serializing_if = "Vec::is_empty"
956 )]
957 pub virtual_machine_templates: Vec<VirtualMachineTemplate>,
958 #[doc = "The list of Virtual Networks"]
959 #[serde(
960 rename = "virtualNetworks",
961 default,
962 deserialize_with = "azure_core::util::deserialize_null_as_default",
963 skip_serializing_if = "Vec::is_empty"
964 )]
965 pub virtual_networks: Vec<VirtualNetwork>,
966 #[doc = "Is vRealize Operations Manager enabled/disabled"]
967 #[serde(rename = "vrOpsEnabled", default, skip_serializing_if = "Option::is_none")]
968 pub vr_ops_enabled: Option<bool>,
969}
970impl PrivateCloudProperties {
971 pub fn new() -> Self {
972 Self::default()
973 }
974}
975#[doc = "Resource pool model"]
976#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
977pub struct ResourcePool {
978 #[doc = "resource pool id (privateCloudId:vsphereId)"]
979 pub id: String,
980 #[doc = "Azure region"]
981 #[serde(default, skip_serializing_if = "Option::is_none")]
982 pub location: Option<String>,
983 #[doc = "{ResourcePoolName}"]
984 #[serde(default, skip_serializing_if = "Option::is_none")]
985 pub name: Option<String>,
986 #[doc = "The Private Cloud Id"]
987 #[serde(rename = "privateCloudId", default, skip_serializing_if = "Option::is_none")]
988 pub private_cloud_id: Option<String>,
989 #[doc = "Properties of resource pool"]
990 #[serde(default, skip_serializing_if = "Option::is_none")]
991 pub properties: Option<ResourcePoolProperties>,
992 #[doc = "{resourceProviderNamespace}/{resourceType}"]
993 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
994 pub type_: Option<String>,
995}
996impl ResourcePool {
997 pub fn new(id: String) -> Self {
998 Self {
999 id,
1000 location: None,
1001 name: None,
1002 private_cloud_id: None,
1003 properties: None,
1004 type_: None,
1005 }
1006 }
1007}
1008#[doc = "Properties of resource pool"]
1009#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1010pub struct ResourcePoolProperties {
1011 #[doc = "Hierarchical resource pool name"]
1012 #[serde(rename = "fullName", default, skip_serializing_if = "Option::is_none")]
1013 pub full_name: Option<String>,
1014}
1015impl ResourcePoolProperties {
1016 pub fn new() -> Self {
1017 Self::default()
1018 }
1019}
1020#[doc = "List of resource pools response model"]
1021#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1022pub struct ResourcePoolsListResponse {
1023 #[doc = "Link for next list of ResourcePoolsList"]
1024 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1025 pub next_link: Option<String>,
1026 #[doc = "Results of the Resource pools list"]
1027 #[serde(
1028 default,
1029 deserialize_with = "azure_core::util::deserialize_null_as_default",
1030 skip_serializing_if = "Vec::is_empty"
1031 )]
1032 pub value: Vec<ResourcePool>,
1033}
1034impl azure_core::Continuable for ResourcePoolsListResponse {
1035 type Continuation = String;
1036 fn continuation(&self) -> Option<Self::Continuation> {
1037 self.next_link.clone().filter(|value| !value.is_empty())
1038 }
1039}
1040impl ResourcePoolsListResponse {
1041 pub fn new() -> Self {
1042 Self::default()
1043 }
1044}
1045#[doc = "The purchase SKU for CloudSimple paid resources"]
1046#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1047pub struct Sku {
1048 #[doc = "The capacity of the SKU"]
1049 #[serde(default, skip_serializing_if = "Option::is_none")]
1050 pub capacity: Option<String>,
1051 #[doc = "dedicatedCloudNode example: 8 x Ten-Core Intel® Xeon® Processor E5-2640 v4 2.40GHz 25MB Cache (90W); 12 x 64GB PC4-19200 2400MHz DDR4 ECC Registered DIMM, ..."]
1052 #[serde(default, skip_serializing_if = "Option::is_none")]
1053 pub description: Option<String>,
1054 #[doc = "If the service has different generations of hardware, for the same SKU, then that can be captured here"]
1055 #[serde(default, skip_serializing_if = "Option::is_none")]
1056 pub family: Option<String>,
1057 #[doc = "The name of the SKU for VMWare CloudSimple Node"]
1058 pub name: String,
1059 #[doc = "The tier of the SKU"]
1060 #[serde(default, skip_serializing_if = "Option::is_none")]
1061 pub tier: Option<String>,
1062}
1063impl Sku {
1064 pub fn new(name: String) -> Self {
1065 Self {
1066 capacity: None,
1067 description: None,
1068 family: None,
1069 name,
1070 tier: None,
1071 }
1072 }
1073}
1074#[doc = "SKU availability model"]
1075#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1076pub struct SkuAvailability {
1077 #[doc = "CloudSimple Availability Zone id"]
1078 #[serde(rename = "dedicatedAvailabilityZoneId", default, skip_serializing_if = "Option::is_none")]
1079 pub dedicated_availability_zone_id: Option<String>,
1080 #[doc = "CloudSimple Availability Zone Name"]
1081 #[serde(rename = "dedicatedAvailabilityZoneName", default, skip_serializing_if = "Option::is_none")]
1082 pub dedicated_availability_zone_name: Option<String>,
1083 #[doc = "CloudSimple Placement Group Id"]
1084 #[serde(rename = "dedicatedPlacementGroupId", default, skip_serializing_if = "Option::is_none")]
1085 pub dedicated_placement_group_id: Option<String>,
1086 #[doc = "CloudSimple Placement Group name"]
1087 #[serde(rename = "dedicatedPlacementGroupName", default, skip_serializing_if = "Option::is_none")]
1088 pub dedicated_placement_group_name: Option<String>,
1089 #[doc = "indicates how many resources of a given SKU is available in a AZ->PG"]
1090 pub limit: i64,
1091 #[doc = "resource type e.g. DedicatedCloudNodes"]
1092 #[serde(rename = "resourceType", default, skip_serializing_if = "Option::is_none")]
1093 pub resource_type: Option<String>,
1094 #[doc = "sku id"]
1095 #[serde(rename = "skuId", default, skip_serializing_if = "Option::is_none")]
1096 pub sku_id: Option<String>,
1097 #[doc = "sku name"]
1098 #[serde(rename = "skuName", default, skip_serializing_if = "Option::is_none")]
1099 pub sku_name: Option<String>,
1100}
1101impl SkuAvailability {
1102 pub fn new(limit: i64) -> Self {
1103 Self {
1104 dedicated_availability_zone_id: None,
1105 dedicated_availability_zone_name: None,
1106 dedicated_placement_group_id: None,
1107 dedicated_placement_group_name: None,
1108 limit,
1109 resource_type: None,
1110 sku_id: None,
1111 sku_name: None,
1112 }
1113 }
1114}
1115#[doc = "List of SKU availabilities"]
1116#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1117pub struct SkuAvailabilityListResponse {
1118 #[doc = "Link for next list of DedicatedCloudNode"]
1119 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1120 pub next_link: Option<String>,
1121 #[doc = "Results of the DedicatedPlacementGroupSkuAvailability list"]
1122 #[serde(
1123 default,
1124 deserialize_with = "azure_core::util::deserialize_null_as_default",
1125 skip_serializing_if = "Vec::is_empty"
1126 )]
1127 pub value: Vec<SkuAvailability>,
1128}
1129impl azure_core::Continuable for SkuAvailabilityListResponse {
1130 type Continuation = String;
1131 fn continuation(&self) -> Option<Self::Continuation> {
1132 self.next_link.clone().filter(|value| !value.is_empty())
1133 }
1134}
1135impl SkuAvailabilityListResponse {
1136 pub fn new() -> Self {
1137 Self::default()
1138 }
1139}
1140#[doc = "The purchase SKU for CloudSimple paid resources"]
1141#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1142pub struct SkuDescription {
1143 #[doc = "SKU's id"]
1144 pub id: String,
1145 #[doc = "SKU's name"]
1146 pub name: String,
1147}
1148impl SkuDescription {
1149 pub fn new(id: String, name: String) -> Self {
1150 Self { id, name }
1151 }
1152}
1153#[doc = "Tags model"]
1154#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1155pub struct Tags {}
1156impl Tags {
1157 pub fn new() -> Self {
1158 Self::default()
1159 }
1160}
1161#[doc = "Usage model"]
1162#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1163pub struct Usage {
1164 #[doc = "The current usage value"]
1165 #[serde(rename = "currentValue")]
1166 pub current_value: i64,
1167 #[doc = "limit of a given sku in a region for a subscription. The maximum permitted value for the usage quota. If there is no limit, this value will be -1"]
1168 pub limit: i64,
1169 #[doc = "User name model"]
1170 #[serde(default, skip_serializing_if = "Option::is_none")]
1171 pub name: Option<UsageName>,
1172 #[doc = "The usages' unit"]
1173 #[serde(default, skip_serializing_if = "Option::is_none")]
1174 pub unit: Option<usage::Unit>,
1175}
1176impl Usage {
1177 pub fn new(current_value: i64, limit: i64) -> Self {
1178 Self {
1179 current_value,
1180 limit,
1181 name: None,
1182 unit: None,
1183 }
1184 }
1185}
1186pub mod usage {
1187 use super::*;
1188 #[doc = "The usages' unit"]
1189 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1190 pub enum Unit {
1191 Count,
1192 Bytes,
1193 Seconds,
1194 Percent,
1195 CountPerSecond,
1196 BytesPerSecond,
1197 }
1198}
1199#[doc = "List of usages"]
1200#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1201pub struct UsageListResponse {
1202 #[doc = "Link for next list of DedicatedCloudNode"]
1203 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1204 pub next_link: Option<String>,
1205 #[doc = "The list of usages"]
1206 #[serde(
1207 default,
1208 deserialize_with = "azure_core::util::deserialize_null_as_default",
1209 skip_serializing_if = "Vec::is_empty"
1210 )]
1211 pub value: Vec<Usage>,
1212}
1213impl azure_core::Continuable for UsageListResponse {
1214 type Continuation = String;
1215 fn continuation(&self) -> Option<Self::Continuation> {
1216 self.next_link.clone().filter(|value| !value.is_empty())
1217 }
1218}
1219impl UsageListResponse {
1220 pub fn new() -> Self {
1221 Self::default()
1222 }
1223}
1224#[doc = "User name model"]
1225#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1226pub struct UsageName {
1227 #[doc = "e.g. \"Virtual Machines\""]
1228 #[serde(rename = "localizedValue", default, skip_serializing_if = "Option::is_none")]
1229 pub localized_value: Option<String>,
1230 #[doc = "resource type or resource type sku name, e.g. virtualMachines"]
1231 #[serde(default, skip_serializing_if = "Option::is_none")]
1232 pub value: Option<String>,
1233}
1234impl UsageName {
1235 pub fn new() -> Self {
1236 Self::default()
1237 }
1238}
1239#[doc = "Virtual disk model"]
1240#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1241pub struct VirtualDisk {
1242 #[doc = "Disk's Controller id"]
1243 #[serde(rename = "controllerId")]
1244 pub controller_id: String,
1245 #[doc = "Disk's independence mode type"]
1246 #[serde(rename = "independenceMode")]
1247 pub independence_mode: virtual_disk::IndependenceMode,
1248 #[doc = "Disk's total size"]
1249 #[serde(rename = "totalSize")]
1250 pub total_size: i64,
1251 #[doc = "Disk's id"]
1252 #[serde(rename = "virtualDiskId", default, skip_serializing_if = "Option::is_none")]
1253 pub virtual_disk_id: Option<String>,
1254 #[doc = "Disk's display name"]
1255 #[serde(rename = "virtualDiskName", default, skip_serializing_if = "Option::is_none")]
1256 pub virtual_disk_name: Option<String>,
1257}
1258impl VirtualDisk {
1259 pub fn new(controller_id: String, independence_mode: virtual_disk::IndependenceMode, total_size: i64) -> Self {
1260 Self {
1261 controller_id,
1262 independence_mode,
1263 total_size,
1264 virtual_disk_id: None,
1265 virtual_disk_name: None,
1266 }
1267 }
1268}
1269pub mod virtual_disk {
1270 use super::*;
1271 #[doc = "Disk's independence mode type"]
1272 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1273 pub enum IndependenceMode {
1274 #[serde(rename = "persistent")]
1275 Persistent,
1276 #[serde(rename = "independent_persistent")]
1277 IndependentPersistent,
1278 #[serde(rename = "independent_nonpersistent")]
1279 IndependentNonpersistent,
1280 }
1281}
1282#[doc = "Virtual disk controller model"]
1283#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1284pub struct VirtualDiskController {
1285 #[doc = "Controller's id"]
1286 #[serde(default, skip_serializing_if = "Option::is_none")]
1287 pub id: Option<String>,
1288 #[doc = "The display name of Controller"]
1289 #[serde(default, skip_serializing_if = "Option::is_none")]
1290 pub name: Option<String>,
1291 #[doc = "dik controller subtype (VMWARE_PARAVIRTUAL, BUS_PARALLEL, LSI_PARALLEL, LSI_SAS)"]
1292 #[serde(rename = "subType", default, skip_serializing_if = "Option::is_none")]
1293 pub sub_type: Option<String>,
1294 #[doc = "disk controller type (SCSI)"]
1295 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1296 pub type_: Option<String>,
1297}
1298impl VirtualDiskController {
1299 pub fn new() -> Self {
1300 Self::default()
1301 }
1302}
1303#[doc = "Virtual machine model"]
1304#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1305pub struct VirtualMachine {
1306 #[doc = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/virtualMachines/{virtualMachineName}"]
1307 #[serde(default, skip_serializing_if = "Option::is_none")]
1308 pub id: Option<String>,
1309 #[doc = "Azure region"]
1310 pub location: String,
1311 #[doc = "{virtualMachineName}"]
1312 #[serde(default, skip_serializing_if = "Option::is_none")]
1313 pub name: Option<String>,
1314 #[doc = "Properties of virtual machine"]
1315 #[serde(default, skip_serializing_if = "Option::is_none")]
1316 pub properties: Option<VirtualMachineProperties>,
1317 #[doc = "Tags model"]
1318 #[serde(default, skip_serializing_if = "Option::is_none")]
1319 pub tags: Option<Tags>,
1320 #[doc = "{resourceProviderNamespace}/{resourceType}"]
1321 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1322 pub type_: Option<String>,
1323}
1324impl VirtualMachine {
1325 pub fn new(location: String) -> Self {
1326 Self {
1327 id: None,
1328 location,
1329 name: None,
1330 properties: None,
1331 tags: None,
1332 type_: None,
1333 }
1334 }
1335}
1336#[doc = "List of virtual machines"]
1337#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1338pub struct VirtualMachineListResponse {
1339 #[doc = "Link for next list of VirtualMachines"]
1340 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1341 pub next_link: Option<String>,
1342 #[doc = "Results of the VirtualMachine list"]
1343 #[serde(
1344 default,
1345 deserialize_with = "azure_core::util::deserialize_null_as_default",
1346 skip_serializing_if = "Vec::is_empty"
1347 )]
1348 pub value: Vec<VirtualMachine>,
1349}
1350impl azure_core::Continuable for VirtualMachineListResponse {
1351 type Continuation = String;
1352 fn continuation(&self) -> Option<Self::Continuation> {
1353 self.next_link.clone().filter(|value| !value.is_empty())
1354 }
1355}
1356impl VirtualMachineListResponse {
1357 pub fn new() -> Self {
1358 Self::default()
1359 }
1360}
1361#[doc = "Properties of virtual machine"]
1362#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1363pub struct VirtualMachineProperties {
1364 #[doc = "The amount of memory"]
1365 #[serde(rename = "amountOfRam")]
1366 pub amount_of_ram: i64,
1367 #[doc = "The list of Virtual Disks' Controllers"]
1368 #[serde(
1369 default,
1370 deserialize_with = "azure_core::util::deserialize_null_as_default",
1371 skip_serializing_if = "Vec::is_empty"
1372 )]
1373 pub controllers: Vec<VirtualDiskController>,
1374 #[doc = "Guest OS Customization properties"]
1375 #[serde(default, skip_serializing_if = "Option::is_none")]
1376 pub customization: Option<GuestOsCustomization>,
1377 #[doc = "The list of Virtual Disks"]
1378 #[serde(
1379 default,
1380 deserialize_with = "azure_core::util::deserialize_null_as_default",
1381 skip_serializing_if = "Vec::is_empty"
1382 )]
1383 pub disks: Vec<VirtualDisk>,
1384 #[doc = "The DNS name of Virtual Machine in VCenter"]
1385 #[serde(default, skip_serializing_if = "Option::is_none")]
1386 pub dnsname: Option<String>,
1387 #[doc = "Expose Guest OS or not"]
1388 #[serde(rename = "exposeToGuestVM", default, skip_serializing_if = "Option::is_none")]
1389 pub expose_to_guest_vm: Option<bool>,
1390 #[doc = "The path to virtual machine folder in VCenter"]
1391 #[serde(default, skip_serializing_if = "Option::is_none")]
1392 pub folder: Option<String>,
1393 #[doc = "The name of Guest OS"]
1394 #[serde(rename = "guestOS", default, skip_serializing_if = "Option::is_none")]
1395 pub guest_os: Option<String>,
1396 #[doc = "The Guest OS type"]
1397 #[serde(rename = "guestOSType", default, skip_serializing_if = "Option::is_none")]
1398 pub guest_os_type: Option<virtual_machine_properties::GuestOsType>,
1399 #[doc = "The list of Virtual NICs"]
1400 #[serde(
1401 default,
1402 deserialize_with = "azure_core::util::deserialize_null_as_default",
1403 skip_serializing_if = "Vec::is_empty"
1404 )]
1405 pub nics: Vec<VirtualNic>,
1406 #[doc = "The number of CPU cores"]
1407 #[serde(rename = "numberOfCores")]
1408 pub number_of_cores: i64,
1409 #[doc = "Password for login. Deprecated - use customization property"]
1410 #[serde(default, skip_serializing_if = "Option::is_none")]
1411 pub password: Option<String>,
1412 #[doc = "Private Cloud Id"]
1413 #[serde(rename = "privateCloudId")]
1414 pub private_cloud_id: String,
1415 #[doc = "The provisioning status of the resource"]
1416 #[serde(rename = "provisioningState", default, skip_serializing_if = "Option::is_none")]
1417 pub provisioning_state: Option<String>,
1418 #[doc = "The public ip of Virtual Machine"]
1419 #[serde(rename = "publicIP", default, skip_serializing_if = "Option::is_none")]
1420 pub public_ip: Option<String>,
1421 #[doc = "Resource pool model"]
1422 #[serde(rename = "resourcePool", default, skip_serializing_if = "Option::is_none")]
1423 pub resource_pool: Option<ResourcePool>,
1424 #[doc = "The status of Virtual machine"]
1425 #[serde(default, skip_serializing_if = "Option::is_none")]
1426 pub status: Option<virtual_machine_properties::Status>,
1427 #[doc = "Virtual Machine Template Id"]
1428 #[serde(rename = "templateId", default, skip_serializing_if = "Option::is_none")]
1429 pub template_id: Option<String>,
1430 #[doc = "Username for login. Deprecated - use customization property"]
1431 #[serde(default, skip_serializing_if = "Option::is_none")]
1432 pub username: Option<String>,
1433 #[doc = "The list of Virtual VSphere Networks"]
1434 #[serde(
1435 rename = "vSphereNetworks",
1436 default,
1437 deserialize_with = "azure_core::util::deserialize_null_as_default",
1438 skip_serializing_if = "Vec::is_empty"
1439 )]
1440 pub v_sphere_networks: Vec<String>,
1441 #[doc = "The internal id of Virtual Machine in VCenter"]
1442 #[serde(rename = "vmId", default, skip_serializing_if = "Option::is_none")]
1443 pub vm_id: Option<String>,
1444 #[doc = "VMware tools version"]
1445 #[serde(default, skip_serializing_if = "Option::is_none")]
1446 pub vmwaretools: Option<String>,
1447}
1448impl VirtualMachineProperties {
1449 pub fn new(amount_of_ram: i64, number_of_cores: i64, private_cloud_id: String) -> Self {
1450 Self {
1451 amount_of_ram,
1452 controllers: Vec::new(),
1453 customization: None,
1454 disks: Vec::new(),
1455 dnsname: None,
1456 expose_to_guest_vm: None,
1457 folder: None,
1458 guest_os: None,
1459 guest_os_type: None,
1460 nics: Vec::new(),
1461 number_of_cores,
1462 password: None,
1463 private_cloud_id,
1464 provisioning_state: None,
1465 public_ip: None,
1466 resource_pool: None,
1467 status: None,
1468 template_id: None,
1469 username: None,
1470 v_sphere_networks: Vec::new(),
1471 vm_id: None,
1472 vmwaretools: None,
1473 }
1474 }
1475}
1476pub mod virtual_machine_properties {
1477 use super::*;
1478 #[doc = "The Guest OS type"]
1479 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1480 pub enum GuestOsType {
1481 #[serde(rename = "linux")]
1482 Linux,
1483 #[serde(rename = "windows")]
1484 Windows,
1485 #[serde(rename = "other")]
1486 Other,
1487 }
1488 #[doc = "The status of Virtual machine"]
1489 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1490 pub enum Status {
1491 #[serde(rename = "running")]
1492 Running,
1493 #[serde(rename = "suspended")]
1494 Suspended,
1495 #[serde(rename = "poweredoff")]
1496 Poweredoff,
1497 #[serde(rename = "updating")]
1498 Updating,
1499 #[serde(rename = "deallocating")]
1500 Deallocating,
1501 #[serde(rename = "deleting")]
1502 Deleting,
1503 }
1504}
1505#[doc = "List of virtual machine stop modes"]
1506#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1507pub struct VirtualMachineStopMode {
1508 #[doc = "mode indicates a type of stop operation - reboot, suspend, shutdown or power-off"]
1509 #[serde(default, skip_serializing_if = "Option::is_none")]
1510 pub mode: Option<virtual_machine_stop_mode::Mode>,
1511}
1512impl VirtualMachineStopMode {
1513 pub fn new() -> Self {
1514 Self::default()
1515 }
1516}
1517pub mod virtual_machine_stop_mode {
1518 use super::*;
1519 #[doc = "mode indicates a type of stop operation - reboot, suspend, shutdown or power-off"]
1520 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1521 pub enum Mode {
1522 #[serde(rename = "reboot")]
1523 Reboot,
1524 #[serde(rename = "suspend")]
1525 Suspend,
1526 #[serde(rename = "shutdown")]
1527 Shutdown,
1528 #[serde(rename = "poweroff")]
1529 Poweroff,
1530 }
1531}
1532#[doc = "Virtual machine template model"]
1533#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1534pub struct VirtualMachineTemplate {
1535 #[doc = "virtual machine template id (privateCloudId:vsphereId)"]
1536 #[serde(default, skip_serializing_if = "Option::is_none")]
1537 pub id: Option<String>,
1538 #[doc = "Azure region"]
1539 #[serde(default, skip_serializing_if = "Option::is_none")]
1540 pub location: Option<String>,
1541 #[doc = "{virtualMachineTemplateName}"]
1542 #[serde(default, skip_serializing_if = "Option::is_none")]
1543 pub name: Option<String>,
1544 #[doc = "Properties of virtual machine template"]
1545 #[serde(default, skip_serializing_if = "Option::is_none")]
1546 pub properties: Option<VirtualMachineTemplateProperties>,
1547 #[doc = "{resourceProviderNamespace}/{resourceType}"]
1548 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1549 pub type_: Option<String>,
1550}
1551impl VirtualMachineTemplate {
1552 pub fn new() -> Self {
1553 Self::default()
1554 }
1555}
1556#[doc = "List of virtual machine templates"]
1557#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1558pub struct VirtualMachineTemplateListResponse {
1559 #[doc = "Link for next list of VirtualMachineTemplate"]
1560 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1561 pub next_link: Option<String>,
1562 #[doc = "Results of the VM template list"]
1563 #[serde(
1564 default,
1565 deserialize_with = "azure_core::util::deserialize_null_as_default",
1566 skip_serializing_if = "Vec::is_empty"
1567 )]
1568 pub value: Vec<VirtualMachineTemplate>,
1569}
1570impl azure_core::Continuable for VirtualMachineTemplateListResponse {
1571 type Continuation = String;
1572 fn continuation(&self) -> Option<Self::Continuation> {
1573 self.next_link.clone().filter(|value| !value.is_empty())
1574 }
1575}
1576impl VirtualMachineTemplateListResponse {
1577 pub fn new() -> Self {
1578 Self::default()
1579 }
1580}
1581#[doc = "Properties of virtual machine template"]
1582#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1583pub struct VirtualMachineTemplateProperties {
1584 #[doc = "The amount of memory"]
1585 #[serde(rename = "amountOfRam", default, skip_serializing_if = "Option::is_none")]
1586 pub amount_of_ram: Option<i64>,
1587 #[doc = "The list of Virtual Disk Controllers"]
1588 #[serde(
1589 default,
1590 deserialize_with = "azure_core::util::deserialize_null_as_default",
1591 skip_serializing_if = "Vec::is_empty"
1592 )]
1593 pub controllers: Vec<VirtualDiskController>,
1594 #[doc = "The description of Virtual Machine Template"]
1595 #[serde(default, skip_serializing_if = "Option::is_none")]
1596 pub description: Option<String>,
1597 #[doc = "The list of Virtual Disks"]
1598 #[serde(
1599 default,
1600 deserialize_with = "azure_core::util::deserialize_null_as_default",
1601 skip_serializing_if = "Vec::is_empty"
1602 )]
1603 pub disks: Vec<VirtualDisk>,
1604 #[doc = "Expose Guest OS or not"]
1605 #[serde(rename = "exposeToGuestVM", default, skip_serializing_if = "Option::is_none")]
1606 pub expose_to_guest_vm: Option<bool>,
1607 #[doc = "The Guest OS"]
1608 #[serde(rename = "guestOS", default, skip_serializing_if = "Option::is_none")]
1609 pub guest_os: Option<String>,
1610 #[doc = "The Guest OS types"]
1611 #[serde(rename = "guestOSType", default, skip_serializing_if = "Option::is_none")]
1612 pub guest_os_type: Option<String>,
1613 #[doc = "The list of Virtual NICs"]
1614 #[serde(
1615 default,
1616 deserialize_with = "azure_core::util::deserialize_null_as_default",
1617 skip_serializing_if = "Vec::is_empty"
1618 )]
1619 pub nics: Vec<VirtualNic>,
1620 #[doc = "The number of CPU cores"]
1621 #[serde(rename = "numberOfCores", default, skip_serializing_if = "Option::is_none")]
1622 pub number_of_cores: Option<i64>,
1623 #[doc = "path to folder"]
1624 #[serde(default, skip_serializing_if = "Option::is_none")]
1625 pub path: Option<String>,
1626 #[doc = "The Private Cloud Id"]
1627 #[serde(rename = "privateCloudId")]
1628 pub private_cloud_id: String,
1629 #[doc = "The list of VSphere networks"]
1630 #[serde(
1631 rename = "vSphereNetworks",
1632 default,
1633 deserialize_with = "azure_core::util::deserialize_null_as_default",
1634 skip_serializing_if = "Vec::is_empty"
1635 )]
1636 pub v_sphere_networks: Vec<String>,
1637 #[doc = "The tags from VSphere"]
1638 #[serde(
1639 rename = "vSphereTags",
1640 default,
1641 deserialize_with = "azure_core::util::deserialize_null_as_default",
1642 skip_serializing_if = "Vec::is_empty"
1643 )]
1644 pub v_sphere_tags: Vec<String>,
1645 #[doc = "The VMware tools version"]
1646 #[serde(default, skip_serializing_if = "Option::is_none")]
1647 pub vmwaretools: Option<String>,
1648}
1649impl VirtualMachineTemplateProperties {
1650 pub fn new(private_cloud_id: String) -> Self {
1651 Self {
1652 amount_of_ram: None,
1653 controllers: Vec::new(),
1654 description: None,
1655 disks: Vec::new(),
1656 expose_to_guest_vm: None,
1657 guest_os: None,
1658 guest_os_type: None,
1659 nics: Vec::new(),
1660 number_of_cores: None,
1661 path: None,
1662 private_cloud_id,
1663 v_sphere_networks: Vec::new(),
1664 v_sphere_tags: Vec::new(),
1665 vmwaretools: None,
1666 }
1667 }
1668}
1669#[doc = "Virtual network model"]
1670#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1671pub struct VirtualNetwork {
1672 #[doc = "can be used in vm creation/deletion"]
1673 #[serde(default, skip_serializing_if = "Option::is_none")]
1674 pub assignable: Option<bool>,
1675 #[doc = "virtual network id (privateCloudId:vsphereId)"]
1676 pub id: String,
1677 #[doc = "Azure region"]
1678 #[serde(default, skip_serializing_if = "Option::is_none")]
1679 pub location: Option<String>,
1680 #[doc = "{VirtualNetworkName}"]
1681 #[serde(default, skip_serializing_if = "Option::is_none")]
1682 pub name: Option<String>,
1683 #[doc = "Properties of virtual network"]
1684 #[serde(default, skip_serializing_if = "Option::is_none")]
1685 pub properties: Option<VirtualNetworkProperties>,
1686 #[doc = "{resourceProviderNamespace}/{resourceType}"]
1687 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1688 pub type_: Option<String>,
1689}
1690impl VirtualNetwork {
1691 pub fn new(id: String) -> Self {
1692 Self {
1693 assignable: None,
1694 id,
1695 location: None,
1696 name: None,
1697 properties: None,
1698 type_: None,
1699 }
1700 }
1701}
1702#[doc = "List of virtual networks"]
1703#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1704pub struct VirtualNetworkListResponse {
1705 #[doc = "Link for next list of VirtualNetwork"]
1706 #[serde(rename = "nextLink", default, skip_serializing_if = "Option::is_none")]
1707 pub next_link: Option<String>,
1708 #[doc = "Results of the VirtualNetwork list"]
1709 #[serde(
1710 default,
1711 deserialize_with = "azure_core::util::deserialize_null_as_default",
1712 skip_serializing_if = "Vec::is_empty"
1713 )]
1714 pub value: Vec<VirtualNetwork>,
1715}
1716impl azure_core::Continuable for VirtualNetworkListResponse {
1717 type Continuation = String;
1718 fn continuation(&self) -> Option<Self::Continuation> {
1719 self.next_link.clone().filter(|value| !value.is_empty())
1720 }
1721}
1722impl VirtualNetworkListResponse {
1723 pub fn new() -> Self {
1724 Self::default()
1725 }
1726}
1727#[doc = "Properties of virtual network"]
1728#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1729pub struct VirtualNetworkProperties {
1730 #[doc = "The Private Cloud id"]
1731 #[serde(rename = "privateCloudId", default, skip_serializing_if = "Option::is_none")]
1732 pub private_cloud_id: Option<String>,
1733}
1734impl VirtualNetworkProperties {
1735 pub fn new() -> Self {
1736 Self::default()
1737 }
1738}
1739#[doc = "Virtual NIC model"]
1740#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1741pub struct VirtualNic {
1742 #[doc = "Guest OS nic customization"]
1743 #[serde(default, skip_serializing_if = "Option::is_none")]
1744 pub customization: Option<GuestOsnicCustomization>,
1745 #[doc = "NIC ip address"]
1746 #[serde(
1747 rename = "ipAddresses",
1748 default,
1749 deserialize_with = "azure_core::util::deserialize_null_as_default",
1750 skip_serializing_if = "Vec::is_empty"
1751 )]
1752 pub ip_addresses: Vec<String>,
1753 #[doc = "NIC MAC address"]
1754 #[serde(rename = "macAddress", default, skip_serializing_if = "Option::is_none")]
1755 pub mac_address: Option<String>,
1756 #[doc = "Virtual network model"]
1757 pub network: VirtualNetwork,
1758 #[doc = "NIC type"]
1759 #[serde(rename = "nicType")]
1760 pub nic_type: virtual_nic::NicType,
1761 #[doc = "Is NIC powered on/off on boot"]
1762 #[serde(rename = "powerOnBoot", default, skip_serializing_if = "Option::is_none")]
1763 pub power_on_boot: Option<bool>,
1764 #[doc = "NIC id"]
1765 #[serde(rename = "virtualNicId", default, skip_serializing_if = "Option::is_none")]
1766 pub virtual_nic_id: Option<String>,
1767 #[doc = "NIC name"]
1768 #[serde(rename = "virtualNicName", default, skip_serializing_if = "Option::is_none")]
1769 pub virtual_nic_name: Option<String>,
1770}
1771impl VirtualNic {
1772 pub fn new(network: VirtualNetwork, nic_type: virtual_nic::NicType) -> Self {
1773 Self {
1774 customization: None,
1775 ip_addresses: Vec::new(),
1776 mac_address: None,
1777 network,
1778 nic_type,
1779 power_on_boot: None,
1780 virtual_nic_id: None,
1781 virtual_nic_name: None,
1782 }
1783 }
1784}
1785pub mod virtual_nic {
1786 use super::*;
1787 #[doc = "NIC type"]
1788 #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1789 pub enum NicType {
1790 E1000,
1791 #[serde(rename = "E1000E")]
1792 E1000e,
1793 #[serde(rename = "PCNET32")]
1794 Pcnet32,
1795 #[serde(rename = "VMXNET")]
1796 Vmxnet,
1797 #[serde(rename = "VMXNET2")]
1798 Vmxnet2,
1799 #[serde(rename = "VMXNET3")]
1800 Vmxnet3,
1801 }
1802}