Skip to main content

proxmox_api/generated/pools/
poolid.rs

1#[derive(Debug, Clone)]
2pub struct PoolidClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> PoolidClient<T>
7where
8    T: crate::client::Client,
9{
10    pub fn new(client: T, parent_path: &str, poolid: &str) -> Self {
11        Self {
12            client,
13            path: format!("{}/{}", parent_path, poolid),
14        }
15    }
16}
17impl<T> PoolidClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "Delete pool (deprecated, no support for nested pools, use 'DELETE /pools/?poolid={poolid}')."]
22    #[doc = ""]
23    #[doc = "Permission check: perm(\"/pool/{poolid}\", [\"Pool.Allocate\"])"]
24    #[doc = "You can only delete empty pools (no members)."]
25    pub async fn delete(&self) -> Result<(), T::Error> {
26        let path = self.path.to_string();
27        self.client.delete(&path, &()).await
28    }
29}
30impl<T> PoolidClient<T>
31where
32    T: crate::client::Client,
33{
34    #[doc = "Get pool configuration (deprecated, no support for nested pools, use 'GET /pools/?poolid={poolid}')."]
35    #[doc = ""]
36    #[doc = "Permission check: perm(\"/pool/{poolid}\", [\"Pool.Audit\"])"]
37    pub async fn get(&self, params: GetParams) -> Result<GetOutput, T::Error> {
38        let path = self.path.to_string();
39        self.client.get(&path, &params).await
40    }
41}
42impl<T> PoolidClient<T>
43where
44    T: crate::client::Client,
45{
46    #[doc = "Update pool data (deprecated, no support for nested pools - use 'PUT /pools/?poolid={poolid}' instead)."]
47    #[doc = ""]
48    #[doc = "Permission check: perm(\"/pool/{poolid}\", [\"Pool.Allocate\"])"]
49    #[doc = "You also need the right to modify permissions on any object you add/delete."]
50    pub async fn put(&self, params: PutParams) -> Result<(), T::Error> {
51        let path = self.path.to_string();
52        self.client.put(&path, &params).await
53    }
54}
55impl GetOutput {
56    pub fn new(members: Vec<MembersGetOutputMembersItems>) -> Self {
57        Self {
58            members,
59            comment: ::std::default::Default::default(),
60        }
61    }
62}
63#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
64pub struct GetOutput {
65    #[serde(skip_serializing_if = "Option::is_none", default)]
66    pub comment: Option<String>,
67    #[serde(skip_serializing_if = "::std::vec::Vec::is_empty", default)]
68    pub members: Vec<MembersGetOutputMembersItems>,
69}
70#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
71pub struct GetParams {
72    #[serde(rename = "type")]
73    #[serde(skip_serializing_if = "Option::is_none", default)]
74    pub ty: Option<Type>,
75    #[serde(
76        flatten,
77        default,
78        skip_serializing_if = "::std::collections::HashMap::is_empty"
79    )]
80    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
81}
82impl MembersGetOutputMembersItems {
83    pub fn new(id: String, node: String, ty: Type2) -> Self {
84        Self {
85            id,
86            node,
87            ty,
88            storage: ::std::default::Default::default(),
89            vmid: ::std::default::Default::default(),
90            additional_properties: ::std::default::Default::default(),
91        }
92    }
93}
94#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
95pub struct MembersGetOutputMembersItems {
96    pub id: String,
97    pub node: String,
98    #[serde(skip_serializing_if = "Option::is_none", default)]
99    pub storage: Option<String>,
100    #[serde(rename = "type")]
101    pub ty: Type2,
102    #[serde(
103        serialize_with = "crate::types::serialize_int_optional",
104        deserialize_with = "crate::types::deserialize_int_optional"
105    )]
106    #[serde(skip_serializing_if = "Option::is_none", default)]
107    pub vmid: Option<i64>,
108    #[serde(
109        flatten,
110        default,
111        skip_serializing_if = "::std::collections::HashMap::is_empty"
112    )]
113    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
114}
115#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
116pub struct PutParams {
117    #[serde(rename = "allow-move")]
118    #[serde(
119        serialize_with = "crate::types::serialize_bool_optional",
120        deserialize_with = "crate::types::deserialize_bool_optional"
121    )]
122    #[serde(skip_serializing_if = "Option::is_none", default)]
123    #[doc = "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one."]
124    #[doc = ""]
125    pub allow_move: Option<bool>,
126    #[serde(skip_serializing_if = "Option::is_none", default)]
127    pub comment: Option<String>,
128    #[serde(
129        serialize_with = "crate::types::serialize_bool_optional",
130        deserialize_with = "crate::types::deserialize_bool_optional"
131    )]
132    #[serde(skip_serializing_if = "Option::is_none", default)]
133    #[doc = "Remove the passed VMIDs and/or storage IDs instead of adding them."]
134    #[doc = ""]
135    pub delete: Option<bool>,
136    #[serde(skip_serializing_if = "Option::is_none", default)]
137    #[doc = "List of storage IDs to add or remove from this pool."]
138    #[doc = ""]
139    pub storage: Option<String>,
140    #[serde(skip_serializing_if = "Option::is_none", default)]
141    #[doc = "List of guest VMIDs to add or remove from this pool."]
142    #[doc = ""]
143    pub vms: Option<String>,
144    #[serde(
145        flatten,
146        default,
147        skip_serializing_if = "::std::collections::HashMap::is_empty"
148    )]
149    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
150}
151#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
152pub enum Type {
153    #[serde(rename = "lxc")]
154    Lxc,
155    #[serde(rename = "qemu")]
156    Qemu,
157    #[serde(rename = "storage")]
158    Storage,
159}
160impl TryFrom<&str> for Type {
161    type Error = String;
162    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
163        match value {
164            "lxc" => Ok(Self::Lxc),
165            "qemu" => Ok(Self::Qemu),
166            "storage" => Ok(Self::Storage),
167            v => Err(format!("Unknown variant {v}")),
168        }
169    }
170}
171#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
172pub enum Type2 {
173    #[serde(rename = "lxc")]
174    Lxc,
175    #[serde(rename = "openvz")]
176    Openvz,
177    #[serde(rename = "qemu")]
178    Qemu,
179    #[serde(rename = "storage")]
180    Storage,
181}
182impl TryFrom<&str> for Type2 {
183    type Error = String;
184    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
185        match value {
186            "lxc" => Ok(Self::Lxc),
187            "openvz" => Ok(Self::Openvz),
188            "qemu" => Ok(Self::Qemu),
189            "storage" => Ok(Self::Storage),
190            v => Err(format!("Unknown variant {v}")),
191        }
192    }
193}