proxmox_api/generated/pools/
poolid.rs1#[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, ¶ms).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, ¶ms).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}