#![cfg(feature = "docker_json")]
#![allow(clippy::too_many_arguments, clippy::type_complexity)]
#![allow(
clippy::missing_errors_doc,
clippy::doc_markdown,
clippy::useless_format
)]
#![allow(unused_imports)]
use foundation_macros::JsonHash;
use foundation_netio::shared::client::http_client::HttpClient;
use foundation_netio::{DynNetClient, PreparedRequestBuilder};
use serde::{Deserialize, Serialize};
use super::shared::Plugin;
use super::shared::PluginDevice;
use super::shared::PluginEnv;
use super::shared::PluginMount;
use super::shared::ApiResponse;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct BuildIdentity {
#[serde(rename = "CreatedAt")]
pub created_at: Option<String>,
#[serde(rename = "Ref")]
pub r#ref: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ContainerConfig {
#[serde(rename = "ArgsEscaped")]
pub args_escaped: Option<bool>,
#[serde(rename = "AttachStderr")]
pub attach_stderr: Option<bool>,
#[serde(rename = "AttachStdin")]
pub attach_stdin: Option<bool>,
#[serde(rename = "AttachStdout")]
pub attach_stdout: Option<bool>,
#[serde(rename = "Cmd")]
pub cmd: Option<Vec<String>>,
#[serde(rename = "Domainname")]
pub domainname: Option<String>,
#[serde(rename = "Entrypoint")]
pub entrypoint: Option<Vec<String>>,
#[serde(rename = "Env")]
pub env: Option<Vec<String>>,
#[serde(rename = "ExposedPorts")]
pub exposed_ports: Option<serde_json::Value>,
#[serde(rename = "Healthcheck")]
pub healthcheck: Option<HealthConfig>,
#[serde(rename = "Hostname")]
pub hostname: Option<String>,
#[serde(rename = "Image")]
pub image: Option<String>,
#[serde(rename = "Labels")]
pub labels: Option<serde_json::Value>,
#[serde(rename = "NetworkDisabled")]
pub network_disabled: Option<bool>,
#[serde(rename = "OnBuild")]
pub on_build: Option<Vec<String>>,
#[serde(rename = "OpenStdin")]
pub open_stdin: Option<bool>,
#[serde(rename = "Shell")]
pub shell: Option<Vec<String>>,
#[serde(rename = "StdinOnce")]
pub stdin_once: Option<bool>,
#[serde(rename = "StopSignal")]
pub stop_signal: Option<String>,
#[serde(rename = "StopTimeout")]
pub stop_timeout: Option<i64>,
#[serde(rename = "Tty")]
pub tty: Option<bool>,
#[serde(rename = "User")]
pub user: Option<String>,
#[serde(rename = "Volumes")]
pub volumes: Option<serde_json::Value>,
#[serde(rename = "WorkingDir")]
pub working_dir: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ContainerInspectResponse {
#[serde(rename = "AppArmorProfile")]
pub app_armor_profile: Option<String>,
#[serde(rename = "Args")]
pub args: Option<Vec<String>>,
#[serde(rename = "Config")]
pub config: Option<ContainerConfig>,
#[serde(rename = "Created")]
pub created: Option<String>,
#[serde(rename = "Driver")]
pub driver: Option<String>,
#[serde(rename = "ExecIDs")]
pub exec_i_ds: Option<Vec<String>>,
#[serde(rename = "GraphDriver")]
pub graph_driver: Option<DriverData>,
#[serde(rename = "HostConfig")]
pub host_config: Option<HostConfig>,
#[serde(rename = "HostnamePath")]
pub hostname_path: Option<String>,
#[serde(rename = "HostsPath")]
pub hosts_path: Option<String>,
#[serde(rename = "Id")]
pub id: Option<String>,
#[serde(rename = "Image")]
pub image: Option<String>,
#[serde(rename = "ImageManifestDescriptor")]
pub image_manifest_descriptor: Option<OCIDescriptor>,
#[serde(rename = "LogPath")]
pub log_path: Option<String>,
#[serde(rename = "MountLabel")]
pub mount_label: Option<String>,
#[serde(rename = "Mounts")]
pub mounts: Option<Vec<MountPoint>>,
#[serde(rename = "Name")]
pub name: Option<String>,
#[serde(rename = "NetworkSettings")]
pub network_settings: Option<NetworkSettings>,
#[serde(rename = "Path")]
pub path: Option<String>,
#[serde(rename = "Platform")]
pub platform: Option<String>,
#[serde(rename = "ProcessLabel")]
pub process_label: Option<String>,
#[serde(rename = "ResolvConfPath")]
pub resolv_conf_path: Option<String>,
#[serde(rename = "RestartCount")]
pub restart_count: Option<i64>,
#[serde(rename = "SizeRootFs")]
pub size_root_fs: Option<i64>,
#[serde(rename = "SizeRw")]
pub size_rw: Option<i64>,
#[serde(rename = "State")]
pub state: Option<ContainerState>,
#[serde(rename = "Storage")]
pub storage: Option<Storage>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ContainerState {
#[serde(rename = "Dead")]
pub dead: Option<bool>,
#[serde(rename = "Error")]
pub error: Option<String>,
#[serde(rename = "ExitCode")]
pub exit_code: Option<i64>,
#[serde(rename = "FinishedAt")]
pub finished_at: Option<String>,
#[serde(rename = "Health")]
pub health: Option<Health>,
#[serde(rename = "OOMKilled")]
pub oom_killed: Option<bool>,
#[serde(rename = "Paused")]
pub paused: Option<bool>,
#[serde(rename = "Pid")]
pub pid: Option<i64>,
#[serde(rename = "Restarting")]
pub restarting: Option<bool>,
#[serde(rename = "Running")]
pub running: Option<bool>,
#[serde(rename = "StartedAt")]
pub started_at: Option<String>,
#[serde(rename = "Status")]
pub status: Option<String>,
}
pub type DeviceMapping = super::shared::CgroupPermissionsPathInContainerPathOnHostObject;
pub type DeviceRequest = super::shared::DeviceRequestShape;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct DistributionInspect {
#[serde(rename = "Descriptor")]
pub descriptor: OCIDescriptor,
#[serde(rename = "Platforms")]
pub platforms: Vec<OCIPlatform>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct DriverData {
#[serde(rename = "Data")]
pub data: serde_json::Value,
#[serde(rename = "Name")]
pub name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ExecInspectResponse {
#[serde(rename = "CanRemove")]
pub can_remove: Option<bool>,
#[serde(rename = "ContainerID")]
pub container_id: Option<String>,
#[serde(rename = "DetachKeys")]
pub detach_keys: Option<String>,
#[serde(rename = "ExitCode")]
pub exit_code: Option<i64>,
#[serde(rename = "ID")]
pub id: Option<String>,
#[serde(rename = "OpenStderr")]
pub open_stderr: Option<bool>,
#[serde(rename = "OpenStdin")]
pub open_stdin: Option<bool>,
#[serde(rename = "OpenStdout")]
pub open_stdout: Option<bool>,
#[serde(rename = "Pid")]
pub pid: Option<i64>,
#[serde(rename = "ProcessConfig")]
pub process_config: Option<ProcessConfig>,
#[serde(rename = "Running")]
pub running: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Health {
#[serde(rename = "FailingStreak")]
pub failing_streak: Option<i64>,
#[serde(rename = "Log")]
pub log: Option<Vec<HealthcheckResult>>,
#[serde(rename = "Status")]
pub status: Option<String>,
}
pub type HealthConfig = super::shared::HealthConfigShape;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct HealthcheckResult {
#[serde(rename = "End")]
pub end: Option<String>,
#[serde(rename = "ExitCode")]
pub exit_code: Option<i64>,
#[serde(rename = "Output")]
pub output: Option<String>,
#[serde(rename = "Start")]
pub start: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct HostConfig {
#[serde(rename = "Annotations")]
pub annotations: Option<serde_json::Value>,
#[serde(rename = "AutoRemove")]
pub auto_remove: Option<bool>,
#[serde(rename = "Binds")]
pub binds: Option<Vec<String>>,
#[serde(rename = "BlkioDeviceReadBps")]
pub blkio_device_read_bps: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioDeviceReadIOps")]
pub blkio_device_read_i_ops: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioDeviceWriteBps")]
pub blkio_device_write_bps: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioDeviceWriteIOps")]
pub blkio_device_write_i_ops: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioWeight")]
pub blkio_weight: Option<i64>,
#[serde(rename = "BlkioWeightDevice")]
pub blkio_weight_device: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "CapAdd")]
pub cap_add: Option<Vec<String>>,
#[serde(rename = "CapDrop")]
pub cap_drop: Option<Vec<String>>,
#[serde(rename = "Cgroup")]
pub cgroup: Option<String>,
#[serde(rename = "CgroupParent")]
pub cgroup_parent: Option<String>,
#[serde(rename = "CgroupnsMode")]
pub cgroupns_mode: Option<String>,
#[serde(rename = "ConsoleSize")]
pub console_size: Option<Vec<i64>>,
#[serde(rename = "ContainerIDFile")]
pub container_id_file: Option<String>,
#[serde(rename = "CpuCount")]
pub cpu_count: Option<i64>,
#[serde(rename = "CpuPercent")]
pub cpu_percent: Option<i64>,
#[serde(rename = "CpuPeriod")]
pub cpu_period: Option<i64>,
#[serde(rename = "CpuQuota")]
pub cpu_quota: Option<i64>,
#[serde(rename = "CpuRealtimePeriod")]
pub cpu_realtime_period: Option<i64>,
#[serde(rename = "CpuRealtimeRuntime")]
pub cpu_realtime_runtime: Option<i64>,
#[serde(rename = "CpuShares")]
pub cpu_shares: Option<i64>,
#[serde(rename = "CpusetCpus")]
pub cpuset_cpus: Option<String>,
#[serde(rename = "CpusetMems")]
pub cpuset_mems: Option<String>,
#[serde(rename = "DeviceCgroupRules")]
pub device_cgroup_rules: Option<Vec<String>>,
#[serde(rename = "DeviceRequests")]
pub device_requests: Option<Vec<DeviceRequest>>,
#[serde(rename = "Devices")]
pub devices: Option<Vec<DeviceMapping>>,
#[serde(rename = "Dns")]
pub dns: Option<Vec<String>>,
#[serde(rename = "DnsOptions")]
pub dns_options: Option<Vec<String>>,
#[serde(rename = "DnsSearch")]
pub dns_search: Option<Vec<String>>,
#[serde(rename = "ExtraHosts")]
pub extra_hosts: Option<Vec<String>>,
#[serde(rename = "GroupAdd")]
pub group_add: Option<Vec<String>>,
#[serde(rename = "Init")]
pub init: Option<bool>,
#[serde(rename = "IOMaximumBandwidth")]
pub io_maximum_bandwidth: Option<i64>,
#[serde(rename = "IOMaximumIOps")]
pub io_maximum_i_ops: Option<i64>,
#[serde(rename = "IpcMode")]
pub ipc_mode: Option<String>,
#[serde(rename = "Isolation")]
pub isolation: Option<String>,
#[serde(rename = "Links")]
pub links: Option<Vec<String>>,
#[serde(rename = "LogConfig")]
pub log_config: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "MaskedPaths")]
pub masked_paths: Option<Vec<String>>,
#[serde(rename = "Memory")]
pub memory: Option<i64>,
#[serde(rename = "MemoryReservation")]
pub memory_reservation: Option<i64>,
#[serde(rename = "MemorySwap")]
pub memory_swap: Option<i64>,
#[serde(rename = "MemorySwappiness")]
pub memory_swappiness: Option<i64>,
#[serde(rename = "Mounts")]
pub mounts: Option<Vec<Mount>>,
#[serde(rename = "NanoCpus")]
pub nano_cpus: Option<i64>,
#[serde(rename = "NetworkMode")]
pub network_mode: Option<String>,
#[serde(rename = "OomKillDisable")]
pub oom_kill_disable: Option<bool>,
#[serde(rename = "OomScoreAdj")]
pub oom_score_adj: Option<i64>,
#[serde(rename = "PidMode")]
pub pid_mode: Option<String>,
#[serde(rename = "PidsLimit")]
pub pids_limit: Option<i64>,
#[serde(rename = "PortBindings")]
pub port_bindings: Option<serde_json::Value>,
#[serde(rename = "Privileged")]
pub privileged: Option<bool>,
#[serde(rename = "PublishAllPorts")]
pub publish_all_ports: Option<bool>,
#[serde(rename = "ReadonlyPaths")]
pub readonly_paths: Option<Vec<String>>,
#[serde(rename = "ReadonlyRootfs")]
pub readonly_rootfs: Option<bool>,
#[serde(rename = "RestartPolicy")]
pub restart_policy: Option<RestartPolicy>,
#[serde(rename = "Runtime")]
pub runtime: Option<String>,
#[serde(rename = "SecurityOpt")]
pub security_opt: Option<Vec<String>>,
#[serde(rename = "ShmSize")]
pub shm_size: Option<i64>,
#[serde(rename = "StorageOpt")]
pub storage_opt: Option<serde_json::Value>,
#[serde(rename = "Sysctls")]
pub sysctls: Option<serde_json::Value>,
#[serde(rename = "Tmpfs")]
pub tmpfs: Option<serde_json::Value>,
#[serde(rename = "Ulimits")]
pub ulimits: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "UsernsMode")]
pub userns_mode: Option<String>,
#[serde(rename = "UTSMode")]
pub uts_mode: Option<String>,
#[serde(rename = "VolumeDriver")]
pub volume_driver: Option<String>,
#[serde(rename = "VolumesFrom")]
pub volumes_from: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Identity {
#[serde(rename = "Build")]
pub build: Option<Vec<BuildIdentity>>,
#[serde(rename = "Pull")]
pub pull: Option<Vec<PullIdentity>>,
#[serde(rename = "Signature")]
pub signature: Option<Vec<SignatureIdentity>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ImageConfig {
#[serde(rename = "ArgsEscaped")]
pub args_escaped: Option<bool>,
#[serde(rename = "Cmd")]
pub cmd: Option<Vec<String>>,
#[serde(rename = "Entrypoint")]
pub entrypoint: Option<Vec<String>>,
#[serde(rename = "Env")]
pub env: Option<Vec<String>>,
#[serde(rename = "ExposedPorts")]
pub exposed_ports: Option<serde_json::Value>,
#[serde(rename = "Healthcheck")]
pub healthcheck: Option<HealthConfig>,
#[serde(rename = "Labels")]
pub labels: Option<serde_json::Value>,
#[serde(rename = "OnBuild")]
pub on_build: Option<Vec<String>>,
#[serde(rename = "Shell")]
pub shell: Option<Vec<String>>,
#[serde(rename = "StopSignal")]
pub stop_signal: Option<String>,
#[serde(rename = "User")]
pub user: Option<String>,
#[serde(rename = "Volumes")]
pub volumes: Option<serde_json::Value>,
#[serde(rename = "WorkingDir")]
pub working_dir: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ImageInspect {
#[serde(rename = "Architecture")]
pub architecture: Option<String>,
#[serde(rename = "Author")]
pub author: Option<String>,
#[serde(rename = "Comment")]
pub comment: Option<String>,
#[serde(rename = "Config")]
pub config: Option<ImageConfig>,
#[serde(rename = "Created")]
pub created: Option<String>,
#[serde(rename = "Descriptor")]
pub descriptor: Option<OCIDescriptor>,
#[serde(rename = "GraphDriver")]
pub graph_driver: Option<DriverData>,
#[serde(rename = "Id")]
pub id: Option<String>,
#[serde(rename = "Identity")]
pub identity: Option<Identity>,
#[serde(rename = "Manifests")]
pub manifests: Option<Vec<ImageManifestSummary>>,
#[serde(rename = "Metadata")]
pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "Os")]
pub os: Option<String>,
#[serde(rename = "OsVersion")]
pub os_version: Option<String>,
#[serde(rename = "RepoDigests")]
pub repo_digests: Option<Vec<String>>,
#[serde(rename = "RepoTags")]
pub repo_tags: Option<Vec<String>>,
#[serde(rename = "RootFS")]
pub root_fs: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "Size")]
pub size: Option<i64>,
#[serde(rename = "Variant")]
pub variant: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ImageManifestSummary {
#[serde(rename = "AttestationData")]
pub attestation_data: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "Available")]
pub available: bool,
#[serde(rename = "Descriptor")]
pub descriptor: OCIDescriptor,
#[serde(rename = "ID")]
pub id: String,
#[serde(rename = "ImageData")]
pub image_data: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "Kind")]
pub kind: String,
#[serde(rename = "Size")]
pub size: std::collections::HashMap<String, serde_json::Value>,
}
pub type KnownSignerIdentity = String;
pub type Mount = super::shared::MountShape;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MountPoint {
#[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 = "Propagation")]
pub propagation: Option<String>,
#[serde(rename = "RW")]
pub rw: Option<bool>,
#[serde(rename = "Source")]
pub source: Option<String>,
#[serde(rename = "Type")]
pub r#type: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct NetworkSettings {
#[serde(rename = "Networks")]
pub networks: Option<serde_json::Value>,
#[serde(rename = "Ports")]
pub ports: Option<serde_json::Value>,
#[serde(rename = "SandboxID")]
pub sandbox_id: Option<String>,
#[serde(rename = "SandboxKey")]
pub sandbox_key: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct OCIDescriptor {
pub annotations: Option<serde_json::Value>,
#[serde(rename = "artifactType")]
pub artifact_type: Option<String>,
pub data: Option<String>,
pub digest: Option<String>,
#[serde(rename = "mediaType")]
pub media_type: Option<String>,
pub platform: Option<OCIPlatform>,
pub size: Option<i64>,
pub urls: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct OCIPlatform {
pub architecture: Option<String>,
pub os: Option<String>,
#[serde(rename = "os.features")]
pub os_features: Option<Vec<String>>,
#[serde(rename = "os.version")]
pub os_version: Option<String>,
pub variant: Option<String>,
}
pub type PortMap = serde_json::Value;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ProcessConfig {
pub arguments: Option<Vec<String>>,
pub entrypoint: Option<String>,
pub privileged: Option<bool>,
pub tty: Option<bool>,
pub user: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct PullIdentity {
#[serde(rename = "Repository")]
pub repository: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Resources {
#[serde(rename = "BlkioDeviceReadBps")]
pub blkio_device_read_bps: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioDeviceReadIOps")]
pub blkio_device_read_i_ops: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioDeviceWriteBps")]
pub blkio_device_write_bps: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioDeviceWriteIOps")]
pub blkio_device_write_i_ops: Option<Vec<ThrottleDevice>>,
#[serde(rename = "BlkioWeight")]
pub blkio_weight: Option<i64>,
#[serde(rename = "BlkioWeightDevice")]
pub blkio_weight_device: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "CgroupParent")]
pub cgroup_parent: Option<String>,
#[serde(rename = "CpuCount")]
pub cpu_count: Option<i64>,
#[serde(rename = "CpuPercent")]
pub cpu_percent: Option<i64>,
#[serde(rename = "CpuPeriod")]
pub cpu_period: Option<i64>,
#[serde(rename = "CpuQuota")]
pub cpu_quota: Option<i64>,
#[serde(rename = "CpuRealtimePeriod")]
pub cpu_realtime_period: Option<i64>,
#[serde(rename = "CpuRealtimeRuntime")]
pub cpu_realtime_runtime: Option<i64>,
#[serde(rename = "CpuShares")]
pub cpu_shares: Option<i64>,
#[serde(rename = "CpusetCpus")]
pub cpuset_cpus: Option<String>,
#[serde(rename = "CpusetMems")]
pub cpuset_mems: Option<String>,
#[serde(rename = "DeviceCgroupRules")]
pub device_cgroup_rules: Option<Vec<String>>,
#[serde(rename = "DeviceRequests")]
pub device_requests: Option<Vec<DeviceRequest>>,
#[serde(rename = "Devices")]
pub devices: Option<Vec<DeviceMapping>>,
#[serde(rename = "IOMaximumBandwidth")]
pub io_maximum_bandwidth: Option<i64>,
#[serde(rename = "IOMaximumIOps")]
pub io_maximum_i_ops: Option<i64>,
#[serde(rename = "Init")]
pub init: Option<bool>,
#[serde(rename = "Memory")]
pub memory: Option<i64>,
#[serde(rename = "MemoryReservation")]
pub memory_reservation: Option<i64>,
#[serde(rename = "MemorySwap")]
pub memory_swap: Option<i64>,
#[serde(rename = "MemorySwappiness")]
pub memory_swappiness: Option<i64>,
#[serde(rename = "NanoCpus")]
pub nano_cpus: Option<i64>,
#[serde(rename = "OomKillDisable")]
pub oom_kill_disable: Option<bool>,
#[serde(rename = "PidsLimit")]
pub pids_limit: Option<i64>,
#[serde(rename = "Ulimits")]
pub ulimits: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
}
pub type RestartPolicy = super::shared::MaximumRetryCountNameObject;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct RootFSStorage {
#[serde(rename = "Snapshot")]
pub snapshot: Option<RootFSStorageSnapshot>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct RootFSStorageSnapshot {
#[serde(rename = "Name")]
pub name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct SignatureIdentity {
#[serde(rename = "DockerReference")]
pub docker_reference: Option<String>,
#[serde(rename = "Error")]
pub error: Option<String>,
#[serde(rename = "KnownSigner")]
pub known_signer: Option<String>,
#[serde(rename = "Name")]
pub name: Option<String>,
#[serde(rename = "SignatureType")]
pub signature_type: Option<String>,
#[serde(rename = "Signer")]
pub signer: Option<SignerIdentity>,
#[serde(rename = "Timestamps")]
pub timestamps: Option<Vec<SignatureTimestamp>>,
#[serde(rename = "Warnings")]
pub warnings: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct SignatureTimestamp {
#[serde(rename = "Timestamp")]
pub timestamp: Option<String>,
#[serde(rename = "Type")]
pub r#type: Option<String>,
#[serde(rename = "URI")]
pub uri: Option<String>,
}
pub type SignatureTimestampType = String;
pub type SignatureType = String;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct SignerIdentity {
#[serde(rename = "BuildConfigDigest")]
pub build_config_digest: Option<String>,
#[serde(rename = "BuildConfigURI")]
pub build_config_uri: Option<String>,
#[serde(rename = "BuildSignerDigest")]
pub build_signer_digest: Option<String>,
#[serde(rename = "BuildSignerURI")]
pub build_signer_uri: Option<String>,
#[serde(rename = "BuildTrigger")]
pub build_trigger: Option<String>,
#[serde(rename = "CertificateIssuer")]
pub certificate_issuer: Option<String>,
#[serde(rename = "Issuer")]
pub issuer: Option<String>,
#[serde(rename = "RunInvocationURI")]
pub run_invocation_uri: Option<String>,
#[serde(rename = "RunnerEnvironment")]
pub runner_environment: Option<String>,
#[serde(rename = "SourceRepositoryDigest")]
pub source_repository_digest: Option<String>,
#[serde(rename = "SourceRepositoryIdentifier")]
pub source_repository_identifier: Option<String>,
#[serde(rename = "SourceRepositoryOwnerIdentifier")]
pub source_repository_owner_identifier: Option<String>,
#[serde(rename = "SourceRepositoryOwnerURI")]
pub source_repository_owner_uri: Option<String>,
#[serde(rename = "SourceRepositoryRef")]
pub source_repository_ref: Option<String>,
#[serde(rename = "SourceRepositoryURI")]
pub source_repository_uri: Option<String>,
#[serde(rename = "SourceRepositoryVisibilityAtSigning")]
pub source_repository_visibility_at_signing: Option<String>,
#[serde(rename = "SubjectAlternativeName")]
pub subject_alternative_name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Storage {
#[serde(rename = "RootFS")]
pub root_fs: Option<RootFSStorage>,
}
pub type ThrottleDevice = super::shared::PathRateObject;
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ContainerListArgs {
pub all: Option<String>,
pub limit: Option<String>,
pub size: Option<String>,
pub filters: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ContainerInspectArgs {
pub id: String,
pub size: Option<String>,
}
pub type DistributionInspectArgs = super::shared::NameArgs;
pub type ExecInspectArgs = super::shared::IdArgs;
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ImageListArgs {
pub all: Option<String>,
pub filters: Option<String>,
pub shared_size: Option<String>,
pub digests: Option<String>,
pub manifests: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ImageInspectArgs {
pub name: String,
pub manifests: Option<String>,
pub platform: Option<String>,
}
pub type PluginInspectArgs = super::shared::NameArgs;
pub async fn container_list_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ContainerListArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<serde_json::Value>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/containers/json",);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder.query("all", args.all.as_deref());
builder = builder.query("limit", args.limit.as_deref());
builder = builder.query("size", args.size.as_deref());
builder = builder.query("filters", args.filters.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn container_inspect_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ContainerInspectArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ContainerInspectResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/containers/{}/json", args.id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder.query("size", args.size.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn distribution_inspect_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &DistributionInspectArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<DistributionInspect>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/distribution/{}/json", args.name,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn exec_inspect_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ExecInspectArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ExecInspectResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/exec/{}/json", args.id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn image_list_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ImageListArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<serde_json::Value>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/images/json",);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder.query("all", args.all.as_deref());
builder = builder.query("filters", args.filters.as_deref());
builder = builder.query("shared-size", args.shared_size.as_deref());
builder = builder.query("digests", args.digests.as_deref());
builder = builder.query("manifests", args.manifests.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn image_inspect_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ImageInspectArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ImageInspect>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/images/{}/json", args.name,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder.query("manifests", args.manifests.as_deref());
builder = builder.query("platform", args.platform.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn plugin_inspect_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &PluginInspectArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<Plugin>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/plugins/{}/json", args.name,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}