use crate::container::StatsStream;
use crate::types::filters::Args;
use crate::types::network::EndpointSettings;
use crate::types::volume::Volume;
use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::time::SystemTime;
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct ContainerListOptions {
pub size: bool,
pub all: bool,
pub limit: Option<usize>,
pub filters: Option<super::filters::Args>,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct ContainerLogsOptions {
pub show_stdout: bool,
pub show_stderr: bool,
pub since: Option<SystemTime>,
pub until: Option<SystemTime>,
pub timestamps: bool,
pub follow: bool,
pub tail: Option<String>,
pub details: bool,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct ResizeOptions {
pub height: Option<u32>,
pub width: Option<u32>,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct ContainerStartOptions {
pub checkpoint_id: Option<String>,
pub checkpoint_dir: Option<String>,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct ContainerAttachOptions {
pub stream: bool,
pub stdin: bool,
pub stdout: bool,
pub stderr: bool,
pub detach_keys: Option<String>,
pub logs: bool,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct CopyToContainerOptions {
pub allow_overwrite_dir_with_file: bool,
pub copy_uid_gid: bool,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct ContainerRemoveOptions {
pub remove_volumes: bool,
pub remove_links: bool,
pub force: bool,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct NetworkListOptions {
pub filters: Option<Args>,
}
#[derive(Clone, Debug, Default, Builder)]
#[builder(default, setter(into))]
pub struct NetworkInspectOptions {
pub scope: Option<String>,
pub verbose: bool,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainerCreateCreatedBody {
#[serde(rename = "Id")]
pub id: String,
#[serde(rename = "Warnings")]
pub warnings: Option<Vec<String>>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainerTopOKBody {
#[serde(rename = "Processes")]
pub processes: Vec<Vec<String>>,
#[serde(rename = "Titles")]
pub titles: Vec<String>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainerChangeResponseItem {
#[serde(rename = "Kind")]
pub kind: u8,
#[serde(rename = "Path")]
pub path: String,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainerUpdateOKBody {
#[serde(rename = "Warnings")]
pub warnings: Option<Vec<String>>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainerWaitOKBody {
#[serde(rename = "Error")]
pub error: Option<Vec<String>>,
#[serde(rename = "StatusCode")]
pub status_code: i64,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainerPathStat {
pub name: String,
pub size: i64,
pub mode: u32,
pub mtime: String,
#[serde(rename = "linkTarget")]
pub link_target: Option<String>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct ContainersPruneReport {
#[serde(rename = "ContainersDeleted")]
pub containers_deleted: Option<Vec<String>>,
#[serde(rename = "SpaceReclaimed")]
pub space_reclaimed: Option<u64>,
}
pub struct ContainerStats {
pub body: StatsStream,
pub os_type: String,
}
#[derive(Clone, Debug, Serialize, Default, Builder)]
#[builder(default, setter(into))]
pub struct VolumeCreateBody {
#[serde(rename = "Driver")]
#[serde(skip_serializing_if = "Option::is_none")]
pub driver: Option<String>,
#[serde(rename = "DriverOpts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub driver_opts: Option<HashMap<String, String>>,
#[serde(rename = "Labels")]
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<HashMap<String, String>>,
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct VolumeListOKBody {
#[serde(rename = "Volumes")]
pub volumes: Option<Vec<Volume>>,
#[serde(rename = "Warnings")]
pub warnings: Option<Vec<String>>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct VolumesPruneReport {
#[serde(rename = "VolumesDeleted")]
pub volumes_deleted: Option<Vec<String>>,
#[serde(rename = "SpaceReclaimed")]
pub space_reclaimed: Option<u64>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct NetworkCreateResponse {
#[serde(rename = "Id")]
pub id: String,
#[serde(rename = "Warning")]
pub warning: Option<String>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct NetworksPruneReport {
#[serde(rename = "NetworksDeleted")]
pub networks_deleted: Option<Vec<String>>,
}
#[derive(Clone, Debug, Serialize)]
pub struct NetworkConnect {
#[serde(rename = "Container")]
pub container: String,
#[serde(rename = "EndpointConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoint_config: Option<EndpointSettings>,
}
#[derive(Clone, Debug, Serialize)]
pub struct NetworkDisconnect {
#[serde(rename = "Container")]
pub container: String,
#[serde(rename = "Force")]
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<bool>,
}