use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use super::I64;
pub mod container;
pub mod image;
pub mod network;
pub mod volume;
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct PortBinding {
#[serde(rename = "HostIp")]
pub host_ip: Option<String>,
#[serde(rename = "HostPort")]
pub host_port: Option<String>,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct GraphDriverData {
#[serde(default, rename = "Name")]
pub name: String,
#[serde(default, rename = "Data")]
pub data: HashMap<String, String>,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct ContainerConfig {
#[serde(rename = "Hostname")]
pub hostname: Option<String>,
#[serde(rename = "Domainname")]
pub domainname: Option<String>,
#[serde(rename = "User")]
pub user: Option<String>,
#[serde(rename = "AttachStdin")]
pub attach_stdin: Option<bool>,
#[serde(rename = "AttachStdout")]
pub attach_stdout: Option<bool>,
#[serde(rename = "AttachStderr")]
pub attach_stderr: Option<bool>,
#[serde(default, rename = "ExposedPorts")]
pub exposed_ports: HashMap<String, HashMap<String, ()>>,
#[serde(rename = "Tty")]
pub tty: Option<bool>,
#[serde(rename = "OpenStdin")]
pub open_stdin: Option<bool>,
#[serde(rename = "StdinOnce")]
pub stdin_once: Option<bool>,
#[serde(default, rename = "Env")]
pub env: Vec<String>,
#[serde(default, rename = "Cmd")]
pub cmd: Vec<String>,
#[serde(rename = "Healthcheck")]
pub healthcheck: Option<HealthConfig>,
#[serde(rename = "ArgsEscaped")]
pub args_escaped: Option<bool>,
#[serde(rename = "Image")]
pub image: Option<String>,
#[serde(default, rename = "Volumes")]
pub volumes: HashMap<String, HashMap<String, ()>>,
#[serde(rename = "WorkingDir")]
pub working_dir: Option<String>,
#[serde(default, rename = "Entrypoint")]
pub entrypoint: Vec<String>,
#[serde(rename = "NetworkDisabled")]
pub network_disabled: Option<bool>,
#[serde(rename = "MacAddress")]
pub mac_address: Option<String>,
#[serde(default, rename = "OnBuild")]
pub on_build: Vec<String>,
#[serde(default, rename = "Labels")]
pub labels: HashMap<String, String>,
#[serde(rename = "StopSignal")]
pub stop_signal: Option<String>,
#[serde(rename = "StopTimeout")]
pub stop_timeout: Option<I64>,
#[serde(default, rename = "Shell")]
pub shell: Vec<String>,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct HealthConfig {
#[serde(default, rename = "Test")]
pub test: Vec<String>,
#[serde(rename = "Interval")]
pub interval: Option<I64>,
#[serde(rename = "Timeout")]
pub timeout: Option<I64>,
#[serde(rename = "Retries")]
pub retries: Option<I64>,
#[serde(rename = "StartPeriod")]
pub start_period: Option<I64>,
#[serde(rename = "StartInterval")]
pub start_interval: Option<I64>,
}