bitwarden-api-api 3.0.0

Api bindings for the Bitwarden API.
Documentation
/*
 * Bitwarden Internal API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: latest
 *
 * Generated by: https://openapi-generator.tech
 */

use serde::{Deserialize, Serialize};

use crate::models;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrganizationCreateRequestModel {
    #[serde(rename = "name", alias = "Name")]
    pub name: String,
    #[serde(
        rename = "businessName",
        alias = "BusinessName",
        skip_serializing_if = "Option::is_none"
    )]
    pub business_name: Option<String>,
    #[serde(rename = "billingEmail", alias = "BillingEmail")]
    pub billing_email: String,
    #[serde(
        rename = "planType",
        alias = "PlanType",
        skip_serializing_if = "Option::is_none"
    )]
    pub plan_type: Option<models::PlanType>,
    #[serde(rename = "key", alias = "Key")]
    pub key: String,
    #[serde(rename = "keys", alias = "Keys")]
    pub keys: Box<models::OrganizationKeysRequestModel>,
    #[serde(
        rename = "paymentMethodType",
        alias = "PaymentMethodType",
        skip_serializing_if = "Option::is_none"
    )]
    pub payment_method_type: Option<models::PaymentMethodType>,
    #[serde(
        rename = "paymentToken",
        alias = "PaymentToken",
        skip_serializing_if = "Option::is_none"
    )]
    pub payment_token: Option<String>,
    #[serde(
        rename = "additionalSeats",
        alias = "AdditionalSeats",
        skip_serializing_if = "Option::is_none"
    )]
    pub additional_seats: Option<i32>,
    #[serde(
        rename = "additionalStorageGb",
        alias = "AdditionalStorageGb",
        skip_serializing_if = "Option::is_none"
    )]
    pub additional_storage_gb: Option<i32>,
    #[serde(
        rename = "premiumAccessAddon",
        alias = "PremiumAccessAddon",
        skip_serializing_if = "Option::is_none"
    )]
    pub premium_access_addon: Option<bool>,
    #[serde(
        rename = "collectionName",
        alias = "CollectionName",
        skip_serializing_if = "Option::is_none"
    )]
    pub collection_name: Option<String>,
    #[serde(
        rename = "taxIdNumber",
        alias = "TaxIdNumber",
        skip_serializing_if = "Option::is_none"
    )]
    pub tax_id_number: Option<String>,
    #[serde(
        rename = "billingAddressLine1",
        alias = "BillingAddressLine1",
        skip_serializing_if = "Option::is_none"
    )]
    pub billing_address_line1: Option<String>,
    #[serde(
        rename = "billingAddressLine2",
        alias = "BillingAddressLine2",
        skip_serializing_if = "Option::is_none"
    )]
    pub billing_address_line2: Option<String>,
    #[serde(
        rename = "billingAddressCity",
        alias = "BillingAddressCity",
        skip_serializing_if = "Option::is_none"
    )]
    pub billing_address_city: Option<String>,
    #[serde(
        rename = "billingAddressState",
        alias = "BillingAddressState",
        skip_serializing_if = "Option::is_none"
    )]
    pub billing_address_state: Option<String>,
    #[serde(
        rename = "billingAddressPostalCode",
        alias = "BillingAddressPostalCode",
        skip_serializing_if = "Option::is_none"
    )]
    pub billing_address_postal_code: Option<String>,
    #[serde(
        rename = "billingAddressCountry",
        alias = "BillingAddressCountry",
        skip_serializing_if = "Option::is_none"
    )]
    pub billing_address_country: Option<String>,
    #[serde(
        rename = "maxAutoscaleSeats",
        alias = "MaxAutoscaleSeats",
        skip_serializing_if = "Option::is_none"
    )]
    pub max_autoscale_seats: Option<i32>,
    #[serde(
        rename = "additionalSmSeats",
        alias = "AdditionalSmSeats",
        skip_serializing_if = "Option::is_none"
    )]
    pub additional_sm_seats: Option<i32>,
    #[serde(
        rename = "additionalServiceAccounts",
        alias = "AdditionalServiceAccounts",
        skip_serializing_if = "Option::is_none"
    )]
    pub additional_service_accounts: Option<i32>,
    #[serde(rename = "useSecretsManager", alias = "UseSecretsManager")]
    pub use_secrets_manager: bool,
    #[serde(
        rename = "isFromSecretsManagerTrial",
        alias = "IsFromSecretsManagerTrial",
        skip_serializing_if = "Option::is_none"
    )]
    pub is_from_secrets_manager_trial: Option<bool>,
    #[serde(
        rename = "initiationPath",
        alias = "InitiationPath",
        skip_serializing_if = "Option::is_none"
    )]
    pub initiation_path: Option<String>,
    #[serde(
        rename = "skipTrial",
        alias = "SkipTrial",
        skip_serializing_if = "Option::is_none"
    )]
    pub skip_trial: Option<bool>,
    #[serde(
        rename = "coupons",
        alias = "Coupons",
        skip_serializing_if = "Option::is_none"
    )]
    pub coupons: Option<Vec<String>>,
}

impl OrganizationCreateRequestModel {
    pub fn new(
        name: String,
        billing_email: String,
        key: String,
        keys: models::OrganizationKeysRequestModel,
        use_secrets_manager: bool,
    ) -> OrganizationCreateRequestModel {
        OrganizationCreateRequestModel {
            name,
            business_name: None,
            billing_email,
            plan_type: None,
            key,
            keys: Box::new(keys),
            payment_method_type: None,
            payment_token: None,
            additional_seats: None,
            additional_storage_gb: None,
            premium_access_addon: None,
            collection_name: None,
            tax_id_number: None,
            billing_address_line1: None,
            billing_address_line2: None,
            billing_address_city: None,
            billing_address_state: None,
            billing_address_postal_code: None,
            billing_address_country: None,
            max_autoscale_seats: None,
            additional_sm_seats: None,
            additional_service_accounts: None,
            use_secrets_manager,
            is_from_secrets_manager_trial: None,
            initiation_path: None,
            skip_trial: None,
            coupons: None,
        }
    }
}