#![allow(clippy::all)]
#![allow(
dead_code,
unused_imports,
unused_variables,
non_snake_case,
rustdoc::all
)]
use crate::core::{Client, Error, Method, QueryParams, Result};
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
#[derive(Clone)]
pub struct Account {
client: Client,
}
impl Account {
pub(crate) fn new(client: Client) -> Self {
Self { client }
}
pub fn client(&self) -> &Client {
&self.client
}
pub async fn get_account_info(
&self,
params: GetAccountInfoParams,
) -> Result<GetAccountInfoResponse> {
let path = "/v1/account/me".to_string();
let query: Vec<(String, String)> = Vec::new();
let body = None;
self.client.send(Method::GET, &path, &query, body).await
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(default)]
pub struct GetAccountInfoResponse {
#[serde(default, deserialize_with = "crate::core::flex::opt_i64")]
pub credits_balance: Option<i64>,
#[serde(default, deserialize_with = "crate::core::flex::opt_i64")]
pub rate_limit_per_minute: Option<i64>,
pub subscription: Option<GetAccountInfoResponseSubscription>,
#[serde(default, deserialize_with = "crate::core::flex::opt_i64")]
pub subscription_credits_balance: Option<i64>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub tier: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_i64")]
pub total_credits_balance: Option<i64>,
#[serde(flatten)]
pub extra: HashMap<String, Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(default)]
pub struct GetAccountInfoResponseSubscription {
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub billing_cadence: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_bool")]
pub cancel_at_period_end: Option<bool>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub cancel_effective_at: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub current_period_end: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub current_period_start: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_i64")]
pub monthly_credits: Option<i64>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub pending_change_effective_at: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub pending_plan_code: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub pending_plan_title: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub plan_code: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub plan_title: Option<String>,
#[serde(default, deserialize_with = "crate::core::flex::opt_string")]
pub status: Option<String>,
#[serde(flatten)]
pub extra: HashMap<String, Value>,
}
#[derive(Debug, Clone, Default, Serialize)]
pub struct GetAccountInfoParams {}