Skip to main content

bitwarden_api_api/apis/
service_accounts_api.rs

1/*
2 * Bitwarden Internal API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: latest
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use 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 ServiceAccountsApi: Send + Sync {
29    /// POST /service-accounts/delete
30    async fn bulk_delete<'a>(
31        &self,
32        uuid_colon_colon_uuid: Option<Vec<uuid::Uuid>>,
33    ) -> Result<models::BulkDeleteResponseModelListResponseModel, Error>;
34
35    /// POST /organizations/{organizationId}/service-accounts
36    async fn create<'a>(
37        &self,
38        organization_id: uuid::Uuid,
39        service_account_create_request_model: Option<models::ServiceAccountCreateRequestModel>,
40    ) -> Result<models::ServiceAccountResponseModel, Error>;
41
42    /// POST /service-accounts/{id}/access-tokens
43    async fn create_access_token<'a>(
44        &self,
45        id: uuid::Uuid,
46        access_token_create_request_model: Option<models::AccessTokenCreateRequestModel>,
47    ) -> Result<models::AccessTokenCreationResponseModel, Error>;
48
49    /// GET /service-accounts/{id}/access-tokens
50    async fn get_access_tokens<'a>(
51        &self,
52        id: uuid::Uuid,
53    ) -> Result<models::AccessTokenResponseModelListResponseModel, Error>;
54
55    /// GET /service-accounts/{id}
56    async fn get_by_service_account_id<'a>(
57        &self,
58        id: uuid::Uuid,
59    ) -> Result<models::ServiceAccountResponseModel, Error>;
60
61    /// GET /organizations/{organizationId}/service-accounts
62    async fn list_by_organization<'a>(
63        &self,
64        organization_id: uuid::Uuid,
65        include_access_to_secrets: Option<bool>,
66    ) -> Result<models::ServiceAccountSecretsDetailsResponseModelListResponseModel, Error>;
67
68    /// POST /service-accounts/{id}/access-tokens/revoke
69    async fn revoke_access_tokens<'a>(
70        &self,
71        id: uuid::Uuid,
72        revoke_access_tokens_request: Option<models::RevokeAccessTokensRequest>,
73    ) -> Result<(), Error>;
74
75    /// PUT /service-accounts/{id}
76    async fn update<'a>(
77        &self,
78        id: uuid::Uuid,
79        service_account_update_request_model: Option<models::ServiceAccountUpdateRequestModel>,
80    ) -> Result<models::ServiceAccountResponseModel, Error>;
81}
82
83pub struct ServiceAccountsApiClient {
84    configuration: Arc<configuration::Configuration>,
85}
86
87impl ServiceAccountsApiClient {
88    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
89        Self { configuration }
90    }
91}
92
93#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
94#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
95impl ServiceAccountsApi for ServiceAccountsApiClient {
96    async fn bulk_delete<'a>(
97        &self,
98        uuid_colon_colon_uuid: Option<Vec<uuid::Uuid>>,
99    ) -> Result<models::BulkDeleteResponseModelListResponseModel, Error> {
100        let local_var_configuration = &self.configuration;
101
102        let local_var_client = &local_var_configuration.client;
103
104        let local_var_uri_str = format!(
105            "{}/service-accounts/delete",
106            local_var_configuration.base_path
107        );
108        let mut local_var_req_builder =
109            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
110
111        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
112        local_var_req_builder = local_var_req_builder.json(&uuid_colon_colon_uuid);
113
114        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
115    }
116
117    async fn create<'a>(
118        &self,
119        organization_id: uuid::Uuid,
120        service_account_create_request_model: Option<models::ServiceAccountCreateRequestModel>,
121    ) -> Result<models::ServiceAccountResponseModel, Error> {
122        let local_var_configuration = &self.configuration;
123
124        let local_var_client = &local_var_configuration.client;
125
126        let local_var_uri_str = format!(
127            "{}/organizations/{organizationId}/service-accounts",
128            local_var_configuration.base_path,
129            organizationId = organization_id
130        );
131        let mut local_var_req_builder =
132            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
133
134        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
135        local_var_req_builder = local_var_req_builder.json(&service_account_create_request_model);
136
137        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
138    }
139
140    async fn create_access_token<'a>(
141        &self,
142        id: uuid::Uuid,
143        access_token_create_request_model: Option<models::AccessTokenCreateRequestModel>,
144    ) -> Result<models::AccessTokenCreationResponseModel, Error> {
145        let local_var_configuration = &self.configuration;
146
147        let local_var_client = &local_var_configuration.client;
148
149        let local_var_uri_str = format!(
150            "{}/service-accounts/{id}/access-tokens",
151            local_var_configuration.base_path,
152            id = id
153        );
154        let mut local_var_req_builder =
155            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
156
157        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
158        local_var_req_builder = local_var_req_builder.json(&access_token_create_request_model);
159
160        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
161    }
162
163    async fn get_access_tokens<'a>(
164        &self,
165        id: uuid::Uuid,
166    ) -> Result<models::AccessTokenResponseModelListResponseModel, Error> {
167        let local_var_configuration = &self.configuration;
168
169        let local_var_client = &local_var_configuration.client;
170
171        let local_var_uri_str = format!(
172            "{}/service-accounts/{id}/access-tokens",
173            local_var_configuration.base_path,
174            id = id
175        );
176        let mut local_var_req_builder =
177            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
178
179        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
180
181        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
182    }
183
184    async fn get_by_service_account_id<'a>(
185        &self,
186        id: uuid::Uuid,
187    ) -> Result<models::ServiceAccountResponseModel, Error> {
188        let local_var_configuration = &self.configuration;
189
190        let local_var_client = &local_var_configuration.client;
191
192        let local_var_uri_str = format!(
193            "{}/service-accounts/{id}",
194            local_var_configuration.base_path,
195            id = id
196        );
197        let mut local_var_req_builder =
198            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
199
200        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
201
202        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
203    }
204
205    async fn list_by_organization<'a>(
206        &self,
207        organization_id: uuid::Uuid,
208        include_access_to_secrets: Option<bool>,
209    ) -> Result<models::ServiceAccountSecretsDetailsResponseModelListResponseModel, Error> {
210        let local_var_configuration = &self.configuration;
211
212        let local_var_client = &local_var_configuration.client;
213
214        let local_var_uri_str = format!(
215            "{}/organizations/{organizationId}/service-accounts",
216            local_var_configuration.base_path,
217            organizationId = organization_id
218        );
219        let mut local_var_req_builder =
220            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
221
222        if let Some(ref param_value) = include_access_to_secrets {
223            local_var_req_builder = local_var_req_builder
224                .query(&[("includeAccessToSecrets", &param_value.to_string())]);
225        }
226        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
227
228        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
229    }
230
231    async fn revoke_access_tokens<'a>(
232        &self,
233        id: uuid::Uuid,
234        revoke_access_tokens_request: Option<models::RevokeAccessTokensRequest>,
235    ) -> Result<(), Error> {
236        let local_var_configuration = &self.configuration;
237
238        let local_var_client = &local_var_configuration.client;
239
240        let local_var_uri_str = format!(
241            "{}/service-accounts/{id}/access-tokens/revoke",
242            local_var_configuration.base_path,
243            id = id
244        );
245        let mut local_var_req_builder =
246            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
247
248        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
249        local_var_req_builder = local_var_req_builder.json(&revoke_access_tokens_request);
250
251        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
252    }
253
254    async fn update<'a>(
255        &self,
256        id: uuid::Uuid,
257        service_account_update_request_model: Option<models::ServiceAccountUpdateRequestModel>,
258    ) -> Result<models::ServiceAccountResponseModel, Error> {
259        let local_var_configuration = &self.configuration;
260
261        let local_var_client = &local_var_configuration.client;
262
263        let local_var_uri_str = format!(
264            "{}/service-accounts/{id}",
265            local_var_configuration.base_path,
266            id = id
267        );
268        let mut local_var_req_builder =
269            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
270
271        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
272        local_var_req_builder = local_var_req_builder.json(&service_account_update_request_model);
273
274        bitwarden_api_base::process_with_json_response(local_var_req_builder).await
275    }
276}