1use reqwest;
12use serde::{de::Error as _, Deserialize, Serialize};
13
14use super::{configuration, ContentType, Error};
15use crate::{apis::ResponseContent, models};
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum ProvidersProviderIdBillingInvoicesGetError {
21 UnknownValue(serde_json::Value),
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(untagged)]
27pub enum ProvidersProviderIdBillingInvoicesInvoiceIdGetError {
28 UnknownValue(serde_json::Value),
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum ProvidersProviderIdBillingPaymentMethodPutError {
35 UnknownValue(serde_json::Value),
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum ProvidersProviderIdBillingPaymentMethodVerifyBankAccountPostError {
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum ProvidersProviderIdBillingSubscriptionGetError {
50 UnknownValue(serde_json::Value),
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum ProvidersProviderIdBillingTaxInformationGetError {
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum ProvidersProviderIdBillingTaxInformationPutError {
64 UnknownValue(serde_json::Value),
65}
66
67pub async fn providers_provider_id_billing_invoices_get(
68 configuration: &configuration::Configuration,
69 provider_id: uuid::Uuid,
70) -> Result<(), Error<ProvidersProviderIdBillingInvoicesGetError>> {
71 let p_provider_id = provider_id;
73
74 let uri_str = format!(
75 "{}/providers/{providerId}/billing/invoices",
76 configuration.base_path,
77 providerId = crate::apis::urlencode(p_provider_id.to_string())
78 );
79 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
80
81 if let Some(ref user_agent) = configuration.user_agent {
82 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
83 }
84 if let Some(ref token) = configuration.oauth_access_token {
85 req_builder = req_builder.bearer_auth(token.to_owned());
86 };
87
88 let req = req_builder.build()?;
89 let resp = configuration.client.execute(req).await?;
90
91 let status = resp.status();
92
93 if !status.is_client_error() && !status.is_server_error() {
94 Ok(())
95 } else {
96 let content = resp.text().await?;
97 let entity: Option<ProvidersProviderIdBillingInvoicesGetError> =
98 serde_json::from_str(&content).ok();
99 Err(Error::ResponseError(ResponseContent {
100 status,
101 content,
102 entity,
103 }))
104 }
105}
106
107pub async fn providers_provider_id_billing_invoices_invoice_id_get(
108 configuration: &configuration::Configuration,
109 provider_id: uuid::Uuid,
110 invoice_id: &str,
111) -> Result<(), Error<ProvidersProviderIdBillingInvoicesInvoiceIdGetError>> {
112 let p_provider_id = provider_id;
114 let p_invoice_id = invoice_id;
115
116 let uri_str = format!(
117 "{}/providers/{providerId}/billing/invoices/{invoiceId}",
118 configuration.base_path,
119 providerId = crate::apis::urlencode(p_provider_id.to_string()),
120 invoiceId = crate::apis::urlencode(p_invoice_id)
121 );
122 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
123
124 if let Some(ref user_agent) = configuration.user_agent {
125 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
126 }
127 if let Some(ref token) = configuration.oauth_access_token {
128 req_builder = req_builder.bearer_auth(token.to_owned());
129 };
130
131 let req = req_builder.build()?;
132 let resp = configuration.client.execute(req).await?;
133
134 let status = resp.status();
135
136 if !status.is_client_error() && !status.is_server_error() {
137 Ok(())
138 } else {
139 let content = resp.text().await?;
140 let entity: Option<ProvidersProviderIdBillingInvoicesInvoiceIdGetError> =
141 serde_json::from_str(&content).ok();
142 Err(Error::ResponseError(ResponseContent {
143 status,
144 content,
145 entity,
146 }))
147 }
148}
149
150pub async fn providers_provider_id_billing_payment_method_put(
151 configuration: &configuration::Configuration,
152 provider_id: uuid::Uuid,
153 update_payment_method_request_body: Option<models::UpdatePaymentMethodRequestBody>,
154) -> Result<(), Error<ProvidersProviderIdBillingPaymentMethodPutError>> {
155 let p_provider_id = provider_id;
157 let p_update_payment_method_request_body = update_payment_method_request_body;
158
159 let uri_str = format!(
160 "{}/providers/{providerId}/billing/payment-method",
161 configuration.base_path,
162 providerId = crate::apis::urlencode(p_provider_id.to_string())
163 );
164 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
165
166 if let Some(ref user_agent) = configuration.user_agent {
167 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
168 }
169 if let Some(ref token) = configuration.oauth_access_token {
170 req_builder = req_builder.bearer_auth(token.to_owned());
171 };
172 req_builder = req_builder.json(&p_update_payment_method_request_body);
173
174 let req = req_builder.build()?;
175 let resp = configuration.client.execute(req).await?;
176
177 let status = resp.status();
178
179 if !status.is_client_error() && !status.is_server_error() {
180 Ok(())
181 } else {
182 let content = resp.text().await?;
183 let entity: Option<ProvidersProviderIdBillingPaymentMethodPutError> =
184 serde_json::from_str(&content).ok();
185 Err(Error::ResponseError(ResponseContent {
186 status,
187 content,
188 entity,
189 }))
190 }
191}
192
193pub async fn providers_provider_id_billing_payment_method_verify_bank_account_post(
194 configuration: &configuration::Configuration,
195 provider_id: uuid::Uuid,
196 verify_bank_account_request_body: Option<models::VerifyBankAccountRequestBody>,
197) -> Result<(), Error<ProvidersProviderIdBillingPaymentMethodVerifyBankAccountPostError>> {
198 let p_provider_id = provider_id;
200 let p_verify_bank_account_request_body = verify_bank_account_request_body;
201
202 let uri_str = format!(
203 "{}/providers/{providerId}/billing/payment-method/verify-bank-account",
204 configuration.base_path,
205 providerId = crate::apis::urlencode(p_provider_id.to_string())
206 );
207 let mut req_builder = configuration
208 .client
209 .request(reqwest::Method::POST, &uri_str);
210
211 if let Some(ref user_agent) = configuration.user_agent {
212 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
213 }
214 if let Some(ref token) = configuration.oauth_access_token {
215 req_builder = req_builder.bearer_auth(token.to_owned());
216 };
217 req_builder = req_builder.json(&p_verify_bank_account_request_body);
218
219 let req = req_builder.build()?;
220 let resp = configuration.client.execute(req).await?;
221
222 let status = resp.status();
223
224 if !status.is_client_error() && !status.is_server_error() {
225 Ok(())
226 } else {
227 let content = resp.text().await?;
228 let entity: Option<ProvidersProviderIdBillingPaymentMethodVerifyBankAccountPostError> =
229 serde_json::from_str(&content).ok();
230 Err(Error::ResponseError(ResponseContent {
231 status,
232 content,
233 entity,
234 }))
235 }
236}
237
238pub async fn providers_provider_id_billing_subscription_get(
239 configuration: &configuration::Configuration,
240 provider_id: uuid::Uuid,
241) -> Result<(), Error<ProvidersProviderIdBillingSubscriptionGetError>> {
242 let p_provider_id = provider_id;
244
245 let uri_str = format!(
246 "{}/providers/{providerId}/billing/subscription",
247 configuration.base_path,
248 providerId = crate::apis::urlencode(p_provider_id.to_string())
249 );
250 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
251
252 if let Some(ref user_agent) = configuration.user_agent {
253 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
254 }
255 if let Some(ref token) = configuration.oauth_access_token {
256 req_builder = req_builder.bearer_auth(token.to_owned());
257 };
258
259 let req = req_builder.build()?;
260 let resp = configuration.client.execute(req).await?;
261
262 let status = resp.status();
263
264 if !status.is_client_error() && !status.is_server_error() {
265 Ok(())
266 } else {
267 let content = resp.text().await?;
268 let entity: Option<ProvidersProviderIdBillingSubscriptionGetError> =
269 serde_json::from_str(&content).ok();
270 Err(Error::ResponseError(ResponseContent {
271 status,
272 content,
273 entity,
274 }))
275 }
276}
277
278pub async fn providers_provider_id_billing_tax_information_get(
279 configuration: &configuration::Configuration,
280 provider_id: uuid::Uuid,
281) -> Result<(), Error<ProvidersProviderIdBillingTaxInformationGetError>> {
282 let p_provider_id = provider_id;
284
285 let uri_str = format!(
286 "{}/providers/{providerId}/billing/tax-information",
287 configuration.base_path,
288 providerId = crate::apis::urlencode(p_provider_id.to_string())
289 );
290 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
291
292 if let Some(ref user_agent) = configuration.user_agent {
293 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
294 }
295 if let Some(ref token) = configuration.oauth_access_token {
296 req_builder = req_builder.bearer_auth(token.to_owned());
297 };
298
299 let req = req_builder.build()?;
300 let resp = configuration.client.execute(req).await?;
301
302 let status = resp.status();
303
304 if !status.is_client_error() && !status.is_server_error() {
305 Ok(())
306 } else {
307 let content = resp.text().await?;
308 let entity: Option<ProvidersProviderIdBillingTaxInformationGetError> =
309 serde_json::from_str(&content).ok();
310 Err(Error::ResponseError(ResponseContent {
311 status,
312 content,
313 entity,
314 }))
315 }
316}
317
318pub async fn providers_provider_id_billing_tax_information_put(
319 configuration: &configuration::Configuration,
320 provider_id: uuid::Uuid,
321 tax_information_request_body: Option<models::TaxInformationRequestBody>,
322) -> Result<(), Error<ProvidersProviderIdBillingTaxInformationPutError>> {
323 let p_provider_id = provider_id;
325 let p_tax_information_request_body = tax_information_request_body;
326
327 let uri_str = format!(
328 "{}/providers/{providerId}/billing/tax-information",
329 configuration.base_path,
330 providerId = crate::apis::urlencode(p_provider_id.to_string())
331 );
332 let mut req_builder = configuration.client.request(reqwest::Method::PUT, &uri_str);
333
334 if let Some(ref user_agent) = configuration.user_agent {
335 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
336 }
337 if let Some(ref token) = configuration.oauth_access_token {
338 req_builder = req_builder.bearer_auth(token.to_owned());
339 };
340 req_builder = req_builder.json(&p_tax_information_request_body);
341
342 let req = req_builder.build()?;
343 let resp = configuration.client.execute(req).await?;
344
345 let status = resp.status();
346
347 if !status.is_client_error() && !status.is_server_error() {
348 Ok(())
349 } else {
350 let content = resp.text().await?;
351 let entity: Option<ProvidersProviderIdBillingTaxInformationPutError> =
352 serde_json::from_str(&content).ok();
353 Err(Error::ResponseError(ResponseContent {
354 status,
355 content,
356 entity,
357 }))
358 }
359}