use serde::{Deserialize, Serialize};
use crate::models;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrganizationNoPaymentCreateRequest {
#[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>,
}
impl OrganizationNoPaymentCreateRequest {
pub fn new(
name: String,
billing_email: String,
key: String,
keys: models::OrganizationKeysRequestModel,
use_secrets_manager: bool,
) -> OrganizationNoPaymentCreateRequest {
OrganizationNoPaymentCreateRequest {
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,
}
}
}