use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::I64;
use super::{ContainerConfig, GraphDriverData};
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct ImageListItem {
pub name: String,
pub id: String,
pub parent_id: String,
pub created: I64,
pub size: I64,
pub in_use: bool,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct Image {
#[serde(rename = "Id")]
pub id: Option<String>,
#[serde(default, rename = "RepoTags")]
pub repo_tags: Vec<String>,
#[serde(default, rename = "RepoDigests")]
pub repo_digests: Vec<String>,
#[serde(rename = "Parent")]
pub parent: Option<String>,
#[serde(rename = "Comment")]
pub comment: Option<String>,
#[serde(rename = "Created")]
pub created: Option<String>,
#[serde(rename = "DockerVersion")]
pub docker_version: Option<String>,
#[serde(rename = "Author")]
pub author: Option<String>,
#[serde(rename = "Config")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config: Option<ContainerConfig>,
#[serde(rename = "Architecture")]
pub architecture: Option<String>,
#[serde(rename = "Variant")]
pub variant: Option<String>,
#[serde(rename = "Os")]
pub os: Option<String>,
#[serde(rename = "OsVersion")]
pub os_version: Option<String>,
#[serde(rename = "Size")]
pub size: Option<I64>,
#[serde(rename = "GraphDriver")]
pub graph_driver: Option<GraphDriverData>,
#[serde(rename = "RootFS")]
pub root_fs: Option<ImageInspectRootFs>,
#[serde(rename = "Metadata")]
pub metadata: Option<ImageInspectMetadata>,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct ImageInspectRootFs {
#[serde(default, rename = "Type")]
pub typ: String,
#[serde(default, rename = "Layers")]
pub layers: Vec<String>,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct ImageInspectMetadata {
#[serde(rename = "LastTagTime")]
pub last_tag_time: Option<String>,
}
#[typeshare]
#[derive(
Debug, Clone, Default, PartialEq, Serialize, Deserialize,
)]
pub struct ImageHistoryResponseItem {
#[serde(rename = "Id")]
pub id: String,
#[serde(rename = "Created")]
pub created: I64,
#[serde(rename = "CreatedBy")]
pub created_by: String,
#[serde(default, rename = "Tags")]
pub tags: Vec<String>,
#[serde(rename = "Size")]
pub size: I64,
#[serde(rename = "Comment")]
pub comment: String,
}