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::{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_user_agent) = local_var_configuration.user_agent {
93            local_var_req_builder = local_var_req_builder
94                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
95        }
96        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
97            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
98        };
99        local_var_req_builder = local_var_req_builder.json(&add_existing_organization_request_body);
100
101        let local_var_req = local_var_req_builder.build()?;
102        let local_var_resp = local_var_client.execute(local_var_req).await?;
103
104        let local_var_status = local_var_resp.status();
105        let local_var_content = local_var_resp.text().await?;
106
107        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
108            Ok(())
109        } else {
110            let local_var_entity: Option<AddExistingOrganizationError> =
111                serde_json::from_str(&local_var_content).ok();
112            let local_var_error = ResponseContent {
113                status: local_var_status,
114                content: local_var_content,
115                entity: local_var_entity,
116            };
117            Err(Error::ResponseError(local_var_error))
118        }
119    }
120
121    async fn create<'a>(
122        &self,
123        provider_id: uuid::Uuid,
124        create_client_organization_request_body: Option<
125            models::CreateClientOrganizationRequestBody,
126        >,
127    ) -> Result<(), Error<CreateError>> {
128        let local_var_configuration = &self.configuration;
129
130        let local_var_client = &local_var_configuration.client;
131
132        let local_var_uri_str = format!(
133            "{}/providers/{providerId}/clients",
134            local_var_configuration.base_path,
135            providerId = provider_id
136        );
137        let mut local_var_req_builder =
138            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
139
140        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
141            local_var_req_builder = local_var_req_builder
142                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
143        }
144        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
145            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
146        };
147        local_var_req_builder =
148            local_var_req_builder.json(&create_client_organization_request_body);
149
150        let local_var_req = local_var_req_builder.build()?;
151        let local_var_resp = local_var_client.execute(local_var_req).await?;
152
153        let local_var_status = local_var_resp.status();
154        let local_var_content = local_var_resp.text().await?;
155
156        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
157            Ok(())
158        } else {
159            let local_var_entity: Option<CreateError> =
160                serde_json::from_str(&local_var_content).ok();
161            let local_var_error = ResponseContent {
162                status: local_var_status,
163                content: local_var_content,
164                entity: local_var_entity,
165            };
166            Err(Error::ResponseError(local_var_error))
167        }
168    }
169
170    async fn get_addable_organizations<'a>(
171        &self,
172        provider_id: uuid::Uuid,
173    ) -> Result<(), Error<GetAddableOrganizationsError>> {
174        let local_var_configuration = &self.configuration;
175
176        let local_var_client = &local_var_configuration.client;
177
178        let local_var_uri_str = format!(
179            "{}/providers/{providerId}/clients/addable",
180            local_var_configuration.base_path,
181            providerId = provider_id
182        );
183        let mut local_var_req_builder =
184            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
185
186        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
187            local_var_req_builder = local_var_req_builder
188                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
189        }
190        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
191            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
192        };
193
194        let local_var_req = local_var_req_builder.build()?;
195        let local_var_resp = local_var_client.execute(local_var_req).await?;
196
197        let local_var_status = local_var_resp.status();
198        let local_var_content = local_var_resp.text().await?;
199
200        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
201            Ok(())
202        } else {
203            let local_var_entity: Option<GetAddableOrganizationsError> =
204                serde_json::from_str(&local_var_content).ok();
205            let local_var_error = ResponseContent {
206                status: local_var_status,
207                content: local_var_content,
208                entity: local_var_entity,
209            };
210            Err(Error::ResponseError(local_var_error))
211        }
212    }
213
214    async fn update<'a>(
215        &self,
216        provider_id: uuid::Uuid,
217        provider_organization_id: uuid::Uuid,
218        update_client_organization_request_body: Option<
219            models::UpdateClientOrganizationRequestBody,
220        >,
221    ) -> Result<(), Error<UpdateError>> {
222        let local_var_configuration = &self.configuration;
223
224        let local_var_client = &local_var_configuration.client;
225
226        let local_var_uri_str = format!(
227            "{}/providers/{providerId}/clients/{providerOrganizationId}",
228            local_var_configuration.base_path,
229            providerId = provider_id,
230            providerOrganizationId = provider_organization_id
231        );
232        let mut local_var_req_builder =
233            local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
234
235        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
236            local_var_req_builder = local_var_req_builder
237                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
238        }
239        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
240            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
241        };
242        local_var_req_builder =
243            local_var_req_builder.json(&update_client_organization_request_body);
244
245        let local_var_req = local_var_req_builder.build()?;
246        let local_var_resp = local_var_client.execute(local_var_req).await?;
247
248        let local_var_status = local_var_resp.status();
249        let local_var_content = local_var_resp.text().await?;
250
251        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
252            Ok(())
253        } else {
254            let local_var_entity: Option<UpdateError> =
255                serde_json::from_str(&local_var_content).ok();
256            let local_var_error = ResponseContent {
257                status: local_var_status,
258                content: local_var_content,
259                entity: local_var_entity,
260            };
261            Err(Error::ResponseError(local_var_error))
262        }
263    }
264}
265
266/// struct for typed errors of method [`ProviderClientsApi::add_existing_organization`]
267#[derive(Debug, Clone, Serialize, Deserialize)]
268#[serde(untagged)]
269pub enum AddExistingOrganizationError {
270    UnknownValue(serde_json::Value),
271}
272/// struct for typed errors of method [`ProviderClientsApi::create`]
273#[derive(Debug, Clone, Serialize, Deserialize)]
274#[serde(untagged)]
275pub enum CreateError {
276    UnknownValue(serde_json::Value),
277}
278/// struct for typed errors of method [`ProviderClientsApi::get_addable_organizations`]
279#[derive(Debug, Clone, Serialize, Deserialize)]
280#[serde(untagged)]
281pub enum GetAddableOrganizationsError {
282    UnknownValue(serde_json::Value),
283}
284/// struct for typed errors of method [`ProviderClientsApi::update`]
285#[derive(Debug, Clone, Serialize, Deserialize)]
286#[serde(untagged)]
287pub enum UpdateError {
288    UnknownValue(serde_json::Value),
289}