proxmox_api/generated/access/
users.rs

1pub mod userid;
2pub struct UsersClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> UsersClient<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, "/users"),
14        }
15    }
16}
17impl<T> UsersClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "User index."]
22    pub fn get(&self, params: GetParams) -> Result<Vec<GetOutputItems>, T::Error> {
23        let path = self.path.to_string();
24        self.client.get(&path, &params)
25    }
26}
27impl<T> UsersClient<T>
28where
29    T: crate::client::Client,
30{
31    #[doc = "Create new user."]
32    pub fn post(&self, params: PostParams) -> Result<(), T::Error> {
33        let path = self.path.to_string();
34        self.client.post(&path, &params)
35    }
36}
37impl GetOutputItems {
38    pub fn new(userid: String) -> Self {
39        Self {
40            userid,
41            comment: Default::default(),
42            email: Default::default(),
43            enable: Default::default(),
44            expire: Default::default(),
45            firstname: Default::default(),
46            groups: Default::default(),
47            keys: Default::default(),
48            lastname: Default::default(),
49            realm_type: Default::default(),
50            tfa_locked_until: Default::default(),
51            tokens: Default::default(),
52            totp_locked: Default::default(),
53            additional_properties: Default::default(),
54        }
55    }
56}
57#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
58pub struct GetOutputItems {
59    #[serde(skip_serializing_if = "Option::is_none", default)]
60    pub comment: Option<String>,
61    #[serde(skip_serializing_if = "Option::is_none", default)]
62    pub email: Option<String>,
63    #[serde(
64        serialize_with = "crate::types::serialize_bool_optional",
65        deserialize_with = "crate::types::deserialize_bool_optional"
66    )]
67    #[serde(skip_serializing_if = "Option::is_none", default)]
68    #[doc = "Enable the account (default). You can set this to '0' to disable the account"]
69    pub enable: Option<bool>,
70    #[serde(
71        serialize_with = "crate::types::serialize_int_optional",
72        deserialize_with = "crate::types::deserialize_int_optional"
73    )]
74    #[serde(skip_serializing_if = "Option::is_none", default)]
75    #[doc = "Account expiration date (seconds since epoch). '0' means no expiration date."]
76    pub expire: Option<u64>,
77    #[serde(skip_serializing_if = "Option::is_none", default)]
78    pub firstname: Option<String>,
79    #[serde(skip_serializing_if = "Option::is_none", default)]
80    pub groups: Option<String>,
81    #[serde(skip_serializing_if = "Option::is_none", default)]
82    #[doc = "Keys for two factor auth (yubico)."]
83    pub keys: Option<String>,
84    #[serde(skip_serializing_if = "Option::is_none", default)]
85    pub lastname: Option<String>,
86    #[serde(rename = "realm-type")]
87    #[serde(skip_serializing_if = "Option::is_none", default)]
88    #[doc = "The type of the users realm"]
89    pub realm_type: Option<String>,
90    #[serde(rename = "tfa-locked-until")]
91    #[serde(
92        serialize_with = "crate::types::serialize_int_optional",
93        deserialize_with = "crate::types::deserialize_int_optional"
94    )]
95    #[serde(skip_serializing_if = "Option::is_none", default)]
96    #[doc = "Contains a timestamp until when a user is locked out of 2nd factors."]
97    pub tfa_locked_until: Option<u64>,
98    #[serde(skip_serializing_if = "::std::vec::Vec::is_empty", default)]
99    pub tokens: Vec<TokensGetOutputItemsTokensItems>,
100    #[serde(rename = "totp-locked")]
101    #[serde(
102        serialize_with = "crate::types::serialize_bool_optional",
103        deserialize_with = "crate::types::deserialize_bool_optional"
104    )]
105    #[serde(skip_serializing_if = "Option::is_none", default)]
106    #[doc = "True if the user is currently locked out of TOTP factors."]
107    pub totp_locked: Option<bool>,
108    #[doc = "Full User ID, in the `name@realm` format."]
109    pub userid: String,
110    #[serde(
111        flatten,
112        default,
113        skip_serializing_if = "::std::collections::HashMap::is_empty"
114    )]
115    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
116}
117#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
118pub struct GetParams {
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 = "Optional filter for enable property."]
125    pub enabled: Option<bool>,
126    #[serde(
127        serialize_with = "crate::types::serialize_bool_optional",
128        deserialize_with = "crate::types::deserialize_bool_optional"
129    )]
130    #[serde(skip_serializing_if = "Option::is_none", default)]
131    #[doc = "Include group and token information."]
132    pub full: Option<bool>,
133    #[serde(
134        flatten,
135        default,
136        skip_serializing_if = "::std::collections::HashMap::is_empty"
137    )]
138    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
139}
140impl PostParams {
141    pub fn new(userid: String) -> Self {
142        Self {
143            userid,
144            comment: Default::default(),
145            email: Default::default(),
146            enable: Default::default(),
147            expire: Default::default(),
148            firstname: Default::default(),
149            groups: Default::default(),
150            keys: Default::default(),
151            lastname: Default::default(),
152            password: Default::default(),
153            additional_properties: Default::default(),
154        }
155    }
156}
157#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
158pub struct PostParams {
159    #[serde(skip_serializing_if = "Option::is_none", default)]
160    pub comment: Option<String>,
161    #[serde(skip_serializing_if = "Option::is_none", default)]
162    pub email: Option<String>,
163    #[serde(
164        serialize_with = "crate::types::serialize_bool_optional",
165        deserialize_with = "crate::types::deserialize_bool_optional"
166    )]
167    #[serde(skip_serializing_if = "Option::is_none", default)]
168    #[doc = "Enable the account (default). You can set this to '0' to disable the account"]
169    pub enable: Option<bool>,
170    #[serde(
171        serialize_with = "crate::types::serialize_int_optional",
172        deserialize_with = "crate::types::deserialize_int_optional"
173    )]
174    #[serde(skip_serializing_if = "Option::is_none", default)]
175    #[doc = "Account expiration date (seconds since epoch). '0' means no expiration date."]
176    pub expire: Option<u64>,
177    #[serde(skip_serializing_if = "Option::is_none", default)]
178    pub firstname: Option<String>,
179    #[serde(skip_serializing_if = "Option::is_none", default)]
180    pub groups: Option<String>,
181    #[serde(skip_serializing_if = "Option::is_none", default)]
182    #[doc = "Keys for two factor auth (yubico)."]
183    pub keys: Option<String>,
184    #[serde(skip_serializing_if = "Option::is_none", default)]
185    pub lastname: Option<String>,
186    #[serde(skip_serializing_if = "Option::is_none", default)]
187    #[doc = "Initial password."]
188    pub password: Option<String>,
189    #[doc = "Full User ID, in the `name@realm` format."]
190    pub userid: String,
191    #[serde(
192        flatten,
193        default,
194        skip_serializing_if = "::std::collections::HashMap::is_empty"
195    )]
196    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
197}
198impl TokensGetOutputItemsTokensItems {
199    pub fn new(tokenid: String) -> Self {
200        Self {
201            tokenid,
202            comment: Default::default(),
203            expire: Default::default(),
204            privsep: Default::default(),
205            additional_properties: Default::default(),
206        }
207    }
208}
209#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
210pub struct TokensGetOutputItemsTokensItems {
211    #[serde(skip_serializing_if = "Option::is_none", default)]
212    pub comment: Option<String>,
213    #[serde(skip_serializing_if = "Option::is_none", default)]
214    #[doc = "API token expiration date (seconds since epoch). '0' means no expiration date."]
215    pub expire: Option<()>,
216    #[serde(
217        serialize_with = "crate::types::serialize_bool_optional",
218        deserialize_with = "crate::types::deserialize_bool_optional"
219    )]
220    #[serde(skip_serializing_if = "Option::is_none", default)]
221    #[doc = "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user."]
222    pub privsep: Option<bool>,
223    #[doc = "User-specific token identifier."]
224    pub tokenid: String,
225    #[serde(
226        flatten,
227        default,
228        skip_serializing_if = "::std::collections::HashMap::is_empty"
229    )]
230    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
231}
232impl<T> UsersClient<T>
233where
234    T: crate::client::Client,
235{
236    pub fn userid(&self, userid: &str) -> userid::UseridClient<T> {
237        userid::UseridClient::<T>::new(self.client.clone(), &self.path, userid)
238    }
239}