bitwarden_api_api/apis/
provider_organizations_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 reqwest;
12use serde::{de::Error as _, Deserialize, Serialize};
13
14use super::{configuration, ContentType, Error};
15use crate::{apis::ResponseContent, models};
16
17/// struct for typed errors of method [`providers_provider_id_organizations_add_post`]
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum ProvidersProviderIdOrganizationsAddPostError {
21    UnknownValue(serde_json::Value),
22}
23
24/// struct for typed errors of method [`providers_provider_id_organizations_get`]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum ProvidersProviderIdOrganizationsGetError {
28    UnknownValue(serde_json::Value),
29}
30
31/// struct for typed errors of method [`providers_provider_id_organizations_id_delete`]
32#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum ProvidersProviderIdOrganizationsIdDeleteError {
35    UnknownValue(serde_json::Value),
36}
37
38/// struct for typed errors of method [`providers_provider_id_organizations_id_delete_post`]
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum ProvidersProviderIdOrganizationsIdDeletePostError {
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`providers_provider_id_organizations_post`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum ProvidersProviderIdOrganizationsPostError {
49    UnknownValue(serde_json::Value),
50}
51
52pub async fn providers_provider_id_organizations_add_post(
53    configuration: &configuration::Configuration,
54    provider_id: uuid::Uuid,
55    provider_organization_add_request_model: Option<models::ProviderOrganizationAddRequestModel>,
56) -> Result<(), Error<ProvidersProviderIdOrganizationsAddPostError>> {
57    // add a prefix to parameters to efficiently prevent name collisions
58    let p_provider_id = provider_id;
59    let p_provider_organization_add_request_model = provider_organization_add_request_model;
60
61    let uri_str = format!(
62        "{}/providers/{providerId}/organizations/add",
63        configuration.base_path,
64        providerId = crate::apis::urlencode(p_provider_id.to_string())
65    );
66    let mut req_builder = configuration
67        .client
68        .request(reqwest::Method::POST, &uri_str);
69
70    if let Some(ref user_agent) = configuration.user_agent {
71        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
72    }
73    if let Some(ref token) = configuration.oauth_access_token {
74        req_builder = req_builder.bearer_auth(token.to_owned());
75    };
76    req_builder = req_builder.json(&p_provider_organization_add_request_model);
77
78    let req = req_builder.build()?;
79    let resp = configuration.client.execute(req).await?;
80
81    let status = resp.status();
82
83    if !status.is_client_error() && !status.is_server_error() {
84        Ok(())
85    } else {
86        let content = resp.text().await?;
87        let entity: Option<ProvidersProviderIdOrganizationsAddPostError> =
88            serde_json::from_str(&content).ok();
89        Err(Error::ResponseError(ResponseContent {
90            status,
91            content,
92            entity,
93        }))
94    }
95}
96
97pub async fn providers_provider_id_organizations_get(
98    configuration: &configuration::Configuration,
99    provider_id: uuid::Uuid,
100) -> Result<
101    models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel,
102    Error<ProvidersProviderIdOrganizationsGetError>,
103> {
104    // add a prefix to parameters to efficiently prevent name collisions
105    let p_provider_id = provider_id;
106
107    let uri_str = format!(
108        "{}/providers/{providerId}/organizations",
109        configuration.base_path,
110        providerId = crate::apis::urlencode(p_provider_id.to_string())
111    );
112    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
113
114    if let Some(ref user_agent) = configuration.user_agent {
115        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
116    }
117    if let Some(ref token) = configuration.oauth_access_token {
118        req_builder = req_builder.bearer_auth(token.to_owned());
119    };
120
121    let req = req_builder.build()?;
122    let resp = configuration.client.execute(req).await?;
123
124    let status = resp.status();
125    let content_type = resp
126        .headers()
127        .get("content-type")
128        .and_then(|v| v.to_str().ok())
129        .unwrap_or("application/octet-stream");
130    let content_type = super::ContentType::from(content_type);
131
132    if !status.is_client_error() && !status.is_server_error() {
133        let content = resp.text().await?;
134        match content_type {
135            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
136            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel`"))),
137            ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::ProviderOrganizationOrganizationDetailsResponseModelListResponseModel`")))),
138        }
139    } else {
140        let content = resp.text().await?;
141        let entity: Option<ProvidersProviderIdOrganizationsGetError> =
142            serde_json::from_str(&content).ok();
143        Err(Error::ResponseError(ResponseContent {
144            status,
145            content,
146            entity,
147        }))
148    }
149}
150
151pub async fn providers_provider_id_organizations_id_delete(
152    configuration: &configuration::Configuration,
153    provider_id: uuid::Uuid,
154    id: uuid::Uuid,
155) -> Result<(), Error<ProvidersProviderIdOrganizationsIdDeleteError>> {
156    // add a prefix to parameters to efficiently prevent name collisions
157    let p_provider_id = provider_id;
158    let p_id = id;
159
160    let uri_str = format!(
161        "{}/providers/{providerId}/organizations/{id}",
162        configuration.base_path,
163        providerId = crate::apis::urlencode(p_provider_id.to_string()),
164        id = crate::apis::urlencode(p_id.to_string())
165    );
166    let mut req_builder = configuration
167        .client
168        .request(reqwest::Method::DELETE, &uri_str);
169
170    if let Some(ref user_agent) = configuration.user_agent {
171        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
172    }
173    if let Some(ref token) = configuration.oauth_access_token {
174        req_builder = req_builder.bearer_auth(token.to_owned());
175    };
176
177    let req = req_builder.build()?;
178    let resp = configuration.client.execute(req).await?;
179
180    let status = resp.status();
181
182    if !status.is_client_error() && !status.is_server_error() {
183        Ok(())
184    } else {
185        let content = resp.text().await?;
186        let entity: Option<ProvidersProviderIdOrganizationsIdDeleteError> =
187            serde_json::from_str(&content).ok();
188        Err(Error::ResponseError(ResponseContent {
189            status,
190            content,
191            entity,
192        }))
193    }
194}
195
196pub async fn providers_provider_id_organizations_id_delete_post(
197    configuration: &configuration::Configuration,
198    provider_id: uuid::Uuid,
199    id: uuid::Uuid,
200) -> Result<(), Error<ProvidersProviderIdOrganizationsIdDeletePostError>> {
201    // add a prefix to parameters to efficiently prevent name collisions
202    let p_provider_id = provider_id;
203    let p_id = id;
204
205    let uri_str = format!(
206        "{}/providers/{providerId}/organizations/{id}/delete",
207        configuration.base_path,
208        providerId = crate::apis::urlencode(p_provider_id.to_string()),
209        id = crate::apis::urlencode(p_id.to_string())
210    );
211    let mut req_builder = configuration
212        .client
213        .request(reqwest::Method::POST, &uri_str);
214
215    if let Some(ref user_agent) = configuration.user_agent {
216        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
217    }
218    if let Some(ref token) = configuration.oauth_access_token {
219        req_builder = req_builder.bearer_auth(token.to_owned());
220    };
221
222    let req = req_builder.build()?;
223    let resp = configuration.client.execute(req).await?;
224
225    let status = resp.status();
226
227    if !status.is_client_error() && !status.is_server_error() {
228        Ok(())
229    } else {
230        let content = resp.text().await?;
231        let entity: Option<ProvidersProviderIdOrganizationsIdDeletePostError> =
232            serde_json::from_str(&content).ok();
233        Err(Error::ResponseError(ResponseContent {
234            status,
235            content,
236            entity,
237        }))
238    }
239}
240
241pub async fn providers_provider_id_organizations_post(
242    configuration: &configuration::Configuration,
243    provider_id: uuid::Uuid,
244    provider_organization_create_request_model: Option<
245        models::ProviderOrganizationCreateRequestModel,
246    >,
247) -> Result<
248    models::ProviderOrganizationResponseModel,
249    Error<ProvidersProviderIdOrganizationsPostError>,
250> {
251    // add a prefix to parameters to efficiently prevent name collisions
252    let p_provider_id = provider_id;
253    let p_provider_organization_create_request_model = provider_organization_create_request_model;
254
255    let uri_str = format!(
256        "{}/providers/{providerId}/organizations",
257        configuration.base_path,
258        providerId = crate::apis::urlencode(p_provider_id.to_string())
259    );
260    let mut req_builder = configuration
261        .client
262        .request(reqwest::Method::POST, &uri_str);
263
264    if let Some(ref user_agent) = configuration.user_agent {
265        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
266    }
267    if let Some(ref token) = configuration.oauth_access_token {
268        req_builder = req_builder.bearer_auth(token.to_owned());
269    };
270    req_builder = req_builder.json(&p_provider_organization_create_request_model);
271
272    let req = req_builder.build()?;
273    let resp = configuration.client.execute(req).await?;
274
275    let status = resp.status();
276    let content_type = resp
277        .headers()
278        .get("content-type")
279        .and_then(|v| v.to_str().ok())
280        .unwrap_or("application/octet-stream");
281    let content_type = super::ContentType::from(content_type);
282
283    if !status.is_client_error() && !status.is_server_error() {
284        let content = resp.text().await?;
285        match content_type {
286            ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
287            ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::ProviderOrganizationResponseModel`"))),
288            ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::ProviderOrganizationResponseModel`")))),
289        }
290    } else {
291        let content = resp.text().await?;
292        let entity: Option<ProvidersProviderIdOrganizationsPostError> =
293            serde_json::from_str(&content).ok();
294        Err(Error::ResponseError(ResponseContent {
295            status,
296            content,
297            entity,
298        }))
299    }
300}