podman-client 0.0.2

A native Rust client for the Podman REST API over Unix sockets
Documentation
use core::fmt;
use std::collections::HashMap;

use serde::{Deserialize, Serialize};

use crate::models::podman::common::pod_rm_report::PodRmReport;

pub struct PodKubePlayOptions<'a> {
    pub annotation: Option<HashMap<&'a str, &'a str>>,
    pub build: Option<bool>,
    pub log_driver: Option<&'a str>,
    pub log_options: Option<Vec<&'a str>>,
    pub network: Option<Vec<&'a str>>,
    pub no_hosts: Option<bool>,
    pub no_trunc: Option<bool>,
    pub publish_all_ports: Option<bool>,
    pub publish_ports: Option<Vec<&'a str>>,
    pub replace: Option<bool>,
    pub service_container: Option<bool>,
    pub start: Option<bool>,
    pub static_ips: Option<Vec<&'a str>>,
    pub static_macs: Option<Vec<&'a str>>,
    pub tls_verify: Option<bool>,
    pub userns: Option<&'a str>,
    pub wait: Option<bool>,
    pub kubernetes_yaml_file: String,
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlay {
    pub exit_code: i32,
    pub pods: Vec<PodKubePlayPod>,
    pub rm_report: Vec<PodRmReport>,
    pub secret_rm_report: Vec<PodKubePlaySecretRmReport>,
    pub secrets: Vec<PodKubePlaySecret>,
    #[serde(rename = "ServiceContainerID")]
    pub service_container_id: String,
    pub stop_report: Vec<PodKubePlayStopReport>,
    pub volume_rm_report: Vec<PodKubePlayVolumeRmReport>,
    pub volumes: Vec<PodKubePlayVolume>,
}

impl fmt::Debug for PodKubePlay {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let json = serde_json::to_string_pretty(self).map_err(|_| fmt::Error)?;
        f.write_str(&json)
    }
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlayPod {
    pub container_errors: Vec<String>,
    pub containers: Vec<String>,
    #[serde(rename = "ID")]
    pub id: String,
    pub init_containers: Vec<String>,
    pub logs: Vec<String>,
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlaySecretRmReport {
    pub err: String,
    pub id: String,
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlaySecret {
    pub create_report: PodKubePlaySecretCreateReport,
}

#[derive(Deserialize, Serialize)]
pub struct PodKubePlaySecretCreateReport {
    #[serde(rename = "ID")]
    pub id: String,
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlayStopReport {
    pub errs: Vec<String>,
    pub id: String,
    pub raw_input: String,
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlayVolumeRmReport {
    pub err: String,
    pub id: String,
}

#[derive(Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PodKubePlayVolume {
    pub name: String,
}