#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct PlanResponseModel {
#[serde(rename = "object", skip_serializing_if = "Option::is_none")]
pub object: Option<String>,
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<crate::models::PlanType>,
#[serde(rename = "product", skip_serializing_if = "Option::is_none")]
pub product: Option<crate::models::ProductType>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "isAnnual", skip_serializing_if = "Option::is_none")]
pub is_annual: Option<bool>,
#[serde(
rename = "nameLocalizationKey",
skip_serializing_if = "Option::is_none"
)]
pub name_localization_key: Option<String>,
#[serde(
rename = "descriptionLocalizationKey",
skip_serializing_if = "Option::is_none"
)]
pub description_localization_key: Option<String>,
#[serde(
rename = "canBeUsedByBusiness",
skip_serializing_if = "Option::is_none"
)]
pub can_be_used_by_business: Option<bool>,
#[serde(rename = "baseSeats", skip_serializing_if = "Option::is_none")]
pub base_seats: Option<i32>,
#[serde(rename = "baseStorageGb", skip_serializing_if = "Option::is_none")]
pub base_storage_gb: Option<i32>,
#[serde(rename = "maxCollections", skip_serializing_if = "Option::is_none")]
pub max_collections: Option<i32>,
#[serde(rename = "maxUsers", skip_serializing_if = "Option::is_none")]
pub max_users: Option<i32>,
#[serde(
rename = "hasAdditionalSeatsOption",
skip_serializing_if = "Option::is_none"
)]
pub has_additional_seats_option: Option<bool>,
#[serde(rename = "maxAdditionalSeats", skip_serializing_if = "Option::is_none")]
pub max_additional_seats: Option<i32>,
#[serde(
rename = "hasAdditionalStorageOption",
skip_serializing_if = "Option::is_none"
)]
pub has_additional_storage_option: Option<bool>,
#[serde(
rename = "maxAdditionalStorage",
skip_serializing_if = "Option::is_none"
)]
pub max_additional_storage: Option<i32>,
#[serde(
rename = "hasPremiumAccessOption",
skip_serializing_if = "Option::is_none"
)]
pub has_premium_access_option: Option<bool>,
#[serde(rename = "trialPeriodDays", skip_serializing_if = "Option::is_none")]
pub trial_period_days: Option<i32>,
#[serde(rename = "hasSelfHost", skip_serializing_if = "Option::is_none")]
pub has_self_host: Option<bool>,
#[serde(rename = "hasPolicies", skip_serializing_if = "Option::is_none")]
pub has_policies: Option<bool>,
#[serde(rename = "hasGroups", skip_serializing_if = "Option::is_none")]
pub has_groups: Option<bool>,
#[serde(rename = "hasDirectory", skip_serializing_if = "Option::is_none")]
pub has_directory: Option<bool>,
#[serde(rename = "hasEvents", skip_serializing_if = "Option::is_none")]
pub has_events: Option<bool>,
#[serde(rename = "hasTotp", skip_serializing_if = "Option::is_none")]
pub has_totp: Option<bool>,
#[serde(rename = "has2fa", skip_serializing_if = "Option::is_none")]
pub has2fa: Option<bool>,
#[serde(rename = "hasApi", skip_serializing_if = "Option::is_none")]
pub has_api: Option<bool>,
#[serde(rename = "hasSso", skip_serializing_if = "Option::is_none")]
pub has_sso: Option<bool>,
#[serde(rename = "hasResetPassword", skip_serializing_if = "Option::is_none")]
pub has_reset_password: Option<bool>,
#[serde(rename = "usersGetPremium", skip_serializing_if = "Option::is_none")]
pub users_get_premium: Option<bool>,
#[serde(rename = "upgradeSortOrder", skip_serializing_if = "Option::is_none")]
pub upgrade_sort_order: Option<i32>,
#[serde(rename = "displaySortOrder", skip_serializing_if = "Option::is_none")]
pub display_sort_order: Option<i32>,
#[serde(rename = "legacyYear", skip_serializing_if = "Option::is_none")]
pub legacy_year: Option<i32>,
#[serde(rename = "disabled", skip_serializing_if = "Option::is_none")]
pub disabled: Option<bool>,
#[serde(rename = "stripePlanId", skip_serializing_if = "Option::is_none")]
pub stripe_plan_id: Option<String>,
#[serde(rename = "stripeSeatPlanId", skip_serializing_if = "Option::is_none")]
pub stripe_seat_plan_id: Option<String>,
#[serde(
rename = "stripeStoragePlanId",
skip_serializing_if = "Option::is_none"
)]
pub stripe_storage_plan_id: Option<String>,
#[serde(
rename = "stripePremiumAccessPlanId",
skip_serializing_if = "Option::is_none"
)]
pub stripe_premium_access_plan_id: Option<String>,
#[serde(rename = "basePrice", skip_serializing_if = "Option::is_none")]
pub base_price: Option<f64>,
#[serde(rename = "seatPrice", skip_serializing_if = "Option::is_none")]
pub seat_price: Option<f64>,
#[serde(
rename = "additionalStoragePricePerGb",
skip_serializing_if = "Option::is_none"
)]
pub additional_storage_price_per_gb: Option<f64>,
#[serde(
rename = "premiumAccessOptionPrice",
skip_serializing_if = "Option::is_none"
)]
pub premium_access_option_price: Option<f64>,
#[serde(
rename = "stripeServiceAccountPlanId",
skip_serializing_if = "Option::is_none"
)]
pub stripe_service_account_plan_id: Option<String>,
#[serde(
rename = "additionalPricePerServiceAccount",
skip_serializing_if = "Option::is_none"
)]
pub additional_price_per_service_account: Option<f64>,
#[serde(rename = "baseServiceAccount", skip_serializing_if = "Option::is_none")]
pub base_service_account: Option<i32>,
#[serde(rename = "maxServiceAccounts", skip_serializing_if = "Option::is_none")]
pub max_service_accounts: Option<i32>,
#[serde(
rename = "maxAdditionalServiceAccounts",
skip_serializing_if = "Option::is_none"
)]
pub max_additional_service_accounts: Option<i32>,
#[serde(
rename = "hasAdditionalServiceAccountOption",
skip_serializing_if = "Option::is_none"
)]
pub has_additional_service_account_option: Option<bool>,
#[serde(rename = "maxProjects", skip_serializing_if = "Option::is_none")]
pub max_projects: Option<i32>,
#[serde(rename = "bitwardenProduct", skip_serializing_if = "Option::is_none")]
pub bitwarden_product: Option<crate::models::BitwardenProductType>,
}
impl PlanResponseModel {
pub fn new() -> PlanResponseModel {
PlanResponseModel {
object: None,
r#type: None,
product: None,
name: None,
is_annual: None,
name_localization_key: None,
description_localization_key: None,
can_be_used_by_business: None,
base_seats: None,
base_storage_gb: None,
max_collections: None,
max_users: None,
has_additional_seats_option: None,
max_additional_seats: None,
has_additional_storage_option: None,
max_additional_storage: None,
has_premium_access_option: None,
trial_period_days: None,
has_self_host: None,
has_policies: None,
has_groups: None,
has_directory: None,
has_events: None,
has_totp: None,
has2fa: None,
has_api: None,
has_sso: None,
has_reset_password: None,
users_get_premium: None,
upgrade_sort_order: None,
display_sort_order: None,
legacy_year: None,
disabled: None,
stripe_plan_id: None,
stripe_seat_plan_id: None,
stripe_storage_plan_id: None,
stripe_premium_access_plan_id: None,
base_price: None,
seat_price: None,
additional_storage_price_per_gb: None,
premium_access_option_price: None,
stripe_service_account_plan_id: None,
additional_price_per_service_account: None,
base_service_account: None,
max_service_accounts: None,
max_additional_service_accounts: None,
has_additional_service_account_option: None,
max_projects: None,
bitwarden_product: None,
}
}
}