Skip to main content

rmux_proto/request/
server.rs

1use serde::{Deserialize, Serialize};
2
3use crate::SessionName;
4
5/// Request payload for `kill-server`.
6#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
7pub struct KillServerRequest;
8
9/// Request payload for internal daemon status inspection.
10#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
11pub struct DaemonStatusRequest;
12
13/// Request payload for internal idle-only daemon shutdown.
14#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
15pub struct ShutdownIfIdleRequest;
16
17/// Request payload for `lock-server`.
18#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
19pub struct LockServerRequest;
20
21/// Request payload for `lock-session`.
22#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
23pub struct LockSessionRequest {
24    /// The exact target session name.
25    pub target: SessionName,
26}
27
28/// Request payload for `lock-client`.
29#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
30pub struct LockClientRequest {
31    /// The target client identifier or `=`.
32    pub target_client: String,
33}
34
35/// Request payload for `server-access`.
36#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
37pub struct ServerAccessRequest {
38    /// Whether the user should be added or updated.
39    #[serde(default)]
40    pub add: bool,
41    /// Whether the user should be denied and disconnected.
42    #[serde(default)]
43    pub deny: bool,
44    /// Whether the current ACL should be listed.
45    #[serde(default)]
46    pub list: bool,
47    /// Whether the resulting entry should be read-only.
48    #[serde(default)]
49    pub read_only: bool,
50    /// Whether the resulting entry should be read-write.
51    #[serde(default)]
52    pub write: bool,
53    /// The optional username argument.
54    #[serde(default)]
55    pub user: Option<String>,
56}