bitwarden_api_api/apis/
provider_clients_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 ProviderClientsApi: Send + Sync {
29    /// POST /providers/{providerId}/clients/existing
30    async fn add_existing_organization<'a>(
31        &self,
32        provider_id: uuid::Uuid,
33        add_existing_organization_request_body: Option<models::AddExistingOrganizationRequestBody>,
34    ) -> Result<(), Error<AddExistingOrganizationError>>;
35
36    /// POST /providers/{providerId}/clients
37    async fn create<'a>(
38        &self,
39        provider_id: uuid::Uuid,
40        create_client_organization_request_body: Option<
41            models::CreateClientOrganizationRequestBody,
42        >,
43    ) -> Result<(), Error<CreateError>>;
44
45    /// GET /providers/{providerId}/clients/addable
46    async fn get_addable_organizations<'a>(
47        &self,
48        provider_id: uuid::Uuid,
49    ) -> Result<(), Error<GetAddableOrganizationsError>>;
50
51    /// PUT /providers/{providerId}/clients/{providerOrganizationId}
52    async fn update<'a>(
53        &self,
54        provider_id: uuid::Uuid,
55        provider_organization_id: uuid::Uuid,
56        update_client_organization_request_body: Option<
57            models::UpdateClientOrganizationRequestBody,
58        >,
59    ) -> Result<(), Error<UpdateError>>;
60}
61
62pub struct ProviderClientsApiClient {
63    configuration: Arc<configuration::Configuration>,
64}
65
66impl ProviderClientsApiClient {
67    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
68        Self { configuration }
69    }
70}
71
72#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
73#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
74impl ProviderClientsApi for ProviderClientsApiClient {
75    async fn add_existing_organization<'a>(
76        &self,
77        provider_id: uuid::Uuid,
78        add_existing_organization_request_body: Option<models::AddExistingOrganizationRequestBody>,
79    ) -> Result<(), Error<AddExistingOrganizationError>> {
80        let local_var_configuration = &self.configuration;
81
82        let local_var_client = &local_var_configuration.client;
83
84        let local_var_uri_str = format!(
85            "{}/providers/{providerId}/clients/existing",
86            local_var_configuration.base_path,
87            providerId = provider_id
88        );
89        let mut local_var_req_builder =
90            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
91
92        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
93            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
94        };
95        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
96        local_var_req_builder = local_var_req_builder.json(&add_existing_organization_request_body);
97
98        let local_var_req = local_var_req_builder.build()?;
99        let local_var_resp = local_var_client.execute(local_var_req).await?;
100
101        let local_var_status = local_var_resp.status();
102        let local_var_content = local_var_resp.text().await?;
103
104        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
105            Ok(())
106        } else {
107            let local_var_entity: Option<AddExistingOrganizationError> =
108                serde_json::from_str(&local_var_content).ok();
109            let local_var_error = ResponseContent {
110                status: local_var_status,
111                content: local_var_content,
112                entity: local_var_entity,
113            };
114            Err(Error::ResponseError(local_var_error))
115        }
116    }
117
118    async fn create<'a>(
119        &self,
120        provider_id: uuid::Uuid,
121        create_client_organization_request_body: Option<
122            models::CreateClientOrganizationRequestBody,
123        >,
124    ) -> Result<(), Error<CreateError>> {
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            "{}/providers/{providerId}/clients",
131            local_var_configuration.base_path,
132            providerId = provider_id
133        );
134        let mut local_var_req_builder =
135            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
136
137        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
138            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
139        };
140        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
141        local_var_req_builder =
142            local_var_req_builder.json(&create_client_organization_request_body);
143
144        let local_var_req = local_var_req_builder.build()?;
145        let local_var_resp = local_var_client.execute(local_var_req).await?;
146
147        let local_var_status = local_var_resp.status();
148        let local_var_content = local_var_resp.text().await?;
149
150        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
151            Ok(())
152        } else {
153            let local_var_entity: Option<CreateError> =
154                serde_json::from_str(&local_var_content).ok();
155            let local_var_error = ResponseContent {
156                status: local_var_status,
157                content: local_var_content,
158                entity: local_var_entity,
159            };
160            Err(Error::ResponseError(local_var_error))
161        }
162    }
163
164    async fn get_addable_organizations<'a>(
165        &self,
166        provider_id: uuid::Uuid,
167    ) -> Result<(), Error<GetAddableOrganizationsError>> {
168        let local_var_configuration = &self.configuration;
169
170        let local_var_client = &local_var_configuration.client;
171
172        let local_var_uri_str = format!(
173            "{}/providers/{providerId}/clients/addable",
174            local_var_configuration.base_path,
175            providerId = provider_id
176        );
177        let mut local_var_req_builder =
178            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
179
180        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
181            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
182        };
183        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
184
185        let local_var_req = local_var_req_builder.build()?;
186        let local_var_resp = local_var_client.execute(local_var_req).await?;
187
188        let local_var_status = local_var_resp.status();
189        let local_var_content = local_var_resp.text().await?;
190
191        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
192            Ok(())
193        } else {
194            let local_var_entity: Option<GetAddableOrganizationsError> =
195                serde_json::from_str(&local_var_content).ok();
196            let local_var_error = ResponseContent {
197                status: local_var_status,
198                content: local_var_content,
199                entity: local_var_entity,
200            };
201            Err(Error::ResponseError(local_var_error))
202        }
203    }
204
205    async fn update<'a>(
206        &self,
207        provider_id: uuid::Uuid,
208        provider_organization_id: uuid::Uuid,
209        update_client_organization_request_body: Option<
210            models::UpdateClientOrganizationRequestBody,
211        >,
212    ) -> Result<(), Error<UpdateError>> {
213        let local_var_configuration = &self.configuration;
214
215        let local_var_client = &local_var_configuration.client;
216
217        let local_var_uri_str = format!(
218            "{}/providers/{providerId}/clients/{providerOrganizationId}",
219            local_var_configuration.base_path,
220            providerId = provider_id,
221            providerOrganizationId = provider_organization_id
222        );
223        let mut local_var_req_builder =
224            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
225
226        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
227            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
228        };
229        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
230        local_var_req_builder =
231            local_var_req_builder.json(&update_client_organization_request_body);
232
233        let local_var_req = local_var_req_builder.build()?;
234        let local_var_resp = local_var_client.execute(local_var_req).await?;
235
236        let local_var_status = local_var_resp.status();
237        let local_var_content = local_var_resp.text().await?;
238
239        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
240            Ok(())
241        } else {
242            let local_var_entity: Option<UpdateError> =
243                serde_json::from_str(&local_var_content).ok();
244            let local_var_error = ResponseContent {
245                status: local_var_status,
246                content: local_var_content,
247                entity: local_var_entity,
248            };
249            Err(Error::ResponseError(local_var_error))
250        }
251    }
252}
253
254/// struct for typed errors of method [`ProviderClientsApi::add_existing_organization`]
255#[derive(Debug, Clone, Serialize, Deserialize)]
256#[serde(untagged)]
257pub enum AddExistingOrganizationError {
258    UnknownValue(serde_json::Value),
259}
260/// struct for typed errors of method [`ProviderClientsApi::create`]
261#[derive(Debug, Clone, Serialize, Deserialize)]
262#[serde(untagged)]
263pub enum CreateError {
264    UnknownValue(serde_json::Value),
265}
266/// struct for typed errors of method [`ProviderClientsApi::get_addable_organizations`]
267#[derive(Debug, Clone, Serialize, Deserialize)]
268#[serde(untagged)]
269pub enum GetAddableOrganizationsError {
270    UnknownValue(serde_json::Value),
271}
272/// struct for typed errors of method [`ProviderClientsApi::update`]
273#[derive(Debug, Clone, Serialize, Deserialize)]
274#[serde(untagged)]
275pub enum UpdateError {
276    UnknownValue(serde_json::Value),
277}