1use crate::acme::AcmeInfo;
2use crate::app::AppConfig;
3use crate::cert::CertInfo;
4use crate::id::ShortId;
5use crate::port::PortStatus;
6use crate::proxy::ProxyStatus;
7use crate::{port::PortEntry, proxy::ProxyEntry};
8use serde_derive::{Deserialize, Serialize};
9use utoipa::ToSchema;
10
11#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
12#[serde(rename_all = "snake_case", tag = "event")]
13#[non_exhaustive]
14pub enum ServerEvent {
15 AppConfigUpdated { config: AppConfig },
16 PortTableUpdated { entries: Vec<PortEntry> },
17 PortStatusUpdated { id: ShortId, status: PortStatus },
18 CertsUpdated { entries: Vec<CertInfo> },
19 ProxiesUpdated { entries: Vec<ProxyEntry> },
20 ProxyStatusUpdated { id: ShortId, status: ProxyStatus },
21 AcmeUpdated { entries: Vec<AcmeInfo> },
22 Shutdown,
23}