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}