Skip to main content

proxmox_api/generated/nodes/node/disks/
list.rs

1#[derive(Debug, Clone)]
2pub struct ListClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> ListClient<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, "/list"),
14        }
15    }
16}
17impl<T> ListClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "List local disks."]
22    #[doc = ""]
23    #[doc = "Permission check: or(perm(\"/\", [\"Sys.Audit\"]), perm(\"/nodes/{node}\", [\"Sys.Audit\"]))"]
24    pub async fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
25        let path = self.path.to_string();
26        let optional_vec: Option<Vec<GetOutputItems>> = self.client.get(&path, &params).await?;
27        Ok(optional_vec.unwrap_or_default())
28    }
29}
30impl GetOutputItems {
31    pub fn new(
32        devpath: String,
33        gpt: bool,
34        mounted: bool,
35        osdid: i64,
36        osdid_list: Vec<i64>,
37        size: i64,
38    ) -> Self {
39        Self {
40            devpath,
41            gpt,
42            mounted,
43            osdid,
44            osdid_list,
45            size,
46            health: ::std::default::Default::default(),
47            model: ::std::default::Default::default(),
48            parent: ::std::default::Default::default(),
49            serial: ::std::default::Default::default(),
50            used: ::std::default::Default::default(),
51            vendor: ::std::default::Default::default(),
52            wwn: ::std::default::Default::default(),
53            additional_properties: ::std::default::Default::default(),
54        }
55    }
56}
57#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
58pub struct GetOutputItems {
59    #[doc = "The device path"]
60    #[doc = ""]
61    pub devpath: String,
62    #[serde(
63        serialize_with = "crate::types::serialize_bool",
64        deserialize_with = "crate::types::deserialize_bool"
65    )]
66    pub gpt: bool,
67    #[serde(skip_serializing_if = "Option::is_none", default)]
68    pub health: Option<String>,
69    #[serde(skip_serializing_if = "Option::is_none", default)]
70    pub model: Option<String>,
71    #[serde(
72        serialize_with = "crate::types::serialize_bool",
73        deserialize_with = "crate::types::deserialize_bool"
74    )]
75    pub mounted: bool,
76    #[serde(
77        serialize_with = "crate::types::serialize_int",
78        deserialize_with = "crate::types::deserialize_int"
79    )]
80    pub osdid: i64,
81    #[serde(rename = "osdid-list")]
82    #[serde(skip_serializing_if = "::std::vec::Vec::is_empty", default)]
83    pub osdid_list: Vec<i64>,
84    #[serde(skip_serializing_if = "Option::is_none", default)]
85    #[doc = "For partitions only. The device path of the disk the partition resides on."]
86    #[doc = ""]
87    pub parent: Option<String>,
88    #[serde(skip_serializing_if = "Option::is_none", default)]
89    pub serial: Option<String>,
90    #[serde(
91        serialize_with = "crate::types::serialize_int",
92        deserialize_with = "crate::types::deserialize_int"
93    )]
94    pub size: i64,
95    #[serde(skip_serializing_if = "Option::is_none", default)]
96    pub used: Option<String>,
97    #[serde(skip_serializing_if = "Option::is_none", default)]
98    pub vendor: Option<String>,
99    #[serde(skip_serializing_if = "Option::is_none", default)]
100    pub wwn: Option<String>,
101    #[serde(
102        flatten,
103        default,
104        skip_serializing_if = "::std::collections::HashMap::is_empty"
105    )]
106    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
107}
108#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
109pub struct GetParams {
110    #[serde(rename = "include-partitions")]
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 = "Also include partitions."]
117    #[doc = ""]
118    pub include_partitions: Option<bool>,
119    #[serde(
120        serialize_with = "crate::types::serialize_bool_optional",
121        deserialize_with = "crate::types::deserialize_bool_optional"
122    )]
123    #[serde(skip_serializing_if = "Option::is_none", default)]
124    #[doc = "Skip smart checks."]
125    #[doc = ""]
126    pub skipsmart: Option<bool>,
127    #[serde(rename = "type")]
128    #[serde(skip_serializing_if = "Option::is_none", default)]
129    #[doc = "Only list specific types of disks."]
130    #[doc = ""]
131    pub ty: Option<Type>,
132    #[serde(
133        flatten,
134        default,
135        skip_serializing_if = "::std::collections::HashMap::is_empty"
136    )]
137    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
138}
139#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
140#[doc = "Only list specific types of disks."]
141#[doc = ""]
142pub enum Type {
143    #[serde(rename = "journal_disks")]
144    JournalDisks,
145    #[serde(rename = "unused")]
146    Unused,
147}
148impl TryFrom<&str> for Type {
149    type Error = String;
150    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
151        match value {
152            "journal_disks" => Ok(Self::JournalDisks),
153            "unused" => Ok(Self::Unused),
154            v => Err(format!("Unknown variant {v}")),
155        }
156    }
157}