use serde::{Deserialize, Serialize};
use super::Merge;
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, schemars::JsonSchema)]
pub struct CapabilityNetworkDnsV1 {
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub servers: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_hosts: Option<NetworkDnsAllowedHostsV1>,
}
impl Merge for CapabilityNetworkDnsV1 {
fn merge_extend(self, other: &Self) -> Self {
Self {
enabled: self.enabled.merge_extend(&other.enabled),
servers: self.servers.merge_extend(&other.servers),
allowed_hosts: self.allowed_hosts.merge_extend(&other.allowed_hosts),
}
}
}
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, schemars::JsonSchema)]
pub struct NetworkDnsAllowedHostsV1 {
pub allow_all_hosts: Option<bool>,
pub hosts: Vec<String>,
pub regex_patterns: Vec<String>,
pub wildcard_patterns: Vec<String>,
}
impl Merge for NetworkDnsAllowedHostsV1 {
fn merge_extend(self, other: &Self) -> Self {
Self {
allow_all_hosts: self.allow_all_hosts.merge_extend(&other.allow_all_hosts),
hosts: self.hosts.merge_extend(&other.hosts),
regex_patterns: self.regex_patterns.merge_extend(&other.regex_patterns),
wildcard_patterns: self
.wildcard_patterns
.merge_extend(&other.wildcard_patterns),
}
}
}