surge-sdk 0.1.1-alpha.2

Rust SDK for Surge.sh API - programmatically manage static site deployments, domains, SSL, and DNS
Documentation
use serde_derive::Deserialize;
use serde_derive::Serialize;
use serde_json::Value;

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PlansResponse {
    pub card: Card,
    #[serde(rename = "stripe_pk")]
    pub stripe_pk: String,
    pub current: Value,
    pub list: Vec<List>,
    pub message: String,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Card {
    pub id: String,
    pub object: String,
    #[serde(rename = "address_city")]
    pub address_city: Value,
    #[serde(rename = "address_country")]
    pub address_country: Value,
    #[serde(rename = "address_line1")]
    pub address_line1: Value,
    #[serde(rename = "address_line1_check")]
    pub address_line1_check: Value,
    #[serde(rename = "address_line2")]
    pub address_line2: Value,
    #[serde(rename = "address_state")]
    pub address_state: Value,
    #[serde(rename = "address_zip")]
    pub address_zip: Value,
    #[serde(rename = "address_zip_check")]
    pub address_zip_check: Value,
    #[serde(rename = "allow_redisplay")]
    pub allow_redisplay: String,
    pub brand: String,
    pub country: String,
    pub customer: String,
    #[serde(rename = "cvc_check")]
    pub cvc_check: String,
    #[serde(rename = "dynamic_last4")]
    pub dynamic_last4: Value,
    #[serde(rename = "exp_month")]
    pub exp_month: i64,
    #[serde(rename = "exp_year")]
    pub exp_year: i64,
    pub fingerprint: String,
    pub funding: String,
    pub last4: String,
    pub metadata: Value,
    pub name: Value,
    #[serde(rename = "regulated_status")]
    pub regulated_status: String,
    #[serde(rename = "tokenization_method")]
    pub tokenization_method: Value,
    pub wallet: Value,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct List {
    pub id: String,
    pub name: String,
    pub amount: Value,
    pub friendly: String,
    pub dummy: Option<bool>,
    pub current: bool,
    pub metadata: Metadata2,
    pub ext: String,
    pub perks: Vec<String>,
    pub object: Option<String>,
    pub active: Option<bool>,
    #[serde(rename = "aggregate_usage")]
    pub aggregate_usage: Option<String>,
    #[serde(rename = "amount_decimal")]
    pub amount_decimal: Option<String>,
    #[serde(rename = "billing_scheme")]
    pub billing_scheme: Option<String>,
    pub created: Option<i64>,
    pub currency: Option<String>,
    pub interval: Option<String>,
    #[serde(rename = "interval_count")]
    pub interval_count: Option<i64>,
    pub livemode: Option<bool>,
    pub meter: Option<String>,
    pub nickname: Option<String>,
    pub product: Option<String>,
    #[serde(rename = "statement_descriptor")]
    pub statement_descriptor: Option<String>,
    pub tiers: Option<String>,
    #[serde(rename = "tiers_mode")]
    pub tiers_mode: Option<String>,
    #[serde(rename = "transform_usage")]
    pub transform_usage: Option<String>,
    #[serde(rename = "trial_period_days")]
    pub trial_period_days: Option<String>,
    #[serde(rename = "usage_type")]
    pub usage_type: Option<String>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Metadata2 {
    pub projects: Option<String>,
    pub preview: Option<String>,
    #[serde(rename = "type")]
    pub type_field: String,
}