podtender 0.5.0

A rust client for the podman API.
Documentation
use crate::containers::response_types::InspectBlkioThrottleDevice;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct CreatePodResponse {
    #[serde(rename = "Id")]
    pub id: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct InspectPodResponse {
    #[serde(rename = "CgroupParent")]
    pub c_group_parent: Option<String>,
    #[serde(rename = "CgroupPath")]
    pub c_group_path: Option<String>,
    #[serde(rename = "Containers")]
    pub containers: Option<Vec<InspectPodContainerInfo>>,
    pub cpu_period: Option<u64>,
    pub cpu_quota: Option<i64>,
    pub cpusets_cpu: Option<String>,
    #[serde(rename = "CreateCgroup")]
    pub create_cgoup: Option<bool>,
    #[serde(rename = "CreateCommand")]
    pub create_command: Option<Vec<String>>,
    #[serde(rename = "Created")]
    pub created: Option<String>,
    #[serde(rename = "CreateInfra")]
    pub create_infra: Option<bool>,
    pub device_read_bps: Option<InspectBlkioThrottleDevice>,
    pub devices: Option<Vec<InspectDevice>>,
    #[serde(rename = "ExitPolicy")]
    pub exit_policy: Option<String>,
    #[serde(rename = "Hostname")]
    pub hostname: Option<String>,
    #[serde(rename = "Id")]
    pub id: Option<String>,
    #[serde(rename = "InfraConfig")]
    pub infra_config: Option<InspectPodInfraConfig>,
    #[serde(rename = "InfraContainerID")]
    pub infra_container_id: Option<String>,
    #[serde(rename = "Labels")]
    pub labels: Option<HashMap<String, String>>,
    pub mounts: Option<Vec<InspectMount>>,
    #[serde(rename = "Name")]
    pub name: Option<String>,
    #[serde(rename = "Namespace")]
    pub namespace: Option<String>,
    #[serde(rename = "NumContainers")]
    pub num_containers: Option<u64>,
    pub security_opt: Option<Vec<String>>,
    #[serde(rename = "SharedNamespaces")]
    pub shared_namespaces: Vec<String>,
    #[serde(rename = "State")]
    pub state: Option<String>,
    pub volumes_from: Option<Vec<String>>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct InspectPodContainerInfo {
    #[serde(rename = "Id")]
    pub id: Option<String>,
    #[serde(rename = "Name")]
    pub name: Option<String>,
    #[serde(rename = "State")]
    pub state: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct InspectDevice {
    #[serde(rename = "CgroupPermissions")]
    pub cgroup_permissions: Option<String>,
    #[serde(rename = "PathInContainer")]
    pub path_in_container: Option<String>,
    #[serde(rename = "PathOnHost")]
    pub path_on_host: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct InspectPodInfraConfig {
    pub cpu_period: Option<u64>,
    pub cpu_quota: Option<i64>,
    pub spuset_cpus: Option<String>,
    #[serde(rename = "DNSOption")]
    pub dns_option: Option<Vec<String>>,
    #[serde(rename = "DNSSearch")]
    pub dns_search: Option<Vec<String>>,
    #[serde(rename = "DNSServer")]
    pub dns_server: Option<Vec<String>>,
    #[serde(rename = "HostAdd")]
    pub host_add: Option<Vec<String>>,
    #[serde(rename = "HostNetwork")]
    pub host_network: Option<bool>,
    #[serde(rename = "NetworkOptions")]
    pub network_options: Option<HashMap<String, Vec<String>>>,
    #[serde(rename = "Networks")]
    pub networks: Option<Vec<String>>,
    #[serde(rename = "NoManageHosts")]
    pub no_manage_hosts: Option<bool>,
    #[serde(rename = "NoManageResolvConf")]
    pub no_manage_resolv_conf: Option<bool>,
    pub pid_ns: Option<String>,
    #[serde(rename = "PortBindings")]
    pub port_bindings: Option<HashMap<String, Vec<InspectHostPort>>>,
    #[serde(rename = "StaticIP")]
    pub static_ip: Option<String>,
    #[serde(rename = "StaticMAC")]
    pub static_mac: Option<String>,
    pub userns: Option<String>,
    pub uts_ns: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct InspectHostPort {
    #[serde(rename = "HostIp")]
    pub host_ip: Option<String>,
    #[serde(rename = "HostPort")]
    pub host_port: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct InspectMount {
    #[serde(rename = "Destination")]
    pub destination: Option<String>,
    #[serde(rename = "Driver")]
    pub driver: Option<String>,
    #[serde(rename = "Mode")]
    pub mode: Option<String>,
    #[serde(rename = "Name")]
    pub name: Option<String>,
    #[serde(rename = "Options")]
    pub options: Option<Vec<String>>,
    #[serde(rename = "Propagation")]
    pub propagation: Option<String>,
    #[serde(rename = "RW")]
    pub rw: Option<bool>,
    #[serde(rename = "Source")]
    pub source: Option<String>,
    #[serde(rename = "Type")]
    pub type_: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct ListPodProcessesResponse {
    #[serde(rename = "Processes")]
    pub processes: Option<Vec<Vec<String>>>,
    #[serde(rename = "Titles")]
    pub titles: Option<Vec<String>>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct ListPodsResponseEntry {
    #[serde(rename = "Cgroup")]
    pub cgroup: Option<String>,
    #[serde(rename = "Containers")]
    pub containers: Option<Vec<ListPodContainer>>,
    #[serde(rename = "Created")]
    pub created: Option<String>,
    #[serde(rename = "Id")]
    pub id: Option<String>,
    #[serde(rename = "InfraId")]
    pub infra_id: Option<String>,
    #[serde(rename = "Labels")]
    pub labels: Option<HashMap<String, String>>,
    #[serde(rename = "Name")]
    pub name: Option<String>,
    #[serde(rename = "Namespace")]
    pub namespace: Option<String>,
    #[serde(rename = "Networks")]
    pub networks: Option<Vec<String>>,
    #[serde(rename = "Status")]
    pub status: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct ListPodContainer {
    #[serde(rename = "Id")]
    pub id: Option<String>,
    #[serde(rename = "Names")]
    pub names: Option<String>,
    #[serde(rename = "Status")]
    pub status: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct ErrIdResponse {
    #[serde(rename = "Err")]
    pub err: Option<String>,
    #[serde(rename = "Id")]
    pub id: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct PodStatsResponse {
    #[serde(rename = "BlockIO")]
    pub block_io: Option<String>,
    #[serde(rename = "CID")]
    pub cid: Option<String>,
    #[serde(rename = "CPU")]
    pub cpu: Option<String>,
    #[serde(rename = "Mem")]
    pub mem: Option<String>,
    #[serde(rename = "MemUsage")]
    pub mem_usage: Option<String>,
    #[serde(rename = "MemUsageBytes")]
    pub mem_usage_bytes: Option<String>,
    #[serde(rename = "Name")]
    pub name: Option<String>,
    #[serde(rename = "NetIO")]
    pub net_io: Option<String>,
    #[serde(rename = "PIDS")]
    pub pids: Option<String>,
    #[serde(rename = "Pod")]
    pub pod: Option<String>,
}

pub type RemovePodResponse = ErrIdResponse;
pub type PrunePodsResponse = ErrIdResponse;

#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct ErrsIdResponse {
    #[serde(rename = "Errs")]
    pub errs: Option<Vec<String>>,
    #[serde(rename = "Id")]
    pub id: Option<String>,
}

pub type UnpausePodResponse = ErrsIdResponse;
pub type StopPodResponse = ErrsIdResponse;
pub type StartPodResponse = ErrsIdResponse;
pub type RestartPodResponse = ErrsIdResponse;
pub type PausePodResponse = ErrsIdResponse;
pub type KillPodResponse = ErrsIdResponse;