Skip to main content

highlevel_api/apis/users/
types.rs

1use 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}