use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ImageData {
    #[serde(rename = "Annotations", skip_serializing_if = "Option::is_none")]
    pub annotations: Option<std::collections::HashMap<String, String>>,
    #[serde(rename = "Architecture", skip_serializing_if = "Option::is_none")]
    pub architecture: Option<String>,
    #[serde(rename = "Author", skip_serializing_if = "Option::is_none")]
    pub author: Option<String>,
    #[serde(rename = "Comment", skip_serializing_if = "Option::is_none")]
    pub comment: Option<String>,
    #[serde(rename = "Config", skip_serializing_if = "Option::is_none")]
    pub config: Option<Box<models::ImageConfig>>,
    #[serde(rename = "Created", skip_serializing_if = "Option::is_none")]
    pub created: Option<String>,
    #[serde(rename = "Digest", skip_serializing_if = "Option::is_none")]
    pub digest: Option<String>,
    #[serde(rename = "GraphDriver", skip_serializing_if = "Option::is_none")]
    pub graph_driver: Option<Box<models::DriverData>>,
    #[serde(rename = "Healthcheck", skip_serializing_if = "Option::is_none")]
    pub healthcheck: Option<Box<models::Schema2HealthConfig>>,
    #[serde(rename = "History", skip_serializing_if = "Option::is_none")]
    pub history: Option<Vec<models::History>>,
    #[serde(rename = "Id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    #[serde(rename = "Labels", skip_serializing_if = "Option::is_none")]
    pub labels: Option<std::collections::HashMap<String, String>>,
    #[serde(rename = "ManifestType", skip_serializing_if = "Option::is_none")]
    pub manifest_type: Option<String>,
    #[serde(rename = "NamesHistory", skip_serializing_if = "Option::is_none")]
    pub names_history: Option<Vec<String>>,
    #[serde(rename = "Os", skip_serializing_if = "Option::is_none")]
    pub os: Option<String>,
    #[serde(rename = "Parent", skip_serializing_if = "Option::is_none")]
    pub parent: Option<String>,
    #[serde(rename = "RepoDigests", skip_serializing_if = "Option::is_none")]
    pub repo_digests: Option<Vec<String>>,
    #[serde(rename = "RepoTags", skip_serializing_if = "Option::is_none")]
    pub repo_tags: Option<Vec<String>>,
    #[serde(rename = "RootFS", skip_serializing_if = "Option::is_none")]
    pub root_fs: Option<Box<models::RootFs>>,
    #[serde(rename = "Size", skip_serializing_if = "Option::is_none")]
    pub size: Option<i64>,
    #[serde(rename = "User", skip_serializing_if = "Option::is_none")]
    pub user: Option<String>,
    #[serde(rename = "Version", skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
    #[serde(rename = "VirtualSize", skip_serializing_if = "Option::is_none")]
    pub virtual_size: Option<i64>,
}
impl ImageData {
    pub fn new() -> ImageData {
        ImageData {
            annotations: None,
            architecture: None,
            author: None,
            comment: None,
            config: None,
            created: None,
            digest: None,
            graph_driver: None,
            healthcheck: None,
            history: None,
            id: None,
            labels: None,
            manifest_type: None,
            names_history: None,
            os: None,
            parent: None,
            repo_digests: None,
            repo_tags: None,
            root_fs: None,
            size: None,
            user: None,
            version: None,
            virtual_size: None,
        }
    }
}