use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UsageMeteringLineItemsInner {
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "product", skip_serializing_if = "Option::is_none")]
pub product: Option<Product>,
#[serde(rename = "totalUsd", skip_serializing_if = "Option::is_none")]
pub total_usd: Option<f64>,
#[serde(rename = "quantity", skip_serializing_if = "Option::is_none")]
pub quantity: Option<f64>,
}
impl UsageMeteringLineItemsInner {
pub fn new() -> UsageMeteringLineItemsInner {
UsageMeteringLineItemsInner {
name: None,
product: None,
total_usd: None,
quantity: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Product {
#[serde(rename = "accounts")]
Accounts,
#[serde(rename = "numbers")]
Numbers,
#[serde(rename = "calls")]
Calls,
#[serde(rename = "sms")]
Sms,
#[serde(rename = "dlc")]
Dlc,
#[serde(rename = "xApi")]
XApi,
#[serde(rename = "credits")]
Credits,
#[serde(rename = "other")]
Other,
}
impl Default for Product {
fn default() -> Product {
Self::Accounts
}
}