use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WhoAmI {
#[serde(rename = "accountUuid")]
pub account_uuid: String,
pub url: String,
pub email: String,
#[serde(rename = "user_uuid")]
pub user_uuid: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Account {
pub url: String,
pub email: String,
#[serde(rename = "user_uuid")]
pub user_uuid: String,
#[serde(rename = "account_uuid")]
pub account_uuid: String,
pub shorthand: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AccountDetails {
pub id: String,
pub name: String,
pub domain: String,
#[serde(rename = "type")]
pub account_type: Option<String>,
pub state: Option<String>,
#[serde(rename = "created_at")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Vault {
pub id: String,
pub name: String,
#[serde(default)]
pub description: Option<String>,
#[serde(default)]
pub items: Option<i32>,
#[serde(rename = "type", default)]
pub vault_type: Option<String>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "updated_at", default)]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VaultReference {
pub id: String,
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VaultUserAccess {
pub id: String,
pub name: Option<String>,
pub email: Option<String>,
#[serde(rename = "type")]
pub access_type: Option<String>,
pub permissions: Option<Vec<String>>,
pub state: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VaultGroupAccess {
pub id: String,
pub name: Option<String>,
pub description: Option<String>,
pub permissions: Option<Vec<String>>,
pub state: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ItemSummary {
pub id: String,
pub title: String,
pub category: String,
#[serde(default)]
pub vault: Option<VaultReference>,
#[serde(default)]
pub tags: Option<Vec<String>>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "updated_at", default)]
pub updated_at: Option<String>,
#[serde(default)]
pub favorite: Option<bool>,
#[serde(default)]
pub version: Option<i32>,
#[serde(default)]
pub urls: Option<Vec<Url>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Url {
#[serde(default)]
pub label: Option<String>,
#[serde(default)]
pub primary: Option<bool>,
pub href: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Item {
pub id: String,
pub title: String,
pub category: String,
#[serde(default)]
pub vault: Option<VaultReference>,
#[serde(default)]
pub tags: Option<Vec<String>>,
#[serde(default)]
pub fields: Option<Vec<Field>>,
#[serde(default)]
pub sections: Option<Vec<Section>>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "updated_at", default)]
pub updated_at: Option<String>,
#[serde(default)]
pub favorite: Option<bool>,
#[serde(default)]
pub version: Option<i32>,
#[serde(default)]
pub urls: Option<Vec<Url>>,
#[serde(default)]
pub additional_information: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Field {
pub id: String,
#[serde(rename = "type")]
pub field_type: String,
#[serde(default)]
pub label: Option<String>,
#[serde(default)]
pub value: Option<String>,
#[serde(default)]
pub reference: Option<String>,
#[serde(default)]
pub purpose: Option<String>,
#[serde(default)]
pub section: Option<SectionReference>,
#[serde(default)]
pub password_details: Option<PasswordDetails>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SectionReference {
pub id: String,
#[serde(default)]
pub label: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Section {
pub id: String,
#[serde(default)]
pub label: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PasswordDetails {
#[serde(default)]
pub strength: Option<String>,
#[serde(default)]
pub history: Option<Vec<PasswordHistory>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PasswordHistory {
#[serde(default)]
pub value: Option<String>,
#[serde(default)]
pub time: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ItemTemplate {
pub uuid: Option<String>,
pub name: String,
#[serde(default)]
pub fields: Option<Vec<TemplateField>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TemplateField {
pub id: String,
#[serde(rename = "type")]
pub field_type: String,
#[serde(default)]
pub label: Option<String>,
#[serde(default)]
pub purpose: Option<String>,
#[serde(default)]
pub section: Option<SectionReference>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DocumentSummary {
pub id: String,
pub title: String,
#[serde(default)]
pub vault: Option<VaultReference>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "updated_at", default)]
pub updated_at: Option<String>,
#[serde(default)]
pub version: Option<i32>,
#[serde(rename = "overview.filename", alias = "filename", default)]
pub filename: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Document {
#[serde(alias = "uuid")]
pub id: String,
#[serde(default)]
pub title: Option<String>,
#[serde(default)]
pub vault: Option<VaultReference>,
#[serde(rename = "vaultUuid", default)]
pub vault_uuid: Option<String>,
#[serde(default)]
pub tags: Option<Vec<String>>,
#[serde(alias = "createdAt", rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(alias = "updatedAt", rename = "updated_at", default)]
pub updated_at: Option<String>,
#[serde(default)]
pub version: Option<i32>,
#[serde(default)]
pub files: Option<Vec<DocumentFile>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DocumentFile {
pub id: Option<String>,
pub name: Option<String>,
pub size: Option<i64>,
#[serde(rename = "content_type")]
pub content_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct User {
pub id: String,
pub name: Option<String>,
pub email: String,
#[serde(rename = "type")]
pub user_type: Option<String>,
pub state: Option<String>,
pub role: Option<String>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "updated_at", default)]
pub updated_at: Option<String>,
#[serde(rename = "last_auth_at", default)]
pub last_auth_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroupMember {
pub id: String,
pub name: Option<String>,
pub email: Option<String>,
pub role: Option<String>,
pub state: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Group {
pub id: String,
pub name: String,
#[serde(default)]
pub description: Option<String>,
pub state: Option<String>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "updated_at", default)]
pub updated_at: Option<String>,
#[serde(default)]
pub permissions: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConnectServer {
pub id: String,
pub name: String,
pub state: Option<String>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(default)]
pub vaults: Option<Vec<VaultReference>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConnectToken {
pub id: String,
pub name: String,
pub state: Option<String>,
#[serde(rename = "created_at", default)]
pub created_at: Option<String>,
#[serde(rename = "expires_at", default)]
pub expires_at: Option<String>,
#[serde(default)]
pub token: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConnectServerCreateResult {
pub id: String,
pub name: String,
#[serde(default)]
pub credentials: Option<String>,
#[serde(default)]
pub token: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RateLimitInfo {
#[serde(rename = "requestsRemaining")]
pub requests_remaining: Option<i64>,
#[serde(rename = "requestsLimit")]
pub requests_limit: Option<i64>,
#[serde(rename = "resetAt")]
pub reset_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VersionInfo {
pub version: String,
pub build: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Reference {
pub id: String,
#[serde(default)]
pub name: Option<String>,
}