use serde::{Deserialize, Serialize};
use crate::models;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrganizationSubscriptionPurchaseRequest {
#[serde(rename = "tier", alias = "Tier")]
pub tier: models::ProductTierType,
#[serde(rename = "cadence", alias = "Cadence")]
pub cadence: models::PlanCadenceType,
#[serde(rename = "passwordManager", alias = "PasswordManager")]
pub password_manager: Box<models::PasswordManagerPurchaseSelections>,
#[serde(
rename = "secretsManager",
alias = "SecretsManager",
skip_serializing_if = "Option::is_none"
)]
pub secrets_manager: Option<Box<models::SecretsManagerPurchaseSelections>>,
#[serde(
rename = "coupons",
alias = "Coupons",
skip_serializing_if = "Option::is_none"
)]
pub coupons: Option<Vec<String>>,
}
impl OrganizationSubscriptionPurchaseRequest {
pub fn new(
tier: models::ProductTierType,
cadence: models::PlanCadenceType,
password_manager: models::PasswordManagerPurchaseSelections,
) -> OrganizationSubscriptionPurchaseRequest {
OrganizationSubscriptionPurchaseRequest {
tier,
cadence,
password_manager: Box::new(password_manager),
secrets_manager: None,
coupons: None,
}
}
}