use crate::framework::response::ApiResult;
use serde::Deserialize;
pub mod delete;
pub mod get;
pub mod patch;
pub mod post;
pub mod put;
pub use delete::{AccountDelete, AppTransferDelete, UserAccountDelete};
pub use get::{
AccountCreditDetails, AccountCreditList, AccountDetails, AccountFeatureDetails,
AccountFeatureList, AppTransferDetails, AppTransferList, InvoiceAddressDetails, InvoiceDetails,
InvoiceList, KeyDetails, KeyList, SmsNumberDetails, UserAccountDetails,
};
pub use patch::{
AccountFeatureUpdate, AccountFeatureUpdateParams, AccountUpdate, AccountUpdateParams,
AppTransferUpdate, AppTransferUpdateParams, UserAccountUpdate, UserAccountUpdateParams,
};
pub use post::{
AccountCreditCreate, AccountCreditCreateParams, AppTransferCreate, AppTransferCreateParams,
PasswordReset, PasswordResetConfirm, PasswordResetConfirmParams, PasswordResetParams,
SmsNumberConfirm, SmsNumberRecover,
};
pub use put::{InvoiceAddressUpdate, InvoiceAddressUpdateParams};
pub use invoice::Invoice;
pub use invoice_address::InvoiceAddress;
pub use key::Key;
pub use password::PasswordResetResponse;
pub use sms_number::SmsNumber;
impl ApiResult for Account {}
impl ApiResult for AccountFeature {}
impl ApiResult for Vec<AccountFeature> {}
impl ApiResult for AppTransfer {}
impl ApiResult for Vec<AppTransfer> {}
impl ApiResult for Credit {}
impl ApiResult for Vec<Credit> {}
impl ApiResult for PasswordResetResponse {}
impl ApiResult for SmsNumber {}
impl ApiResult for Invoice {}
impl ApiResult for Vec<Invoice> {}
impl ApiResult for InvoiceAddress {}
impl ApiResult for Vec<InvoiceAddress> {}
impl ApiResult for Key {}
impl ApiResult for Vec<Key> {}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Account {
pub allow_tracking: bool,
pub beta: bool,
pub created_at: String,
pub email: String,
pub federated: bool,
pub id: String,
pub identity_provider: Option<IdentityProvider>,
pub last_login: Option<String>,
pub name: Option<String>,
pub sms_number: Option<String>,
pub suspended_at: Option<String>,
pub delinquent_at: Option<String>,
pub two_factor_authentication: bool,
pub updated_at: String,
pub verified: bool,
pub default_organization: Option<DefaultOrganization>,
pub default_team: Option<DefaultTeam>,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct IdentityProvider {
pub id: String,
pub team: Team,
pub organization: Organization,
pub owner: Owner,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Team {
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Organization {
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Owner {
pub id: String,
pub name: String,
#[serde(rename = "type")]
pub type_field: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct DefaultOrganization {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct DefaultTeam {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AccountFeature {
pub created_at: String,
pub description: String,
pub doc_url: String,
pub enabled: bool,
pub id: String,
pub name: String,
pub state: String,
pub updated_at: String,
pub display_name: Option<String>,
pub feedback_email: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppTransfer {
pub app: AppTransferApp,
pub created_at: String,
pub id: String,
pub owner: AppTransferOwner,
pub recipient: AppTransferRecipient,
pub state: String,
pub updated_at: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppTransferApp {
pub name: String,
pub id: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppTransferOwner {
pub email: String,
pub id: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppTransferRecipient {
pub email: String,
pub id: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Credit {
pub amount: i64,
pub balance: i64,
pub created_at: String,
pub expires_at: String,
pub id: String,
pub title: String,
pub updated_at: String,
}
mod password {
use chrono::offset::Utc;
use chrono::DateTime;
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct PasswordResetResponse {
pub created_at: DateTime<Utc>,
pub user: User,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct User {
pub email: String,
pub id: String,
}
}
mod sms_number {
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct SmsNumber {
pub sms_number: Option<String>,
}
}
mod invoice {
use chrono::offset::Utc;
use chrono::DateTime;
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct Invoice {
pub charges_total: f64,
pub created_at: DateTime<Utc>,
pub credits_total: f64,
pub id: String,
pub number: i64,
pub period_end: String,
pub period_start: String,
pub state: i64,
pub total: f64,
pub updated_at: DateTime<Utc>,
}
}
mod invoice_address {
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct InvoiceAddress {
pub address_1: Option<String>,
pub address_2: Option<String>,
pub city: Option<String>,
pub country: Option<String>,
pub heroku_id: String,
pub other: Option<String>,
pub postal_code: Option<String>,
pub state: Option<String>,
pub use_invoice_address: bool,
}
}
mod key {
use chrono::offset::Utc;
use chrono::DateTime;
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct Key {
pub comment: String,
pub created_at: DateTime<Utc>,
pub email: String,
pub fingerprint: String,
pub id: String,
pub public_key: String,
pub updated_at: DateTime<Utc>,
}
}