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 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,
        }
    }
}