Skip to main content

bitwarden_api_api/apis/
self_hosted_account_billing_v_next_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::{AuthRequired, 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 SelfHostedAccountBillingVNextApi: Send + Sync {
29    /// POST /account/billing/vnext/self-host/license
30    async fn upload_license<'a>(
31        &self,
32        email: &'a str,
33        security_stamp: &'a str,
34        api_key: &'a str,
35        license: std::path::PathBuf,
36        id: Option<uuid::Uuid>,
37        name: Option<&'a str>,
38        email_verified: Option<bool>,
39        master_password: Option<&'a str>,
40        master_password_hint: Option<&'a str>,
41        culture: Option<&'a str>,
42        two_factor_providers: Option<&'a str>,
43        two_factor_recovery_code: Option<&'a str>,
44        equivalent_domains: Option<&'a str>,
45        excluded_global_equivalent_domains: Option<&'a str>,
46        account_revision_date: Option<String>,
47        key: Option<&'a str>,
48        public_key: Option<&'a str>,
49        private_key: Option<&'a str>,
50        signed_public_key: Option<&'a str>,
51        security_version: Option<i32>,
52        security_state: Option<&'a str>,
53        premium: Option<bool>,
54        premium_expiration_date: Option<String>,
55        renewal_reminder_date: Option<String>,
56        storage: Option<i64>,
57        max_storage_gb: Option<i32>,
58        gateway: Option<models::GatewayType>,
59        gateway_customer_id: Option<&'a str>,
60        gateway_subscription_id: Option<&'a str>,
61        reference_data: Option<&'a str>,
62        license_key: Option<&'a str>,
63        kdf: Option<models::KdfType>,
64        kdf_iterations: Option<i32>,
65        kdf_memory: Option<i32>,
66        kdf_parallelism: Option<i32>,
67        creation_date: Option<String>,
68        revision_date: Option<String>,
69        force_password_reset: Option<bool>,
70        uses_key_connector: Option<bool>,
71        failed_login_count: Option<i32>,
72        last_failed_login_date: Option<String>,
73        avatar_color: Option<&'a str>,
74        last_password_change_date: Option<String>,
75        last_kdf_change_date: Option<String>,
76        last_key_rotation_date: Option<String>,
77        last_email_change_date: Option<String>,
78        verify_devices: Option<bool>,
79        v2_upgrade_token: Option<&'a str>,
80        master_password_salt: Option<&'a str>,
81    ) -> Result<(), Error<UploadLicenseError>>;
82}
83
84pub struct SelfHostedAccountBillingVNextApiClient {
85    configuration: Arc<configuration::Configuration>,
86}
87
88impl SelfHostedAccountBillingVNextApiClient {
89    pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
90        Self { configuration }
91    }
92}
93
94#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
95#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
96impl SelfHostedAccountBillingVNextApi for SelfHostedAccountBillingVNextApiClient {
97    async fn upload_license<'a>(
98        &self,
99        email: &'a str,
100        security_stamp: &'a str,
101        api_key: &'a str,
102        license: std::path::PathBuf,
103        id: Option<uuid::Uuid>,
104        name: Option<&'a str>,
105        email_verified: Option<bool>,
106        master_password: Option<&'a str>,
107        master_password_hint: Option<&'a str>,
108        culture: Option<&'a str>,
109        two_factor_providers: Option<&'a str>,
110        two_factor_recovery_code: Option<&'a str>,
111        equivalent_domains: Option<&'a str>,
112        excluded_global_equivalent_domains: Option<&'a str>,
113        account_revision_date: Option<String>,
114        key: Option<&'a str>,
115        public_key: Option<&'a str>,
116        private_key: Option<&'a str>,
117        signed_public_key: Option<&'a str>,
118        security_version: Option<i32>,
119        security_state: Option<&'a str>,
120        premium: Option<bool>,
121        premium_expiration_date: Option<String>,
122        renewal_reminder_date: Option<String>,
123        storage: Option<i64>,
124        max_storage_gb: Option<i32>,
125        gateway: Option<models::GatewayType>,
126        gateway_customer_id: Option<&'a str>,
127        gateway_subscription_id: Option<&'a str>,
128        reference_data: Option<&'a str>,
129        license_key: Option<&'a str>,
130        kdf: Option<models::KdfType>,
131        kdf_iterations: Option<i32>,
132        kdf_memory: Option<i32>,
133        kdf_parallelism: Option<i32>,
134        creation_date: Option<String>,
135        revision_date: Option<String>,
136        force_password_reset: Option<bool>,
137        uses_key_connector: Option<bool>,
138        failed_login_count: Option<i32>,
139        last_failed_login_date: Option<String>,
140        avatar_color: Option<&'a str>,
141        last_password_change_date: Option<String>,
142        last_kdf_change_date: Option<String>,
143        last_key_rotation_date: Option<String>,
144        last_email_change_date: Option<String>,
145        verify_devices: Option<bool>,
146        v2_upgrade_token: Option<&'a str>,
147        master_password_salt: Option<&'a str>,
148    ) -> Result<(), Error<UploadLicenseError>> {
149        let local_var_configuration = &self.configuration;
150
151        let local_var_client = &local_var_configuration.client;
152
153        let local_var_uri_str = format!(
154            "{}/account/billing/vnext/self-host/license",
155            local_var_configuration.base_path
156        );
157        let mut local_var_req_builder =
158            local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
159
160        if let Some(ref param_value) = id {
161            local_var_req_builder =
162                local_var_req_builder.query(&[("id", &param_value.to_string())]);
163        }
164        if let Some(ref param_value) = name {
165            local_var_req_builder =
166                local_var_req_builder.query(&[("name", &param_value.to_string())]);
167        }
168        local_var_req_builder = local_var_req_builder.query(&[("email", &email.to_string())]);
169        if let Some(ref param_value) = email_verified {
170            local_var_req_builder =
171                local_var_req_builder.query(&[("emailVerified", &param_value.to_string())]);
172        }
173        if let Some(ref param_value) = master_password {
174            local_var_req_builder =
175                local_var_req_builder.query(&[("masterPassword", &param_value.to_string())]);
176        }
177        if let Some(ref param_value) = master_password_hint {
178            local_var_req_builder =
179                local_var_req_builder.query(&[("masterPasswordHint", &param_value.to_string())]);
180        }
181        if let Some(ref param_value) = culture {
182            local_var_req_builder =
183                local_var_req_builder.query(&[("culture", &param_value.to_string())]);
184        }
185        local_var_req_builder =
186            local_var_req_builder.query(&[("securityStamp", &security_stamp.to_string())]);
187        if let Some(ref param_value) = two_factor_providers {
188            local_var_req_builder =
189                local_var_req_builder.query(&[("twoFactorProviders", &param_value.to_string())]);
190        }
191        if let Some(ref param_value) = two_factor_recovery_code {
192            local_var_req_builder =
193                local_var_req_builder.query(&[("twoFactorRecoveryCode", &param_value.to_string())]);
194        }
195        if let Some(ref param_value) = equivalent_domains {
196            local_var_req_builder =
197                local_var_req_builder.query(&[("equivalentDomains", &param_value.to_string())]);
198        }
199        if let Some(ref param_value) = excluded_global_equivalent_domains {
200            local_var_req_builder = local_var_req_builder
201                .query(&[("excludedGlobalEquivalentDomains", &param_value.to_string())]);
202        }
203        if let Some(ref param_value) = account_revision_date {
204            local_var_req_builder =
205                local_var_req_builder.query(&[("accountRevisionDate", &param_value.to_string())]);
206        }
207        if let Some(ref param_value) = key {
208            local_var_req_builder =
209                local_var_req_builder.query(&[("key", &param_value.to_string())]);
210        }
211        if let Some(ref param_value) = public_key {
212            local_var_req_builder =
213                local_var_req_builder.query(&[("publicKey", &param_value.to_string())]);
214        }
215        if let Some(ref param_value) = private_key {
216            local_var_req_builder =
217                local_var_req_builder.query(&[("privateKey", &param_value.to_string())]);
218        }
219        if let Some(ref param_value) = signed_public_key {
220            local_var_req_builder =
221                local_var_req_builder.query(&[("signedPublicKey", &param_value.to_string())]);
222        }
223        if let Some(ref param_value) = security_version {
224            local_var_req_builder =
225                local_var_req_builder.query(&[("securityVersion", &param_value.to_string())]);
226        }
227        if let Some(ref param_value) = security_state {
228            local_var_req_builder =
229                local_var_req_builder.query(&[("securityState", &param_value.to_string())]);
230        }
231        if let Some(ref param_value) = premium {
232            local_var_req_builder =
233                local_var_req_builder.query(&[("premium", &param_value.to_string())]);
234        }
235        if let Some(ref param_value) = premium_expiration_date {
236            local_var_req_builder =
237                local_var_req_builder.query(&[("premiumExpirationDate", &param_value.to_string())]);
238        }
239        if let Some(ref param_value) = renewal_reminder_date {
240            local_var_req_builder =
241                local_var_req_builder.query(&[("renewalReminderDate", &param_value.to_string())]);
242        }
243        if let Some(ref param_value) = storage {
244            local_var_req_builder =
245                local_var_req_builder.query(&[("storage", &param_value.to_string())]);
246        }
247        if let Some(ref param_value) = max_storage_gb {
248            local_var_req_builder =
249                local_var_req_builder.query(&[("maxStorageGb", &param_value.to_string())]);
250        }
251        if let Some(ref param_value) = gateway {
252            local_var_req_builder =
253                local_var_req_builder.query(&[("gateway", &param_value.to_string())]);
254        }
255        if let Some(ref param_value) = gateway_customer_id {
256            local_var_req_builder =
257                local_var_req_builder.query(&[("gatewayCustomerId", &param_value.to_string())]);
258        }
259        if let Some(ref param_value) = gateway_subscription_id {
260            local_var_req_builder =
261                local_var_req_builder.query(&[("gatewaySubscriptionId", &param_value.to_string())]);
262        }
263        if let Some(ref param_value) = reference_data {
264            local_var_req_builder =
265                local_var_req_builder.query(&[("referenceData", &param_value.to_string())]);
266        }
267        if let Some(ref param_value) = license_key {
268            local_var_req_builder =
269                local_var_req_builder.query(&[("licenseKey", &param_value.to_string())]);
270        }
271        local_var_req_builder = local_var_req_builder.query(&[("apiKey", &api_key.to_string())]);
272        if let Some(ref param_value) = kdf {
273            local_var_req_builder =
274                local_var_req_builder.query(&[("kdf", &param_value.to_string())]);
275        }
276        if let Some(ref param_value) = kdf_iterations {
277            local_var_req_builder =
278                local_var_req_builder.query(&[("kdfIterations", &param_value.to_string())]);
279        }
280        if let Some(ref param_value) = kdf_memory {
281            local_var_req_builder =
282                local_var_req_builder.query(&[("kdfMemory", &param_value.to_string())]);
283        }
284        if let Some(ref param_value) = kdf_parallelism {
285            local_var_req_builder =
286                local_var_req_builder.query(&[("kdfParallelism", &param_value.to_string())]);
287        }
288        if let Some(ref param_value) = creation_date {
289            local_var_req_builder =
290                local_var_req_builder.query(&[("creationDate", &param_value.to_string())]);
291        }
292        if let Some(ref param_value) = revision_date {
293            local_var_req_builder =
294                local_var_req_builder.query(&[("revisionDate", &param_value.to_string())]);
295        }
296        if let Some(ref param_value) = force_password_reset {
297            local_var_req_builder =
298                local_var_req_builder.query(&[("forcePasswordReset", &param_value.to_string())]);
299        }
300        if let Some(ref param_value) = uses_key_connector {
301            local_var_req_builder =
302                local_var_req_builder.query(&[("usesKeyConnector", &param_value.to_string())]);
303        }
304        if let Some(ref param_value) = failed_login_count {
305            local_var_req_builder =
306                local_var_req_builder.query(&[("failedLoginCount", &param_value.to_string())]);
307        }
308        if let Some(ref param_value) = last_failed_login_date {
309            local_var_req_builder =
310                local_var_req_builder.query(&[("lastFailedLoginDate", &param_value.to_string())]);
311        }
312        if let Some(ref param_value) = avatar_color {
313            local_var_req_builder =
314                local_var_req_builder.query(&[("avatarColor", &param_value.to_string())]);
315        }
316        if let Some(ref param_value) = last_password_change_date {
317            local_var_req_builder = local_var_req_builder
318                .query(&[("lastPasswordChangeDate", &param_value.to_string())]);
319        }
320        if let Some(ref param_value) = last_kdf_change_date {
321            local_var_req_builder =
322                local_var_req_builder.query(&[("lastKdfChangeDate", &param_value.to_string())]);
323        }
324        if let Some(ref param_value) = last_key_rotation_date {
325            local_var_req_builder =
326                local_var_req_builder.query(&[("lastKeyRotationDate", &param_value.to_string())]);
327        }
328        if let Some(ref param_value) = last_email_change_date {
329            local_var_req_builder =
330                local_var_req_builder.query(&[("lastEmailChangeDate", &param_value.to_string())]);
331        }
332        if let Some(ref param_value) = verify_devices {
333            local_var_req_builder =
334                local_var_req_builder.query(&[("verifyDevices", &param_value.to_string())]);
335        }
336        if let Some(ref param_value) = v2_upgrade_token {
337            local_var_req_builder =
338                local_var_req_builder.query(&[("v2UpgradeToken", &param_value.to_string())]);
339        }
340        if let Some(ref param_value) = master_password_salt {
341            local_var_req_builder =
342                local_var_req_builder.query(&[("masterPasswordSalt", &param_value.to_string())]);
343        }
344        local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
345        let mut local_var_form = reqwest::multipart::Form::new();
346        // TODO: support file upload for 'license' parameter
347        local_var_req_builder = local_var_req_builder.multipart(local_var_form);
348
349        bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
350    }
351}
352
353/// struct for typed errors of method [`SelfHostedAccountBillingVNextApi::upload_license`]
354#[derive(Debug, Clone, Serialize, Deserialize)]
355#[serde(untagged)]
356pub enum UploadLicenseError {
357    UnknownValue(serde_json::Value),
358}