proxmox_api/generated/cluster/sdn/zones/
zone.rs

1pub struct ZoneClient<T> {
2    client: T,
3    path: String,
4}
5impl<T> ZoneClient<T>
6where
7    T: crate::client::Client,
8{
9    pub fn new(client: T, parent_path: &str, zone: &str) -> Self {
10        Self {
11            client,
12            path: format!("{}/{}", parent_path, zone),
13        }
14    }
15}
16impl<T> ZoneClient<T>
17where
18    T: crate::client::Client,
19{
20    #[doc = "Delete sdn zone object configuration."]
21    pub fn delete(&self) -> Result<(), T::Error> {
22        let path = self.path.to_string();
23        self.client.delete(&path, &())
24    }
25}
26impl<T> ZoneClient<T>
27where
28    T: crate::client::Client,
29{
30    #[doc = "Read sdn zone configuration."]
31    pub fn get(&self, params: GetParams) -> Result<GetOutput, T::Error> {
32        let path = self.path.to_string();
33        self.client.get(&path, &params)
34    }
35}
36impl<T> ZoneClient<T>
37where
38    T: crate::client::Client,
39{
40    #[doc = "Update sdn zone object configuration."]
41    pub fn put(&self, params: PutParams) -> Result<(), T::Error> {
42        let path = self.path.to_string();
43        self.client.put(&path, &params)
44    }
45}
46#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
47pub struct GetOutput {
48    #[serde(
49        flatten,
50        default,
51        skip_serializing_if = "::std::collections::HashMap::is_empty"
52    )]
53    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
54}
55#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
56pub struct GetParams {
57    #[serde(
58        serialize_with = "crate::types::serialize_bool_optional",
59        deserialize_with = "crate::types::deserialize_bool_optional"
60    )]
61    #[serde(skip_serializing_if = "Option::is_none", default)]
62    #[doc = "Display pending config."]
63    pub pending: Option<bool>,
64    #[serde(
65        serialize_with = "crate::types::serialize_bool_optional",
66        deserialize_with = "crate::types::deserialize_bool_optional"
67    )]
68    #[serde(skip_serializing_if = "Option::is_none", default)]
69    #[doc = "Display running config."]
70    pub running: Option<bool>,
71    #[serde(
72        flatten,
73        default,
74        skip_serializing_if = "::std::collections::HashMap::is_empty"
75    )]
76    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
77}
78#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
79pub struct PutParams {
80    #[serde(rename = "advertise-subnets")]
81    #[serde(
82        serialize_with = "crate::types::serialize_bool_optional",
83        deserialize_with = "crate::types::deserialize_bool_optional"
84    )]
85    #[serde(skip_serializing_if = "Option::is_none", default)]
86    #[doc = "Advertise evpn subnets if you have silent hosts"]
87    pub advertise_subnets: Option<bool>,
88    #[serde(skip_serializing_if = "Option::is_none", default)]
89    pub bridge: Option<String>,
90    #[serde(rename = "bridge-disable-mac-learning")]
91    #[serde(
92        serialize_with = "crate::types::serialize_bool_optional",
93        deserialize_with = "crate::types::deserialize_bool_optional"
94    )]
95    #[serde(skip_serializing_if = "Option::is_none", default)]
96    #[doc = "Disable auto mac learning."]
97    pub bridge_disable_mac_learning: Option<bool>,
98    #[serde(skip_serializing_if = "Option::is_none", default)]
99    #[doc = "Frr router name"]
100    pub controller: Option<String>,
101    #[serde(skip_serializing_if = "Option::is_none", default)]
102    #[doc = "A list of settings you want to delete."]
103    pub delete: Option<String>,
104    #[serde(skip_serializing_if = "Option::is_none", default)]
105    #[doc = "Type of the DHCP backend for this zone"]
106    pub dhcp: Option<Dhcp>,
107    #[serde(skip_serializing_if = "Option::is_none", default)]
108    #[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
109    pub digest: Option<String>,
110    #[serde(rename = "disable-arp-nd-suppression")]
111    #[serde(
112        serialize_with = "crate::types::serialize_bool_optional",
113        deserialize_with = "crate::types::deserialize_bool_optional"
114    )]
115    #[serde(skip_serializing_if = "Option::is_none", default)]
116    #[doc = "Disable ipv4 arp && ipv6 neighbour discovery suppression"]
117    pub disable_arp_nd_suppression: Option<bool>,
118    #[serde(skip_serializing_if = "Option::is_none", default)]
119    #[doc = "dns api server"]
120    pub dns: Option<String>,
121    #[serde(skip_serializing_if = "Option::is_none", default)]
122    #[doc = "dns domain zone  ex: mydomain.com"]
123    pub dnszone: Option<String>,
124    #[serde(rename = "dp-id")]
125    #[serde(
126        serialize_with = "crate::types::serialize_int_optional",
127        deserialize_with = "crate::types::deserialize_int_optional"
128    )]
129    #[serde(skip_serializing_if = "Option::is_none", default)]
130    #[doc = "Faucet dataplane id"]
131    pub dp_id: Option<u64>,
132    #[serde(skip_serializing_if = "Option::is_none", default)]
133    #[doc = "List of cluster node names."]
134    pub exitnodes: Option<String>,
135    #[serde(rename = "exitnodes-local-routing")]
136    #[serde(
137        serialize_with = "crate::types::serialize_bool_optional",
138        deserialize_with = "crate::types::deserialize_bool_optional"
139    )]
140    #[serde(skip_serializing_if = "Option::is_none", default)]
141    #[doc = "Allow exitnodes to connect to evpn guests"]
142    pub exitnodes_local_routing: Option<bool>,
143    #[serde(rename = "exitnodes-primary")]
144    #[serde(skip_serializing_if = "Option::is_none", default)]
145    #[doc = "Force traffic to this exitnode first."]
146    pub exitnodes_primary: Option<String>,
147    #[serde(skip_serializing_if = "Option::is_none", default)]
148    #[doc = "use a specific ipam"]
149    pub ipam: Option<String>,
150    #[serde(skip_serializing_if = "Option::is_none", default)]
151    #[doc = "Anycast logical router mac address"]
152    pub mac: Option<crate::types::MacAddr<true>>,
153    #[serde(
154        serialize_with = "crate::types::serialize_int_optional",
155        deserialize_with = "crate::types::deserialize_int_optional"
156    )]
157    #[serde(skip_serializing_if = "Option::is_none", default)]
158    #[doc = "MTU"]
159    pub mtu: Option<u64>,
160    #[serde(skip_serializing_if = "Option::is_none", default)]
161    #[doc = "List of cluster node names."]
162    pub nodes: Option<String>,
163    #[serde(skip_serializing_if = "Option::is_none", default)]
164    #[doc = "peers address list."]
165    pub peers: Option<String>,
166    #[serde(skip_serializing_if = "Option::is_none", default)]
167    #[doc = "reverse dns api server"]
168    pub reversedns: Option<String>,
169    #[serde(rename = "rt-import")]
170    #[serde(skip_serializing_if = "Option::is_none", default)]
171    #[doc = "Route-Target import"]
172    pub rt_import: Option<String>,
173    #[serde(
174        serialize_with = "crate::types::serialize_int_optional",
175        deserialize_with = "crate::types::deserialize_int_optional"
176    )]
177    #[serde(skip_serializing_if = "Option::is_none", default)]
178    #[doc = "Service-VLAN Tag"]
179    pub tag: Option<u64>,
180    #[serde(rename = "vlan-protocol")]
181    #[serde(skip_serializing_if = "Option::is_none", default)]
182    pub vlan_protocol: Option<VlanProtocol>,
183    #[serde(rename = "vrf-vxlan")]
184    #[serde(
185        serialize_with = "crate::types::serialize_int_optional",
186        deserialize_with = "crate::types::deserialize_int_optional"
187    )]
188    #[serde(skip_serializing_if = "Option::is_none", default)]
189    #[doc = "l3vni."]
190    pub vrf_vxlan: Option<u64>,
191    #[serde(rename = "vxlan-port")]
192    #[serde(
193        serialize_with = "crate::types::serialize_int_optional",
194        deserialize_with = "crate::types::deserialize_int_optional"
195    )]
196    #[serde(skip_serializing_if = "Option::is_none", default)]
197    #[doc = "Vxlan tunnel udp port (default 4789)."]
198    pub vxlan_port: Option<u64>,
199    #[serde(
200        flatten,
201        default,
202        skip_serializing_if = "::std::collections::HashMap::is_empty"
203    )]
204    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
205}
206#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
207pub enum Dhcp {
208    #[serde(rename = "dnsmasq")]
209    Dnsmasq,
210}
211#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
212pub enum VlanProtocol {
213    #[serde(rename = "802.1ad")]
214    _8021ad,
215    #[serde(rename = "802.1q")]
216    _8021q,
217}
218impl Default for VlanProtocol {
219    fn default() -> Self {
220        Self::_8021q
221    }
222}