bitwarden_api_api/apis/
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 OrganizationSponsorshipsApi: Send + Sync {
29    /// DELETE /organization/sponsorship/{sponsoringOrgId}/{sponsoredFriendlyName}/revoke
30    async fn admin_initiated_revoke_sponsorship<'a>(
31        &self,
32        sponsoring_org_id: uuid::Uuid,
33        sponsored_friendly_name: &'a str,
34    ) -> Result<(), Error<AdminInitiatedRevokeSponsorshipError>>;
35
36    /// POST /organization/sponsorship/{sponsoringOrgId}/families-for-enterprise
37    async fn create_sponsorship<'a>(
38        &self,
39        sponsoring_org_id: uuid::Uuid,
40        organization_sponsorship_create_request_model: Option<
41            models::OrganizationSponsorshipCreateRequestModel,
42        >,
43    ) -> Result<(), Error<CreateSponsorshipError>>;
44
45    /// GET /organization/sponsorship/{sponsoringOrgId}/sponsored
46    async fn get_sponsored_organizations<'a>(
47        &self,
48        sponsoring_org_id: uuid::Uuid,
49    ) -> Result<
50        models::OrganizationSponsorshipInvitesResponseModelListResponseModel,
51        Error<GetSponsoredOrganizationsError>,
52    >;
53
54    /// GET /organization/sponsorship/{sponsoringOrgId}/sync-status
55    async fn get_sync_status<'a>(
56        &self,
57        sponsoring_org_id: uuid::Uuid,
58    ) -> Result<(), Error<GetSyncStatusError>>;
59
60    /// POST /organization/sponsorship/validate-token
61    async fn pre_validate_sponsorship_token<'a>(
62        &self,
63        sponsorship_token: Option<&'a str>,
64    ) -> Result<models::PreValidateSponsorshipResponseModel, Error<PreValidateSponsorshipTokenError>>;
65
66    /// POST /organization/sponsorship/redeem
67    async fn redeem_sponsorship<'a>(
68        &self,
69        sponsorship_token: Option<&'a str>,
70        organization_sponsorship_redeem_request_model: Option<
71            models::OrganizationSponsorshipRedeemRequestModel,
72        >,
73    ) -> Result<(), Error<RedeemSponsorshipError>>;
74
75    /// DELETE /organization/sponsorship/sponsored/{sponsoredOrgId}
76    async fn remove_sponsorship<'a>(
77        &self,
78        sponsored_org_id: uuid::Uuid,
79    ) -> Result<(), Error<RemoveSponsorshipError>>;
80
81    /// POST /organization/sponsorship/{sponsoringOrgId}/families-for-enterprise/resend
82    async fn resend_sponsorship_offer<'a>(
83        &self,
84        sponsoring_org_id: uuid::Uuid,
85        sponsored_friendly_name: Option<&'a str>,
86    ) -> Result<(), Error<ResendSponsorshipOfferError>>;
87
88    /// DELETE /organization/sponsorship/{sponsoringOrganizationId}
89    async fn revoke_sponsorship<'a>(
90        &self,
91        sponsoring_organization_id: uuid::Uuid,
92    ) -> Result<(), Error<RevokeSponsorshipError>>;
93
94    /// POST /organization/sponsorship/sync
95    async fn sync<'a>(
96        &self,
97        organization_sponsorship_sync_request_model: Option<
98            models::OrganizationSponsorshipSyncRequestModel,
99        >,
100    ) -> Result<models::OrganizationSponsorshipSyncResponseModel, Error<SyncError>>;
101}
102
103pub struct OrganizationSponsorshipsApiClient {
104    configuration: Arc<configuration::Configuration>,
105}
106
107impl OrganizationSponsorshipsApiClient {
108    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
109        Self { configuration }
110    }
111}
112
113#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
114#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
115impl OrganizationSponsorshipsApi for OrganizationSponsorshipsApiClient {
116    async fn admin_initiated_revoke_sponsorship<'a>(
117        &self,
118        sponsoring_org_id: uuid::Uuid,
119        sponsored_friendly_name: &'a str,
120    ) -> Result<(), Error<AdminInitiatedRevokeSponsorshipError>> {
121        let local_var_configuration = &self.configuration;
122
123        let local_var_client = &local_var_configuration.client;
124
125        let local_var_uri_str = format!(
126            "{}/organization/sponsorship/{sponsoringOrgId}/{sponsoredFriendlyName}/revoke",
127            local_var_configuration.base_path,
128            sponsoringOrgId = sponsoring_org_id,
129            sponsoredFriendlyName = crate::apis::urlencode(sponsored_friendly_name)
130        );
131        let mut local_var_req_builder =
132            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
133
134        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
135            local_var_req_builder = local_var_req_builder
136                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
137        }
138        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
139            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
140        };
141
142        let local_var_req = local_var_req_builder.build()?;
143        let local_var_resp = local_var_client.execute(local_var_req).await?;
144
145        let local_var_status = local_var_resp.status();
146        let local_var_content = local_var_resp.text().await?;
147
148        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
149            Ok(())
150        } else {
151            let local_var_entity: Option<AdminInitiatedRevokeSponsorshipError> =
152                serde_json::from_str(&local_var_content).ok();
153            let local_var_error = ResponseContent {
154                status: local_var_status,
155                content: local_var_content,
156                entity: local_var_entity,
157            };
158            Err(Error::ResponseError(local_var_error))
159        }
160    }
161
162    async fn create_sponsorship<'a>(
163        &self,
164        sponsoring_org_id: uuid::Uuid,
165        organization_sponsorship_create_request_model: Option<
166            models::OrganizationSponsorshipCreateRequestModel,
167        >,
168    ) -> Result<(), Error<CreateSponsorshipError>> {
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            "{}/organization/sponsorship/{sponsoringOrgId}/families-for-enterprise",
175            local_var_configuration.base_path,
176            sponsoringOrgId = sponsoring_org_id
177        );
178        let mut local_var_req_builder =
179            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
180
181        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
182            local_var_req_builder = local_var_req_builder
183                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
184        }
185        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
186            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
187        };
188        local_var_req_builder =
189            local_var_req_builder.json(&organization_sponsorship_create_request_model);
190
191        let local_var_req = local_var_req_builder.build()?;
192        let local_var_resp = local_var_client.execute(local_var_req).await?;
193
194        let local_var_status = local_var_resp.status();
195        let local_var_content = local_var_resp.text().await?;
196
197        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
198            Ok(())
199        } else {
200            let local_var_entity: Option<CreateSponsorshipError> =
201                serde_json::from_str(&local_var_content).ok();
202            let local_var_error = ResponseContent {
203                status: local_var_status,
204                content: local_var_content,
205                entity: local_var_entity,
206            };
207            Err(Error::ResponseError(local_var_error))
208        }
209    }
210
211    async fn get_sponsored_organizations<'a>(
212        &self,
213        sponsoring_org_id: uuid::Uuid,
214    ) -> Result<
215        models::OrganizationSponsorshipInvitesResponseModelListResponseModel,
216        Error<GetSponsoredOrganizationsError>,
217    > {
218        let local_var_configuration = &self.configuration;
219
220        let local_var_client = &local_var_configuration.client;
221
222        let local_var_uri_str = format!(
223            "{}/organization/sponsorship/{sponsoringOrgId}/sponsored",
224            local_var_configuration.base_path,
225            sponsoringOrgId = sponsoring_org_id
226        );
227        let mut local_var_req_builder =
228            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
229
230        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
231            local_var_req_builder = local_var_req_builder
232                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
233        }
234        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
235            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
236        };
237
238        let local_var_req = local_var_req_builder.build()?;
239        let local_var_resp = local_var_client.execute(local_var_req).await?;
240
241        let local_var_status = local_var_resp.status();
242        let local_var_content_type = local_var_resp
243            .headers()
244            .get("content-type")
245            .and_then(|v| v.to_str().ok())
246            .unwrap_or("application/octet-stream");
247        let local_var_content_type = super::ContentType::from(local_var_content_type);
248        let local_var_content = local_var_resp.text().await?;
249
250        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
251            match local_var_content_type {
252                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
253                ContentType::Text => {
254                    return Err(Error::from(serde_json::Error::custom(
255                        "Received `text/plain` content type response that cannot be converted to `models::OrganizationSponsorshipInvitesResponseModelListResponseModel`",
256                    )));
257                }
258                ContentType::Unsupported(local_var_unknown_type) => {
259                    return Err(Error::from(serde_json::Error::custom(format!(
260                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::OrganizationSponsorshipInvitesResponseModelListResponseModel`"
261                    ))));
262                }
263            }
264        } else {
265            let local_var_entity: Option<GetSponsoredOrganizationsError> =
266                serde_json::from_str(&local_var_content).ok();
267            let local_var_error = ResponseContent {
268                status: local_var_status,
269                content: local_var_content,
270                entity: local_var_entity,
271            };
272            Err(Error::ResponseError(local_var_error))
273        }
274    }
275
276    async fn get_sync_status<'a>(
277        &self,
278        sponsoring_org_id: uuid::Uuid,
279    ) -> Result<(), Error<GetSyncStatusError>> {
280        let local_var_configuration = &self.configuration;
281
282        let local_var_client = &local_var_configuration.client;
283
284        let local_var_uri_str = format!(
285            "{}/organization/sponsorship/{sponsoringOrgId}/sync-status",
286            local_var_configuration.base_path,
287            sponsoringOrgId = sponsoring_org_id
288        );
289        let mut local_var_req_builder =
290            local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
291
292        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
293            local_var_req_builder = local_var_req_builder
294                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
295        }
296        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
297            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
298        };
299
300        let local_var_req = local_var_req_builder.build()?;
301        let local_var_resp = local_var_client.execute(local_var_req).await?;
302
303        let local_var_status = local_var_resp.status();
304        let local_var_content = local_var_resp.text().await?;
305
306        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
307            Ok(())
308        } else {
309            let local_var_entity: Option<GetSyncStatusError> =
310                serde_json::from_str(&local_var_content).ok();
311            let local_var_error = ResponseContent {
312                status: local_var_status,
313                content: local_var_content,
314                entity: local_var_entity,
315            };
316            Err(Error::ResponseError(local_var_error))
317        }
318    }
319
320    async fn pre_validate_sponsorship_token<'a>(
321        &self,
322        sponsorship_token: Option<&'a str>,
323    ) -> Result<models::PreValidateSponsorshipResponseModel, Error<PreValidateSponsorshipTokenError>>
324    {
325        let local_var_configuration = &self.configuration;
326
327        let local_var_client = &local_var_configuration.client;
328
329        let local_var_uri_str = format!(
330            "{}/organization/sponsorship/validate-token",
331            local_var_configuration.base_path
332        );
333        let mut local_var_req_builder =
334            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
335
336        if let Some(ref param_value) = sponsorship_token {
337            local_var_req_builder =
338                local_var_req_builder.query(&[("sponsorshipToken", &param_value.to_string())]);
339        }
340        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
341            local_var_req_builder = local_var_req_builder
342                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
343        }
344        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
345            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
346        };
347
348        let local_var_req = local_var_req_builder.build()?;
349        let local_var_resp = local_var_client.execute(local_var_req).await?;
350
351        let local_var_status = local_var_resp.status();
352        let local_var_content_type = local_var_resp
353            .headers()
354            .get("content-type")
355            .and_then(|v| v.to_str().ok())
356            .unwrap_or("application/octet-stream");
357        let local_var_content_type = super::ContentType::from(local_var_content_type);
358        let local_var_content = local_var_resp.text().await?;
359
360        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
361            match local_var_content_type {
362                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
363                ContentType::Text => {
364                    return Err(Error::from(serde_json::Error::custom(
365                        "Received `text/plain` content type response that cannot be converted to `models::PreValidateSponsorshipResponseModel`",
366                    )));
367                }
368                ContentType::Unsupported(local_var_unknown_type) => {
369                    return Err(Error::from(serde_json::Error::custom(format!(
370                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::PreValidateSponsorshipResponseModel`"
371                    ))));
372                }
373            }
374        } else {
375            let local_var_entity: Option<PreValidateSponsorshipTokenError> =
376                serde_json::from_str(&local_var_content).ok();
377            let local_var_error = ResponseContent {
378                status: local_var_status,
379                content: local_var_content,
380                entity: local_var_entity,
381            };
382            Err(Error::ResponseError(local_var_error))
383        }
384    }
385
386    async fn redeem_sponsorship<'a>(
387        &self,
388        sponsorship_token: Option<&'a str>,
389        organization_sponsorship_redeem_request_model: Option<
390            models::OrganizationSponsorshipRedeemRequestModel,
391        >,
392    ) -> Result<(), Error<RedeemSponsorshipError>> {
393        let local_var_configuration = &self.configuration;
394
395        let local_var_client = &local_var_configuration.client;
396
397        let local_var_uri_str = format!(
398            "{}/organization/sponsorship/redeem",
399            local_var_configuration.base_path
400        );
401        let mut local_var_req_builder =
402            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
403
404        if let Some(ref param_value) = sponsorship_token {
405            local_var_req_builder =
406                local_var_req_builder.query(&[("sponsorshipToken", &param_value.to_string())]);
407        }
408        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
409            local_var_req_builder = local_var_req_builder
410                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
411        }
412        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
413            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
414        };
415        local_var_req_builder =
416            local_var_req_builder.json(&organization_sponsorship_redeem_request_model);
417
418        let local_var_req = local_var_req_builder.build()?;
419        let local_var_resp = local_var_client.execute(local_var_req).await?;
420
421        let local_var_status = local_var_resp.status();
422        let local_var_content = local_var_resp.text().await?;
423
424        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
425            Ok(())
426        } else {
427            let local_var_entity: Option<RedeemSponsorshipError> =
428                serde_json::from_str(&local_var_content).ok();
429            let local_var_error = ResponseContent {
430                status: local_var_status,
431                content: local_var_content,
432                entity: local_var_entity,
433            };
434            Err(Error::ResponseError(local_var_error))
435        }
436    }
437
438    async fn remove_sponsorship<'a>(
439        &self,
440        sponsored_org_id: uuid::Uuid,
441    ) -> Result<(), Error<RemoveSponsorshipError>> {
442        let local_var_configuration = &self.configuration;
443
444        let local_var_client = &local_var_configuration.client;
445
446        let local_var_uri_str = format!(
447            "{}/organization/sponsorship/sponsored/{sponsoredOrgId}",
448            local_var_configuration.base_path,
449            sponsoredOrgId = sponsored_org_id
450        );
451        let mut local_var_req_builder =
452            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
453
454        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
455            local_var_req_builder = local_var_req_builder
456                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
457        }
458        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
459            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
460        };
461
462        let local_var_req = local_var_req_builder.build()?;
463        let local_var_resp = local_var_client.execute(local_var_req).await?;
464
465        let local_var_status = local_var_resp.status();
466        let local_var_content = local_var_resp.text().await?;
467
468        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
469            Ok(())
470        } else {
471            let local_var_entity: Option<RemoveSponsorshipError> =
472                serde_json::from_str(&local_var_content).ok();
473            let local_var_error = ResponseContent {
474                status: local_var_status,
475                content: local_var_content,
476                entity: local_var_entity,
477            };
478            Err(Error::ResponseError(local_var_error))
479        }
480    }
481
482    async fn resend_sponsorship_offer<'a>(
483        &self,
484        sponsoring_org_id: uuid::Uuid,
485        sponsored_friendly_name: Option<&'a str>,
486    ) -> Result<(), Error<ResendSponsorshipOfferError>> {
487        let local_var_configuration = &self.configuration;
488
489        let local_var_client = &local_var_configuration.client;
490
491        let local_var_uri_str = format!(
492            "{}/organization/sponsorship/{sponsoringOrgId}/families-for-enterprise/resend",
493            local_var_configuration.base_path,
494            sponsoringOrgId = sponsoring_org_id
495        );
496        let mut local_var_req_builder =
497            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
498
499        if let Some(ref param_value) = sponsored_friendly_name {
500            local_var_req_builder =
501                local_var_req_builder.query(&[("sponsoredFriendlyName", &param_value.to_string())]);
502        }
503        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
504            local_var_req_builder = local_var_req_builder
505                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
506        }
507        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
508            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
509        };
510
511        let local_var_req = local_var_req_builder.build()?;
512        let local_var_resp = local_var_client.execute(local_var_req).await?;
513
514        let local_var_status = local_var_resp.status();
515        let local_var_content = local_var_resp.text().await?;
516
517        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
518            Ok(())
519        } else {
520            let local_var_entity: Option<ResendSponsorshipOfferError> =
521                serde_json::from_str(&local_var_content).ok();
522            let local_var_error = ResponseContent {
523                status: local_var_status,
524                content: local_var_content,
525                entity: local_var_entity,
526            };
527            Err(Error::ResponseError(local_var_error))
528        }
529    }
530
531    async fn revoke_sponsorship<'a>(
532        &self,
533        sponsoring_organization_id: uuid::Uuid,
534    ) -> Result<(), Error<RevokeSponsorshipError>> {
535        let local_var_configuration = &self.configuration;
536
537        let local_var_client = &local_var_configuration.client;
538
539        let local_var_uri_str = format!(
540            "{}/organization/sponsorship/{sponsoringOrganizationId}",
541            local_var_configuration.base_path,
542            sponsoringOrganizationId = sponsoring_organization_id
543        );
544        let mut local_var_req_builder =
545            local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
546
547        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
548            local_var_req_builder = local_var_req_builder
549                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
550        }
551        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
552            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
553        };
554
555        let local_var_req = local_var_req_builder.build()?;
556        let local_var_resp = local_var_client.execute(local_var_req).await?;
557
558        let local_var_status = local_var_resp.status();
559        let local_var_content = local_var_resp.text().await?;
560
561        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
562            Ok(())
563        } else {
564            let local_var_entity: Option<RevokeSponsorshipError> =
565                serde_json::from_str(&local_var_content).ok();
566            let local_var_error = ResponseContent {
567                status: local_var_status,
568                content: local_var_content,
569                entity: local_var_entity,
570            };
571            Err(Error::ResponseError(local_var_error))
572        }
573    }
574
575    async fn sync<'a>(
576        &self,
577        organization_sponsorship_sync_request_model: Option<
578            models::OrganizationSponsorshipSyncRequestModel,
579        >,
580    ) -> Result<models::OrganizationSponsorshipSyncResponseModel, Error<SyncError>> {
581        let local_var_configuration = &self.configuration;
582
583        let local_var_client = &local_var_configuration.client;
584
585        let local_var_uri_str = format!(
586            "{}/organization/sponsorship/sync",
587            local_var_configuration.base_path
588        );
589        let mut local_var_req_builder =
590            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
591
592        if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
593            local_var_req_builder = local_var_req_builder
594                .header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
595        }
596        if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
597            local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
598        };
599        local_var_req_builder =
600            local_var_req_builder.json(&organization_sponsorship_sync_request_model);
601
602        let local_var_req = local_var_req_builder.build()?;
603        let local_var_resp = local_var_client.execute(local_var_req).await?;
604
605        let local_var_status = local_var_resp.status();
606        let local_var_content_type = local_var_resp
607            .headers()
608            .get("content-type")
609            .and_then(|v| v.to_str().ok())
610            .unwrap_or("application/octet-stream");
611        let local_var_content_type = super::ContentType::from(local_var_content_type);
612        let local_var_content = local_var_resp.text().await?;
613
614        if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
615            match local_var_content_type {
616                ContentType::Json => serde_json::from_str(&local_var_content).map_err(Error::from),
617                ContentType::Text => {
618                    return Err(Error::from(serde_json::Error::custom(
619                        "Received `text/plain` content type response that cannot be converted to `models::OrganizationSponsorshipSyncResponseModel`",
620                    )));
621                }
622                ContentType::Unsupported(local_var_unknown_type) => {
623                    return Err(Error::from(serde_json::Error::custom(format!(
624                        "Received `{local_var_unknown_type}` content type response that cannot be converted to `models::OrganizationSponsorshipSyncResponseModel`"
625                    ))));
626                }
627            }
628        } else {
629            let local_var_entity: Option<SyncError> = serde_json::from_str(&local_var_content).ok();
630            let local_var_error = ResponseContent {
631                status: local_var_status,
632                content: local_var_content,
633                entity: local_var_entity,
634            };
635            Err(Error::ResponseError(local_var_error))
636        }
637    }
638}
639
640/// struct for typed errors of method
641/// [`OrganizationSponsorshipsApi::admin_initiated_revoke_sponsorship`]
642#[derive(Debug, Clone, Serialize, Deserialize)]
643#[serde(untagged)]
644pub enum AdminInitiatedRevokeSponsorshipError {
645    UnknownValue(serde_json::Value),
646}
647/// struct for typed errors of method [`OrganizationSponsorshipsApi::create_sponsorship`]
648#[derive(Debug, Clone, Serialize, Deserialize)]
649#[serde(untagged)]
650pub enum CreateSponsorshipError {
651    UnknownValue(serde_json::Value),
652}
653/// struct for typed errors of method [`OrganizationSponsorshipsApi::get_sponsored_organizations`]
654#[derive(Debug, Clone, Serialize, Deserialize)]
655#[serde(untagged)]
656pub enum GetSponsoredOrganizationsError {
657    UnknownValue(serde_json::Value),
658}
659/// struct for typed errors of method [`OrganizationSponsorshipsApi::get_sync_status`]
660#[derive(Debug, Clone, Serialize, Deserialize)]
661#[serde(untagged)]
662pub enum GetSyncStatusError {
663    UnknownValue(serde_json::Value),
664}
665/// struct for typed errors of method
666/// [`OrganizationSponsorshipsApi::pre_validate_sponsorship_token`]
667#[derive(Debug, Clone, Serialize, Deserialize)]
668#[serde(untagged)]
669pub enum PreValidateSponsorshipTokenError {
670    UnknownValue(serde_json::Value),
671}
672/// struct for typed errors of method [`OrganizationSponsorshipsApi::redeem_sponsorship`]
673#[derive(Debug, Clone, Serialize, Deserialize)]
674#[serde(untagged)]
675pub enum RedeemSponsorshipError {
676    UnknownValue(serde_json::Value),
677}
678/// struct for typed errors of method [`OrganizationSponsorshipsApi::remove_sponsorship`]
679#[derive(Debug, Clone, Serialize, Deserialize)]
680#[serde(untagged)]
681pub enum RemoveSponsorshipError {
682    UnknownValue(serde_json::Value),
683}
684/// struct for typed errors of method [`OrganizationSponsorshipsApi::resend_sponsorship_offer`]
685#[derive(Debug, Clone, Serialize, Deserialize)]
686#[serde(untagged)]
687pub enum ResendSponsorshipOfferError {
688    UnknownValue(serde_json::Value),
689}
690/// struct for typed errors of method [`OrganizationSponsorshipsApi::revoke_sponsorship`]
691#[derive(Debug, Clone, Serialize, Deserialize)]
692#[serde(untagged)]
693pub enum RevokeSponsorshipError {
694    UnknownValue(serde_json::Value),
695}
696/// struct for typed errors of method [`OrganizationSponsorshipsApi::sync`]
697#[derive(Debug, Clone, Serialize, Deserialize)]
698#[serde(untagged)]
699pub enum SyncError {
700    UnknownValue(serde_json::Value),
701}