ha_api/
types.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug)]
4pub struct RefreshToken {
5    pub access_token: String,
6    pub expires_in: u64,
7    pub token_type: String,
8}
9
10#[derive(Serialize, Deserialize, Debug)]
11pub struct AuthorizationCode {
12    pub access_token: String,
13    pub expires_in: u64,
14    pub refresh_token: String,
15    pub token_type: String,
16}
17
18#[derive(Serialize, Deserialize, Debug)]
19pub struct DeviceRegistrationRequest {
20    pub device_id: String,
21    pub app_id: String,
22    pub app_name: String,
23    pub app_version: String,
24    pub device_name: String,
25    pub manufacturer: String,
26    pub model: String,
27    pub os_name: String,
28    pub os_version: String,
29    pub supports_encryption: bool,
30    pub app_data: AppData,
31}
32
33#[derive(Serialize, Deserialize, Debug)]
34pub struct AppData {}
35
36#[derive(Serialize, Deserialize, Debug)]
37pub struct DeviceRegistrationResponse {
38    pub cloudhook_url: Option<String>,
39    pub remote_ui_url: Option<String>,
40    pub secret: Option<String>,
41    pub webhook_id: String,
42}
43
44#[derive(Serialize, Deserialize, Debug)]
45pub struct SensorRegistrationRequest {
46    pub r#type: String,
47    pub data: SensorRegistrationData,
48}
49
50#[derive(Serialize, Deserialize, Debug)]
51pub struct SensorRegistrationData {
52    pub device_class: Option<String>,
53    pub icon: String,
54    pub name: String,
55    pub state: String,
56    pub r#type: String,
57    pub unique_id: String,
58    pub unit_of_measurement: String,
59    pub attributes: std::collections::HashMap<String, String>,
60}
61
62#[derive(Serialize, Deserialize, Debug)]
63pub struct SensorUpdateRequest {
64    pub r#type: String,
65    pub data: SensorUpdateData,
66}
67
68#[derive(Serialize, Deserialize, Debug)]
69pub struct SensorUpdateData {
70    pub icon: String,
71    pub state: String,
72    pub r#type: String,
73    pub unique_id: String,
74    pub attributes: std::collections::HashMap<String, String>,
75}