bitwarden_api_api/apis/
organization_billing_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 [`organizations_organization_id_billing_get`]
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum OrganizationsOrganizationIdBillingGetError {
21    UnknownValue(serde_json::Value),
22}
23
24/// struct for typed errors of method [`organizations_organization_id_billing_history_get`]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum OrganizationsOrganizationIdBillingHistoryGetError {
28    UnknownValue(serde_json::Value),
29}
30
31/// struct for typed errors of method [`organizations_organization_id_billing_invoices_get`]
32#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum OrganizationsOrganizationIdBillingInvoicesGetError {
35    UnknownValue(serde_json::Value),
36}
37
38/// struct for typed errors of method [`organizations_organization_id_billing_metadata_get`]
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum OrganizationsOrganizationIdBillingMetadataGetError {
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`organizations_organization_id_billing_payment_method_get`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum OrganizationsOrganizationIdBillingPaymentMethodGetError {
49    UnknownValue(serde_json::Value),
50}
51
52/// struct for typed errors of method [`organizations_organization_id_billing_payment_method_put`]
53#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum OrganizationsOrganizationIdBillingPaymentMethodPutError {
56    UnknownValue(serde_json::Value),
57}
58
59/// struct for typed errors of method
60/// [`organizations_organization_id_billing_payment_method_verify_bank_account_post`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum OrganizationsOrganizationIdBillingPaymentMethodVerifyBankAccountPostError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method
68/// [`organizations_organization_id_billing_restart_subscription_post`]
69#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum OrganizationsOrganizationIdBillingRestartSubscriptionPostError {
72    UnknownValue(serde_json::Value),
73}
74
75/// struct for typed errors of method [`organizations_organization_id_billing_tax_information_get`]
76#[derive(Debug, Clone, Serialize, Deserialize)]
77#[serde(untagged)]
78pub enum OrganizationsOrganizationIdBillingTaxInformationGetError {
79    UnknownValue(serde_json::Value),
80}
81
82/// struct for typed errors of method [`organizations_organization_id_billing_tax_information_put`]
83#[derive(Debug, Clone, Serialize, Deserialize)]
84#[serde(untagged)]
85pub enum OrganizationsOrganizationIdBillingTaxInformationPutError {
86    UnknownValue(serde_json::Value),
87}
88
89/// struct for typed errors of method [`organizations_organization_id_billing_transactions_get`]
90#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum OrganizationsOrganizationIdBillingTransactionsGetError {
93    UnknownValue(serde_json::Value),
94}
95
96pub async fn organizations_organization_id_billing_get(
97    configuration: &configuration::Configuration,
98    organization_id: uuid::Uuid,
99) -> Result<(), Error<OrganizationsOrganizationIdBillingGetError>> {
100    // add a prefix to parameters to efficiently prevent name collisions
101    let p_organization_id = organization_id;
102
103    let uri_str = format!(
104        "{}/organizations/{organizationId}/billing",
105        configuration.base_path,
106        organizationId = crate::apis::urlencode(p_organization_id.to_string())
107    );
108    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
109
110    if let Some(ref user_agent) = configuration.user_agent {
111        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
112    }
113    if let Some(ref token) = configuration.oauth_access_token {
114        req_builder = req_builder.bearer_auth(token.to_owned());
115    };
116
117    let req = req_builder.build()?;
118    let resp = configuration.client.execute(req).await?;
119
120    let status = resp.status();
121
122    if !status.is_client_error() && !status.is_server_error() {
123        Ok(())
124    } else {
125        let content = resp.text().await?;
126        let entity: Option<OrganizationsOrganizationIdBillingGetError> =
127            serde_json::from_str(&content).ok();
128        Err(Error::ResponseError(ResponseContent {
129            status,
130            content,
131            entity,
132        }))
133    }
134}
135
136pub async fn organizations_organization_id_billing_history_get(
137    configuration: &configuration::Configuration,
138    organization_id: uuid::Uuid,
139) -> Result<(), Error<OrganizationsOrganizationIdBillingHistoryGetError>> {
140    // add a prefix to parameters to efficiently prevent name collisions
141    let p_organization_id = organization_id;
142
143    let uri_str = format!(
144        "{}/organizations/{organizationId}/billing/history",
145        configuration.base_path,
146        organizationId = crate::apis::urlencode(p_organization_id.to_string())
147    );
148    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
149
150    if let Some(ref user_agent) = configuration.user_agent {
151        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
152    }
153    if let Some(ref token) = configuration.oauth_access_token {
154        req_builder = req_builder.bearer_auth(token.to_owned());
155    };
156
157    let req = req_builder.build()?;
158    let resp = configuration.client.execute(req).await?;
159
160    let status = resp.status();
161
162    if !status.is_client_error() && !status.is_server_error() {
163        Ok(())
164    } else {
165        let content = resp.text().await?;
166        let entity: Option<OrganizationsOrganizationIdBillingHistoryGetError> =
167            serde_json::from_str(&content).ok();
168        Err(Error::ResponseError(ResponseContent {
169            status,
170            content,
171            entity,
172        }))
173    }
174}
175
176pub async fn organizations_organization_id_billing_invoices_get(
177    configuration: &configuration::Configuration,
178    organization_id: uuid::Uuid,
179    status: Option<&str>,
180    start_after: Option<&str>,
181) -> Result<(), Error<OrganizationsOrganizationIdBillingInvoicesGetError>> {
182    // add a prefix to parameters to efficiently prevent name collisions
183    let p_organization_id = organization_id;
184    let p_status = status;
185    let p_start_after = start_after;
186
187    let uri_str = format!(
188        "{}/organizations/{organizationId}/billing/invoices",
189        configuration.base_path,
190        organizationId = crate::apis::urlencode(p_organization_id.to_string())
191    );
192    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
193
194    if let Some(ref param_value) = p_status {
195        req_builder = req_builder.query(&[("status", &param_value.to_string())]);
196    }
197    if let Some(ref param_value) = p_start_after {
198        req_builder = req_builder.query(&[("startAfter", &param_value.to_string())]);
199    }
200    if let Some(ref user_agent) = configuration.user_agent {
201        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
202    }
203    if let Some(ref token) = configuration.oauth_access_token {
204        req_builder = req_builder.bearer_auth(token.to_owned());
205    };
206
207    let req = req_builder.build()?;
208    let resp = configuration.client.execute(req).await?;
209
210    let status = resp.status();
211
212    if !status.is_client_error() && !status.is_server_error() {
213        Ok(())
214    } else {
215        let content = resp.text().await?;
216        let entity: Option<OrganizationsOrganizationIdBillingInvoicesGetError> =
217            serde_json::from_str(&content).ok();
218        Err(Error::ResponseError(ResponseContent {
219            status,
220            content,
221            entity,
222        }))
223    }
224}
225
226pub async fn organizations_organization_id_billing_metadata_get(
227    configuration: &configuration::Configuration,
228    organization_id: uuid::Uuid,
229) -> Result<(), Error<OrganizationsOrganizationIdBillingMetadataGetError>> {
230    // add a prefix to parameters to efficiently prevent name collisions
231    let p_organization_id = organization_id;
232
233    let uri_str = format!(
234        "{}/organizations/{organizationId}/billing/metadata",
235        configuration.base_path,
236        organizationId = crate::apis::urlencode(p_organization_id.to_string())
237    );
238    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
239
240    if let Some(ref user_agent) = configuration.user_agent {
241        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
242    }
243    if let Some(ref token) = configuration.oauth_access_token {
244        req_builder = req_builder.bearer_auth(token.to_owned());
245    };
246
247    let req = req_builder.build()?;
248    let resp = configuration.client.execute(req).await?;
249
250    let status = resp.status();
251
252    if !status.is_client_error() && !status.is_server_error() {
253        Ok(())
254    } else {
255        let content = resp.text().await?;
256        let entity: Option<OrganizationsOrganizationIdBillingMetadataGetError> =
257            serde_json::from_str(&content).ok();
258        Err(Error::ResponseError(ResponseContent {
259            status,
260            content,
261            entity,
262        }))
263    }
264}
265
266pub async fn organizations_organization_id_billing_payment_method_get(
267    configuration: &configuration::Configuration,
268    organization_id: uuid::Uuid,
269) -> Result<(), Error<OrganizationsOrganizationIdBillingPaymentMethodGetError>> {
270    // add a prefix to parameters to efficiently prevent name collisions
271    let p_organization_id = organization_id;
272
273    let uri_str = format!(
274        "{}/organizations/{organizationId}/billing/payment-method",
275        configuration.base_path,
276        organizationId = crate::apis::urlencode(p_organization_id.to_string())
277    );
278    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
279
280    if let Some(ref user_agent) = configuration.user_agent {
281        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
282    }
283    if let Some(ref token) = configuration.oauth_access_token {
284        req_builder = req_builder.bearer_auth(token.to_owned());
285    };
286
287    let req = req_builder.build()?;
288    let resp = configuration.client.execute(req).await?;
289
290    let status = resp.status();
291
292    if !status.is_client_error() && !status.is_server_error() {
293        Ok(())
294    } else {
295        let content = resp.text().await?;
296        let entity: Option<OrganizationsOrganizationIdBillingPaymentMethodGetError> =
297            serde_json::from_str(&content).ok();
298        Err(Error::ResponseError(ResponseContent {
299            status,
300            content,
301            entity,
302        }))
303    }
304}
305
306pub async fn organizations_organization_id_billing_payment_method_put(
307    configuration: &configuration::Configuration,
308    organization_id: uuid::Uuid,
309    update_payment_method_request_body: Option<models::UpdatePaymentMethodRequestBody>,
310) -> Result<(), Error<OrganizationsOrganizationIdBillingPaymentMethodPutError>> {
311    // add a prefix to parameters to efficiently prevent name collisions
312    let p_organization_id = organization_id;
313    let p_update_payment_method_request_body = update_payment_method_request_body;
314
315    let uri_str = format!(
316        "{}/organizations/{organizationId}/billing/payment-method",
317        configuration.base_path,
318        organizationId = crate::apis::urlencode(p_organization_id.to_string())
319    );
320    let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
321
322    if let Some(ref user_agent) = configuration.user_agent {
323        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
324    }
325    if let Some(ref token) = configuration.oauth_access_token {
326        req_builder = req_builder.bearer_auth(token.to_owned());
327    };
328    req_builder = req_builder.json(&p_update_payment_method_request_body);
329
330    let req = req_builder.build()?;
331    let resp = configuration.client.execute(req).await?;
332
333    let status = resp.status();
334
335    if !status.is_client_error() && !status.is_server_error() {
336        Ok(())
337    } else {
338        let content = resp.text().await?;
339        let entity: Option<OrganizationsOrganizationIdBillingPaymentMethodPutError> =
340            serde_json::from_str(&content).ok();
341        Err(Error::ResponseError(ResponseContent {
342            status,
343            content,
344            entity,
345        }))
346    }
347}
348
349pub async fn organizations_organization_id_billing_payment_method_verify_bank_account_post(
350    configuration: &configuration::Configuration,
351    organization_id: uuid::Uuid,
352    verify_bank_account_request_body: Option<models::VerifyBankAccountRequestBody>,
353) -> Result<(), Error<OrganizationsOrganizationIdBillingPaymentMethodVerifyBankAccountPostError>> {
354    // add a prefix to parameters to efficiently prevent name collisions
355    let p_organization_id = organization_id;
356    let p_verify_bank_account_request_body = verify_bank_account_request_body;
357
358    let uri_str = format!(
359        "{}/organizations/{organizationId}/billing/payment-method/verify-bank-account",
360        configuration.base_path,
361        organizationId = crate::apis::urlencode(p_organization_id.to_string())
362    );
363    let mut req_builder = configuration
364        .client
365        .request(reqwest::Method::POST, &uri_str);
366
367    if let Some(ref user_agent) = configuration.user_agent {
368        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
369    }
370    if let Some(ref token) = configuration.oauth_access_token {
371        req_builder = req_builder.bearer_auth(token.to_owned());
372    };
373    req_builder = req_builder.json(&p_verify_bank_account_request_body);
374
375    let req = req_builder.build()?;
376    let resp = configuration.client.execute(req).await?;
377
378    let status = resp.status();
379
380    if !status.is_client_error() && !status.is_server_error() {
381        Ok(())
382    } else {
383        let content = resp.text().await?;
384        let entity: Option<
385            OrganizationsOrganizationIdBillingPaymentMethodVerifyBankAccountPostError,
386        > = serde_json::from_str(&content).ok();
387        Err(Error::ResponseError(ResponseContent {
388            status,
389            content,
390            entity,
391        }))
392    }
393}
394
395pub async fn organizations_organization_id_billing_restart_subscription_post(
396    configuration: &configuration::Configuration,
397    organization_id: uuid::Uuid,
398    organization_create_request_model: Option<models::OrganizationCreateRequestModel>,
399) -> Result<(), Error<OrganizationsOrganizationIdBillingRestartSubscriptionPostError>> {
400    // add a prefix to parameters to efficiently prevent name collisions
401    let p_organization_id = organization_id;
402    let p_organization_create_request_model = organization_create_request_model;
403
404    let uri_str = format!(
405        "{}/organizations/{organizationId}/billing/restart-subscription",
406        configuration.base_path,
407        organizationId = crate::apis::urlencode(p_organization_id.to_string())
408    );
409    let mut req_builder = configuration
410        .client
411        .request(reqwest::Method::POST, &uri_str);
412
413    if let Some(ref user_agent) = configuration.user_agent {
414        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
415    }
416    if let Some(ref token) = configuration.oauth_access_token {
417        req_builder = req_builder.bearer_auth(token.to_owned());
418    };
419    req_builder = req_builder.json(&p_organization_create_request_model);
420
421    let req = req_builder.build()?;
422    let resp = configuration.client.execute(req).await?;
423
424    let status = resp.status();
425
426    if !status.is_client_error() && !status.is_server_error() {
427        Ok(())
428    } else {
429        let content = resp.text().await?;
430        let entity: Option<OrganizationsOrganizationIdBillingRestartSubscriptionPostError> =
431            serde_json::from_str(&content).ok();
432        Err(Error::ResponseError(ResponseContent {
433            status,
434            content,
435            entity,
436        }))
437    }
438}
439
440pub async fn organizations_organization_id_billing_tax_information_get(
441    configuration: &configuration::Configuration,
442    organization_id: uuid::Uuid,
443) -> Result<(), Error<OrganizationsOrganizationIdBillingTaxInformationGetError>> {
444    // add a prefix to parameters to efficiently prevent name collisions
445    let p_organization_id = organization_id;
446
447    let uri_str = format!(
448        "{}/organizations/{organizationId}/billing/tax-information",
449        configuration.base_path,
450        organizationId = crate::apis::urlencode(p_organization_id.to_string())
451    );
452    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
453
454    if let Some(ref user_agent) = configuration.user_agent {
455        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
456    }
457    if let Some(ref token) = configuration.oauth_access_token {
458        req_builder = req_builder.bearer_auth(token.to_owned());
459    };
460
461    let req = req_builder.build()?;
462    let resp = configuration.client.execute(req).await?;
463
464    let status = resp.status();
465
466    if !status.is_client_error() && !status.is_server_error() {
467        Ok(())
468    } else {
469        let content = resp.text().await?;
470        let entity: Option<OrganizationsOrganizationIdBillingTaxInformationGetError> =
471            serde_json::from_str(&content).ok();
472        Err(Error::ResponseError(ResponseContent {
473            status,
474            content,
475            entity,
476        }))
477    }
478}
479
480pub async fn organizations_organization_id_billing_tax_information_put(
481    configuration: &configuration::Configuration,
482    organization_id: uuid::Uuid,
483    tax_information_request_body: Option<models::TaxInformationRequestBody>,
484) -> Result<(), Error<OrganizationsOrganizationIdBillingTaxInformationPutError>> {
485    // add a prefix to parameters to efficiently prevent name collisions
486    let p_organization_id = organization_id;
487    let p_tax_information_request_body = tax_information_request_body;
488
489    let uri_str = format!(
490        "{}/organizations/{organizationId}/billing/tax-information",
491        configuration.base_path,
492        organizationId = crate::apis::urlencode(p_organization_id.to_string())
493    );
494    let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
495
496    if let Some(ref user_agent) = configuration.user_agent {
497        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
498    }
499    if let Some(ref token) = configuration.oauth_access_token {
500        req_builder = req_builder.bearer_auth(token.to_owned());
501    };
502    req_builder = req_builder.json(&p_tax_information_request_body);
503
504    let req = req_builder.build()?;
505    let resp = configuration.client.execute(req).await?;
506
507    let status = resp.status();
508
509    if !status.is_client_error() && !status.is_server_error() {
510        Ok(())
511    } else {
512        let content = resp.text().await?;
513        let entity: Option<OrganizationsOrganizationIdBillingTaxInformationPutError> =
514            serde_json::from_str(&content).ok();
515        Err(Error::ResponseError(ResponseContent {
516            status,
517            content,
518            entity,
519        }))
520    }
521}
522
523pub async fn organizations_organization_id_billing_transactions_get(
524    configuration: &configuration::Configuration,
525    organization_id: uuid::Uuid,
526    start_after: Option<String>,
527) -> Result<(), Error<OrganizationsOrganizationIdBillingTransactionsGetError>> {
528    // add a prefix to parameters to efficiently prevent name collisions
529    let p_organization_id = organization_id;
530    let p_start_after = start_after;
531
532    let uri_str = format!(
533        "{}/organizations/{organizationId}/billing/transactions",
534        configuration.base_path,
535        organizationId = crate::apis::urlencode(p_organization_id.to_string())
536    );
537    let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
538
539    if let Some(ref param_value) = p_start_after {
540        req_builder = req_builder.query(&[("startAfter", &param_value.to_string())]);
541    }
542    if let Some(ref user_agent) = configuration.user_agent {
543        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
544    }
545    if let Some(ref token) = configuration.oauth_access_token {
546        req_builder = req_builder.bearer_auth(token.to_owned());
547    };
548
549    let req = req_builder.build()?;
550    let resp = configuration.client.execute(req).await?;
551
552    let status = resp.status();
553
554    if !status.is_client_error() && !status.is_server_error() {
555        Ok(())
556    } else {
557        let content = resp.text().await?;
558        let entity: Option<OrganizationsOrganizationIdBillingTransactionsGetError> =
559            serde_json::from_str(&content).ok();
560        Err(Error::ResponseError(ResponseContent {
561            status,
562            content,
563            entity,
564        }))
565    }
566}