1use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21 apis::{AuthRequired, ContentType, ResponseContent},
22 models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait CollectionsApi: Send + Sync {
29 async fn delete<'a>(
31 &self,
32 org_id: uuid::Uuid,
33 id: uuid::Uuid,
34 ) -> Result<(), Error<DeleteError>>;
35
36 async fn delete_many<'a>(
38 &self,
39 org_id: uuid::Uuid,
40 collection_bulk_delete_request_model: Option<models::CollectionBulkDeleteRequestModel>,
41 ) -> Result<(), Error<DeleteManyError>>;
42
43 async fn get<'a>(
45 &self,
46 org_id: uuid::Uuid,
47 id: uuid::Uuid,
48 ) -> Result<models::CollectionResponseModel, Error<GetError>>;
49
50 async fn get_all<'a>(
52 &self,
53 org_id: uuid::Uuid,
54 ) -> Result<models::CollectionResponseModelListResponseModel, Error<GetAllError>>;
55
56 async fn get_details<'a>(
58 &self,
59 org_id: uuid::Uuid,
60 id: uuid::Uuid,
61 ) -> Result<models::CollectionAccessDetailsResponseModel, Error<GetDetailsError>>;
62
63 async fn get_many_with_details<'a>(
65 &self,
66 org_id: uuid::Uuid,
67 ) -> Result<
68 models::CollectionAccessDetailsResponseModelListResponseModel,
69 Error<GetManyWithDetailsError>,
70 >;
71
72 async fn get_user(
74 &self,
75 ) -> Result<models::CollectionDetailsResponseModelListResponseModel, Error<GetUserError>>;
76
77 async fn get_users<'a>(
79 &self,
80 org_id: uuid::Uuid,
81 id: uuid::Uuid,
82 ) -> Result<Vec<models::SelectionReadOnlyResponseModel>, Error<GetUsersError>>;
83
84 async fn post<'a>(
86 &self,
87 org_id: uuid::Uuid,
88 create_collection_request_model: Option<models::CreateCollectionRequestModel>,
89 ) -> Result<models::CollectionResponseModel, Error<PostError>>;
90
91 async fn post_bulk_collection_access<'a>(
93 &self,
94 org_id: uuid::Uuid,
95 bulk_collection_access_request_model: Option<models::BulkCollectionAccessRequestModel>,
96 ) -> Result<(), Error<PostBulkCollectionAccessError>>;
97
98 async fn put<'a>(
100 &self,
101 org_id: uuid::Uuid,
102 id: uuid::Uuid,
103 update_collection_request_model: Option<models::UpdateCollectionRequestModel>,
104 ) -> Result<models::CollectionResponseModel, Error<PutError>>;
105}
106
107pub struct CollectionsApiClient {
108 configuration: Arc<configuration::Configuration>,
109}
110
111impl CollectionsApiClient {
112 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
113 Self { configuration }
114 }
115}
116
117#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
118#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
119impl CollectionsApi for CollectionsApiClient {
120 async fn delete<'a>(
121 &self,
122 org_id: uuid::Uuid,
123 id: uuid::Uuid,
124 ) -> Result<(), Error<DeleteError>> {
125 let local_var_configuration = &self.configuration;
126
127 let local_var_client = &local_var_configuration.client;
128
129 let local_var_uri_str = format!(
130 "{}/organizations/{orgId}/collections/{id}",
131 local_var_configuration.base_path,
132 orgId = org_id,
133 id = id
134 );
135 let mut local_var_req_builder =
136 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
137
138 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
139
140 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
141 }
142
143 async fn delete_many<'a>(
144 &self,
145 org_id: uuid::Uuid,
146 collection_bulk_delete_request_model: Option<models::CollectionBulkDeleteRequestModel>,
147 ) -> Result<(), Error<DeleteManyError>> {
148 let local_var_configuration = &self.configuration;
149
150 let local_var_client = &local_var_configuration.client;
151
152 let local_var_uri_str = format!(
153 "{}/organizations/{orgId}/collections",
154 local_var_configuration.base_path,
155 orgId = org_id
156 );
157 let mut local_var_req_builder =
158 local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
159
160 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
161 local_var_req_builder = local_var_req_builder.json(&collection_bulk_delete_request_model);
162
163 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
164 }
165
166 async fn get<'a>(
167 &self,
168 org_id: uuid::Uuid,
169 id: uuid::Uuid,
170 ) -> Result<models::CollectionResponseModel, Error<GetError>> {
171 let local_var_configuration = &self.configuration;
172
173 let local_var_client = &local_var_configuration.client;
174
175 let local_var_uri_str = format!(
176 "{}/organizations/{orgId}/collections/{id}",
177 local_var_configuration.base_path,
178 orgId = org_id,
179 id = id
180 );
181 let mut local_var_req_builder =
182 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
183
184 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
185
186 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
187 }
188
189 async fn get_all<'a>(
190 &self,
191 org_id: uuid::Uuid,
192 ) -> Result<models::CollectionResponseModelListResponseModel, Error<GetAllError>> {
193 let local_var_configuration = &self.configuration;
194
195 let local_var_client = &local_var_configuration.client;
196
197 let local_var_uri_str = format!(
198 "{}/organizations/{orgId}/collections",
199 local_var_configuration.base_path,
200 orgId = org_id
201 );
202 let mut local_var_req_builder =
203 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
204
205 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
206
207 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
208 }
209
210 async fn get_details<'a>(
211 &self,
212 org_id: uuid::Uuid,
213 id: uuid::Uuid,
214 ) -> Result<models::CollectionAccessDetailsResponseModel, Error<GetDetailsError>> {
215 let local_var_configuration = &self.configuration;
216
217 let local_var_client = &local_var_configuration.client;
218
219 let local_var_uri_str = format!(
220 "{}/organizations/{orgId}/collections/{id}/details",
221 local_var_configuration.base_path,
222 orgId = org_id,
223 id = id
224 );
225 let mut local_var_req_builder =
226 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
227
228 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
229
230 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
231 }
232
233 async fn get_many_with_details<'a>(
234 &self,
235 org_id: uuid::Uuid,
236 ) -> Result<
237 models::CollectionAccessDetailsResponseModelListResponseModel,
238 Error<GetManyWithDetailsError>,
239 > {
240 let local_var_configuration = &self.configuration;
241
242 let local_var_client = &local_var_configuration.client;
243
244 let local_var_uri_str = format!(
245 "{}/organizations/{orgId}/collections/details",
246 local_var_configuration.base_path,
247 orgId = org_id
248 );
249 let mut local_var_req_builder =
250 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
251
252 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
253
254 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
255 }
256
257 async fn get_user(
258 &self,
259 ) -> Result<models::CollectionDetailsResponseModelListResponseModel, Error<GetUserError>> {
260 let local_var_configuration = &self.configuration;
261
262 let local_var_client = &local_var_configuration.client;
263
264 let local_var_uri_str = format!("{}/collections", local_var_configuration.base_path);
265 let mut local_var_req_builder =
266 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
267
268 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
269
270 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
271 }
272
273 async fn get_users<'a>(
274 &self,
275 org_id: uuid::Uuid,
276 id: uuid::Uuid,
277 ) -> Result<Vec<models::SelectionReadOnlyResponseModel>, Error<GetUsersError>> {
278 let local_var_configuration = &self.configuration;
279
280 let local_var_client = &local_var_configuration.client;
281
282 let local_var_uri_str = format!(
283 "{}/organizations/{orgId}/collections/{id}/users",
284 local_var_configuration.base_path,
285 orgId = org_id,
286 id = id
287 );
288 let mut local_var_req_builder =
289 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
290
291 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
292
293 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
294 }
295
296 async fn post<'a>(
297 &self,
298 org_id: uuid::Uuid,
299 create_collection_request_model: Option<models::CreateCollectionRequestModel>,
300 ) -> Result<models::CollectionResponseModel, Error<PostError>> {
301 let local_var_configuration = &self.configuration;
302
303 let local_var_client = &local_var_configuration.client;
304
305 let local_var_uri_str = format!(
306 "{}/organizations/{orgId}/collections",
307 local_var_configuration.base_path,
308 orgId = org_id
309 );
310 let mut local_var_req_builder =
311 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
312
313 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
314 local_var_req_builder = local_var_req_builder.json(&create_collection_request_model);
315
316 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
317 }
318
319 async fn post_bulk_collection_access<'a>(
320 &self,
321 org_id: uuid::Uuid,
322 bulk_collection_access_request_model: Option<models::BulkCollectionAccessRequestModel>,
323 ) -> Result<(), Error<PostBulkCollectionAccessError>> {
324 let local_var_configuration = &self.configuration;
325
326 let local_var_client = &local_var_configuration.client;
327
328 let local_var_uri_str = format!(
329 "{}/organizations/{orgId}/collections/bulk-access",
330 local_var_configuration.base_path,
331 orgId = org_id
332 );
333 let mut local_var_req_builder =
334 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
335
336 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
337 local_var_req_builder = local_var_req_builder.json(&bulk_collection_access_request_model);
338
339 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
340 }
341
342 async fn put<'a>(
343 &self,
344 org_id: uuid::Uuid,
345 id: uuid::Uuid,
346 update_collection_request_model: Option<models::UpdateCollectionRequestModel>,
347 ) -> Result<models::CollectionResponseModel, Error<PutError>> {
348 let local_var_configuration = &self.configuration;
349
350 let local_var_client = &local_var_configuration.client;
351
352 let local_var_uri_str = format!(
353 "{}/organizations/{orgId}/collections/{id}",
354 local_var_configuration.base_path,
355 orgId = org_id,
356 id = id
357 );
358 let mut local_var_req_builder =
359 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
360
361 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
362 local_var_req_builder = local_var_req_builder.json(&update_collection_request_model);
363
364 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
365 }
366}
367
368#[derive(Debug, Clone, Serialize, Deserialize)]
370#[serde(untagged)]
371pub enum DeleteError {
372 UnknownValue(serde_json::Value),
373}
374#[derive(Debug, Clone, Serialize, Deserialize)]
376#[serde(untagged)]
377pub enum DeleteManyError {
378 UnknownValue(serde_json::Value),
379}
380#[derive(Debug, Clone, Serialize, Deserialize)]
382#[serde(untagged)]
383pub enum GetError {
384 UnknownValue(serde_json::Value),
385}
386#[derive(Debug, Clone, Serialize, Deserialize)]
388#[serde(untagged)]
389pub enum GetAllError {
390 UnknownValue(serde_json::Value),
391}
392#[derive(Debug, Clone, Serialize, Deserialize)]
394#[serde(untagged)]
395pub enum GetDetailsError {
396 UnknownValue(serde_json::Value),
397}
398#[derive(Debug, Clone, Serialize, Deserialize)]
400#[serde(untagged)]
401pub enum GetManyWithDetailsError {
402 UnknownValue(serde_json::Value),
403}
404#[derive(Debug, Clone, Serialize, Deserialize)]
406#[serde(untagged)]
407pub enum GetUserError {
408 UnknownValue(serde_json::Value),
409}
410#[derive(Debug, Clone, Serialize, Deserialize)]
412#[serde(untagged)]
413pub enum GetUsersError {
414 UnknownValue(serde_json::Value),
415}
416#[derive(Debug, Clone, Serialize, Deserialize)]
418#[serde(untagged)]
419pub enum PostError {
420 UnknownValue(serde_json::Value),
421}
422#[derive(Debug, Clone, Serialize, Deserialize)]
424#[serde(untagged)]
425pub enum PostBulkCollectionAccessError {
426 UnknownValue(serde_json::Value),
427}
428#[derive(Debug, Clone, Serialize, Deserialize)]
430#[serde(untagged)]
431pub enum PutError {
432 UnknownValue(serde_json::Value),
433}