#![allow(unused_imports)]
use recurly::RecurlyClient;
use recurly::model::*;
#[tokio::main]
async fn main() {
let client = RecurlyClient::from_env();
let subscription_id = "your subscription id";
let response = client
.preview_subscription_change(subscription_id)
.timeframe("your timeframe")
.plan_id("your plan id")
.plan_code("your plan code")
.unit_amount(1.0)
.tax_inclusive(true)
.quantity(1)
.shipping(SubscriptionChangeShippingCreate {
amount: Some(1.0),
method_id: Some("your method id".to_owned()),
method_code: Some("your method code".to_owned()),
address: Some(ShippingAddressCreate {
company: Some("your company".to_owned()),
region: Some("your region".to_owned()),
postal_code: "your postal code".to_owned(),
country: "your country".to_owned(),
street2: Some("your street 2".to_owned()),
email: Some("your email".to_owned()),
nickname: Some("your nickname".to_owned()),
vat_number: Some("your vat number".to_owned()),
city: "your city".to_owned(),
last_name: "your last name".to_owned(),
street1: "your street 1".to_owned(),
phone: Some("your phone".to_owned()),
first_name: "your first name".to_owned(),
}),
address_id: Some("your address id".to_owned()),
})
.coupon_codes(&["your coupon codes"])
.add_ons(
vec![
SubscriptionAddOnUpdate { unit_amount : Some(1.0), percentage_tiers :
Some(vec![SubscriptionAddOnPercentageTier { ending_amount : Some(1.0),
usage_percentage : Some("your usage percentage".to_owned()) }]),
revenue_schedule_type : Some("your revenue schedule type".to_owned()),
usage_percentage : Some(1.0), add_on_source : Some("your add on source"
.to_owned()), id : Some("your id".to_owned()), code : Some("your code"
.to_owned()), quantity : Some(1), unit_amount_decimal :
Some("your unit amount decimal".to_owned()), tiers :
Some(vec![SubscriptionAddOnTier { unit_amount : Some(1.0),
ending_quantity : Some(1), unit_amount_decimal :
Some("your unit amount decimal".to_owned()), usage_percentage :
Some("your usage percentage".to_owned()) }]) }
],
)
.collection_method("your collection method")
.revenue_schedule_type("your revenue schedule type")
.custom_fields(
CustomFields(
vec![
CustomField { name : "your name".to_owned(), value : "your value"
.to_owned() }
],
),
)
.po_number("your po number")
.net_terms(1)
.transaction_type("your transaction type")
.billing_info(SubscriptionChangeBillingInfoCreate {
subscription_change_billing_info: SubscriptionChangeBillingInfo {
three_d_secure_action_result_token_id: Some(
"your three d secure action result token id".to_owned(),
),
},
})
.ramp_intervals(
vec![
SubscriptionRampInterval { unit_amount : Some(1), starting_billing_cycle
: Some(1) }
],
)
.send()
.await
.unwrap();
println!("{:#?}", response);
}