proxmox_api/generated/nodes/node/
dns.rs1#[derive(Debug, Clone)]
2pub struct DnsClient<T> {
3 client: T,
4 path: String,
5}
6impl<T> DnsClient<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, "/dns"),
14 }
15 }
16}
17impl<T> DnsClient<T>
18where
19 T: crate::client::Client,
20{
21 #[doc = "Read DNS settings."]
22 #[doc = ""]
23 #[doc = "Permission check: perm(\"/nodes/{node}\", [\"Sys.Audit\"])"]
24 pub async fn get(&self) -> Result<GetOutput, T::Error> {
25 let path = self.path.to_string();
26 self.client.get(&path, &()).await
27 }
28}
29impl<T> DnsClient<T>
30where
31 T: crate::client::Client,
32{
33 #[doc = "Write DNS settings."]
34 #[doc = ""]
35 #[doc = "Permission check: perm(\"/nodes/{node}\", [\"Sys.Modify\"])"]
36 pub async fn put(&self, params: PutParams) -> Result<(), T::Error> {
37 let path = self.path.to_string();
38 self.client.put(&path, ¶ms).await
39 }
40}
41#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
42pub struct GetOutput {
43 #[serde(skip_serializing_if = "Option::is_none", default)]
44 #[doc = "First name server IP address."]
45 #[doc = ""]
46 pub dns1: Option<String>,
47 #[serde(skip_serializing_if = "Option::is_none", default)]
48 #[doc = "Second name server IP address."]
49 #[doc = ""]
50 pub dns2: Option<String>,
51 #[serde(skip_serializing_if = "Option::is_none", default)]
52 #[doc = "Third name server IP address."]
53 #[doc = ""]
54 pub dns3: Option<String>,
55 #[serde(skip_serializing_if = "Option::is_none", default)]
56 #[doc = "Search domain for host-name lookup."]
57 #[doc = ""]
58 pub search: Option<String>,
59}
60impl PutParams {
61 pub fn new(search: String) -> Self {
62 Self {
63 search,
64 dns1: ::std::default::Default::default(),
65 dns2: ::std::default::Default::default(),
66 dns3: ::std::default::Default::default(),
67 additional_properties: ::std::default::Default::default(),
68 }
69 }
70}
71#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
72pub struct PutParams {
73 #[serde(skip_serializing_if = "Option::is_none", default)]
74 #[doc = "First name server IP address."]
75 #[doc = ""]
76 pub dns1: Option<::std::net::IpAddr>,
77 #[serde(skip_serializing_if = "Option::is_none", default)]
78 #[doc = "Second name server IP address."]
79 #[doc = ""]
80 pub dns2: Option<::std::net::IpAddr>,
81 #[serde(skip_serializing_if = "Option::is_none", default)]
82 #[doc = "Third name server IP address."]
83 #[doc = ""]
84 pub dns3: Option<::std::net::IpAddr>,
85 #[doc = "Search domain for host-name lookup."]
86 #[doc = ""]
87 pub search: String,
88 #[serde(
89 flatten,
90 default,
91 skip_serializing_if = "::std::collections::HashMap::is_empty"
92 )]
93 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
94}