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 AccessPoliciesApi: Send + Sync {
29 async fn get_people_potential_grantees<'a>(
31 &self,
32 id: uuid::Uuid,
33 ) -> Result<models::PotentialGranteeResponseModelListResponseModel, Error>;
34
35 async fn get_project_people_access_policies<'a>(
37 &self,
38 id: uuid::Uuid,
39 ) -> Result<models::ProjectPeopleAccessPoliciesResponseModel, Error>;
40
41 async fn get_project_potential_grantees<'a>(
43 &self,
44 id: uuid::Uuid,
45 ) -> Result<models::PotentialGranteeResponseModelListResponseModel, Error>;
46
47 async fn get_project_service_accounts_access_policies<'a>(
49 &self,
50 id: uuid::Uuid,
51 ) -> Result<models::ProjectServiceAccountsAccessPoliciesResponseModel, Error>;
52
53 async fn get_secret_access_policies<'a>(
55 &self,
56 secret_id: uuid::Uuid,
57 ) -> Result<models::SecretAccessPoliciesResponseModel, Error>;
58
59 async fn get_service_account_granted_policies<'a>(
61 &self,
62 id: uuid::Uuid,
63 ) -> Result<models::ServiceAccountGrantedPoliciesPermissionDetailsResponseModel, Error>;
64
65 async fn get_service_account_people_access_policies<'a>(
67 &self,
68 id: uuid::Uuid,
69 ) -> Result<models::ServiceAccountPeopleAccessPoliciesResponseModel, Error>;
70
71 async fn get_service_accounts_potential_grantees<'a>(
73 &self,
74 id: uuid::Uuid,
75 ) -> Result<models::PotentialGranteeResponseModelListResponseModel, Error>;
76
77 async fn put_project_people_access_policies<'a>(
79 &self,
80 id: uuid::Uuid,
81 people_access_policies_request_model: Option<models::PeopleAccessPoliciesRequestModel>,
82 ) -> Result<models::ProjectPeopleAccessPoliciesResponseModel, Error>;
83
84 async fn put_project_service_accounts_access_policies<'a>(
86 &self,
87 id: uuid::Uuid,
88 project_service_accounts_access_policies_request_model: Option<
89 models::ProjectServiceAccountsAccessPoliciesRequestModel,
90 >,
91 ) -> Result<models::ProjectServiceAccountsAccessPoliciesResponseModel, Error>;
92
93 async fn put_service_account_granted_policies<'a>(
95 &self,
96 id: uuid::Uuid,
97 service_account_granted_policies_request_model: Option<
98 models::ServiceAccountGrantedPoliciesRequestModel,
99 >,
100 ) -> Result<models::ServiceAccountGrantedPoliciesPermissionDetailsResponseModel, Error>;
101
102 async fn put_service_account_people_access_policies<'a>(
104 &self,
105 id: uuid::Uuid,
106 people_access_policies_request_model: Option<models::PeopleAccessPoliciesRequestModel>,
107 ) -> Result<models::ServiceAccountPeopleAccessPoliciesResponseModel, Error>;
108}
109
110pub struct AccessPoliciesApiClient {
111 configuration: Arc<configuration::Configuration>,
112}
113
114impl AccessPoliciesApiClient {
115 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
116 Self { configuration }
117 }
118}
119
120#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
121#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
122impl AccessPoliciesApi for AccessPoliciesApiClient {
123 async fn get_people_potential_grantees<'a>(
124 &self,
125 id: uuid::Uuid,
126 ) -> Result<models::PotentialGranteeResponseModelListResponseModel, Error> {
127 let local_var_configuration = &self.configuration;
128
129 let local_var_client = &local_var_configuration.client;
130
131 let local_var_uri_str = format!(
132 "{}/organizations/{id}/access-policies/people/potential-grantees",
133 local_var_configuration.base_path,
134 id = id
135 );
136 let mut local_var_req_builder =
137 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
138
139 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
140
141 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
142 }
143
144 async fn get_project_people_access_policies<'a>(
145 &self,
146 id: uuid::Uuid,
147 ) -> Result<models::ProjectPeopleAccessPoliciesResponseModel, Error> {
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 "{}/projects/{id}/access-policies/people",
154 local_var_configuration.base_path,
155 id = id
156 );
157 let mut local_var_req_builder =
158 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
159
160 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
161
162 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
163 }
164
165 async fn get_project_potential_grantees<'a>(
166 &self,
167 id: uuid::Uuid,
168 ) -> Result<models::PotentialGranteeResponseModelListResponseModel, Error> {
169 let local_var_configuration = &self.configuration;
170
171 let local_var_client = &local_var_configuration.client;
172
173 let local_var_uri_str = format!(
174 "{}/organizations/{id}/access-policies/projects/potential-grantees",
175 local_var_configuration.base_path,
176 id = id
177 );
178 let mut local_var_req_builder =
179 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
180
181 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
182
183 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
184 }
185
186 async fn get_project_service_accounts_access_policies<'a>(
187 &self,
188 id: uuid::Uuid,
189 ) -> Result<models::ProjectServiceAccountsAccessPoliciesResponseModel, Error> {
190 let local_var_configuration = &self.configuration;
191
192 let local_var_client = &local_var_configuration.client;
193
194 let local_var_uri_str = format!(
195 "{}/projects/{id}/access-policies/service-accounts",
196 local_var_configuration.base_path,
197 id = id
198 );
199 let mut local_var_req_builder =
200 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
201
202 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
203
204 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
205 }
206
207 async fn get_secret_access_policies<'a>(
208 &self,
209 secret_id: uuid::Uuid,
210 ) -> Result<models::SecretAccessPoliciesResponseModel, Error> {
211 let local_var_configuration = &self.configuration;
212
213 let local_var_client = &local_var_configuration.client;
214
215 let local_var_uri_str = format!(
216 "{}/secrets/{secretId}/access-policies",
217 local_var_configuration.base_path,
218 secretId = secret_id
219 );
220 let mut local_var_req_builder =
221 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
222
223 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
224
225 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
226 }
227
228 async fn get_service_account_granted_policies<'a>(
229 &self,
230 id: uuid::Uuid,
231 ) -> Result<models::ServiceAccountGrantedPoliciesPermissionDetailsResponseModel, Error> {
232 let local_var_configuration = &self.configuration;
233
234 let local_var_client = &local_var_configuration.client;
235
236 let local_var_uri_str = format!(
237 "{}/service-accounts/{id}/granted-policies",
238 local_var_configuration.base_path,
239 id = id
240 );
241 let mut local_var_req_builder =
242 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
243
244 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
245
246 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
247 }
248
249 async fn get_service_account_people_access_policies<'a>(
250 &self,
251 id: uuid::Uuid,
252 ) -> Result<models::ServiceAccountPeopleAccessPoliciesResponseModel, Error> {
253 let local_var_configuration = &self.configuration;
254
255 let local_var_client = &local_var_configuration.client;
256
257 let local_var_uri_str = format!(
258 "{}/service-accounts/{id}/access-policies/people",
259 local_var_configuration.base_path,
260 id = id
261 );
262 let mut local_var_req_builder =
263 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
264
265 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
266
267 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
268 }
269
270 async fn get_service_accounts_potential_grantees<'a>(
271 &self,
272 id: uuid::Uuid,
273 ) -> Result<models::PotentialGranteeResponseModelListResponseModel, Error> {
274 let local_var_configuration = &self.configuration;
275
276 let local_var_client = &local_var_configuration.client;
277
278 let local_var_uri_str = format!(
279 "{}/organizations/{id}/access-policies/service-accounts/potential-grantees",
280 local_var_configuration.base_path,
281 id = id
282 );
283 let mut local_var_req_builder =
284 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
285
286 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
287
288 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
289 }
290
291 async fn put_project_people_access_policies<'a>(
292 &self,
293 id: uuid::Uuid,
294 people_access_policies_request_model: Option<models::PeopleAccessPoliciesRequestModel>,
295 ) -> Result<models::ProjectPeopleAccessPoliciesResponseModel, Error> {
296 let local_var_configuration = &self.configuration;
297
298 let local_var_client = &local_var_configuration.client;
299
300 let local_var_uri_str = format!(
301 "{}/projects/{id}/access-policies/people",
302 local_var_configuration.base_path,
303 id = id
304 );
305 let mut local_var_req_builder =
306 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
307
308 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
309 local_var_req_builder = local_var_req_builder.json(&people_access_policies_request_model);
310
311 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
312 }
313
314 async fn put_project_service_accounts_access_policies<'a>(
315 &self,
316 id: uuid::Uuid,
317 project_service_accounts_access_policies_request_model: Option<
318 models::ProjectServiceAccountsAccessPoliciesRequestModel,
319 >,
320 ) -> Result<models::ProjectServiceAccountsAccessPoliciesResponseModel, Error> {
321 let local_var_configuration = &self.configuration;
322
323 let local_var_client = &local_var_configuration.client;
324
325 let local_var_uri_str = format!(
326 "{}/projects/{id}/access-policies/service-accounts",
327 local_var_configuration.base_path,
328 id = id
329 );
330 let mut local_var_req_builder =
331 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
332
333 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
334 local_var_req_builder =
335 local_var_req_builder.json(&project_service_accounts_access_policies_request_model);
336
337 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
338 }
339
340 async fn put_service_account_granted_policies<'a>(
341 &self,
342 id: uuid::Uuid,
343 service_account_granted_policies_request_model: Option<
344 models::ServiceAccountGrantedPoliciesRequestModel,
345 >,
346 ) -> Result<models::ServiceAccountGrantedPoliciesPermissionDetailsResponseModel, Error> {
347 let local_var_configuration = &self.configuration;
348
349 let local_var_client = &local_var_configuration.client;
350
351 let local_var_uri_str = format!(
352 "{}/service-accounts/{id}/granted-policies",
353 local_var_configuration.base_path,
354 id = id
355 );
356 let mut local_var_req_builder =
357 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
358
359 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
360 local_var_req_builder =
361 local_var_req_builder.json(&service_account_granted_policies_request_model);
362
363 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
364 }
365
366 async fn put_service_account_people_access_policies<'a>(
367 &self,
368 id: uuid::Uuid,
369 people_access_policies_request_model: Option<models::PeopleAccessPoliciesRequestModel>,
370 ) -> Result<models::ServiceAccountPeopleAccessPoliciesResponseModel, Error> {
371 let local_var_configuration = &self.configuration;
372
373 let local_var_client = &local_var_configuration.client;
374
375 let local_var_uri_str = format!(
376 "{}/service-accounts/{id}/access-policies/people",
377 local_var_configuration.base_path,
378 id = id
379 );
380 let mut local_var_req_builder =
381 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
382
383 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
384 local_var_req_builder = local_var_req_builder.json(&people_access_policies_request_model);
385
386 bitwarden_api_base::process_with_json_response(local_var_req_builder).await
387 }
388}