use serde::{Deserialize, Serialize};
use crate::models;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PremiumCloudHostedSubscriptionRequest {
#[serde(
rename = "tokenizedPaymentMethod",
alias = "TokenizedPaymentMethod",
skip_serializing_if = "Option::is_none"
)]
pub tokenized_payment_method: Option<Box<models::MinimalTokenizedPaymentMethodRequest>>,
#[serde(
rename = "nonTokenizedPaymentMethod",
alias = "NonTokenizedPaymentMethod",
skip_serializing_if = "Option::is_none"
)]
pub non_tokenized_payment_method: Option<Box<models::NonTokenizedPaymentMethodRequest>>,
#[serde(rename = "billingAddress", alias = "BillingAddress")]
pub billing_address: Box<models::MinimalBillingAddressRequest>,
#[serde(
rename = "additionalStorageGb",
alias = "AdditionalStorageGb",
skip_serializing_if = "Option::is_none"
)]
pub additional_storage_gb: Option<i32>,
#[serde(
rename = "coupons",
alias = "Coupons",
skip_serializing_if = "Option::is_none"
)]
pub coupons: Option<Vec<String>>,
#[serde(
rename = "fromMarketing",
alias = "FromMarketing",
skip_serializing_if = "Option::is_none"
)]
pub from_marketing: Option<String>,
}
impl PremiumCloudHostedSubscriptionRequest {
pub fn new(
billing_address: models::MinimalBillingAddressRequest,
) -> PremiumCloudHostedSubscriptionRequest {
PremiumCloudHostedSubscriptionRequest {
tokenized_payment_method: None,
non_tokenized_payment_method: None,
billing_address: Box::new(billing_address),
additional_storage_gb: None,
coupons: None,
from_marketing: None,
}
}
}