use serde::Deserialize;
use super::challenge::ChallengeConfig;
use super::filter::FilterConfig;
use super::ipam::IpamConfig;
use super::notify::NotifyConfig;
use super::server::{MetaConfig, OrderConfig};
use super::signer::SignerConfig;
#[derive(Debug, Clone, Deserialize)]
#[serde(default)]
pub struct ProfileSections {
pub enabled: bool,
pub signer: SignerConfig,
pub filter: FilterConfig,
pub ipam: IpamConfig,
pub challenge: ChallengeConfig,
pub eab: EabConfig,
pub order: OrderConfig,
pub notify: NotifyConfig,
pub meta: MetaConfig,
}
impl Default for ProfileSections {
fn default() -> Self {
Self {
enabled: true,
signer: SignerConfig::default(),
filter: FilterConfig::default(),
ipam: IpamConfig::default(),
challenge: ChallengeConfig::default(),
eab: EabConfig::default(),
meta: MetaConfig::default(),
order: OrderConfig::default(),
notify: NotifyConfig::default(),
}
}
}
#[derive(Debug, Clone)]
pub struct ProfileConfig {
pub name: String,
pub sections: ProfileSections,
}
#[derive(Debug, Clone, Deserialize, Default)]
#[serde(default)]
pub struct EabConfig {
pub enabled: bool,
}