Skip to main content

eero_api/types/
account.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Deserialize, Serialize)]
6pub struct Account {
7    #[serde(default)]
8    pub url: Option<String>,
9    pub name: Option<String>,
10    #[serde(default)]
11    pub phone: Option<ContactInfo>,
12    #[serde(default)]
13    pub email: Option<ContactInfo>,
14    #[serde(default)]
15    pub networks: Networks,
16    #[serde(default)]
17    pub premium_status: Option<String>,
18    #[serde(default)]
19    pub can_transfer: Option<bool>,
20    #[serde(default)]
21    pub is_premium: Option<bool>,
22    #[serde(default)]
23    pub amazon_directed_id: Option<String>,
24    #[serde(default)]
25    pub log_id: Option<String>,
26    #[serde(default)]
27    pub role: Option<String>,
28    #[serde(flatten)]
29    pub extra: HashMap<String, serde_json::Value>,
30}
31
32#[derive(Debug, Clone, Deserialize, Serialize)]
33pub struct ContactInfo {
34    pub value: String,
35    #[serde(default)]
36    pub verified: Option<bool>,
37    #[serde(default)]
38    pub country_code: Option<String>,
39    #[serde(default)]
40    pub national_number: Option<String>,
41}
42
43#[derive(Debug, Clone, Default, Deserialize, Serialize)]
44pub struct Networks {
45    #[serde(default)]
46    pub count: u32,
47    #[serde(default)]
48    pub data: Vec<NetworkRef>,
49}
50
51#[derive(Debug, Clone, Deserialize, Serialize)]
52pub struct NetworkRef {
53    pub url: String,
54    pub name: Option<String>,
55}