#![allow(missing_docs)] use std::net::Ipv4Addr;
use crate::config;
#[derive(Debug, Clone, Default, derive_builder::Builder, property::Property, serde::Serialize)]
#[property(get(public), set(public), mut(public, suffix = "_mut"))]
#[builder(setter(into))]
#[must_use]
pub struct HostConfig {
#[builder(default)]
pub(crate) allow_latest: bool,
#[builder(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub(crate) insecure_registries: Vec<String>,
#[builder(setter(strip_option), default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) rpc: Option<HttpConfig>,
}
#[derive(Debug, Default, Clone, derive_builder::Builder, property::Property, serde::Serialize)]
#[builder(setter(into))]
#[property(get(public), set(private), mut(public, suffix = "_mut"))]
pub struct HttpConfig {
#[builder(default)]
pub(crate) enabled: bool,
#[builder(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) port: Option<u16>,
#[builder(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) address: Option<Ipv4Addr>,
#[builder(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) pem: Option<config::AssetReference>,
#[builder(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) key: Option<config::AssetReference>,
#[builder(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) ca: Option<config::AssetReference>,
}