harmony/harmony-rs/opnsense-config-xml/src/data/caddy.rs
Jean-Gabriel Gill-Couture 81d40ec163 feat(opnsense-config): add caddy module with configuration management
Introduce a new Caddy module within opnsense-config to manage Caddy server configurations. This includes enabling/disabling Caddy, setting ports, and reloading/restarting the service via OPNsense shell commands. Additionally, provide a sample Caddy configuration file for PXE booting and a test file in the pxe-http-files directory.
2025-01-07 17:12:39 -05:00

84 lines
3.0 KiB
Rust

use yaserde::MaybeString;
use yaserde_derive::{YaDeserialize, YaSerialize};
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct Pischem {
pub caddy: Caddy,
}
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct Caddy {
pub general: CaddyGeneral,
pub reverseproxy: MaybeString,
}
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct CaddyGeneral {
pub enabled: u8,
#[yaserde(rename = "EnableLayer4")]
pub enable_layer4: Option<u8>,
#[yaserde(rename = "HttpPort")]
pub http_port: Option<u16>,
#[yaserde(rename = "HttpsPort")]
pub https_port: Option<u16>,
#[yaserde(rename = "TlsEmail")]
pub tls_email: MaybeString,
#[yaserde(rename = "TlsAutoHttps")]
pub tls_auto_https: MaybeString,
#[yaserde(rename = "TlsDnsProvider")]
pub tls_dns_provider: MaybeString,
#[yaserde(rename = "TlsDnsApiKey")]
pub tls_dns_api_key: MaybeString,
#[yaserde(rename = "TlsDnsSecretApiKey")]
pub tls_dns_secret_api_key: MaybeString,
#[yaserde(rename = "TlsDnsOptionalField1")]
pub tls_dns_optional_field1: MaybeString,
#[yaserde(rename = "TlsDnsOptionalField2")]
pub tls_dns_optional_field2: MaybeString,
#[yaserde(rename = "TlsDnsOptionalField3")]
pub tls_dns_optional_field3: MaybeString,
#[yaserde(rename = "TlsDnsOptionalField4")]
pub tls_dns_optional_field4: MaybeString,
#[yaserde(rename = "TlsDnsPropagationTimeout")]
pub tls_dns_propagation_timeout: MaybeString,
#[yaserde(rename = "TlsDnsPropagationResolvers")]
pub tls_dns_propagation_resolvers: MaybeString,
pub accesslist: MaybeString,
#[yaserde(rename = "DisableSuperuser")]
pub disable_superuser: Option<i32>,
#[yaserde(rename = "GracePeriod")]
pub grace_period: Option<u16>,
#[yaserde(rename = "HttpVersion")]
pub http_version: MaybeString,
#[yaserde(rename = "LogCredentials")]
pub log_credentials: MaybeString,
#[yaserde(rename = "LogAccessPlain")]
pub log_access_plain: MaybeString,
#[yaserde(rename = "LogAccessPlainKeep")]
pub log_access_plain_keep: Option<u16>,
#[yaserde(rename = "LogLevel")]
pub log_level: MaybeString,
#[yaserde(rename = "DynDnsSimpleHttp")]
pub dyn_dns_simple_http: MaybeString,
#[yaserde(rename = "DynDnsInterface")]
pub dyn_dns_interface: MaybeString,
#[yaserde(rename = "DynDnsInterval")]
pub dyn_dns_interval: MaybeString,
#[yaserde(rename = "DynDnsIpVersions")]
pub dyn_dns_ip_versions: MaybeString,
#[yaserde(rename = "DynDnsTtl")]
pub dyn_dns_ttl: MaybeString,
#[yaserde(rename = "DynDnsUpdateOnly")]
pub dyn_dns_update_only: MaybeString,
#[yaserde(rename = "AuthProvider")]
pub auth_provider: MaybeString,
#[yaserde(rename = "AuthToDomain")]
pub auth_to_domain: MaybeString,
#[yaserde(rename = "AuthToPort")]
pub auth_to_port: MaybeString,
#[yaserde(rename = "AuthToTls")]
pub auth_to_tls: Option<i32>,
#[yaserde(rename = "AuthToUri")]
pub auth_to_uri: MaybeString,
}