1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct Health {
5 pub status: HealthStatus,
6 pub details: HealthDetails,
7}
8
9#[derive(Debug, Serialize, Deserialize)]
10#[serde(rename_all = "lowercase")]
11pub enum HealthStatus {
12 Up,
13 Down,
14}
15
16#[derive(Debug, Serialize, Deserialize)]
17pub struct HealthDetails {
18 pub chromium: ModuleHealth,
19 pub libreoffice: ModuleHealth,
20}
21
22#[derive(Debug, Serialize, Deserialize)]
23pub struct ModuleHealth {
24 pub status: HealthStatus,
26
27 pub timestamp: String,
29
30 #[serde(skip_serializing_if = "Option::is_none")]
32 #[serde(default)]
33 pub error: Option<String>,
34}