Skip to main content

bestool_alertd/http_server/
types.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize)]
4pub struct StatusResponse {
5	pub name: String,
6	pub version: String,
7	pub started_at: String,
8	pub pid: u32,
9}
10
11#[derive(Deserialize)]
12pub struct PauseAlertRequest {
13	pub alert: String,
14	pub until: String,
15}
16
17#[derive(Serialize, Deserialize)]
18pub struct ValidationResponse {
19	pub valid: bool,
20	#[serde(skip_serializing_if = "Option::is_none")]
21	pub error: Option<String>,
22	#[serde(skip_serializing_if = "Option::is_none")]
23	pub error_location: Option<ErrorLocation>,
24	#[serde(skip_serializing_if = "Option::is_none")]
25	pub info: Option<ValidationInfo>,
26}
27
28#[derive(Serialize, Deserialize)]
29pub struct ErrorLocation {
30	pub line: usize,
31	pub column: usize,
32	pub path: String,
33}
34
35#[derive(Serialize, Deserialize)]
36pub struct ValidationInfo {
37	pub enabled: bool,
38	pub interval: String,
39	pub source_type: String,
40	pub targets: usize,
41}
42
43#[derive(Debug, Deserialize)]
44pub struct AlertsQuery {
45	#[serde(default)]
46	pub detail: bool,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub struct AlertStateInfo {
51	pub path: String,
52	pub enabled: bool,
53	pub interval: String,
54	pub triggered_at: Option<String>,
55	pub last_sent_at: Option<String>,
56	pub paused_until: Option<String>,
57	pub always_send: String,
58}