proxmox_api/generated/cluster/sdn/
controllers.rs1pub mod controller;
2pub struct ControllersClient<T> {
3 client: T,
4 path: String,
5}
6impl<T> ControllersClient<T>
7where
8 T: crate::client::Client,
9{
10 pub fn new(client: T, parent_path: &str) -> Self {
11 Self {
12 client,
13 path: format!("{}{}", parent_path, "/controllers"),
14 }
15 }
16}
17impl<T> ControllersClient<T>
18where
19 T: crate::client::Client,
20{
21 #[doc = "SDN controllers index."]
22 pub fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
23 let path = self.path.to_string();
24 self.client.get(&path, ¶ms)
25 }
26}
27impl<T> ControllersClient<T>
28where
29 T: crate::client::Client,
30{
31 #[doc = "Create a new sdn controller object."]
32 pub fn post(&self, params: PostParams) -> Result<(), T::Error> {
33 let path = self.path.to_string();
34 self.client.post(&path, ¶ms)
35 }
36}
37impl GetOutputItems {
38 pub fn new(controller: String, ty: String) -> Self {
39 Self {
40 controller,
41 ty,
42 pending: Default::default(),
43 state: Default::default(),
44 additional_properties: Default::default(),
45 }
46 }
47}
48#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
49pub struct GetOutputItems {
50 pub controller: String,
51 #[serde(skip_serializing_if = "Option::is_none", default)]
52 pub pending: Option<()>,
53 #[serde(skip_serializing_if = "Option::is_none", default)]
54 pub state: Option<String>,
55 #[serde(rename = "type")]
56 pub ty: String,
57 #[serde(
58 flatten,
59 default,
60 skip_serializing_if = "::std::collections::HashMap::is_empty"
61 )]
62 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
63}
64#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
65pub struct GetParams {
66 #[serde(
67 serialize_with = "crate::types::serialize_bool_optional",
68 deserialize_with = "crate::types::deserialize_bool_optional"
69 )]
70 #[serde(skip_serializing_if = "Option::is_none", default)]
71 #[doc = "Display pending config."]
72 pub pending: Option<bool>,
73 #[serde(
74 serialize_with = "crate::types::serialize_bool_optional",
75 deserialize_with = "crate::types::deserialize_bool_optional"
76 )]
77 #[serde(skip_serializing_if = "Option::is_none", default)]
78 #[doc = "Display running config."]
79 pub running: Option<bool>,
80 #[serde(rename = "type")]
81 #[serde(skip_serializing_if = "Option::is_none", default)]
82 #[doc = "Only list sdn controllers of specific type"]
83 pub ty: Option<Type>,
84 #[serde(
85 flatten,
86 default,
87 skip_serializing_if = "::std::collections::HashMap::is_empty"
88 )]
89 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
90}
91impl PostParams {
92 pub fn new(controller: String, ty: Type) -> Self {
93 Self {
94 controller,
95 ty,
96 asn: Default::default(),
97 bgp_multipath_as_path_relax: Default::default(),
98 ebgp: Default::default(),
99 ebgp_multihop: Default::default(),
100 isis_domain: Default::default(),
101 isis_ifaces: Default::default(),
102 isis_net: Default::default(),
103 loopback: Default::default(),
104 node: Default::default(),
105 peers: Default::default(),
106 additional_properties: Default::default(),
107 }
108 }
109}
110#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
111pub struct PostParams {
112 #[serde(skip_serializing_if = "Option::is_none", default)]
113 #[doc = "autonomous system number"]
114 pub asn: Option<()>,
115 #[serde(rename = "bgp-multipath-as-path-relax")]
116 #[serde(
117 serialize_with = "crate::types::serialize_bool_optional",
118 deserialize_with = "crate::types::deserialize_bool_optional"
119 )]
120 #[serde(skip_serializing_if = "Option::is_none", default)]
121 pub bgp_multipath_as_path_relax: Option<bool>,
122 #[doc = "The SDN controller object identifier."]
123 pub controller: String,
124 #[serde(
125 serialize_with = "crate::types::serialize_bool_optional",
126 deserialize_with = "crate::types::deserialize_bool_optional"
127 )]
128 #[serde(skip_serializing_if = "Option::is_none", default)]
129 #[doc = "Enable ebgp. (remote-as external)"]
130 pub ebgp: Option<bool>,
131 #[serde(rename = "ebgp-multihop")]
132 #[serde(
133 serialize_with = "crate::types::serialize_int_optional",
134 deserialize_with = "crate::types::deserialize_int_optional"
135 )]
136 #[serde(skip_serializing_if = "Option::is_none", default)]
137 pub ebgp_multihop: Option<u64>,
138 #[serde(rename = "isis-domain")]
139 #[serde(skip_serializing_if = "Option::is_none", default)]
140 #[doc = "ISIS domain."]
141 pub isis_domain: Option<String>,
142 #[serde(rename = "isis-ifaces")]
143 #[serde(skip_serializing_if = "Option::is_none", default)]
144 #[doc = "ISIS interface."]
145 pub isis_ifaces: Option<String>,
146 #[serde(rename = "isis-net")]
147 #[serde(skip_serializing_if = "Option::is_none", default)]
148 #[doc = "ISIS network entity title."]
149 pub isis_net: Option<String>,
150 #[serde(skip_serializing_if = "Option::is_none", default)]
151 #[doc = "source loopback interface."]
152 pub loopback: Option<String>,
153 #[serde(skip_serializing_if = "Option::is_none", default)]
154 #[doc = "The cluster node name."]
155 pub node: Option<String>,
156 #[serde(skip_serializing_if = "Option::is_none", default)]
157 #[doc = "peers address list."]
158 pub peers: Option<String>,
159 #[serde(rename = "type")]
160 #[doc = "Plugin type."]
161 pub ty: Type,
162 #[serde(
163 flatten,
164 default,
165 skip_serializing_if = "::std::collections::HashMap::is_empty"
166 )]
167 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
168}
169#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
170pub enum Type {
171 #[serde(rename = "bgp")]
172 Bgp,
173 #[serde(rename = "evpn")]
174 Evpn,
175 #[serde(rename = "faucet")]
176 Faucet,
177 #[serde(rename = "isis")]
178 Isis,
179}
180impl<T> ControllersClient<T>
181where
182 T: crate::client::Client,
183{
184 pub fn controller(&self, controller: &str) -> controller::ControllerClient<T> {
185 controller::ControllerClient::<T>::new(self.client.clone(), &self.path, controller)
186 }
187}