1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct VirtualServer {
15 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
16 pub id: Option<uuid::Uuid>,
17 #[serde(rename = "object_type", skip_serializing_if = "Option::is_none")]
18 pub object_type: Option<String>,
19 #[serde(rename = "display", skip_serializing_if = "Option::is_none")]
21 pub display: Option<String>,
22 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
23 pub url: Option<String>,
24 #[serde(rename = "natural_slug", skip_serializing_if = "Option::is_none")]
25 pub natural_slug: Option<String>,
26 #[serde(rename = "name")]
27 pub name: String,
28 #[serde(
29 rename = "port",
30 default,
31 with = "::serde_with::rust::double_option",
32 skip_serializing_if = "Option::is_none"
33 )]
34 pub port: Option<Option<i32>>,
35 #[serde(rename = "protocol")]
36 pub protocol: Box<crate::models::BulkWritableVirtualServerRequestProtocol>,
37 #[serde(rename = "source_nat_type", skip_serializing_if = "Option::is_none")]
38 pub source_nat_type: Option<Box<crate::models::BulkWritableVirtualServerRequestSourceNatType>>,
39 #[serde(rename = "load_balancer_type", skip_serializing_if = "Option::is_none")]
40 pub load_balancer_type:
41 Option<Box<crate::models::BulkWritableVirtualServerRequestLoadBalancerType>>,
42 #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
43 pub enabled: Option<bool>,
44 #[serde(rename = "ssl_offload", skip_serializing_if = "Option::is_none")]
45 pub ssl_offload: Option<bool>,
46 #[serde(rename = "vip")]
47 pub vip: Box<crate::models::ApprovalWorkflowStageResponseApprovalWorkflowStage>,
48 #[serde(
49 rename = "source_nat_pool",
50 default,
51 with = "::serde_with::rust::double_option",
52 skip_serializing_if = "Option::is_none"
53 )]
54 pub source_nat_pool: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
55 #[serde(
56 rename = "device",
57 default,
58 with = "::serde_with::rust::double_option",
59 skip_serializing_if = "Option::is_none"
60 )]
61 pub device: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
62 #[serde(
63 rename = "device_redundancy_group",
64 default,
65 with = "::serde_with::rust::double_option",
66 skip_serializing_if = "Option::is_none"
67 )]
68 pub device_redundancy_group: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
69 #[serde(
70 rename = "cloud_service",
71 default,
72 with = "::serde_with::rust::double_option",
73 skip_serializing_if = "Option::is_none"
74 )]
75 pub cloud_service: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
76 #[serde(
77 rename = "virtual_chassis",
78 default,
79 with = "::serde_with::rust::double_option",
80 skip_serializing_if = "Option::is_none"
81 )]
82 pub virtual_chassis: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
83 #[serde(
84 rename = "tenant",
85 default,
86 with = "::serde_with::rust::double_option",
87 skip_serializing_if = "Option::is_none"
88 )]
89 pub tenant: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
90 #[serde(
91 rename = "load_balancer_pool",
92 default,
93 with = "::serde_with::rust::double_option",
94 skip_serializing_if = "Option::is_none"
95 )]
96 pub load_balancer_pool: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
97 #[serde(
98 rename = "health_check_monitor",
99 default,
100 with = "::serde_with::rust::double_option",
101 skip_serializing_if = "Option::is_none"
102 )]
103 pub health_check_monitor: Option<Option<Box<crate::models::ApprovalWorkflowUser>>>,
104 #[serde(
105 rename = "created",
106 default,
107 with = "::serde_with::rust::double_option",
108 skip_serializing_if = "Option::is_none"
109 )]
110 pub created: Option<Option<String>>,
111 #[serde(
112 rename = "last_updated",
113 default,
114 with = "::serde_with::rust::double_option",
115 skip_serializing_if = "Option::is_none"
116 )]
117 pub last_updated: Option<Option<String>>,
118 #[serde(rename = "notes_url", skip_serializing_if = "Option::is_none")]
119 pub notes_url: Option<String>,
120 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
121 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
122 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
123 pub tags: Option<Vec<crate::models::ApprovalWorkflowStageResponseApprovalWorkflowStage>>,
124}
125
126impl VirtualServer {
127 pub fn new(
129 name: String,
130 protocol: crate::models::BulkWritableVirtualServerRequestProtocol,
131 vip: crate::models::ApprovalWorkflowStageResponseApprovalWorkflowStage,
132 ) -> VirtualServer {
133 VirtualServer {
134 id: None,
135 object_type: None,
136 display: None,
137 url: None,
138 natural_slug: None,
139 name,
140 port: None,
141 protocol: Box::new(protocol),
142 source_nat_type: None,
143 load_balancer_type: None,
144 enabled: None,
145 ssl_offload: None,
146 vip: Box::new(vip),
147 source_nat_pool: None,
148 device: None,
149 device_redundancy_group: None,
150 cloud_service: None,
151 virtual_chassis: None,
152 tenant: None,
153 load_balancer_pool: None,
154 health_check_monitor: None,
155 created: None,
156 last_updated: None,
157 notes_url: None,
158 custom_fields: None,
159 tags: None,
160 }
161 }
162}