walrus_daemon/service/
config.rs1use serde::{Deserialize, Serialize};
4use serde_json::Value;
5use std::collections::BTreeMap;
6
7#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9#[serde(rename_all = "snake_case")]
10pub enum ServiceKind {
11 #[default]
13 Extension,
14 Gateway,
16}
17
18#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20#[serde(rename_all = "snake_case")]
21pub enum RestartPolicy {
22 #[default]
24 Never,
25 OnFailure,
27 Always,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct ServiceConfig {
34 #[serde(default)]
36 pub description: Option<String>,
37 #[serde(default)]
39 pub kind: ServiceKind,
40 #[serde(rename = "crate", alias = "krate")]
43 pub krate: String,
44 #[serde(default)]
46 pub restart: RestartPolicy,
47 #[serde(default = "default_true")]
49 pub enabled: bool,
50 #[serde(default)]
52 pub env: BTreeMap<String, String>,
53 #[serde(default)]
55 pub config: Value,
56}
57
58fn default_true() -> bool {
59 true
60}