highlevel_api/apis/users/
types.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct User {
6 pub id: String,
7 #[serde(skip_serializing_if = "Option::is_none")]
8 pub first_name: Option<String>,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub last_name: Option<String>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub full_name: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub email: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub phone: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub extension: Option<String>,
19 pub role: String,
20 #[serde(rename = "type")]
21 pub type_: String,
22 #[serde(default)]
23 pub permissions: serde_json::Value,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub location_id: Option<String>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29pub struct GetUserResponse {
30 pub user: User,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize, Default)]
34#[serde(rename_all = "camelCase")]
35pub struct SearchUsersParams {
36 pub location_id: String,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub query: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub limit: Option<u32>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub skip: Option<u32>,
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub role: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub r#type: Option<String>,
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub sort: Option<String>,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub sort_by: Option<String>,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub enabled_2fa: Option<bool>,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
56pub struct SearchUsersResponse {
57 pub users: Vec<User>,
58 pub count: Option<u64>,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize, Default)]
62#[serde(rename_all = "camelCase")]
63pub struct CreateUserParams {
64 pub company_id: String,
65 pub first_name: String,
66 pub last_name: String,
67 pub email: String,
68 pub password: String,
69 pub role: String,
70 #[serde(rename = "type")]
71 pub type_: String,
72 pub location_ids: Vec<String>,
73 #[serde(skip_serializing_if = "Option::is_none")]
74 pub phone: Option<String>,
75 #[serde(skip_serializing_if = "Option::is_none")]
76 pub extension: Option<String>,
77 #[serde(skip_serializing_if = "Option::is_none")]
78 pub permissions: Option<serde_json::Value>,
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize, Default)]
82#[serde(rename_all = "camelCase")]
83pub struct UpdateUserParams {
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub first_name: Option<String>,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub last_name: Option<String>,
88 #[serde(skip_serializing_if = "Option::is_none")]
89 pub email: Option<String>,
90 #[serde(skip_serializing_if = "Option::is_none")]
91 pub phone: Option<String>,
92 #[serde(skip_serializing_if = "Option::is_none")]
93 pub extension: Option<String>,
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub role: Option<String>,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub permissions: Option<serde_json::Value>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub location_ids: Option<Vec<String>>,
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
103pub struct DeleteUserResponse {
104 pub succeded: bool,
105 pub message: Option<String>,
106}