1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
pub mod name;
pub struct DirectoryClient<T> {
    client: T,
    path: String,
}
impl<T> DirectoryClient<T>
where
    T: crate::client::Client,
{
    pub fn new(client: T, parent_path: &str) -> Self {
        Self {
            client,
            path: format!("{}{}", parent_path, "/directory"),
        }
    }
}
impl<T> DirectoryClient<T>
where
    T: crate::client::Client,
{
    #[doc = "PVE Managed Directory storages."]
    pub fn get(&self) -> Result<Vec<GetOutputItems>, T::Error> {
        let path = self.path.to_string();
        self.client.get(&path, &())
    }
}
impl<T> DirectoryClient<T>
where
    T: crate::client::Client,
{
    #[doc = "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'."]
    pub fn post(&self, params: PostParams) -> Result<String, T::Error> {
        let path = self.path.to_string();
        self.client.post(&path, &params)
    }
}
impl GetOutputItems {
    pub fn new(
        device: String,
        options: String,
        path: String,
        ty: String,
        unitfile: String,
    ) -> Self {
        Self {
            device,
            options,
            path,
            ty,
            unitfile,
            additional_properties: Default::default(),
        }
    }
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub struct GetOutputItems {
    #[doc = "The mounted device."]
    pub device: String,
    #[doc = "The mount options."]
    pub options: String,
    #[doc = "The mount path."]
    pub path: String,
    #[serde(rename = "type")]
    #[doc = "The filesystem type."]
    pub ty: String,
    #[doc = "The path of the mount unit."]
    pub unitfile: String,
    #[serde(
        flatten,
        default,
        skip_serializing_if = "::std::collections::HashMap::is_empty"
    )]
    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
}
impl PostParams {
    pub fn new(device: String, name: String) -> Self {
        Self {
            device,
            name,
            add_storage: Default::default(),
            filesystem: Default::default(),
            additional_properties: Default::default(),
        }
    }
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub struct PostParams {
    #[serde(
        serialize_with = "crate::types::serialize_bool_optional",
        deserialize_with = "crate::types::deserialize_bool_optional"
    )]
    #[serde(skip_serializing_if = "Option::is_none", default)]
    #[doc = "Configure storage using the directory."]
    pub add_storage: Option<bool>,
    #[doc = "The block device you want to create the filesystem on."]
    pub device: String,
    #[serde(skip_serializing_if = "Option::is_none", default)]
    #[doc = "The desired filesystem."]
    pub filesystem: Option<Filesystem>,
    #[doc = "The storage identifier."]
    pub name: String,
    #[serde(
        flatten,
        default,
        skip_serializing_if = "::std::collections::HashMap::is_empty"
    )]
    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub enum Filesystem {
    #[serde(rename = "ext4")]
    Ext4,
    #[serde(rename = "xfs")]
    Xfs,
}
impl Default for Filesystem {
    fn default() -> Self {
        Self::Ext4
    }
}
impl<T> DirectoryClient<T>
where
    T: crate::client::Client,
{
    pub fn name(&self, name: &str) -> name::NameClient<T> {
        name::NameClient::<T>::new(self.client.clone(), &self.path, name)
    }
}