synapse_admin_api/
users.rs1pub mod create_or_modify;
4pub mod get_details;
5pub mod is_user_admin;
6pub mod list_joined_rooms;
7pub mod list_users;
8pub mod reset_password;
9
10use ruma::{thirdparty::ThirdPartyIdentifier, SecondsSinceUnixEpoch};
11use serde::{Deserialize, Serialize};
12
13#[derive(Serialize, Deserialize, Clone, Debug)]
15pub struct UserDetails {
16 pub name: String,
18
19 pub password_hash: Option<String>,
21
22 #[serde(deserialize_with = "crate::serde::bool_or_uint")]
24 pub is_guest: bool,
25
26 #[serde(deserialize_with = "crate::serde::bool_or_uint")]
28 pub admin: bool,
29
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub consent_version: Option<String>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
36 pub consent_server_notice_sent: Option<bool>,
37
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub appservice_id: Option<String>,
41
42 pub creation_ts: Option<SecondsSinceUnixEpoch>,
45
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub user_type: Option<String>,
49
50 #[serde(deserialize_with = "crate::serde::bool_or_uint")]
52 pub deactivated: bool,
53
54 pub displayname: String,
56
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub avatar_url: Option<String>,
60
61 #[serde(default, skip_serializing_if = "Vec::is_empty")]
63 pub threepids: Vec<ThirdPartyIdentifier>,
64
65 #[serde(default, skip_serializing_if = "Vec::is_empty")]
67 pub external_ids: Vec<ExternalId>,
68
69 #[serde(default, deserialize_with = "crate::serde::bool_or_uint")]
71 pub locked: bool,
72}
73
74#[derive(Clone, Debug, Deserialize, Serialize)]
76pub struct ExternalId {
77 pub auth_provider: String,
79
80 pub external_id: String,
82}