Skip to main content

palladium_cli/commands/start/config/
schema.rs

1use std::path::PathBuf;
2
3use serde::Deserialize;
4
5#[derive(Debug, Default, Deserialize)]
6#[serde(deny_unknown_fields)]
7pub struct StartFileConfig {
8    pub(crate) engine: Option<StartFileEngine>,
9    pub(crate) federation: Option<StartFileFederation>,
10    pub(crate) control_plane: Option<StartFileControlPlane>,
11    pub(crate) metadata: Option<StartFileMetadata>,
12}
13
14#[derive(Debug, Default, Deserialize)]
15#[serde(deny_unknown_fields)]
16pub(crate) struct StartFileEngine {
17    pub(crate) id: Option<String>,
18}
19
20#[derive(Debug, Default, Deserialize)]
21#[serde(deny_unknown_fields)]
22pub(crate) struct StartFileFederation {
23    pub(crate) enabled: Option<bool>,
24    pub(crate) bind_addr: Option<String>,
25    pub(crate) seed_nodes: Option<Vec<String>>,
26    pub(crate) gossip_interval_ms: Option<u64>,
27    pub(crate) suspect_timeout_ms: Option<u64>,
28    pub(crate) dead_timeout_ms: Option<u64>,
29    pub(crate) fanout: Option<usize>,
30    pub(crate) policy: Option<String>,
31    pub(crate) allow_prefixes: Option<Vec<String>>,
32    pub(crate) deny_prefixes: Option<Vec<String>>,
33}
34
35#[derive(Debug, Default, Deserialize)]
36#[serde(deny_unknown_fields)]
37pub(crate) struct StartFileControlPlane {
38    pub(crate) tcp_addr: Option<String>,
39    pub(crate) quic_addr: Option<String>,
40    pub(crate) tls_cert: Option<PathBuf>,
41    pub(crate) tls_key: Option<PathBuf>,
42    pub(crate) tls_ca: Option<PathBuf>,
43}
44
45#[derive(Debug, Default, Deserialize)]
46#[serde(deny_unknown_fields)]
47pub struct StartFileMetadata {
48    pub deploy_profile: Option<String>,
49    pub support_band: Option<String>,
50    pub operator_intent: Option<String>,
51    pub orchestration_mode: Option<String>,
52}