proxmox_api/generated/cluster/sdn/controllers/
controller.rs

1pub struct ControllerClient<T> {
2    client: T,
3    path: String,
4}
5impl<T> ControllerClient<T>
6where
7    T: crate::client::Client,
8{
9    pub fn new(client: T, parent_path: &str, controller: &str) -> Self {
10        Self {
11            client,
12            path: format!("{}/{}", parent_path, controller),
13        }
14    }
15}
16impl<T> ControllerClient<T>
17where
18    T: crate::client::Client,
19{
20    #[doc = "Delete sdn controller 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> ControllerClient<T>
27where
28    T: crate::client::Client,
29{
30    #[doc = "Read sdn controller 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> ControllerClient<T>
37where
38    T: crate::client::Client,
39{
40    #[doc = "Update sdn controller 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(skip_serializing_if = "Option::is_none", default)]
81    #[doc = "autonomous system number"]
82    pub asn: Option<()>,
83    #[serde(rename = "bgp-multipath-as-path-relax")]
84    #[serde(
85        serialize_with = "crate::types::serialize_bool_optional",
86        deserialize_with = "crate::types::deserialize_bool_optional"
87    )]
88    #[serde(skip_serializing_if = "Option::is_none", default)]
89    pub bgp_multipath_as_path_relax: Option<bool>,
90    #[serde(skip_serializing_if = "Option::is_none", default)]
91    #[doc = "A list of settings you want to delete."]
92    pub delete: Option<String>,
93    #[serde(skip_serializing_if = "Option::is_none", default)]
94    #[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
95    pub digest: Option<String>,
96    #[serde(
97        serialize_with = "crate::types::serialize_bool_optional",
98        deserialize_with = "crate::types::deserialize_bool_optional"
99    )]
100    #[serde(skip_serializing_if = "Option::is_none", default)]
101    #[doc = "Enable ebgp. (remote-as external)"]
102    pub ebgp: Option<bool>,
103    #[serde(rename = "ebgp-multihop")]
104    #[serde(
105        serialize_with = "crate::types::serialize_int_optional",
106        deserialize_with = "crate::types::deserialize_int_optional"
107    )]
108    #[serde(skip_serializing_if = "Option::is_none", default)]
109    pub ebgp_multihop: Option<u64>,
110    #[serde(rename = "isis-domain")]
111    #[serde(skip_serializing_if = "Option::is_none", default)]
112    #[doc = "ISIS domain."]
113    pub isis_domain: Option<String>,
114    #[serde(rename = "isis-ifaces")]
115    #[serde(skip_serializing_if = "Option::is_none", default)]
116    #[doc = "ISIS interface."]
117    pub isis_ifaces: Option<String>,
118    #[serde(rename = "isis-net")]
119    #[serde(skip_serializing_if = "Option::is_none", default)]
120    #[doc = "ISIS network entity title."]
121    pub isis_net: Option<String>,
122    #[serde(skip_serializing_if = "Option::is_none", default)]
123    #[doc = "source loopback interface."]
124    pub loopback: Option<String>,
125    #[serde(skip_serializing_if = "Option::is_none", default)]
126    #[doc = "The cluster node name."]
127    pub node: Option<String>,
128    #[serde(skip_serializing_if = "Option::is_none", default)]
129    #[doc = "peers address list."]
130    pub peers: Option<String>,
131    #[serde(
132        flatten,
133        default,
134        skip_serializing_if = "::std::collections::HashMap::is_empty"
135    )]
136    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
137}