bitwarden_api_api/apis/
self_hosted_organization_sponsorships_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 SelfHostedOrganizationSponsorshipsApi: Send + Sync {
29    /// DELETE /organization/sponsorship/self-hosted/{sponsoringOrgId}/{sponsoredFriendlyName}/
30    /// revoke
31    async fn admin_initiated_revoke_sponsorship<'a>(
32        &self,
33        sponsoring_org_id: uuid::Uuid,
34        sponsored_friendly_name: &'a str,
35    ) -> Result<(), Error<AdminInitiatedRevokeSponsorshipError>>;
36
37    /// POST /organization/sponsorship/self-hosted/{sponsoringOrgId}/families-for-enterprise
38    async fn create_sponsorship<'a>(
39        &self,
40        sponsoring_org_id: uuid::Uuid,
41        organization_sponsorship_create_request_model: Option<
42            models::OrganizationSponsorshipCreateRequestModel,
43        >,
44    ) -> Result<(), Error<CreateSponsorshipError>>;
45
46    /// GET /organization/sponsorship/self-hosted/{orgId}/sponsored
47    async fn get_sponsored_organizations<'a>(
48        &self,
49        org_id: uuid::Uuid,
50    ) -> Result<
51        models::OrganizationSponsorshipInvitesResponseModelListResponseModel,
52        Error<GetSponsoredOrganizationsError>,
53    >;
54
55    /// DELETE /organization/sponsorship/self-hosted/{sponsoringOrgId}
56    async fn revoke_sponsorship<'a>(
57        &self,
58        sponsoring_org_id: uuid::Uuid,
59    ) -> Result<(), Error<RevokeSponsorshipError>>;
60}
61
62pub struct SelfHostedOrganizationSponsorshipsApiClient {
63    configuration: Arc<configuration::Configuration>,
64}
65
66impl SelfHostedOrganizationSponsorshipsApiClient {
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 SelfHostedOrganizationSponsorshipsApi for SelfHostedOrganizationSponsorshipsApiClient {
75    async fn admin_initiated_revoke_sponsorship<'a>(
76        &self,
77        sponsoring_org_id: uuid::Uuid,
78        sponsored_friendly_name: &'a str,
79    ) -> Result<(), Error<AdminInitiatedRevokeSponsorshipError>> {
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            "{}/organization/sponsorship/self-hosted/{sponsoringOrgId}/{sponsoredFriendlyName}/revoke",
86            local_var_configuration.base_path,
87            sponsoringOrgId = sponsoring_org_id,
88            sponsoredFriendlyName = crate::apis::urlencode(sponsored_friendly_name)
89        );
90        let mut local_var_req_builder =
91            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
92
93        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
94            local_var_req_builder = local_var_req_builder
95                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
96        }
97        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
98            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
99        };
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<AdminInitiatedRevokeSponsorshipError> =
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_sponsorship<'a>(
122        &self,
123        sponsoring_org_id: uuid::Uuid,
124        organization_sponsorship_create_request_model: Option<
125            models::OrganizationSponsorshipCreateRequestModel,
126        >,
127    ) -> Result<(), Error<CreateSponsorshipError>> {
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            "{}/organization/sponsorship/self-hosted/{sponsoringOrgId}/families-for-enterprise",
134            local_var_configuration.base_path,
135            sponsoringOrgId = sponsoring_org_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(&organization_sponsorship_create_request_model);
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<CreateSponsorshipError> =
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_sponsored_organizations<'a>(
171        &self,
172        org_id: uuid::Uuid,
173    ) -> Result<
174        models::OrganizationSponsorshipInvitesResponseModelListResponseModel,
175        Error<GetSponsoredOrganizationsError>,
176    > {
177        let local_var_configuration = &self.configuration;
178
179        let local_var_client = &local_var_configuration.client;
180
181        let local_var_uri_str = format!(
182            "{}/organization/sponsorship/self-hosted/{orgId}/sponsored",
183            local_var_configuration.base_path,
184            orgId = org_id
185        );
186        let mut local_var_req_builder =
187            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
188
189        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
190            local_var_req_builder = local_var_req_builder
191                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
192        }
193        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
194            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
195        };
196
197        let local_var_req = local_var_req_builder.build()?;
198        let local_var_resp = local_var_client.execute(local_var_req).await?;
199
200        let local_var_status = local_var_resp.status();
201        let local_var_content_type = local_var_resp
202            .headers()
203            .get("content-type")
204            .and_then(|v| v.to_str().ok())
205            .unwrap_or("application/octet-stream");
206        let local_var_content_type = super::ContentType::from(local_var_content_type);
207        let local_var_content = local_var_resp.text().await?;
208
209        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
210            match local_var_content_type {
211                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
212                ContentType::Text => {
213                    return Err(Error::from(serde_json::Error::custom(
214                        "Received `text/plain` content type response that cannot be converted to `models::OrganizationSponsorshipInvitesResponseModelListResponseModel`",
215                    )));
216                }
217                ContentType::Unsupported(local_var_unknown_type) => {
218                    return Err(Error::from(serde_json::Error::custom(format!(
219                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::OrganizationSponsorshipInvitesResponseModelListResponseModel`"
220                    ))));
221                }
222            }
223        } else {
224            let local_var_entity: Option<GetSponsoredOrganizationsError> =
225                serde_json::from_str(&local_var_content).ok();
226            let local_var_error = ResponseContent {
227                status: local_var_status,
228                content: local_var_content,
229                entity: local_var_entity,
230            };
231            Err(Error::ResponseError(local_var_error))
232        }
233    }
234
235    async fn revoke_sponsorship<'a>(
236        &self,
237        sponsoring_org_id: uuid::Uuid,
238    ) -> Result<(), Error<RevokeSponsorshipError>> {
239        let local_var_configuration = &self.configuration;
240
241        let local_var_client = &local_var_configuration.client;
242
243        let local_var_uri_str = format!(
244            "{}/organization/sponsorship/self-hosted/{sponsoringOrgId}",
245            local_var_configuration.base_path,
246            sponsoringOrgId = sponsoring_org_id
247        );
248        let mut local_var_req_builder =
249            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
250
251        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
252            local_var_req_builder = local_var_req_builder
253                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
254        }
255        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
256            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
257        };
258
259        let local_var_req = local_var_req_builder.build()?;
260        let local_var_resp = local_var_client.execute(local_var_req).await?;
261
262        let local_var_status = local_var_resp.status();
263        let local_var_content = local_var_resp.text().await?;
264
265        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
266            Ok(())
267        } else {
268            let local_var_entity: Option<RevokeSponsorshipError> =
269                serde_json::from_str(&local_var_content).ok();
270            let local_var_error = ResponseContent {
271                status: local_var_status,
272                content: local_var_content,
273                entity: local_var_entity,
274            };
275            Err(Error::ResponseError(local_var_error))
276        }
277    }
278}
279
280/// struct for typed errors of method
281/// [`SelfHostedOrganizationSponsorshipsApi::admin_initiated_revoke_sponsorship`]
282#[derive(Debug, Clone, Serialize, Deserialize)]
283#[serde(untagged)]
284pub enum AdminInitiatedRevokeSponsorshipError {
285    UnknownValue(serde_json::Value),
286}
287/// struct for typed errors of method [`SelfHostedOrganizationSponsorshipsApi::create_sponsorship`]
288#[derive(Debug, Clone, Serialize, Deserialize)]
289#[serde(untagged)]
290pub enum CreateSponsorshipError {
291    UnknownValue(serde_json::Value),
292}
293/// struct for typed errors of method
294/// [`SelfHostedOrganizationSponsorshipsApi::get_sponsored_organizations`]
295#[derive(Debug, Clone, Serialize, Deserialize)]
296#[serde(untagged)]
297pub enum GetSponsoredOrganizationsError {
298    UnknownValue(serde_json::Value),
299}
300/// struct for typed errors of method [`SelfHostedOrganizationSponsorshipsApi::revoke_sponsorship`]
301#[derive(Debug, Clone, Serialize, Deserialize)]
302#[serde(untagged)]
303pub enum RevokeSponsorshipError {
304    UnknownValue(serde_json::Value),
305}