proxmox_api/generated/cluster/sdn/
controllers.rs

1pub 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, &params)
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, &params)
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}