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, ¶ms)
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, ¶ms)
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}