edgequake_sdk/types/
auth.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize)]
7pub struct LoginRequest {
8 pub username: String,
9 pub password: String,
10}
11
12#[derive(Debug, Clone, Deserialize)]
14pub struct TokenResponse {
15 pub access_token: String,
16 #[serde(default)]
17 pub refresh_token: Option<String>,
18 #[serde(default)]
19 pub token_type: Option<String>,
20 #[serde(default)]
21 pub expires_in: Option<u64>,
22}
23
24#[derive(Debug, Clone, Serialize)]
26pub struct RefreshRequest {
27 pub refresh_token: String,
28}
29
30#[derive(Debug, Clone, Deserialize)]
32pub struct UserInfo {
33 pub id: String,
34 #[serde(default)]
35 pub username: Option<String>,
36 #[serde(default)]
37 pub email: Option<String>,
38 #[serde(default)]
39 pub role: Option<String>,
40}
41
42#[derive(Debug, Clone, Serialize)]
44pub struct CreateUserRequest {
45 pub username: String,
46 pub email: String,
47 pub password: String,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub role: Option<String>,
50}
51
52#[derive(Debug, Clone, Deserialize)]
54pub struct ApiKeyResponse {
55 pub id: String,
56 pub key: String,
57 #[serde(default)]
58 pub name: Option<String>,
59 #[serde(default)]
60 pub created_at: Option<String>,
61}
62
63#[derive(Debug, Clone, Deserialize)]
65pub struct ApiKeyInfo {
66 pub id: String,
67 #[serde(default)]
68 pub name: Option<String>,
69 #[serde(default)]
70 pub created_at: Option<String>,
71}
72
73#[derive(Debug, Clone, Serialize)]
75pub struct CreateTenantRequest {
76 pub name: String,
77 #[serde(skip_serializing_if = "Option::is_none")]
78 pub slug: Option<String>,
79}
80
81#[derive(Debug, Clone, Deserialize)]
83pub struct TenantInfo {
84 pub id: String,
85 pub name: String,
86 #[serde(default)]
87 pub slug: Option<String>,
88 #[serde(default)]
89 pub plan: Option<String>,
90 #[serde(default)]
91 pub is_active: Option<bool>,
92}
93
94#[derive(Debug, Clone, Deserialize)]
96pub struct TenantListResponse {
97 #[serde(default)]
98 pub items: Vec<TenantInfo>,
99}
100
101#[derive(Debug, Clone, Deserialize)]
103pub struct UserListResponse {
104 #[serde(default)]
105 pub users: Vec<UserInfo>,
106}
107
108#[derive(Debug, Clone, Deserialize)]
110pub struct ApiKeyListResponse {
111 #[serde(default)]
112 pub keys: Vec<ApiKeyInfo>,
113}